葉木林
(湖北省鄂州市氣象局湖北鄂州436000)
無線傳感器網(wǎng)絡(luò)[1-3](Wireless Sensor Networks,WSN)作為物聯(lián)網(wǎng)的重要組成部分,是一種新的信息獲取與處理技術(shù),被廣泛應(yīng)用于智能生活、醫(yī)療改革、國防事業(yè)和環(huán)境檢測等領(lǐng)域[4-6]。WSN通常是由諸多遵循多跳路由協(xié)議的傳感器節(jié)點(diǎn),構(gòu)成的一個(gè)拓?fù)浣Y(jié)構(gòu)的簇狀網(wǎng)絡(luò)[7]。然而,節(jié)點(diǎn)間的信息存在冗余,若將每一個(gè)節(jié)點(diǎn)所采集的數(shù)據(jù)單獨(dú)發(fā)送給傳感器查詢節(jié)點(diǎn),不僅會占用更多的通信帶寬,且還將消耗大量的能量,妨礙信息采集的效率和速度[8]。因此,需要使用數(shù)據(jù)聚合技術(shù)[9]壓縮各個(gè)節(jié)點(diǎn)所采集的信息。并去除冗余和不重要成分,聚合出更精確、有效及滿足需求的信息[10-13]。數(shù)據(jù)聚合技術(shù)不僅能減少數(shù)據(jù)通信量及網(wǎng)絡(luò)開銷,且還能提高數(shù)據(jù)采集效率并延長WSN的生存時(shí)間。
同時(shí),WSN具有開放性的特點(diǎn)[14],容易受到各種攻擊的干擾。因此,需要在進(jìn)行數(shù)據(jù)聚合的同時(shí)加入隱私保護(hù)方案,以保障數(shù)據(jù)的安全性[15]。WSN所遭受的攻擊通常包括內(nèi)部攻擊和外部攻擊[16]兩種,內(nèi)部攻擊即攻擊者利用一個(gè)或多個(gè)節(jié)點(diǎn)的合法解密來獲取私密信息,抵抗這種攻擊通常需要防止攻擊者捕獲傳感器節(jié)點(diǎn);外部攻擊通常通過監(jiān)聽節(jié)點(diǎn)間的通信鏈路來竊取信息,抵抗該種攻擊只需對信息進(jìn)行加密即可。
然而,WSN通常是資源受限的,頻繁的數(shù)據(jù)加密與解密操作需要消耗大量的能量,這將大幅減少WSN的使用壽命。針對這一問題,國內(nèi)外學(xué)者提出了眾多解決方案,如文獻(xiàn)[12]指出使用秘密同態(tài)技術(shù)實(shí)現(xiàn)不需要解密的數(shù)據(jù)聚合過程;文獻(xiàn)[13]提出了一種基于樹拓?fù)浣Y(jié)構(gòu)的TAG算法在WSN內(nèi)進(jìn)行數(shù)據(jù)聚合,以減少網(wǎng)絡(luò)的通信量;文獻(xiàn)[14]提出了一種安全保護(hù)與入侵檢測相結(jié)合的數(shù)據(jù)聚合方式;文獻(xiàn)[15]提出了一種基于分布式的數(shù)據(jù)聚合方法SMART和一種基于加密秘鑰分布與分簇的數(shù)據(jù)聚合方法CPDA算法,CPDA算法采用矩陣運(yùn)算來隱藏原始信息以保證內(nèi)部敏感信息的安全性。
CPDA算法包括簇的形成、簇內(nèi)數(shù)據(jù)串通和簇頭數(shù)據(jù)聚合3個(gè)步驟組成。并由查詢服務(wù)器、簇頭和簇的成員構(gòu)成一個(gè)自下而上的信息流動樹。該網(wǎng)絡(luò)通常使用SUM、COUNT和AVERAGE等方式進(jìn)行數(shù)據(jù)聚合,本文使用SUM操作定義了如式(1)所示的數(shù)據(jù)融合函數(shù):
假設(shè)Di為傳感器節(jié)點(diǎn)i所采集的數(shù)據(jù),其融合精度為p,則根節(jié)點(diǎn)Dr最后得到的融合數(shù)據(jù)的精度為:
1)簇的形成:即構(gòu)造簇,該算法定義了一個(gè)簇大小mc≥3的聚合樹。首先,查詢節(jié)點(diǎn)Q向周圍節(jié)點(diǎn)廣播Hello信息(圖1(a)),收到該信息的節(jié)點(diǎn)將有概率p成為簇頭,并向其周圍節(jié)點(diǎn)廣播Hello信息(圖1(b));然后,接收到多個(gè)Hello信息的傳感器節(jié)點(diǎn)會隨機(jī)選擇一個(gè)廣播信息的簇頭作為其自身的簇頭,并Join該簇頭(圖1(c));最后,重復(fù)上述過程建立多個(gè)簇,并形成融合樹(圖1(d))。
2)簇內(nèi)數(shù)據(jù)串通:假設(shè)有如圖2(a)所示的包含一個(gè)簇頭A和兩個(gè)成員B、C大小為3的簇,各傳感器節(jié)點(diǎn)的私有數(shù)據(jù)為a,b和c,公共信息為x,y,z。CPDA算法采用矩陣運(yùn)算來隱藏原始信息,以保證內(nèi)部敏感信息的安全性。同時(shí),各傳感器節(jié)點(diǎn)通過數(shù)據(jù)交換來獲取各自所需的信息,其數(shù)據(jù)交換過程如圖2所示。
圖1 簇的形成流程
圖2 節(jié)點(diǎn)間的數(shù)據(jù)交換過程
首先,各傳感器節(jié)點(diǎn)分別產(chǎn)生隨機(jī)數(shù),并計(jì)算得到擾動數(shù)據(jù)V。其中,節(jié)點(diǎn)A的擾動數(shù)據(jù)為:
節(jié)點(diǎn)B生成的擾動數(shù)據(jù)為:
節(jié)點(diǎn)C生成的擾動數(shù)據(jù)為:
當(dāng)所有節(jié)點(diǎn)計(jì)算得到其擾動數(shù)據(jù)后,各節(jié)點(diǎn)保存其自身的擾動數(shù)據(jù)并利用其他節(jié)點(diǎn)的共享秘鑰分別發(fā)送其他擾動數(shù)據(jù)的加密結(jié)果,如圖2(b)所示。
節(jié)點(diǎn)A得到的全部信息為:
節(jié)點(diǎn)A的融合結(jié)果為:
同理,有:
由圖2(c)可知,此時(shí)節(jié)點(diǎn)A得到了該簇所有節(jié)點(diǎn)的數(shù)據(jù)聚合結(jié)果為:
使用行列式表示式(11)所示的方程組有:
由于各傳感器節(jié)點(diǎn)的公共信息x,y和z各不相等且不為零。則由式(12)可知,方程的解為U=G-1F。
3)簇頭數(shù)據(jù)聚合:該步驟的目的是實(shí)現(xiàn)所有簇頭數(shù)據(jù)的融合,將每一個(gè)簇頭得到的數(shù)據(jù)層層向上傳遞,直到查詢節(jié)點(diǎn)Q。
從上述步驟可看出,CPDA算法在保證各節(jié)點(diǎn)所感知數(shù)據(jù)的隱私性的基礎(chǔ)上實(shí)現(xiàn)了數(shù)據(jù)聚合的準(zhǔn)確性,但CPDA算法仍存在數(shù)據(jù)通信效率和融合精度低的問題。該算法需要將簇中每一個(gè)節(jié)點(diǎn)的信息加密后傳播給簇的其他成員,若簇的成員數(shù)過少將達(dá)不到預(yù)期的數(shù)據(jù)聚合精度;若成員過多則將降低通信效率。同時(shí),在數(shù)據(jù)串通過程中,若通信時(shí)延較長將導(dǎo)致數(shù)據(jù)碰撞丟失,并進(jìn)一步影響數(shù)據(jù)的安全性。而簇的規(guī)模越大,數(shù)據(jù)碰撞的情況也將更為頻繁,從而影響聚合結(jié)果的精度。
基于上文分析,本部分從減少通信開銷和降低數(shù)據(jù)碰撞率兩方面改進(jìn)CPDA算法以提高了數(shù)據(jù)聚合的準(zhǔn)確性與效率。具體的改進(jìn)框架,如圖3所示。
圖3 改進(jìn)的CPDA算法框架
從圖3可知,本文采用部分?jǐn)?shù)據(jù)交換策略來減少信息發(fā)送量以降低通信量。采用隨機(jī)發(fā)送策略降低數(shù)據(jù)碰撞的幾率,以提高數(shù)據(jù)聚合的精度。如圖4所示,比較了CPDA算法與本文改進(jìn)算法的數(shù)據(jù)包發(fā)送時(shí)刻。從圖中可以看出,CPDA算法在固定時(shí)刻發(fā)送數(shù)據(jù)包。而改進(jìn)算法在時(shí)間間隔ts的任一隨機(jī)時(shí)刻均可發(fā)送數(shù)據(jù)包,來防止形成通信高峰,從而降低數(shù)據(jù)碰撞的幾率。
圖4 數(shù)據(jù)發(fā)送時(shí)刻對比
改進(jìn)算法的具體實(shí)現(xiàn)如下所述:
1)簇的形成:改進(jìn)算法與原CPDA算法的形成流程一致。
2)簇內(nèi)數(shù)據(jù)串通:改進(jìn)算法在一定的時(shí)間間隔內(nèi)進(jìn)行數(shù)據(jù)串通,并盡可能地接收全部擾動數(shù)據(jù)包,傳感器節(jié)點(diǎn)j的數(shù)據(jù)聚合結(jié)果為:
式中,||Ci為簇j中節(jié)點(diǎn)的數(shù)。對所有節(jié)點(diǎn)執(zhí)行相同的數(shù)據(jù)融合過程后,簇頭節(jié)點(diǎn)的融合結(jié)果為:
在上述過程中,數(shù)據(jù)的具體發(fā)送時(shí)刻為:
T1:0~ts間的隨機(jī)值;
T2:ts~2*ts間的隨機(jī)值;
T3:2*ts~3*ts間的隨機(jī)值;
……
Tm:(m-1)*ts~m*ts間的隨機(jī)值。
3)簇頭數(shù)據(jù)聚合:改進(jìn)算法與原CPDA算法的數(shù)據(jù)聚合流程一致,并采用TAG算法構(gòu)造數(shù)據(jù)融合樹。
文中使用TinyOS的事件仿真模擬器——TOSSIM工具進(jìn)行仿真測試。該工具可以讓用戶在一個(gè)能重復(fù)使用操控的環(huán)境中進(jìn)行調(diào)試與檢測數(shù)據(jù)。
測試系統(tǒng)為一個(gè)400×400的區(qū)域隨機(jī)布置了600個(gè)傳感器節(jié)點(diǎn)的無線傳感器網(wǎng)絡(luò),節(jié)點(diǎn)間的最大傳輸距離與最大傳輸速度分別為50 m和1 Mbps。具體的仿真流程,如圖5所示。
圖5 算法仿真流程
文中分別從數(shù)據(jù)通信量、隱私性和數(shù)據(jù)聚合精度3個(gè)方面比較了CPDA算法與改進(jìn)算法。
如圖6所示為10次仿真測試得到的兩種算法的數(shù)據(jù)通信量大小。從圖中可看出,改進(jìn)算法的數(shù)據(jù)包數(shù)量比CPDA算法的少。當(dāng)網(wǎng)絡(luò)中含有相同數(shù)量的傳感器節(jié)點(diǎn)時(shí),簇的規(guī)模越小,改進(jìn)算法中的失敗節(jié)點(diǎn)數(shù)量就越少。
如圖7所示為,兩種算法的數(shù)據(jù)聚合精度的比較結(jié)果。從圖中可以看出,隨著時(shí)間間隔的增大,各節(jié)點(diǎn)發(fā)生數(shù)據(jù)碰撞的可能性將逐漸降低,數(shù)據(jù)聚合的精度則將逐漸提高。同時(shí),還可以看出,改進(jìn)算法數(shù)據(jù)發(fā)送的時(shí)刻更加隨機(jī),能大幅減少數(shù)據(jù)碰撞發(fā)生的幾率。
如圖8所示為,不同節(jié)點(diǎn)鏈路間發(fā)生數(shù)據(jù)竊聽的概率比較結(jié)果。從圖中可以看出,CPDA算法被竊聽的概率更高。當(dāng)概率小于0.02時(shí),改進(jìn)算法的隱私泄露概率極低,滿足隱私保護(hù)的目的。
圖6 網(wǎng)絡(luò)中數(shù)據(jù)通信量的比較
圖7 數(shù)據(jù)聚合精度比較比較
圖8 節(jié)點(diǎn)間鏈路被竊聽的概率比較
文中基于CPDA算法提出了一種改進(jìn)算法,以解決原始算法的隱私保護(hù)性較低和需要大量通信量的問題。提出的算法一方面使用部分?jǐn)?shù)據(jù)交換策略以減少數(shù)據(jù)串通階段不必要的數(shù)據(jù)交換,另一方面使用隨機(jī)發(fā)送策略以提高數(shù)據(jù)聚合和的精度。使用TOSSIM測試工具在數(shù)據(jù)通信量、隱私性和數(shù)據(jù)聚合精度三方面的測試結(jié)果表明,所提出的算法具有更高的通信效率、更精確的數(shù)據(jù)聚合結(jié)果。并能滿足隱私保護(hù)的要求,具有一定的實(shí)用性和有效性。