白恩健,朱俊杰
(1.東華大學(xué)信息科學(xué)與技術(shù)學(xué)院,上海201620;2.數(shù)字化紡織服裝技術(shù)教育部工程研究中心,上海201620)
無線傳感器網(wǎng)絡(luò)(WSN)的相關(guān)研究中,對于節(jié)能算法的研究占據(jù)重要的地位。WSN鏈路層加密算法,作為節(jié)點調(diào)用最為頻繁的一種功能,其節(jié)能性能對系統(tǒng)能耗的影響相當(dāng)可觀。在早前的一些研究中,討論了對稱密碼與公鑰密碼的能耗差異,結(jié)果顯然是對稱密碼算法更具節(jié)能優(yōu)勢。因此,在一些現(xiàn)行的WSN安全協(xié)議中,都采用對稱加密算法作為鏈路層加密算法。如 TinySec[1]采用的 RC5 與 SkipJack、ContikiSec[2]采 用 的 AES 以 及 WSNSec[3]采 用 的SEA,這些都是對WSN的移植算法,針對性不強(qiáng)。TinyIBE[4]采用BF-IBE方案的基于身份的WSN公鑰加密系統(tǒng),利用橢圓曲線公鑰加密算法極大地提高了WSN數(shù)據(jù)傳輸?shù)陌踩?,且在密鑰管理方面也更為簡單,但犧牲了計算效率以及額外增加大量能耗,不能滿足絕大部分WSN的應(yīng)用要求。文獻(xiàn)[5]提出的基于RC4序列密碼和Group Key Update的WSN鏈路加密協(xié)議,由于WSN數(shù)據(jù)報文的數(shù)據(jù)部分,一般都是有著固定規(guī)律以及較高的重復(fù)率,且其長度有限,使序列密碼的加密方法在WSN的應(yīng)用中的安全性不能得到保證,尤其是文獻(xiàn)[6]中給出了針對這類序列密碼的分析手段。本文提出一種新型的WSN鏈路加密算法,該方案是依據(jù)TinySec數(shù)據(jù)包格式進(jìn)行設(shè)計和優(yōu)化的,采用序列密碼(stream cipher)和混沌映射的密鑰生成方案,并結(jié)合分組密碼(block cipher)的密碼分組鏈接模式(CBC),擁有近似序列密碼的計算效率和低功耗優(yōu)勢,并且克服了序列密碼在WSN應(yīng)用中的安全弱點。
TinyOS是一個基于組件(component-based)的開源操作系統(tǒng),由UC Berkeley(加州大學(xué)伯克利分校)開發(fā),專為存儲器受限制的WSN設(shè)計。TinySec則同樣是UC Berkeley為WSN開發(fā)設(shè)計的一款可運(yùn)行于TinyOS的WSN鏈路加密協(xié)議。
該協(xié)議采用的是對稱分組密碼,加密算法可以是RC5或是SkipJack算法。其加密算法的工作模式為CBC模式,是一種擁有反饋機(jī)制的工作模式。每組密文不僅依賴于其明文,也依賴于上一密文分組(第1組密文依賴于初始向量IV)。
CBC模式的數(shù)學(xué)語言表示如下:
CBC模式能增加攻擊者篡改消息的難度,以盡可能簡單的運(yùn)算,達(dá)到一定的安全性能,而且并不會增加太多額外的能量損耗。正是基于這一優(yōu)點,其他的一些WSN鏈路層加密協(xié)議,如WSNSec和ContikiSec也使用CBC工作模式。
TinyOS的鏈路層協(xié)議有3種數(shù)據(jù)包結(jié)構(gòu):Tiny-OS packet format、TinySec-Auth packet format和 TinySec-AE packet format。其中 TinyOS packet format是TinyOS默認(rèn)的數(shù)據(jù)包結(jié)構(gòu),沒有加密和MAC(消息認(rèn)證碼),只有CRC檢驗數(shù)據(jù)的完整性;TinySec-Auth是只帶MAC認(rèn)證的數(shù)據(jù)包結(jié)構(gòu),Data是未加密的明文;TinySec-AE則是既有MAC認(rèn)證,同時Data也被加密保護(hù)的數(shù)據(jù)包結(jié)構(gòu)。3種數(shù)據(jù)包結(jié)構(gòu)如圖1所示。
圖1 TinyOS的3種數(shù)據(jù)包結(jié)構(gòu)Fig.1 The TinySec packet formats
TinySec采用的RC5和SkipJack加密算法、CBCMAC以及CBC密碼工作模式都沒有明顯的漏洞,且對資源的占用也控制的較好,似乎就是專為WSN量身定做的最合適的鏈路層加密協(xié)議。事實上,TinySec同樣具有一些缺點,例如無密鑰更新機(jī)制,需要人工進(jìn)行密鑰的更新。當(dāng)然,這可以通過密鑰管理協(xié)議進(jìn)行完善,但對于WSN這種短報文且明文重復(fù)率較高的數(shù)據(jù)特點,需要經(jīng)常更換密鑰以保障數(shù)據(jù)的安全性,這便對系統(tǒng)的整體能耗增加了額外的負(fù)擔(dān)。而本文提出的TinySBSec鏈路加密算法,則擁有一種子密鑰的自動更新機(jī)制,來解決這一問題。
TinySBSec采用序列密碼與分組密碼相結(jié)合的方式,從而簡化節(jié)點進(jìn)行加密/解密時的計算復(fù)雜度和計算量。從形式上講,TinySBSec依然是一種分組密碼算法,采用的是CBC工作模式,所以,TinySBSec的數(shù)據(jù)包結(jié)構(gòu),依然沿用TinySec-AE packet format如圖1(c)所示,這樣的設(shè)計盡可能的減小了對原TinyOS的其他協(xié)議算法的影響,具有更高的通用性。
雖然使用序列密碼的加密方式能夠極大的減少節(jié)點加密/解密的計算量,但卻會導(dǎo)致嚴(yán)重的安全缺陷。為了解決序列密碼在WSN鏈路層加密應(yīng)用中的致命缺陷,本協(xié)議采用分組密碼的形式,結(jié)合序列密碼在產(chǎn)生子密鑰和加密方面的優(yōu)勢,針對一些可能的安全漏洞進(jìn)行了優(yōu)化和設(shè)計。協(xié)議的加密/解密流程圖如圖2所示。
圖2 TinySBSec加密/解密流程Fig.2 TinySBSec encryption/decryption process
從圖2中可以得知,TinySBSec的加密和解密流程,相較標(biāo)準(zhǔn)的分組密碼體制,增加了“交織/解交織”部分。需要說明的是,算法中引入交織并非是為了提供安全性上的增益,而是為了解決新算法在WSN應(yīng)用中可能遇到的安全缺陷??紤]到WSN的消息內(nèi)容有很強(qiáng)的“規(guī)范性”及“重復(fù)性”,若僅采用異或加密與分組密碼的結(jié)合加密算法,將很容易遭到暴力破解。引入交織,結(jié)合CBC模式的特性,可以較有效的規(guī)避這一問題。
而且,每個分組進(jìn)行加密時,所使用的密鑰也是不同于標(biāo)準(zhǔn)分組密碼那樣的單一密鑰,并且在不同的2個報文加密時,子密鑰也會相應(yīng)進(jìn)行更新(非密鑰管理方案形式的密鑰更新)。
在進(jìn)行TinySBSec協(xié)議的設(shè)計過程中,WSN的報文一般具有很強(qiáng)的“規(guī)范性”和“重復(fù)性”,而且種子密鑰的長度一般不會很長。若單純采用異或加密,會增加被暴力破解的風(fēng)險。所以,TinySBSec采用明文交織和“偽一組一密”這2種技術(shù),與分組密碼CBC模式相結(jié)合,保證密碼系統(tǒng)的安全性。
在加密前,明文先進(jìn)行交織處理。交織這一概念源于通信原理,為了確保數(shù)據(jù)流在信道中某一塊的丟失不會導(dǎo)致整個信息的無法還原,采用交織方法將原數(shù)據(jù)的塊分散到傳輸信號的各個部分,在接收端再通過解交織以及糾錯碼進(jìn)行信號還原。在這里,利用交織可以將數(shù)據(jù)位分散分布的特點,使得分析者在分析時,除非能猜測出完整的明文(或至少是明文的大部分位),否則,無法通過簡單的異或破解出加密密鑰。而且,即使破譯出了加密密鑰,由于TinySBSec的子密鑰自更新機(jī)制,破譯者依然無法獲得種子密鑰T。
此外,TinySBSec的子密鑰還具有自動更新機(jī)制,這進(jìn)一步提高了密碼的安全性,因為“一次一密加密系統(tǒng)”是最安全的一種加密方式,雖然本算法并非嚴(yán)格意義上的“一次一密”,但卻能提供相當(dāng)?shù)墓δ?,且不需要為此?fù)擔(dān)額外的密鑰更新能耗,而這正適合WSN的鏈路層加密。以往的WSN鏈路加密協(xié)議不采用一次一密,是因為頻繁的密鑰更新,會給系統(tǒng)的計算和功耗帶來極大的影響,不適合WSN這種輕量級的網(wǎng)絡(luò)應(yīng)用。而TinySBSec的子密鑰自動更新,不需要通過WSN的密鑰管理協(xié)議實現(xiàn),恰好彌補(bǔ)了一次一密體制在WSN應(yīng)用中的先天缺點。
TinySBSec采用CBC分組加密模式,加密/解密部分采用的是序列密碼加密,因此加密及解密計算用異或表示,每組明文加密都采用獨立的密鑰Ki。加密及解密計算的數(shù)學(xué)表達(dá)式可以表述為
其中,C0=IV,i=1,2,…,29。TinySBSec采用 8 bit(即1byte)的分組長度,每個分組加密時都有對應(yīng)的獨立密鑰,報文格式與TinyOS一樣,默認(rèn)支持最多為29 byte長的數(shù)據(jù)。
TinySBSec是一種序列密碼加密,分組密碼鏈接形式的加密協(xié)議,其子密鑰生成算法采用RC4框架的改進(jìn)型序列密碼算法。RC4算法原型具有易實現(xiàn)、速度快(大約是DES的10倍左右)、安全性好等優(yōu)點,適合移植到WSN的應(yīng)用中。通過結(jié)合在本文1.2節(jié)中提出的“偽一組一密”的CBC分組加密模式,作為序列密碼的RC4也能在WSN中進(jìn)行工作,并保證一定的安全性。而為了進(jìn)一步保證TinySBSec的安全性能,本文對RC4算法進(jìn)行進(jìn)一步的修改,提高其序列輸出的隨機(jī)性,并且防止一些針對RC4算法特征的破解。
這種改進(jìn)型的密鑰序列生成算法采用128 byte長的種子密鑰T,在RC4原型的偽隨機(jī)子密碼生成算法(PRGA)中,加入了Logistic混沌映射算法,以此增強(qiáng)子密鑰序列的隨機(jī)性。Logistic混沌映射模型如下:
改進(jìn)算法中的Logistic初始值X0采用的是7位的無符號二進(jìn)制數(shù),其精度為1/128,即可精確到小數(shù)點后2位。在對算法進(jìn)行改進(jìn)的過程中,發(fā)現(xiàn)Logistic混沌映射在初始值X0變化很小時,其初始幾輪迭代值差異很小,如圖3所示。
圖3 Logistic迭代情況Fig.3 Iteration of Logistic
從圖3可見,在小數(shù)點后2位精度的情況下,初始值X0的微小變化導(dǎo)致的前4輪迭代值相差很小。所以,在算法中使用Logistic時,先進(jìn)行4輪預(yù)迭代,以保證加入Logistic混沌映射的有效性。
改進(jìn)后的子密鑰序列生成算法如下:
其中,u=4即Logistic映射的控制參數(shù)μ,Len/8表示分組數(shù)量。
從算法中可以看到,PRGA中插入的Logistic映射的初始值X0,是由種子密鑰T的第IV個元素的模16值確定的(因為種子密鑰長為16 byte)。由于IV中包含計數(shù)器Ctr,所以IV的更新會帶動初始值X0的更新,達(dá)到子密鑰序列自動更新的效果。在最后產(chǎn)生子密鑰時,加入Logistic迭代值,可以在增加輸出子密鑰序列隨機(jī)性的情況下,避免破壞RC4原算法的結(jié)構(gòu),防止弱密鑰情況的發(fā)生。
新算法充分利用了TinyOS數(shù)據(jù)報文的元素,實現(xiàn)了混沌映射在密鑰生成算法中,保持加密/解密過程的同步。正如算法所描述的,PRGA中插入的Logistic映射的初始值X0,與初始向量IV(8 bit)有關(guān)。初始向量IV是消息頭(IV=Dest||AM||Len||Src||Ctr)的8bit摘要。憑此,在解密時,節(jié)點能夠有效地進(jìn)行同步解密。
該算法的安全優(yōu)勢在于,克服了序列密碼原本的周期性重復(fù)問題,且破譯者進(jìn)行破譯時,無法獲得必需的Logistic映射初始值X0,因為X0需要通過種子密鑰T獲得。從理論上講,子密鑰自更新機(jī)制對于暴力破解也有很強(qiáng)的防御能力,新的子密鑰序列生成算法具有足夠的安全性,并且比原RC4的PRGA算法更安全。
作為鏈路層加密算法,雖然WSN的應(yīng)用特性要求算法需要有精簡的計算負(fù)荷以及良好的節(jié)能效果,但算法提供的安全性能依然是必須考慮的重點。本節(jié)將從理論分析的角度,證明新算法具有足夠的安全性能。
首先,新算法采用的是基于RC4算法以及Logistic映射的改進(jìn)型密鑰生成算法。RC4是具有極高非線性特性的算法,而且該算法在保證了足夠安全性能的同時,提供了更快的計算速度(約為DES的10倍),從而具有不錯的節(jié)能效果。而Logistic映射本身也是一種離散非線性映射[7-8],且映射值的插入是作為RC4密鑰流輸出的混沌偏移,并不會改變RC4算法的非線性結(jié)構(gòu),保證了算法整體的非線性能力。
其次,新算法中Logistic映射的初始狀態(tài)量X0,是通過報文的IV以及通信種子密鑰T計算而得。這使得X0本身也是保密的,確保了Logistic映射值作為RC4輸出序列混沌偏移的有效性。
再者,WSN報文信息具有很強(qiáng)的“規(guī)范性”及“重復(fù)性”,且由于節(jié)點的硬件資源限制,加密通信采用的種子密鑰長度必然受到限制。所以單純地流密碼加密方式,將使得WSN面對暴力破解時顯得更為脆弱。而新算法巧妙地結(jié)合了CBC模式以及交織技術(shù),可以有效抑制算法被暴力破解的風(fēng)險。
最后,作為新算法中的重要組成部分,改進(jìn)的密鑰序列生成算法,通過引入Logistic映射值作為RC4輸出序列的混沌偏移,解決了RC4輸出序列的周期性問題,可以提供較RC4更好的隨機(jī)序列輸出能力。
TinySBSec采用的是流密碼的加密方式,即按位異或,這種加密方式依賴于密鑰序列的性能即隨機(jī)性。所以,在對算法安全性進(jìn)行驗證時,可以通過對子密鑰序列分布的隨機(jī)性進(jìn)行測試得出結(jié)論。
測試采用統(tǒng)計學(xué)的方法:卡方擬合檢驗[9],對TinySBSec的安全性能進(jìn)行驗證。卡方擬合檢驗是在總體分布未知時,根據(jù)來自總體的樣本,對總體分布的假設(shè)進(jìn)行檢驗的一種方法??ǚ綌M合檢驗對于樣本容量的要求是N≥50,且理論頻數(shù)Ei≥5,測試中,樣本容量N=1 305?50、理論頻數(shù)Ei=5.097 7>5,符合卡方檢驗的樣本要求。
對于密鑰生成算法的隨機(jī)性測試,可分為頻數(shù)檢驗和跟隨性檢驗。
2.2.1 頻數(shù)檢驗
子密鑰序列生成算法作為一種偽隨機(jī)序列發(fā)生器,其生成密鑰序列的“0”、“1”分布平衡性是評價算法性能的一個重要標(biāo)準(zhǔn)。頻數(shù)檢驗是一種隨機(jī)性檢驗,遞差符號游程檢驗的變形。,該檢驗項目負(fù)責(zé)測試分組密鑰的“0”、“1”的平衡性。
根據(jù)卡方擬合檢驗原理,理論頻數(shù)(即期望)為Ei=Cin×F/2n,其中n=8 為分組長度,F(xiàn)=1 305 為樣本個數(shù)(即測試分組數(shù)量)。統(tǒng)計F個8bit子密鑰中漢明重量為 i(i=0,1,2,…,8)的個數(shù),記為 Fi。將Fi與理論頻數(shù)Ei進(jìn)行卡方擬合檢驗,將其計算結(jié)果與自由度為n、顯著性水平為5%的卡方閾值進(jìn)行比較,若小于閾值,則接受密鑰符合二項分布B(n,1/2)的假設(shè),即證明密鑰具有足夠的“0”、“1”分布平衡性。
筆者隨機(jī)產(chǎn)生種子密鑰T,對子密鑰序列進(jìn)行卡方擬合檢驗,結(jié)果都符合卡方閾值要求。圖4中列出了10組不同種子密鑰T情況下對比RC4算法,2種算法卡方檢驗的結(jié)果比較。
圖4 密鑰頻數(shù)檢驗Fig.4 Frequency test of Subkeys
可以看到,TinySBSec的偽隨機(jī)性完全符合擬合要求,且比RC4算法的序列擁有更好的二項分布特性。
2.2.2 跟隨性檢驗
對子密鑰序列的跟隨性檢驗同樣采用卡方擬合檢驗,對每個分組子密鑰的相鄰元素進(jìn)行模2加,得到1305組7位序列,統(tǒng)計其漢明重量為i(i=0,1,2,…,7)的分組個數(shù),記為Gi,將其與理論頻數(shù)Ei=Ci(n-1)×F/2n-1進(jìn)行擬合檢驗,計算結(jié)果與自由度為n-1、顯著性水平為5%的卡方閾值進(jìn)行比較。
圖5中顯示了不同種子密鑰T產(chǎn)生的子密鑰序列與RC4算法產(chǎn)生序列的擬合結(jié)果對比,可以看到,新算法相較于RC4算法,在偽隨機(jī)序列產(chǎn)生方面具有一定的優(yōu)勢。
圖5 密鑰跟隨性檢驗Fig.5 Follow ing test of Subkeys
通過頻數(shù)檢驗和跟隨性檢驗,可以驗證TinySBSec的子密鑰生成算法,具有足夠的安全性能,并且通過算法改進(jìn),達(dá)到了比RC4算法更好的效果。
從結(jié)構(gòu)上分析,TinySBSec采用的是分組密碼CBC鏈接模式,該模式對于密文(除第1組外)有良好的擴(kuò)散效果,并且計算速度高。而考慮到TinySBSec面對猜測報文部分字節(jié)的攻擊,在分組前,明文經(jīng)過周期為4的交織變換,將明文的單獨字節(jié)分散,結(jié)合CBC模式的擴(kuò)散效果,從而增加分析者的破譯難度。
分析者破譯密碼算法時,將算法看做一個黑盒,所以,密碼算法輸出密文的隨機(jī)性以及明/密文之間獨立性,可以作為衡量算法安全性能的標(biāo)準(zhǔn)。密文的隨機(jī)性測試與本文2.1節(jié)提到的密鑰隨機(jī)性測試相同,分為頻數(shù)檢驗和跟隨性檢驗2項。明密文的獨立性則是計算各組對應(yīng)明密文之間的距離D=W(pi⊕ci),統(tǒng)計D中漢明重量為i的分組數(shù),記為Hi,將 Hi與理論頻數(shù) Ei=Cin×F/2n進(jìn)行擬合檢驗,計算結(jié)果與自由度為n、顯著性水平為5%的卡方閾值比較,得出檢驗結(jié)果。表1中列出了對上述3個項目進(jìn)行擬合的部分結(jié)果。
表1 不同屈服強(qiáng)度下工字梁的極限承載力Table 1 Ultimate bearing capacities of I beams at different yielding strengths
通過統(tǒng)計分析,TinySBSec生成的子密鑰以及輸出的密文,具有足夠的偽隨機(jī)特性,符合卡方擬合檢驗對二項分布的檢驗要求。而且,在子密鑰生成算法中插入了Logistic迭代值作為混沌隨機(jī)偏移,解決了原RC4算法的周期性問題,增加了子密鑰序列的破譯難度。
在算法結(jié)構(gòu)上,改進(jìn)的子密鑰生成算法對于RC4的結(jié)構(gòu)未作修改,不會造成結(jié)構(gòu)上的漏洞,而且針對流密碼形式的加密方式,做出了有效的算法調(diào)整和優(yōu)化。
綜合考慮以上的分析結(jié)果,TinySBSec是一個具有足夠安全性能的加密算法,且算法輕量化,適合應(yīng)用于WSN鏈路層加密。
TinySBSec作為針對WSN硬件特性進(jìn)行設(shè)計的鏈路層加密算法,在算法結(jié)構(gòu)上十分精簡。子密鑰生成算法以及CBC模式是構(gòu)成算法的主要部分,CBC中加密函數(shù)F采用序列密碼的加密方式,從而節(jié)省了大量的計算損耗。加密時,明文在分組加密之前進(jìn)行交織,再結(jié)合CBC工作模式的擴(kuò)散特性,解決了序列密碼加密方式在WSN應(yīng)用中,可能遇到的安全弱點,比如分析者通過對WSN中出現(xiàn)頻次較高的字節(jié)位進(jìn)行破譯,由子密鑰規(guī)律來分析種子密鑰。此外,在子密鑰生成算法中增加的Logistic混沌映射,也進(jìn)一步增加了子密鑰序列的隨機(jī)性,同時解決了原RC4算法存在的輸出序列周期性的問題,可以延長種子密鑰的更新周期,從而達(dá)到節(jié)能的效果。
通過理論分析,可知密鑰生成算法具有良好的非線性特性。經(jīng)過一系列的統(tǒng)計學(xué)方法的測試,驗證了TinySBSec的子密鑰生成算法具有足夠的偽隨機(jī)特性,作為一種采用異或加密的算法,子密鑰的偽隨機(jī)性能越好,加密算法的安全性越高。而對加密算法輸出密文的隨機(jī)性以及明密文之間的獨立性的卡方擬合檢驗測試,也證明了加密算法擁有足夠的安全性能。
[1]KARLOFC,SASTRY N,WAGNER D.TinySec:a link layer security architecture for wireless sensor networks[C]//Proceedings of the Second ACM Conference on Embedded Networked Sensor Systems.Baltimore,USA,2004.
[2]CASADO L,TSIGASP.ContikiSec:a secure network layer for wireless sensor networks under the Contikioperating system[C]//The 14th Nordic Conference on Secure IT Systems.Oslo,Norway,2009.
[3]BANDIRMALI N,ERTURK I.WSNSec:a scalable data link layer security protocol for WSNs[J].Ad Hoc Networks,2012,10(1):37-45.
[4]陳鐵明,白素剛,蔡家楣.TinyIBE:面向無線傳感器網(wǎng)絡(luò)的身份公鑰加密系統(tǒng)[J].傳感技術(shù)學(xué)報,2009,22(8):1193-1197.CHEN Tieming,BAI Sugang,CAI Jiamei.TinyIBE:an identity-based encryption for wireless sensor network[J].Chinese Journal of Sensors and Actuators,2009,22(8):1193-1197.
[5]PU Chuanchin,CHUNG Wanyoung.Group key update method for improving RC4 stream cipher in wireless sensor networks[C]//ICCIT '07.[S.l.],2007.
[6]TSUNOO Yukiyasu,SAITO Teruo,KUBO Hiroyasu,et al.a distinguishing attack on a fast s of tware-implemented RC4-Like stream cipher[J].IEEE Transactions on Information Theory,2007,53(9):3250-3255.
[7]GRASSBERGER P,PROCACCIA I.Characterization of strange attractors[J].Physical Review Letters,1983,50(5):346-349.
[8]FARMER JD,SIDOROWICH J J.Predicting chaotic time series[J].Physical Review Letters,1987,59(8):845-848.
[9]亓民勇,董金新.基于卡方擬合優(yōu)度檢驗的序列等概性測試組[J].計算機(jī)工程與設(shè)計,2012,33(5):1757-1760.QIMinyong,DONG Jinxin.Test suite for sequence equal probability based on chisquare goodness of fit test[J].Computer Engineering and Design,2012,33(5):1757-1760.