新闻中心

EEPW首页>手机与无线通信>设计应用> 基于GSM的无线抄表系统安全性的设计

基于GSM的无线抄表系统安全性的设计

作者: 时间:2011-03-15 来源:网络 收藏

1.4 关于微控制器的考虑
的所有模块的工作方式为“长时间休眠,短时间工作”。经过斟酌,选择NXP公司的ARM7内核的LPC2132作为主控器。原因如下:集成了实时时钟功能(RTC),能在CPU休眠时保持计时的功能,并能在设定的时刻通过中断唤醒CPU;功耗甚小,休眠时电流仅10μA左右;工作电流仅在1 mA/MIPS以下;含有足够控制模块和存储历史数据所需的RAM。

本文引用地址://m.amcfsurvey.com/article/156594.htm

2加密算法和分析
2.1 数据加密算法
通信网络的安全保障离不开加密理论的支持。从应用角度看,信息的安全需要保密、防篡改、防伪造等保障目标。而对应到数据加密理论,这些目标可由对称加密、非对称加密、散列等算法结合应用来实现。
对称加密算法的加密和解密使用同一个密钥,相对非对称加密算法密码长度较短(56 b,64 b或128 b)、加密速度快。最为普及和典型的是DES算法;非对称加密算法有两个密钥,一个公开,一个保密,因此一个做公钥,一个做密钥,该算法运算量大,与对称加密算法相比,加解密速度慢,不适合大量数据加解密,只适合小量数据加解密。典型的算法有RSA算法、椭圆函数加密算法等;散列函数是对明文运算后,可以生成一个定长的摘要,明文发生改变后摘要值变化很大,该函数是一个单向函数,从明文计算出摘要是很容易的,但从摘要计算出明文是不可能的。典型的算法有MD5,SHA等。
2.2加密分析
上面提到的几种算法已经得到了广泛应用,但是在以微控制器为处理器的系统中,他们就显得很复杂,CPU运算速度不能满足其要求,占用ROM和RAM的资源较多,影响系统的响应速度。因此,针对以ARM7为控制器,数据发送时间短,要求不是很高的系统,很有必要一种简单适用的加密方法提高系统的。根据系统要求,考虑用对称加密的方法来实现对数据短信的加密。它的两个基本要素为加密算法和加密密钥。加密算法主要由插入随机数、字符置换、字符映射和异或等组成。加密密钥由计算机终控端生成,而且密钥可以随时改变,通过模块发送。

