闻 怡
(长安大学 信息工程学院,陕西 西安 710064)
随着网络技术和传感技术的发展,网络已经不仅仅能够实现计算机终端设备之间的数据通讯,而且能够实现计算机与其他物体之间数据通讯。物联网(Internet of Things)作为一种新兴的网络互连技术,于1999年由麻省理工学院汽车ID中心的阿斯通教授提出后,已经在物流、安全保障、智能交通运输等行业得到了广泛应用。在许多应用环境中,对数据传输安全都有一定要求。物联网数据加密和以前的互联网络在网络通讯上有许多相似的技术和方法,但是由于物联网部署的环境不同,其终端节点受到环境的限制,在运算能力和耗能等方面又有其自身的特点,对节点和节点之间、节点到控制服务器之间的数据通讯和安全就需要采取不同的加密方法,时变加密是保障网络安全的优选方案。
通常的网络数据传输安全是通过对需要传输的数据,在数据发送、网络传输到数据接收等数据经过的各个环节,对数据进行算法处理,从而达到对数据进行加密的目的,实现在公用网络信息系统中传输、交换和存储中隐藏原始数据,达到不被破译和窃取,保障数据的保密性、完整性、真实性、可靠性、可用性和不可抵赖性等[1],加密技术是数据传输安全的核心技术。使用加密算法把需要加密的数据从明文转换为密文再通过网络传输,密文传输过程中即使被通过非正常手段窃取,也很难通过破译手段转换为原始的数据[2]。根据网络特点和安全级别的不同,产生了不同原理和方法的加密技术。
目前在计算机网络通讯中使用的比较成熟的加密算法主要分为对称和非对称算法[3]。对称加密算法是指在数据的加密过程和解密过程采用相同的密钥进行技术处理。目前流行的对称加密算法有AES、IDEA、RC2/RC4、DES等,这种加密最大的问题是密钥不容易分发,需要经过人工面对面交换或在公共通讯网络中采用安全的方法交换密钥。对称加密算法原理简单,数据处理速度快、通过硬件逻辑实现简单、安全性相对比较高,因此,目前在对加密有一定要求的计算机网络系统中较多使用对称加密算法实现对系统信息的加密。但是,事物都具有好、坏两个方面,对称加密本身也存在一定缺点:对称加密密钥更新不容易,使用固定的密钥实现数据加密系统,容易通过侦听、密码试算等方法进行攻击,经过有限的试算可以破解加密算法。
为了克服对称加密的缺陷,人们研制了非对称加密算法。非对称加密算法使用不同的密钥进行加密和解密,使用公钥进行系统信息加密而使用私钥进行对应的解密。公钥可以公开分发,需要对数据加密的用户可以很容易地获得加密密钥,使用公钥加密的信息数据发送给信息接收者,接收者使用专有的私钥进行解密,获取信息内容。非对称加密是通过复杂的数学算法实现,加密和解密的密钥的长度都比对称加密大得多,加密和解密的算法也复杂很多,需要耗费的算法时间长,耗费的资源也要大。主要应用在身份认证、数字签名等对数据安全性要求比较高的领域。非对称加密的加密速度慢,不适合应用在大数据量的加密传输中。非对称加密算法有RSA、DH、EC、DSS等。目前应用比较广泛的非对称加密算法是RSA[4]。
时变加密算法是在对称加密基础上演变而来,介于对称加密和非对称加密之间的加密算法,以其独有的优势广泛应用在无线传感网络(Wireless-Sensor-Network,WSN)数据加密中。
现在应用广泛的物联网是在无线传感器网络基础上发展而来,网络是由空间分布的可自主感知周边环境信息的无线网络系统。网络由成千上万的独立网络节点组成,每一个节点能够通过自身的传感部件监控所处环境的温度、声音、光亮度、湿度、压力等等各种环境条件,一个典型的网络的节点构造主要由传感单元、简单的运算处理单元、无线发送和接收单元、通讯天线和供电单元五部分组成[5],也可以通过配置一些专用的功能单元来实现与特定环境交互的功能,通过无线通信将采集的信息传输给区域内一个主节点(也称为网关节点),通过网关节点与信息处理设备相连,完成覆盖区域的信息采集。新一代无线网络已经发展为节点可双向通信,网络节点不仅可以向网关节点传输采集的信息,而且可以接受来自网关节点的指令完成指定动作。物联网络以其独有的优势,被广泛应用于军事情报侦察、森林防火、大地环境监测等领域。
网络感知节点的供电单元采用电池供电,由于受网络节点自身的体积、成本等因素的限制,电池的容量一般不是很大。传感网络节点分布数量巨大、造价要求低廉、监控区域广、节点所处环境复杂,有些节点分布区域甚至是人员无法到达的地方,通过充电或更换电池的方式补充节点电量是不现实的方法。因此在物联网无线通讯网络整体设计中,任何技术和协议的使用都要以节能为前提,设计有效的节能策略延长网络节点的可用时间成为这类网络的首要问题[6-7]。网络传输数据加密协议的设计同样需要遵循这一原则。
目前广泛使用的安全通讯方案是使用时变加密的方法实现网络通讯安全。时变加密每一次的加密和解密过程是一个完整对称加密和解密过程,但是,随着数据传输时间的进展,每一次加密和解密的密钥不同,每一次的数据传输附带下一次解密需要的密钥,下一次加密和解密使用新的密钥完成操作,密钥随时间而改变。这样实现的好处是:加密和解密耗费的资源和时间有限,但是对网络连续地恶意侦听,很难通过试算破解密码。密码的产生是将预先选取的一个根密码,通过反复对根密码进行单向哈希运算,产生一系列数据值,每一次加密时,按反向顺序选取一个数据值作为加密的密钥。信息接收方通过解密算法获取信息并得到下一次解密的密钥。接收端将解密获得的结果同旧的密码进行哈希校验,如果校验正确,则密钥有效,否则密钥就失效。这样就可以确保密码来自同一个源,单向的哈希算法能够保障接收器可以使用下一个密钥,但不能伪造密钥[8]。工作原理如图1所示。
图1 时变加密系统逻辑图Fig. 1 Logic diagram of the time-varying encryption system
在物联网无线通讯网络运行过程中,网络环境会有各种噪声干扰、地面和建筑物的都存在电磁反射、多普勒效应和多径等多种信号衰变效应的影响无线通讯传输的因素,节点间通讯的物理层的数据很容易受到干扰因素影响,在传输过程中发生一位或多位误码,使接收端接收到错误的信息[9]。而在军事、医疗等特殊的应用领域对信息通讯数据正确率要求很高,必须保证数据传输的可靠性。另外时变加密方法自身也有固有的缺陷,因为在通讯过程中要求密钥序列的连续性,通讯接收方只有每一次都接收到正确密钥,才能进行信息的解密和更新密钥操作。如果在传输过程中受到环境的干扰因素,物理层数据出现误码,解密的密码校验操作就会失败,存在一次密码丢失,节点将失去与网关节点的联系,这个节点就成为网络中的孤点。
无线信息通讯的可靠性可通过以下方法得到改善:一种方法是增加数据发送端的输出功率,提高通讯信号的电平,从而提高信号的抗干扰能力;这种方法需要提高信号发送端的功率,这样就增加了节点的能耗,降低了节点的有效运行时间。另一中方法是通过编码的改善,在相同的环境条件下增加编码的可靠性,允许在物理传输过程中存在误码,在后续的解码过程中可发现和纠正传输过程中产生的误码。这种方法在每一次有效通讯数据量不大的情况下,很好的减少节点每一次通讯的功耗。
海明编码(Hamming code)就是一种可通过编码发现和纠正和多位错误的编码方式[10]。可通过对加密密钥进行海明编码传输,实现对加密密钥在传输过程中产生的错误的发现和纠正。在对加密密钥进行海明编码时,假设密钥为4位二进制码K1K2K3K4,在原有的4位信息的基础上,添加4位新的校验位C1C2C3C4,4位校验码的形成如下:
C4= K4xorK3xorK2
C3= K3xorK2xorK1
C2= K2xorK1xorK4
C1= K1xorK4xorK3
当4 位校验位产生之后,就可以将校验位与密钥位混合编码产生密钥发送端的海明码:K4C4K3C2K2C2K1C1。
当海明码被接收端接收后,就可以通过解码方式解出原始密钥并检查传输中产生的错误,确认是一位错误时,对发生错误的密钥位取反,就可以纠正传输过程中产生的一位错误。纠错算法如下:
R1= K4xorK3xorK1xorC1
R2= K4xorK2xorC2xorK1
R3= K3xorC3xorK2xorK1
R4= K4xorC4xorK3xorC3xorK2xorC2xorK1xorC1
根据R1R2R3R4的值可以判别出错误的类型和出错的数据位置,并进行修正:
表1 海明码解码结果Tab.1 State of Hamming decode
由校验处理的结果可知,通过对4位海明校验编码的相应解码可以发现传输过程中产生的多位误码,但是只能纠正在传输过程中产生的一位数据错误。密钥经过海明编码后,有效数据长度增加一倍。因此,如果对每一传输数据包的密钥进行海明编码就会使传输数据量增加,但由于密钥的位数在整个传输数据的占比很小,对整个传输数据包影响有限。
通过对时变加密的方法研究可以发现,在数据传输过程中保证数据传输连续的是加密密钥,只要接收节点能够正确获取密钥,下一次数据传输就能够顺利完成。我们完全没有必要对整个数据包进行编码。我们只需要对保证数据连续传输的关键数据—时变加密密钥进行海明编码,仅仅增加密钥的长度,而有效数据长度没有增加,使编码后整个数据包的长度增加很少,改善了网络传输的可靠性。当解码发现无法纠正的多位密码错误时,可通过单独重传加密钥的方法保证密钥的正确传输,也弥补了原加密密钥丢失而产生的节点无法继续与网络通信的弊端,保证了数据通信的连续性。改进的数据安全方案如图2所示。
图2 改进的时变加密系统逻辑图Fig. 2 Logic diagram of the improved time-varying encryption system
使用改进的时变密钥方案不仅可以纠正数据通讯过程中产生的一位密码传输错误,而且可以发现多位密码传输错误,通过密码重传机制可以保证传输密码的正确接收,改变了原数据加密方式产生的密码丢失现象。在实际应用中,由于物理层二进制数据的一位编码错误和密码错误概率最高,因此实现一位编码纠正和密钥失效重传不仅可提高系统数据传输的安全可靠性,同时增加的编码和算法复杂度有限,可以在相同能耗的前提下改善大多数场景的网络整体数据通讯可靠性。
[1] 冯登国.计算机通信网络安全[M].北京:清华大学出版社,2001.
[2] William Stallings.密码编码学与网络安全原理与实践[M].成都:电子工业出版社,2001.
[3]段刚.加密与解密[M].2版.北京:电子工业出版社,2003.
[4] 曾瑶辉,徐沈新,李玉菲.基于RSA算法的非对称密钥加密及签名软件的自主实现[J].计算机应用与软件,2003(7):69-70.ZENG Yao-hui,XUShen-xin,LI Yu-fei.AnImplementation of encrypting and signing software based on RSA algorithm[J].Computer Applications and Software,2003(7):69-70.
[5] Perrig A,Szewczyk R,Wen V,et al .SPINS:securityprotocols for wireless sensor networks [M].Rome,Italy,2001.
[6] 郑增威.基于能量高效的传感器网络路由算法研究[D].杭州:浙江大学计算机科学与技术学院,2005.
[7] 王黎明,周晋,陈昌龙. GIS微水监测湿度传感器自校验平台的设计[J]. 陕西电力,2012(4):11-15.WANG Li-ming,ZHOU Jin,CHEN Chang-long.Design of adaptive equipment for humidity sensor of GIS moisture content monitoring[J]. Shaanxi Electric Power,2012(4):11-15..
[8] Karlof C,astry N, Wagner D,TinySec:a link layer securityarchitecture for wireless sensor networks[C]//in: SenSys 04,ACM,Baltimore,Maryland, 2004.
[9]周贤伟,郑如鹏,覃伯平.无线传感器网络的差错控制技术研究[J].传感器技术与微系统,2005,24(11):4-6.ZHOU Xian-wei, ZHENG Ru-peng, TAN Bo-ping.Research on error control techniques in wireless sensor network[J].Transducer and Microsystem Technologies,2005,24(11):4-6.
[10] 向宇. 一种改进的基于Arnold映射的Hash加密算法[J]. 重庆师范大学学报:自然科学版,2013(4):103-108.XIANG Yu.An improved Hash encryption algorithm based on Arnold mapping [J]. Journal of Chongqing Normal University:Natural Science , 2013(4):103-108.
[11] 汉明R W.汉明编码和信息理论[M].朱雪龙,译.北京:科学出版社,1984.