聞 怡
(長安大學 信息工程學院,陜西 西安 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.