3 系统加密过程
对短信加密的思路为:首先根据短信原始内容计算出16位CRC校验码,16位校验码用其十六进制值对应的四字节ASCII表示,放在原始内容末尾,然后对包含原始内容和校验码的字符串再进行加密,根据生成的密文再次生成CRC校验码,置于密文末尾,最后发送出去。主要包括插人随机数、字节置换、异或和字节映射四个过程。
3.1 密钥
该系统使用对称加密的方法,加密算法和密钥只需保密其一即可使密文无法解读。但由于加密算法需要精心并经过大量分析验证,因此实际应用中优秀的算法并不多,而且越是大量应用且公开的加密算法,越能表明更高的。因此只要妥善保密好有限长度的密钥,就能使无限长度的通信数据得到保密。对称加密双方使用同一个密钥加密解密,此密钥由计算机终端通过GSM模块发送。对于本来就存在安全隐患的GSM网络来说,最好的方法就是随时改变密钥。因此考虑用32 B随机数作为密钥,此密钥可以由计算机管理员随机输入或者用PC机采用随机数生成算法生成。
3.2 加密算法
(1)CRC校验码
CRC循环校验码主要用来校验发送的数据是否可靠,如果不可靠就丢弃重发或修复。CRC校验码主要由信息码和校验码组成。如果CRC校验码长度为nb,信息码长为kb,就称(n,k)码。它的编码规则为:首先将信息码左移(n-k)位,然后用一个生成多项式g(x)(二进制数)用模2除移位后的式子,余数就作为校验码。该设计中GSM模块的一条短信最长为160个ASCII字符,加上短信明文的长度,考虑到长度太长延时较为严重,因此选择标准CRC生成算法CRC-CCITT,其多项式为:CRC-CCITT=X16+X12+X5+1。
(2)插入随机数
从原始明文中依次取出一个字节,若该字节的ASCII值模3余0,则在该字节后插入3个随机数;若该字节的ASCII值模3余2,则在该字节后插入2个随机数;若该字节的ASCII值模3余1,则在该字节后插入1个随机数,随机数种子选取各种与当前系统状态相关的数值。插入的随机数对应的ASCII的平均值应尽量与原明文内容的平均值相近,以增加破解的难度。根据系统短信的格式,如前缀、读表数据、读表时间、CRC校验码等,长度为20 B,那么经过这一步操作之后,字符串最短长度为40 B,最长为80 B,这样字符串的长度在40~80 B之间,不确定性大大增加。
(3)字节置换
将上一步生成的字符串第一个字节的高四位和最后一个字节的低四位交换,第二字节高四位和倒数第二字节低四位交换,依次类推,生成字符串;此时,若字符串长度为偶数,将相邻两字节高四位与高四位交换,低四位与低四位交换,生成新字符串。若字符串为奇数,将第一个字节的高四位、低四位和最后一个字节高四位,低四位对应交换,将第二个字节的高四位、低四位和倒数第二个高四位、低四位对应交换,依次类推,最中间一个高四位与低四位交换,生成字符串,此时字符串长度不变。
(4)异或
先将32 b密钥与12 b硬件ID号循环异或,即密钥的第n个字节与ID号的第n%12个字节异或,得到长度为32 b的字符串密钥。然后再将上一步产生的字符串与这个32 b的字符串密钥再做同样的循环异或,即字符串的第n个字节与32 b字符串的第n%32个字节异或。经过两次双层循环异或,生成更加混乱的字符串,此时字符串长度仍然不变。
(5)字节映射
依次取出上步生成字符串的一个字节,若该字节对应的ASCII值小于32或者大于95,例如0x1A,则将该字节拆分为两字节,两字节的低四位分别为该字节的高四位和低四位,两字节的高四位分别为0110,0111,即生成0x61,0x7A;这里的两个字节的高四位取值要尽量接近,但应满足与低四位组合后他们的ASCII值与不拆分字节对应的值不在一个范围之内;若该字节值在32~95B之间,则保留不变,经过此种映射后,字符串长度范围由原来的40~80 B变为40~160 B,字符长度的不确定性进一步增加,系统的安全性进一步提高。
最后根据生成的字符串计算16位校验码,置于字符串末尾,生成最终的密文发送出去。以上所有加密的过程均可逆,所以解密过程为上述过程的逆过程,首先根据CRC校验码判断密文传输是否有误,然后解密,根据解密后的明文获得水表数据。

4 安全性分析
由于加解密使用的密钥在不停地改变,本来密钥的保密性就很强,使得一些统计工具就无法发挥作用。密文的字符串由0~9和A~F共16个字符组成,假如采用暴力穷举法进行破解,若计算机的主频为3.0 GHz,取字符串长度为15,用1台计算机进行破解,时间T=1615/(24×3 600×365×3×109)≈12年,若采用100台计算机联网同时破解,字符长度仅增加2位,T=12×162/100≈30年,恐怕没有谁具有如此的耐心去进行此项工作。而密文字节长度在40~160 B之间,那么破解的时间将会更长。
由此可见,此种简单实用的加密方案将系统的安全性大大提高。

5 结语
采用GSM技术进行远程水表抄表,节省了大量的人力财力,提高了抄表的简易性、实时性和可靠性;然而由于GSM通信网络存在安全隐患,在以MCU为处理器的嵌入式系统中,已有复杂的加密算法却无法使用,使得系统的安全性大大降低。不过对于这种特殊的系统,采用本文提及的短信加密的方法,提高了系统的安全性,且方法简单实用,占用资源少,加解密速度快,适合推广。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