混沌分組加密算法在無線傳感器網(wǎng)絡(luò)中的應(yīng)用
由于無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)具有配備能源少、計(jì)算能力低、存儲(chǔ)資源有限等特點(diǎn),傳統(tǒng)的密碼算法不能直接應(yīng)用于無線傳感器網(wǎng)絡(luò)。為此我們?cè)O(shè)計(jì)了一種適用于無線傳感器網(wǎng)絡(luò)的分組加密算法,該加密算法采用擴(kuò)展整數(shù)耦合帳篷混沌映射作為密鑰生成器,分組長(zhǎng)度為8bit,加密算法結(jié)構(gòu)由4輪Feistel運(yùn)算和首尾2次位置換運(yùn)算構(gòu)成。另外還改善了已有算法的安全性能并擁有更高的計(jì)算速度,更適合在WSN節(jié)點(diǎn)上實(shí)現(xiàn)。
一、擴(kuò)展整數(shù)耦合帳篷映射密鑰序列生成器
帳篷映射定義為:
其中i為迭代步數(shù),參數(shù)α∈(0,1)。當(dāng)參數(shù)α=0.5時(shí),帳篷映射為滿映射。設(shè)計(jì)算機(jī)字長(zhǎng)為疙,則可將帳篷映射由實(shí)數(shù)運(yùn)算等價(jià)轉(zhuǎn)化為整數(shù)運(yùn)算:
式(2)中的乘2運(yùn)算可用向左移位的操作實(shí)現(xiàn)。為了改善整數(shù)帳篷映射的性能,實(shí)現(xiàn)延長(zhǎng)最小周期和避免不動(dòng)點(diǎn)的目的,對(duì)整數(shù)帳篷映射進(jìn)行擴(kuò)展,擴(kuò)展后的帳篷映射定義如下:
當(dāng)i為偶數(shù)時(shí):
當(dāng)i為奇數(shù)時(shí):
由于擴(kuò)展后的整數(shù)帳篷映射依然存在短周期現(xiàn)象,影響其安全性能,作為密鑰序列生成器,需要對(duì)擴(kuò)展整數(shù)帳篷映射進(jìn)一步優(yōu)化,打破擴(kuò)展整數(shù)帳篷映射所固有的短周期現(xiàn)象,改善整數(shù)帳篷映射的遍歷性,使系統(tǒng)的迭代序列具有良好的隨機(jī)性,采用映像格子的并行迭代和雙向耦合方式,構(gòu)造如下的擴(kuò)展耦合整數(shù)帳篷映射模型:
其中,i為迭代步效,j為格點(diǎn)標(biāo)號(hào)(若總格點(diǎn)數(shù)為5.則j=0,1,2,3,4,當(dāng)j=0時(shí),j+1=1,j-1=4),“<<<"表示循環(huán)左移。該映射系統(tǒng)繼承了耦合映射格子模型的混淆和擴(kuò)散特性,克服了擴(kuò)展整數(shù)帳篷映射對(duì)序列分布特性的影響。取格點(diǎn)個(gè)數(shù)為4個(gè),格點(diǎn)字長(zhǎng)為32bit,在隨機(jī)選取一組初始狀態(tài)變量的情況下對(duì)式(4)進(jìn)行12000次迭代,其生成結(jié)果的分布情況如圖1所示。由圖1可以看出該映射模型生成序列具有良好的均勻分布特性。
二、無線傳感器網(wǎng)絡(luò)加密算法
1、無線傳感器網(wǎng)絡(luò)加密算法構(gòu)造
為了增強(qiáng)加密數(shù)據(jù)的安全性,采用位置換和Feistel結(jié)構(gòu)進(jìn)行加密。由于WSN數(shù)據(jù)包通常數(shù)據(jù)很少,所以采用8bit加密分組以避免額外冗余字節(jié)引入,防止多余的能源消耗。加密算法結(jié)構(gòu)如圖2所示。
對(duì)輸入的8bit明文分組先進(jìn)行單字節(jié)位置變換,然后將數(shù)據(jù)分成高低各4bit分別存入Lr,Rr,(其中,r為Feistel加密的輪次),再進(jìn)行4輪Feistel結(jié)構(gòu)加密,單輪Feistel加密過程可以表示為:
其中r,Lr,T均為4 bit,最后一輪Feistel加密不進(jìn)行高低半字節(jié)換位,最后一輪Feistel加密結(jié)束后再對(duì)由Lr,Rr,組成的8bit數(shù)據(jù)進(jìn)行一次單字節(jié)位置變換。
密鑰生成采用由擴(kuò)展整數(shù)耦合帳篷映射構(gòu)成的密鑰生成器,密鑰序列長(zhǎng)度為128 bit。由4個(gè)32 bit長(zhǎng)度的格點(diǎn)值組成。將4個(gè)格點(diǎn)的初始值作為種子密鑰,為了使密鑰序列充分混淆,在加密之前先進(jìn)行4輪預(yù)迭代,之后每輪迭代生成的4個(gè)32 bit格點(diǎn)值作為子密鑰組成密鑰Kci,(其中f表示要加密的明文分組序數(shù))。即:
其中單輪Feistel加密密鑰K1(i)、K2(i)、K3(i)、K4(i)分別為從K(i)由低到高截取的8 bit值,即:
對(duì)每一個(gè)明文分組進(jìn)行加密之前,都需要由密鑰生成器進(jìn)行一輪迭代生成一個(gè)新的密鑰,用于對(duì)該明文分組進(jìn)行加密。
單字節(jié)位置換變換為:第0位與第6位交換;第1位與第3位交換,第2位與第5位交換;第4位與第7位交換,即:
加密函數(shù)“f”的結(jié)構(gòu)如圖3所示。
將輸入的Rr,4 bit數(shù)據(jù)擴(kuò)展為8 bit(其高低2 bit分別作為擴(kuò)展后高低4 bit的低2位,其他位補(bǔ)0),擴(kuò)展后的8 bit數(shù)據(jù)與該輪密鑰kr(i)異或后再進(jìn)行8 bit整數(shù)混沌運(yùn)算(fc),即:
將計(jì)算產(chǎn)生的8 bit數(shù)據(jù)的高低4 bit進(jìn)行異或生成輸出T。由于T的生成與輸入數(shù)據(jù)有關(guān),且fc運(yùn)算為非線性運(yùn)算,提高了算法的安全性。
由于Feistel為對(duì)稱結(jié)構(gòu),所以解密算法結(jié)構(gòu)與加密算法相同,但是輪密鑰kr(i)的輸入順序相反,即。加密時(shí)輸入輪密鑰順序?yàn)镵1(i)、K2(i)、K3(i)、K4(i),則解密時(shí)輸入輪密鑰順序?yàn)镵4(i)、K3(i)、K2(i)、K1(i)。
2、無線傳感器網(wǎng)絡(luò)加密算法分析
非線性擴(kuò)散特征的統(tǒng)計(jì)分析能夠反映出密碼算法的混淆和擴(kuò)散程度,通過對(duì)算法完備性、雪崩效應(yīng)和嚴(yán)格雪崩效應(yīng)準(zhǔn)則的統(tǒng)計(jì)分析,可在概率上驗(yàn)證構(gòu)造的密碼算法是否滿足非線性擴(kuò)散性的要求。其中完備性是指函數(shù)輸出的任一bit都與輸入的所有bit有關(guān);雪崩效應(yīng)是指改變輸入數(shù)據(jù)任意一bit都應(yīng)導(dǎo)致輸出的平均半數(shù)bit位發(fā)生變化;嚴(yán)格雪崩效應(yīng)是指任意改變輸入數(shù)據(jù)的一bit都將導(dǎo)致輸出數(shù)據(jù)的每一bit以1/2的概率發(fā)生改變。
設(shè)加密算法輸入字長(zhǎng)為n bit。輸出字長(zhǎng)為m bit。輸入的樣本空間為X,則完備性程度(dc)、雪崩效應(yīng)程度(da)及嚴(yán)格雪崩效應(yīng)程度(dn)的度量分別為:
其中,aij表示X中只改變輸入第i bit導(dǎo)致輸出第歹bit變化的個(gè)數(shù),bij表示X中改變輸入第ibit的輸出與原輸出之間的差分漢明重量為j的個(gè)數(shù),#{*}表示集合的勢(shì)。
若映射為隨機(jī)變換,za/2為標(biāo)準(zhǔn)正態(tài)分布的a/2分位點(diǎn),可得如下結(jié)論:
(1)測(cè)試樣本量#X至少應(yīng)為nm(za/2)2;
(2)若dc=1,da≈1,d2a≈1,則說明密碼算法滿足非線性擴(kuò)散的基本要求;
(3),置信區(qū)間:
(4),置信區(qū)間:
在試驗(yàn)中,取輸入長(zhǎng)度n= 128bit,輸出長(zhǎng)度m=128 bit,在顯著水平a=0.05下,通過計(jì)算可得如下結(jié)果:
(1)za/2=1.92,取樣本容量為65 000;
(2)E{da}=0.999 723,其置信區(qū)間為(0.999 664,0.999 782);
(3)E{dm)=0.996 870,其置信區(qū)間為(0.996 811,0.996 929);
先對(duì)序列密鑰生成算法進(jìn)行分析,對(duì)4個(gè)格點(diǎn)取65 000次隨機(jī)32 bit種子密鑰進(jìn)行計(jì)算,以種子密鑰作為輸入,迭代相應(yīng)輪數(shù)后的序列作為輸出,表1給出了對(duì)密鑰生成算法的分析結(jié)果。由表1可以看出,經(jīng)過8輪迭代后密鑰生成算法的統(tǒng)計(jì)量dr,da,dm分別落入各自的置信區(qū)間,滿足非線性擴(kuò)散性的基本要求。可見,擴(kuò)展整數(shù)耦合帳篷映射生成序列與各元素出現(xiàn)幾率相等的真隨機(jī)序列基本一致。
為了分析加密過程中Feistel結(jié)構(gòu)輪數(shù)對(duì)算法安全性的影響,對(duì)種子密鑰進(jìn)行4輪密鑰序列預(yù)迭代,設(shè)定明文長(zhǎng)度為128 bit,對(duì)明文分別進(jìn)行1~4輪Feistel加密實(shí)驗(yàn),并分別計(jì)算各統(tǒng)計(jì)量,其結(jié)果如表2所示。由表2可知,對(duì)種子密鑰進(jìn)行4輪預(yù)先迭代并且對(duì)每個(gè)8 bit分組進(jìn)行4輪Feistel加密的結(jié)構(gòu)具有很好的完備性和雪崩效應(yīng),滿足嚴(yán)格雪崩效應(yīng)準(zhǔn)則,安全性能已經(jīng)滿足要求。
作為對(duì)比,提出的類似算法進(jìn)行分析,該算法采用整數(shù)化Logistic混沌迭代和線形同余計(jì)算作為密鑰生成算法,分組長(zhǎng)度為8 bit,并采用4輪Feistel加密。設(shè)定明文長(zhǎng)度為128 bit,計(jì)算文獻(xiàn)中算法的密鑰生成算法的統(tǒng)計(jì)量da,dc,dm,并在進(jìn)行4輪密鑰序列預(yù)迭代的情況下,對(duì)明文進(jìn)行1—4輪Feistel加密,計(jì)算其統(tǒng)計(jì)量da,dc,dm。結(jié)果分別見表3、表4。
從表3可知,整數(shù)Logistic混沌迭代的完備性度量以從第7輪開始滿足非線性擴(kuò)散的要求,其雪崩效應(yīng)度量比從第6輪開始進(jìn)入置信區(qū)間,但是嚴(yán)格雪崩效應(yīng)度量dda始終無法進(jìn)入其置信區(qū)間,不滿足非線性擴(kuò)散的基本要求。可見,整數(shù)Logistic混沌映射生成序列與各元素出現(xiàn)幾率相等的真隨機(jī)序列是有差別的,采用擴(kuò)展耦合整數(shù)帳篷映射作為密鑰序列生成算法提高了密鑰序列的安全性能。
整數(shù)Logistic映射在生成密鑰序列的過程中需要進(jìn)行32 bit整數(shù)的乘方運(yùn)算、大數(shù)乘法運(yùn)算和對(duì)(2的32次方 -1)的取模運(yùn)算,這會(huì)加重傳感器節(jié)點(diǎn)的計(jì)算負(fù)擔(dān),而采用擴(kuò)展整數(shù)耦合帳篷映射在生成密鑰序列的過程中只需要進(jìn)行移位和加法運(yùn)算,這無疑會(huì)加快密碼算法的運(yùn)行速度,更適于在計(jì)算能力和能源都十分有限的傳感器節(jié)點(diǎn)上實(shí)現(xiàn)。為了進(jìn)行對(duì)比,分別用2種密碼算法對(duì)相同長(zhǎng)度的明文進(jìn)行加密,表5給出了2種算法的計(jì)算速度比較,可以明顯看出筆者所設(shè)計(jì)算法在運(yùn)行速度上的優(yōu)勢(shì)。
小知識(shí)之無線傳感器網(wǎng)絡(luò)
無線傳感器網(wǎng)絡(luò)就是由部署在監(jiān)測(cè)區(qū)域內(nèi)大量的廉價(jià)微型傳感器節(jié)點(diǎn)組成,通過無線通信方式形成的一個(gè)多跳的自組織的網(wǎng)絡(luò)系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡(luò)覆蓋區(qū)域中被感知對(duì)象的信息,并發(fā)送給觀察者。傳感器、感知對(duì)象和觀察者構(gòu)成了無線傳感器網(wǎng)絡(luò)的三個(gè)要素。



