蔣建峰, 尤瀾濤
(1.南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210000; 2.蘇州大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 蘇州 215123)
分簇機(jī)制[1~3]能夠很好地解決無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)能量消耗過(guò)快的問(wèn)題[4],典型的分簇算法未能解決簇頭能量負(fù)擔(dān)重的問(wèn)題,且沒(méi)有身份認(rèn)證[5,6],如劉偉等人提出了數(shù)字水印節(jié)點(diǎn)的認(rèn)證安全技術(shù)[7],但使用典型的路由協(xié)議LEACH分簇,導(dǎo)致分簇不平衡,簇首節(jié)點(diǎn)能量消耗過(guò)快導(dǎo)致簇首過(guò)早死亡的情況。
針對(duì)以上的問(wèn)題,本文提出了基于可逆數(shù)字水印技術(shù)的層次型傳感網(wǎng)絡(luò)安全模型,初始布置的無(wú)線(xiàn)傳感網(wǎng)絡(luò),使用典型的分簇算法LEACH協(xié)議進(jìn)行分簇,成員通過(guò)可逆數(shù)字水印技術(shù)嵌入水印,簇首節(jié)點(diǎn)負(fù)責(zé)水印提取,并且負(fù)責(zé)簇內(nèi)數(shù)據(jù)的融合交由匯聚(sink)節(jié)點(diǎn),重新分簇過(guò)程中充分考慮節(jié)點(diǎn)剩余能量、位置信息以及信任因子值等因素,優(yōu)化分簇過(guò)程,力求在保障網(wǎng)絡(luò)安全的前提下極力提升網(wǎng)絡(luò)性能,延長(zhǎng)網(wǎng)絡(luò)生命周期。
本文設(shè)計(jì)的可逆數(shù)字水印算法基于像素矢量差值,其嵌入容量高并且計(jì)算效率高,簇內(nèi)成員通過(guò)密鑰和水印算法在感知數(shù)據(jù)中嵌入水印,簇首節(jié)點(diǎn)通過(guò)水印提取算法進(jìn)行數(shù)據(jù)完整性驗(yàn)證。無(wú)線(xiàn)傳感網(wǎng)節(jié)點(diǎn)感知數(shù)據(jù)流定義為D={d1,d2,…,di},其中i表示傳感節(jié)點(diǎn)工作時(shí)間周期,di表示第i個(gè)工作周期節(jié)點(diǎn)所采集到的數(shù)據(jù)集,時(shí)間集合定位為T(mén)={t1,t2,…,ti},ti表示第i個(gè)工作周期采集數(shù)據(jù)所花的時(shí)間,定義di={a1,a2,…,aj},aj表示第i個(gè)工作周期采集到數(shù)據(jù)的字段值。
水印信息生成依托于原始感知數(shù)據(jù)D,用Hash算法MD5表示密鑰信息K,可以將任意長(zhǎng)度的數(shù)據(jù)轉(zhuǎn)換成一個(gè)固定長(zhǎng)度的值。通過(guò)單向Hash算法對(duì)感知數(shù)據(jù)流中每個(gè)數(shù)據(jù)進(jìn)行Hash運(yùn)算,生成一個(gè)水印信息集H={h1,h2…,hi},其中hi=Hash(K,di,ti),K表示密鑰,只有收發(fā)的雙方知曉,由此保證Hash值的安全性,水印信息W的計(jì)算法方法如式(1)所示,水印長(zhǎng)度為i-1
W=Wi-1,Wi-2,…,W2,W1=groupXOR(hk),
k∈(1,i)
(1)
水印的嵌入基于像素矢量差值,通過(guò)式(2)計(jì)算差值如下
Zj=diaj-d1aj
(2)
將計(jì)算所得差值轉(zhuǎn)換為二進(jìn)制之后左移1位,從計(jì)算的水印W中去對(duì)應(yīng)j位置的二進(jìn)制數(shù)值嵌入在差值空出位置,這樣可以保證相鄰周期同類(lèi)型的數(shù)據(jù)差值很小,差值的位移不會(huì)導(dǎo)致數(shù)據(jù)溢出,嵌入水印后的數(shù)據(jù)記作D′,水印生成及其嵌入感知數(shù)據(jù)的算法描述如下:
輸入:感知數(shù)據(jù)D,密鑰K
1)fori=0 tondo
2)hi=Hash(K,di,ti)
3)end for
4)W=Wi-1,Wi-2,…,W2,W1=groupXOR(hk),k∈(1,i)
5)forj=0 tomdo
7)fori=0 tondo
8)Zj=diaj-d1aj∥計(jì)算差值
9)Z′j=2×Zj+W[j]∥二進(jìn)制左移,嵌入水印
11)F′j=Fj+Z′j
12)end for
13)end for
輸出:嵌入水印數(shù)據(jù)D′,數(shù)據(jù)通信
當(dāng)簇首節(jié)點(diǎn)接收數(shù)據(jù)之后,開(kāi)始水印提取與數(shù)據(jù)恢復(fù)操作,通過(guò)數(shù)據(jù)D′計(jì)算均值和差值,然后從差值的最低有效位提取水印信息W1,在嵌入水印的過(guò)程中,水印是差值左移1位之后嵌入,所以提取水印之后需要將差值右移1位還原,然后通過(guò)水印嵌入算法對(duì)恢復(fù)的原始數(shù)據(jù)重新計(jì)算生成水印信息W2,通過(guò)比較W1與W2是否一樣來(lái)判斷數(shù)據(jù)的完整性,水印提取算法描述如下:
輸入:嵌入水印數(shù)據(jù)D′,密鑰K
1)forj=0 tomdo
2)fori=0 tondo
8)diaj=d1aj+Zj
9)end for
10)end for
11)fori=0 tondo
12)hi=Hash(K,di,ti)
13)end for
14)W2=Wi-1,Wi-2…W2W1=groupXOR(hk),k∈(1,i)∥重新計(jì)算水印信息
15)if(compare(W1,W2)==Equal)∥比較水印信息
16)Dmarked authenticated∥數(shù)據(jù)完整
17)else
18)Dmarked unauthenticated∥數(shù)據(jù)破壞
輸出:原始感知數(shù)據(jù)D,數(shù)據(jù)完整
為避免傳感網(wǎng)絡(luò)路由協(xié)議LEACH在簇頭選擇過(guò)程中的隨機(jī)性,層級(jí)安全算法首輪分簇使用LEACH協(xié)議完成之后,第二輪以及后續(xù)分簇過(guò)程中引入節(jié)點(diǎn)信任因子來(lái)優(yōu)化分簇算法。
節(jié)點(diǎn)信任因子的確定通過(guò)引入貝葉斯(Bayes)評(píng)估方法[8~11],其原理是利用已知條件概率密度參數(shù)表達(dá)式和先驗(yàn)概率通過(guò)貝葉斯公式轉(zhuǎn)換為后驗(yàn)概率,然后進(jìn)行決策。
假設(shè)節(jié)點(diǎn)Ni和Nj當(dāng)前相互通信次數(shù)為x和y次,其中x表示正常通信次數(shù),y表示異常通信次數(shù),異常通信會(huì)導(dǎo)致信任因子降低,有貝葉斯評(píng)估方法可以得到Ni對(duì)Nj的統(tǒng)計(jì)信任因子Rij的概率為公式(3)
再根據(jù)密度函數(shù)式(4)所示
推得公式(5)
推理可得,節(jié)點(diǎn)Ni對(duì)Nj的統(tǒng)計(jì)信任因子Rij服從參數(shù)x和x+y的Beta分布如下
則其數(shù)學(xué)信任因子為
由此推得節(jié)點(diǎn)Ni的信任因子計(jì)算公式如式(8)所示
式中n為當(dāng)前節(jié)點(diǎn)Ni所在簇內(nèi)節(jié)點(diǎn)數(shù)量,節(jié)點(diǎn)的信任因子由簇首節(jié)點(diǎn)保存和更新。
為平衡簇首節(jié)點(diǎn)剩余能量以及簇首節(jié)點(diǎn)和簇內(nèi)成員節(jié)點(diǎn)之間的位置因素,應(yīng)該選擇剩余能量值相對(duì)較大,簇內(nèi)平均距離因子相對(duì)較小且節(jié)點(diǎn)信任因子大的節(jié)點(diǎn)作為簇首節(jié)點(diǎn)。在每個(gè)簇內(nèi)所有節(jié)點(diǎn)的位置信息標(biāo)識(shí)為L(zhǎng)={l1,l2,…,li}每個(gè)li都有x和y方向的分量,所有節(jié)點(diǎn)的能量信息標(biāo)識(shí)為E={e1,e2,…,ei},其中i為節(jié)點(diǎn)的數(shù)量,li為第i個(gè)節(jié)點(diǎn)的位置信息,ei為第i個(gè)節(jié)點(diǎn)的剩余能量,則節(jié)點(diǎn)i與簇內(nèi)節(jié)點(diǎn)j的距離計(jì)算公式如式(9)所示
式中l(wèi)xi為節(jié)點(diǎn)i在x方向的位置分量,lyi為節(jié)點(diǎn)i在y方向的位置分量,簇內(nèi)平均距離因子Δdi的計(jì)算公式如式(10)所示
由此,引入簇首權(quán)值w的計(jì)算公式如式(11)所示
式中α+β=1且α,β∈[0,1],α為能量影響因子,β為距離影響因子,Ri為節(jié)點(diǎn)信任因子,R為初始信任因子。
網(wǎng)絡(luò)布置完成,通過(guò)LEACH協(xié)議完成分簇;簇內(nèi)成員獲取感知數(shù)據(jù),啟動(dòng)可逆數(shù)字水印嵌入,把數(shù)據(jù)發(fā)送給簇首節(jié)點(diǎn);簇首節(jié)點(diǎn)接收簇內(nèi)信息,通過(guò)數(shù)字水印算法提取水印,驗(yàn)證數(shù)據(jù)完整性,最后負(fù)責(zé)數(shù)據(jù)融合與上傳數(shù)據(jù)工作;簇重組階段,簇內(nèi)所有成員節(jié)點(diǎn)在TDMA時(shí)隙發(fā)送節(jié)點(diǎn)的剩余能量信息和位置信息,簇首根據(jù)收到的信息計(jì)算節(jié)點(diǎn)信任因子,同時(shí)設(shè)定能量影響因子和距離影響因子,以此計(jì)算簇首權(quán)重,并且重新分簇。
通過(guò)網(wǎng)絡(luò)仿真平臺(tái)NS搭建傳感網(wǎng)絡(luò)場(chǎng)景,引入文獻(xiàn)[1]中的無(wú)線(xiàn)通信模型計(jì)算能量損耗。傳感網(wǎng)絡(luò)場(chǎng)景大小為100 m×100 m,Sink位置坐標(biāo)為50,175,傳感節(jié)點(diǎn)數(shù)量100個(gè),節(jié)點(diǎn)每次發(fā)送數(shù)據(jù)包大小為2 000 bit,節(jié)點(diǎn)初始能量設(shè)置為2 J,能量影響因子和距離影響因子都設(shè)置為0.5,慢衰弱每比特消耗100 pJ,快衰弱每比特消耗0.001 pJ,電路能耗為50 nJ/bit。
1)魯棒性能分析
圖1是通過(guò)固定時(shí)隙選取的通信數(shù)據(jù),包括原始感知數(shù)據(jù)、嵌入水印后的數(shù)據(jù)以及恢復(fù)后的數(shù)據(jù)值比較,從結(jié)果可以得知,通過(guò)可逆數(shù)字水印算法還原的數(shù)據(jù)與原始數(shù)據(jù)的誤差極小,幾乎沒(méi)有誤差,算法完全能夠保證數(shù)據(jù)完整性和安全性。
圖1 數(shù)據(jù)數(shù)值對(duì)比
2)安全性能測(cè)試
每次測(cè)試隨機(jī)選取10 000個(gè)傳感器節(jié)點(diǎn)感知數(shù)據(jù),以篡改率10 %的方式篡改原始數(shù)據(jù),即共有1 000個(gè)原始數(shù)據(jù)被篡改。當(dāng)嵌入水印的感知數(shù)據(jù)被傳送到簇首節(jié)點(diǎn)之后,簇首節(jié)點(diǎn)根據(jù)算法提取水印并且驗(yàn)證,若數(shù)據(jù)被篡改,簇首節(jié)點(diǎn)判定數(shù)據(jù)被惡意破壞且丟棄數(shù)據(jù)包,圖2是重復(fù)10次實(shí)驗(yàn)的仿真結(jié)果。
圖2 數(shù)據(jù)丟包率
數(shù)據(jù)的篡改率保持在10 %,在理論情況下,根據(jù)可逆數(shù)字水印算法,簇首節(jié)點(diǎn)驗(yàn)證數(shù)據(jù)后,丟棄數(shù)據(jù)包的占比應(yīng)該是10 %。而實(shí)測(cè)的網(wǎng)絡(luò)數(shù)據(jù)丟包率基本保持在10 %左右,誤差不超過(guò)0.05 %,證明算法能夠很好的達(dá)到認(rèn)證數(shù)據(jù)的效果,保證了數(shù)據(jù)的完整性和安全性。
3)節(jié)點(diǎn)能耗比較
可逆數(shù)字水印算法基于像素矢量差值,其嵌入容量高且計(jì)算效率高,算法的復(fù)雜度是O(n2),算法本身只在水印嵌入和提取時(shí)消耗很少的能量,圖3結(jié)果證明算法能保障網(wǎng)絡(luò)的安全性且沒(méi)有影響網(wǎng)絡(luò)的整體性能。
圖3 節(jié)點(diǎn)能量消耗比較
4)網(wǎng)絡(luò)生命周期比較
如圖4所示,層級(jí)安全算法執(zhí)行到300 s后才開(kāi)始有節(jié)點(diǎn)死亡,并且在網(wǎng)絡(luò)運(yùn)行900 s時(shí)還有生存的節(jié)點(diǎn),而未改進(jìn)的LEACH協(xié)議在200 s時(shí)就出現(xiàn)了節(jié)點(diǎn)死亡的現(xiàn)象,由于分簇不均衡的原因?qū)е戮W(wǎng)絡(luò)在400 s后就消亡了,證明層級(jí)安全算法能夠有效延長(zhǎng)網(wǎng)絡(luò)的生存時(shí)間。
圖4 節(jié)點(diǎn)生存時(shí)間
針對(duì)傳感網(wǎng)絡(luò)的弱安全防御能力以及不均衡能量管理能力,設(shè)計(jì)了一種基于可逆數(shù)字水印技術(shù)的安全層級(jí)模型。通過(guò)可逆數(shù)字水印的嵌入與提取來(lái)保障數(shù)據(jù)的完整性和安全性,并且充分考慮節(jié)點(diǎn)剩余能量、位置信息以及信任因子的因素下優(yōu)化分簇策略。結(jié)果表明:算法能夠很好地保障數(shù)據(jù)的完整性和安全性,數(shù)據(jù)正確率控制在99.95 %以上,通過(guò)優(yōu)化傳感網(wǎng)絡(luò)分簇策略,有效延長(zhǎng)了網(wǎng)絡(luò)生存時(shí)間。