聞 怡
(長(zhǎng)安大學(xué) 信息工程學(xué)院,陜西 西安 710064)
隨著網(wǎng)絡(luò)技術(shù)和傳感技術(shù)的發(fā)展,網(wǎng)絡(luò)已經(jīng)不僅僅能夠?qū)崿F(xiàn)計(jì)算機(jī)終端設(shè)備之間的數(shù)據(jù)通訊,而且能夠?qū)崿F(xiàn)計(jì)算機(jī)與其他物體之間數(shù)據(jù)通訊。物聯(lián)網(wǎng)(Internet of Things)作為一種新興的網(wǎng)絡(luò)互連技術(shù),于1999年由麻省理工學(xué)院汽車(chē)ID中心的阿斯通教授提出后,已經(jīng)在物流、安全保障、智能交通運(yùn)輸?shù)刃袠I(yè)得到了廣泛應(yīng)用。在許多應(yīng)用環(huán)境中,對(duì)數(shù)據(jù)傳輸安全都有一定要求。物聯(lián)網(wǎng)數(shù)據(jù)加密和以前的互聯(lián)網(wǎng)絡(luò)在網(wǎng)絡(luò)通訊上有許多相似的技術(shù)和方法,但是由于物聯(lián)網(wǎng)部署的環(huán)境不同,其終端節(jié)點(diǎn)受到環(huán)境的限制,在運(yùn)算能力和耗能等方面又有其自身的特點(diǎn),對(duì)節(jié)點(diǎn)和節(jié)點(diǎn)之間、節(jié)點(diǎn)到控制服務(wù)器之間的數(shù)據(jù)通訊和安全就需要采取不同的加密方法,時(shí)變加密是保障網(wǎng)絡(luò)安全的優(yōu)選方案。
通常的網(wǎng)絡(luò)數(shù)據(jù)傳輸安全是通過(guò)對(duì)需要傳輸?shù)臄?shù)據(jù),在數(shù)據(jù)發(fā)送、網(wǎng)絡(luò)傳輸?shù)綌?shù)據(jù)接收等數(shù)據(jù)經(jīng)過(guò)的各個(gè)環(huán)節(jié),對(duì)數(shù)據(jù)進(jìn)行算法處理,從而達(dá)到對(duì)數(shù)據(jù)進(jìn)行加密的目的,實(shí)現(xiàn)在公用網(wǎng)絡(luò)信息系統(tǒng)中傳輸、交換和存儲(chǔ)中隱藏原始數(shù)據(jù),達(dá)到不被破譯和竊取,保障數(shù)據(jù)的保密性、完整性、真實(shí)性、可靠性、可用性和不可抵賴(lài)性等[1],加密技術(shù)是數(shù)據(jù)傳輸安全的核心技術(shù)。使用加密算法把需要加密的數(shù)據(jù)從明文轉(zhuǎn)換為密文再通過(guò)網(wǎng)絡(luò)傳輸,密文傳輸過(guò)程中即使被通過(guò)非正常手段竊取,也很難通過(guò)破譯手段轉(zhuǎn)換為原始的數(shù)據(jù)[2]。根據(jù)網(wǎng)絡(luò)特點(diǎn)和安全級(jí)別的不同,產(chǎn)生了不同原理和方法的加密技術(shù)。
目前在計(jì)算機(jī)網(wǎng)絡(luò)通訊中使用的比較成熟的加密算法主要分為對(duì)稱(chēng)和非對(duì)稱(chēng)算法[3]。對(duì)稱(chēng)加密算法是指在數(shù)據(jù)的加密過(guò)程和解密過(guò)程采用相同的密鑰進(jìn)行技術(shù)處理。目前流行的對(duì)稱(chēng)加密算法有AES、IDEA、RC2/RC4、DES等,這種加密最大的問(wèn)題是密鑰不容易分發(fā),需要經(jīng)過(guò)人工面對(duì)面交換或在公共通訊網(wǎng)絡(luò)中采用安全的方法交換密鑰。對(duì)稱(chēng)加密算法原理簡(jiǎn)單,數(shù)據(jù)處理速度快、通過(guò)硬件邏輯實(shí)現(xiàn)簡(jiǎn)單、安全性相對(duì)比較高,因此,目前在對(duì)加密有一定要求的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中較多使用對(duì)稱(chēng)加密算法實(shí)現(xiàn)對(duì)系統(tǒng)信息的加密。但是,事物都具有好、壞兩個(gè)方面,對(duì)稱(chēng)加密本身也存在一定缺點(diǎn):對(duì)稱(chēng)加密密鑰更新不容易,使用固定的密鑰實(shí)現(xiàn)數(shù)據(jù)加密系統(tǒng),容易通過(guò)偵聽(tīng)、密碼試算等方法進(jìn)行攻擊,經(jīng)過(guò)有限的試算可以破解加密算法。
為了克服對(duì)稱(chēng)加密的缺陷,人們研制了非對(duì)稱(chēng)加密算法。非對(duì)稱(chēng)加密算法使用不同的密鑰進(jìn)行加密和解密,使用公鑰進(jìn)行系統(tǒng)信息加密而使用私鑰進(jìn)行對(duì)應(yīng)的解密。公鑰可以公開(kāi)分發(fā),需要對(duì)數(shù)據(jù)加密的用戶(hù)可以很容易地獲得加密密鑰,使用公鑰加密的信息數(shù)據(jù)發(fā)送給信息接收者,接收者使用專(zhuān)有的私鑰進(jìn)行解密,獲取信息內(nèi)容。非對(duì)稱(chēng)加密是通過(guò)復(fù)雜的數(shù)學(xué)算法實(shí)現(xiàn),加密和解密的密鑰的長(zhǎng)度都比對(duì)稱(chēng)加密大得多,加密和解密的算法也復(fù)雜很多,需要耗費(fèi)的算法時(shí)間長(zhǎng),耗費(fèi)的資源也要大。主要應(yīng)用在身份認(rèn)證、數(shù)字簽名等對(duì)數(shù)據(jù)安全性要求比較高的領(lǐng)域。非對(duì)稱(chēng)加密的加密速度慢,不適合應(yīng)用在大數(shù)據(jù)量的加密傳輸中。非對(duì)稱(chēng)加密算法有RSA、DH、EC、DSS等。目前應(yīng)用比較廣泛的非對(duì)稱(chēng)加密算法是RSA[4]。
時(shí)變加密算法是在對(duì)稱(chēng)加密基礎(chǔ)上演變而來(lái),介于對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密之間的加密算法,以其獨(dú)有的優(yōu)勢(shì)廣泛應(yīng)用在無(wú)線傳感網(wǎng)絡(luò)(Wireless-Sensor-Network,WSN)數(shù)據(jù)加密中。
現(xiàn)在應(yīng)用廣泛的物聯(lián)網(wǎng)是在無(wú)線傳感器網(wǎng)絡(luò)基礎(chǔ)上發(fā)展而來(lái),網(wǎng)絡(luò)是由空間分布的可自主感知周邊環(huán)境信息的無(wú)線網(wǎng)絡(luò)系統(tǒng)。網(wǎng)絡(luò)由成千上萬(wàn)的獨(dú)立網(wǎng)絡(luò)節(jié)點(diǎn)組成,每一個(gè)節(jié)點(diǎn)能夠通過(guò)自身的傳感部件監(jiān)控所處環(huán)境的溫度、聲音、光亮度、濕度、壓力等等各種環(huán)境條件,一個(gè)典型的網(wǎng)絡(luò)的節(jié)點(diǎn)構(gòu)造主要由傳感單元、簡(jiǎn)單的運(yùn)算處理單元、無(wú)線發(fā)送和接收單元、通訊天線和供電單元五部分組成[5],也可以通過(guò)配置一些專(zhuān)用的功能單元來(lái)實(shí)現(xiàn)與特定環(huán)境交互的功能,通過(guò)無(wú)線通信將采集的信息傳輸給區(qū)域內(nèi)一個(gè)主節(jié)點(diǎn)(也稱(chēng)為網(wǎng)關(guān)節(jié)點(diǎn)),通過(guò)網(wǎng)關(guān)節(jié)點(diǎn)與信息處理設(shè)備相連,完成覆蓋區(qū)域的信息采集。新一代無(wú)線網(wǎng)絡(luò)已經(jīng)發(fā)展為節(jié)點(diǎn)可雙向通信,網(wǎng)絡(luò)節(jié)點(diǎn)不僅可以向網(wǎng)關(guān)節(jié)點(diǎn)傳輸采集的信息,而且可以接受來(lái)自網(wǎng)關(guān)節(jié)點(diǎn)的指令完成指定動(dòng)作。物聯(lián)網(wǎng)絡(luò)以其獨(dú)有的優(yōu)勢(shì),被廣泛應(yīng)用于軍事情報(bào)偵察、森林防火、大地環(huán)境監(jiān)測(cè)等領(lǐng)域。
網(wǎng)絡(luò)感知節(jié)點(diǎn)的供電單元采用電池供電,由于受網(wǎng)絡(luò)節(jié)點(diǎn)自身的體積、成本等因素的限制,電池的容量一般不是很大。傳感網(wǎng)絡(luò)節(jié)點(diǎn)分布數(shù)量巨大、造價(jià)要求低廉、監(jiān)控區(qū)域廣、節(jié)點(diǎn)所處環(huán)境復(fù)雜,有些節(jié)點(diǎn)分布區(qū)域甚至是人員無(wú)法到達(dá)的地方,通過(guò)充電或更換電池的方式補(bǔ)充節(jié)點(diǎn)電量是不現(xiàn)實(shí)的方法。因此在物聯(lián)網(wǎng)無(wú)線通訊網(wǎng)絡(luò)整體設(shè)計(jì)中,任何技術(shù)和協(xié)議的使用都要以節(jié)能為前提,設(shè)計(jì)有效的節(jié)能策略延長(zhǎng)網(wǎng)絡(luò)節(jié)點(diǎn)的可用時(shí)間成為這類(lèi)網(wǎng)絡(luò)的首要問(wèn)題[6-7]。網(wǎng)絡(luò)傳輸數(shù)據(jù)加密協(xié)議的設(shè)計(jì)同樣需要遵循這一原則。
目前廣泛使用的安全通訊方案是使用時(shí)變加密的方法實(shí)現(xiàn)網(wǎng)絡(luò)通訊安全。時(shí)變加密每一次的加密和解密過(guò)程是一個(gè)完整對(duì)稱(chēng)加密和解密過(guò)程,但是,隨著數(shù)據(jù)傳輸時(shí)間的進(jìn)展,每一次加密和解密的密鑰不同,每一次的數(shù)據(jù)傳輸附帶下一次解密需要的密鑰,下一次加密和解密使用新的密鑰完成操作,密鑰隨時(shí)間而改變。這樣實(shí)現(xiàn)的好處是:加密和解密耗費(fèi)的資源和時(shí)間有限,但是對(duì)網(wǎng)絡(luò)連續(xù)地惡意偵聽(tīng),很難通過(guò)試算破解密碼。密碼的產(chǎn)生是將預(yù)先選取的一個(gè)根密碼,通過(guò)反復(fù)對(duì)根密碼進(jìn)行單向哈希運(yùn)算,產(chǎn)生一系列數(shù)據(jù)值,每一次加密時(shí),按反向順序選取一個(gè)數(shù)據(jù)值作為加密的密鑰。信息接收方通過(guò)解密算法獲取信息并得到下一次解密的密鑰。接收端將解密獲得的結(jié)果同舊的密碼進(jìn)行哈希校驗(yàn),如果校驗(yàn)正確,則密鑰有效,否則密鑰就失效。這樣就可以確保密碼來(lái)自同一個(gè)源,單向的哈希算法能夠保障接收器可以使用下一個(gè)密鑰,但不能偽造密鑰[8]。工作原理如圖1所示。
圖1 時(shí)變加密系統(tǒng)邏輯圖Fig. 1 Logic diagram of the time-varying encryption system
在物聯(lián)網(wǎng)無(wú)線通訊網(wǎng)絡(luò)運(yùn)行過(guò)程中,網(wǎng)絡(luò)環(huán)境會(huì)有各種噪聲干擾、地面和建筑物的都存在電磁反射、多普勒效應(yīng)和多徑等多種信號(hào)衰變效應(yīng)的影響無(wú)線通訊傳輸?shù)囊蛩?,?jié)點(diǎn)間通訊的物理層的數(shù)據(jù)很容易受到干擾因素影響,在傳輸過(guò)程中發(fā)生一位或多位誤碼,使接收端接收到錯(cuò)誤的信息[9]。而在軍事、醫(yī)療等特殊的應(yīng)用領(lǐng)域?qū)π畔⑼ㄓ崝?shù)據(jù)正確率要求很高,必須保證數(shù)據(jù)傳輸?shù)目煽啃?。另外時(shí)變加密方法自身也有固有的缺陷,因?yàn)樵谕ㄓ嵾^(guò)程中要求密鑰序列的連續(xù)性,通訊接收方只有每一次都接收到正確密鑰,才能進(jìn)行信息的解密和更新密鑰操作。如果在傳輸過(guò)程中受到環(huán)境的干擾因素,物理層數(shù)據(jù)出現(xiàn)誤碼,解密的密碼校驗(yàn)操作就會(huì)失敗,存在一次密碼丟失,節(jié)點(diǎn)將失去與網(wǎng)關(guān)節(jié)點(diǎn)的聯(lián)系,這個(gè)節(jié)點(diǎn)就成為網(wǎng)絡(luò)中的孤點(diǎn)。
無(wú)線信息通訊的可靠性可通過(guò)以下方法得到改善:一種方法是增加數(shù)據(jù)發(fā)送端的輸出功率,提高通訊信號(hào)的電平,從而提高信號(hào)的抗干擾能力;這種方法需要提高信號(hào)發(fā)送端的功率,這樣就增加了節(jié)點(diǎn)的能耗,降低了節(jié)點(diǎn)的有效運(yùn)行時(shí)間。另一中方法是通過(guò)編碼的改善,在相同的環(huán)境條件下增加編碼的可靠性,允許在物理傳輸過(guò)程中存在誤碼,在后續(xù)的解碼過(guò)程中可發(fā)現(xiàn)和糾正傳輸過(guò)程中產(chǎn)生的誤碼。這種方法在每一次有效通訊數(shù)據(jù)量不大的情況下,很好的減少節(jié)點(diǎn)每一次通訊的功耗。
海明編碼(Hamming code)就是一種可通過(guò)編碼發(fā)現(xiàn)和糾正和多位錯(cuò)誤的編碼方式[10]??赏ㄟ^(guò)對(duì)加密密鑰進(jìn)行海明編碼傳輸,實(shí)現(xiàn)對(duì)加密密鑰在傳輸過(guò)程中產(chǎn)生的錯(cuò)誤的發(fā)現(xiàn)和糾正。在對(duì)加密密鑰進(jìn)行海明編碼時(shí),假設(shè)密鑰為4位二進(jìn)制碼K1K2K3K4,在原有的4位信息的基礎(chǔ)上,添加4位新的校驗(yàn)位C1C2C3C4,4位校驗(yàn)碼的形成如下:
C4= K4xorK3xorK2
C3= K3xorK2xorK1
C2= K2xorK1xorK4
C1= K1xorK4xorK3
當(dāng)4 位校驗(yàn)位產(chǎn)生之后,就可以將校驗(yàn)位與密鑰位混合編碼產(chǎn)生密鑰發(fā)送端的海明碼:K4C4K3C2K2C2K1C1。
當(dāng)海明碼被接收端接收后,就可以通過(guò)解碼方式解出原始密鑰并檢查傳輸中產(chǎn)生的錯(cuò)誤,確認(rèn)是一位錯(cuò)誤時(shí),對(duì)發(fā)生錯(cuò)誤的密鑰位取反,就可以糾正傳輸過(guò)程中產(chǎn)生的一位錯(cuò)誤。糾錯(cuò)算法如下:
R1= K4xorK3xorK1xorC1
R2= K4xorK2xorC2xorK1
R3= K3xorC3xorK2xorK1
R4= K4xorC4xorK3xorC3xorK2xorC2xorK1xorC1
根據(jù)R1R2R3R4的值可以判別出錯(cuò)誤的類(lèi)型和出錯(cuò)的數(shù)據(jù)位置,并進(jìn)行修正:
表1 海明碼解碼結(jié)果Tab.1 State of Hamming decode
由校驗(yàn)處理的結(jié)果可知,通過(guò)對(duì)4位海明校驗(yàn)編碼的相應(yīng)解碼可以發(fā)現(xiàn)傳輸過(guò)程中產(chǎn)生的多位誤碼,但是只能糾正在傳輸過(guò)程中產(chǎn)生的一位數(shù)據(jù)錯(cuò)誤。密鑰經(jīng)過(guò)海明編碼后,有效數(shù)據(jù)長(zhǎng)度增加一倍。因此,如果對(duì)每一傳輸數(shù)據(jù)包的密鑰進(jìn)行海明編碼就會(huì)使傳輸數(shù)據(jù)量增加,但由于密鑰的位數(shù)在整個(gè)傳輸數(shù)據(jù)的占比很小,對(duì)整個(gè)傳輸數(shù)據(jù)包影響有限。
通過(guò)對(duì)時(shí)變加密的方法研究可以發(fā)現(xiàn),在數(shù)據(jù)傳輸過(guò)程中保證數(shù)據(jù)傳輸連續(xù)的是加密密鑰,只要接收節(jié)點(diǎn)能夠正確獲取密鑰,下一次數(shù)據(jù)傳輸就能夠順利完成。我們完全沒(méi)有必要對(duì)整個(gè)數(shù)據(jù)包進(jìn)行編碼。我們只需要對(duì)保證數(shù)據(jù)連續(xù)傳輸?shù)年P(guān)鍵數(shù)據(jù)—時(shí)變加密密鑰進(jìn)行海明編碼,僅僅增加密鑰的長(zhǎng)度,而有效數(shù)據(jù)長(zhǎng)度沒(méi)有增加,使編碼后整個(gè)數(shù)據(jù)包的長(zhǎng)度增加很少,改善了網(wǎng)絡(luò)傳輸?shù)目煽啃?。?dāng)解碼發(fā)現(xiàn)無(wú)法糾正的多位密碼錯(cuò)誤時(shí),可通過(guò)單獨(dú)重傳加密鑰的方法保證密鑰的正確傳輸,也彌補(bǔ)了原加密密鑰丟失而產(chǎn)生的節(jié)點(diǎn)無(wú)法繼續(xù)與網(wǎng)絡(luò)通信的弊端,保證了數(shù)據(jù)通信的連續(xù)性。改進(jìn)的數(shù)據(jù)安全方案如圖2所示。
圖2 改進(jìn)的時(shí)變加密系統(tǒng)邏輯圖Fig. 2 Logic diagram of the improved time-varying encryption system
使用改進(jìn)的時(shí)變密鑰方案不僅可以糾正數(shù)據(jù)通訊過(guò)程中產(chǎn)生的一位密碼傳輸錯(cuò)誤,而且可以發(fā)現(xiàn)多位密碼傳輸錯(cuò)誤,通過(guò)密碼重傳機(jī)制可以保證傳輸密碼的正確接收,改變了原數(shù)據(jù)加密方式產(chǎn)生的密碼丟失現(xiàn)象。在實(shí)際應(yīng)用中,由于物理層二進(jìn)制數(shù)據(jù)的一位編碼錯(cuò)誤和密碼錯(cuò)誤概率最高,因此實(shí)現(xiàn)一位編碼糾正和密鑰失效重傳不僅可提高系統(tǒng)數(shù)據(jù)傳輸?shù)陌踩煽啃?,同時(shí)增加的編碼和算法復(fù)雜度有限,可以在相同能耗的前提下改善大多數(shù)場(chǎng)景的網(wǎng)絡(luò)整體數(shù)據(jù)通訊可靠性。
[1] 馮登國(guó).計(jì)算機(jī)通信網(wǎng)絡(luò)安全[M].北京:清華大學(xué)出版社,2001.
[2] William Stallings.密碼編碼學(xué)與網(wǎng)絡(luò)安全原理與實(shí)踐[M].成都:電子工業(yè)出版社,2001.
[3]段剛.加密與解密[M].2版.北京:電子工業(yè)出版社,2003.
[4] 曾瑤輝,徐沈新,李玉菲.基于RSA算法的非對(duì)稱(chēng)密鑰加密及簽名軟件的自主實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,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] 鄭增威.基于能量高效的傳感器網(wǎng)絡(luò)路由算法研究[D].杭州:浙江大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2005.
[7] 王黎明,周晉,陳昌龍. GIS微水監(jiān)測(cè)濕度傳感器自校驗(yàn)平臺(tái)的設(shè)計(jì)[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]周賢偉,鄭如鵬,覃伯平.無(wú)線傳感器網(wǎng)絡(luò)的差錯(cuò)控制技術(shù)研究[J].傳感器技術(shù)與微系統(tǒng),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] 向宇. 一種改進(jìn)的基于Arnold映射的Hash加密算法[J]. 重慶師范大學(xué)學(xué)報(bào):自然科學(xué)版,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].朱雪龍,譯.北京:科學(xué)出版社,1984.