葉木林
(湖北省鄂州市氣象局湖北鄂州436000)
無線傳感器網絡[1-3](Wireless Sensor Networks,WSN)作為物聯網的重要組成部分,是一種新的信息獲取與處理技術,被廣泛應用于智能生活、醫療改革、國防事業和環境檢測等領域[4-6]。WSN通常是由諸多遵循多跳路由協議的傳感器節點,構成的一個拓撲結構的簇狀網絡[7]。然而,節點間的信息存在冗余,若將每一個節點所采集的數據單獨發送給傳感器查詢節點,不僅會占用更多的通信帶寬,且還將消耗大量的能量,妨礙信息采集的效率和速度[8]。因此,需要使用數據聚合技術[9]壓縮各個節點所采集的信息。并去除冗余和不重要成分,聚合出更精確、有效及滿足需求的信息[10-13]。數據聚合技術不僅能減少數據通信量及網絡開銷,且還能提高數據采集效率并延長WSN的生存時間。
同時,WSN具有開放性的特點[14],容易受到各種攻擊的干擾。因此,需要在進行數據聚合的同時加入隱私保護方案,以保障數據的安全性[15]。WSN所遭受的攻擊通常包括內部攻擊和外部攻擊[16]兩種,內部攻擊即攻擊者利用一個或多個節點的合法解密來獲取私密信息,抵抗這種攻擊通常需要防止攻擊者捕獲傳感器節點;外部攻擊通常通過監聽節點間的通信鏈路來竊取信息,抵抗該種攻擊只需對信息進行加密即可。
然而,WSN通常是資源受限的,頻繁的數據加密與解密操作需要消耗大量的能量,這將大幅減少WSN的使用壽命。針對這一問題,國內外學者提出了眾多解決方案,如文獻[12]指出使用秘密同態技術實現不需要解密的數據聚合過程;文獻[13]提出了一種基于樹拓撲結構的TAG算法在WSN內進行數據聚合,以減少網絡的通信量;文獻[14]提出了一種安全保護與入侵檢測相結合的數據聚合方式;文獻[15]提出了一種基于分布式的數據聚合方法SMART和一種基于加密秘鑰分布與分簇的數據聚合方法CPDA算法,CPDA算法采用矩陣運算來隱藏原始信息以保證內部敏感信息的安全性。
CPDA算法包括簇的形成、簇內數據串通和簇頭數據聚合3個步驟組成。并由查詢服務器、簇頭和簇的成員構成一個自下而上的信息流動樹。該網絡通常使用SUM、COUNT和AVERAGE等方式進行數據聚合,本文使用SUM操作定義了如式(1)所示的數據融合函數:

假設Di為傳感器節點i所采集的數據,其融合精度為p,則根節點Dr最后得到的融合數據的精度為:

1)簇的形成:即構造簇,該算法定義了一個簇大小mc≥3的聚合樹。首先,查詢節點Q向周圍節點廣播Hello信息(圖1(a)),收到該信息的節點將有概率p成為簇頭,并向其周圍節點廣播Hello信息(圖1(b));然后,接收到多個Hello信息的傳感器節點會隨機選擇一個廣播信息的簇頭作為其自身的簇頭,并Join該簇頭(圖1(c));最后,重復上述過程建立多個簇,并形成融合樹(圖1(d))。
2)簇內數據串通:假設有如圖2(a)所示的包含一個簇頭A和兩個成員B、C大小為3的簇,各傳感器節點的私有數據為a,b和c,公共信息為x,y,z。CPDA算法采用矩陣運算來隱藏原始信息,以保證內部敏感信息的安全性。同時,各傳感器節點通過數據交換來獲取各自所需的信息,其數據交換過程如圖2所示。

圖1 簇的形成流程

圖2 節點間的數據交換過程
首先,各傳感器節點分別產生隨機數,并計算得到擾動數據V。其中,節點A的擾動數據為:

節點B生成的擾動數據為:

節點C生成的擾動數據為:

當所有節點計算得到其擾動數據后,各節點保存其自身的擾動數據并利用其他節點的共享秘鑰分別發送其他擾動數據的加密結果,如圖2(b)所示。
節點A得到的全部信息為:

節點A的融合結果為:


同理,有:

由圖2(c)可知,此時節點A得到了該簇所有節點的數據聚合結果為:

使用行列式表示式(11)所示的方程組有:

由于各傳感器節點的公共信息x,y和z各不相等且不為零。則由式(12)可知,方程的解為U=G-1F。
3)簇頭數據聚合:該步驟的目的是實現所有簇頭數據的融合,將每一個簇頭得到的數據層層向上傳遞,直到查詢節點Q。
從上述步驟可看出,CPDA算法在保證各節點所感知數據的隱私性的基礎上實現了數據聚合的準確性,但CPDA算法仍存在數據通信效率和融合精度低的問題。該算法需要將簇中每一個節點的信息加密后傳播給簇的其他成員,若簇的成員數過少將達不到預期的數據聚合精度;若成員過多則將降低通信效率。同時,在數據串通過程中,若通信時延較長將導致數據碰撞丟失,并進一步影響數據的安全性。而簇的規模越大,數據碰撞的情況也將更為頻繁,從而影響聚合結果的精度。
基于上文分析,本部分從減少通信開銷和降低數據碰撞率兩方面改進CPDA算法以提高了數據聚合的準確性與效率。具體的改進框架,如圖3所示。

圖3 改進的CPDA算法框架
從圖3可知,本文采用部分數據交換策略來減少信息發送量以降低通信量。采用隨機發送策略降低數據碰撞的幾率,以提高數據聚合的精度。如圖4所示,比較了CPDA算法與本文改進算法的數據包發送時刻。從圖中可以看出,CPDA算法在固定時刻發送數據包。而改進算法在時間間隔ts的任一隨機時刻均可發送數據包,來防止形成通信高峰,從而降低數據碰撞的幾率。

圖4 數據發送時刻對比
改進算法的具體實現如下所述:
1)簇的形成:改進算法與原CPDA算法的形成流程一致。
2)簇內數據串通:改進算法在一定的時間間隔內進行數據串通,并盡可能地接收全部擾動數據包,傳感器節點j的數據聚合結果為:

式中,||Ci為簇j中節點的數。對所有節點執行相同的數據融合過程后,簇頭節點的融合結果為:

在上述過程中,數據的具體發送時刻為:
T1:0~ts間的隨機值;
T2:ts~2*ts間的隨機值;
T3:2*ts~3*ts間的隨機值;
……
Tm:(m-1)*ts~m*ts間的隨機值。
3)簇頭數據聚合:改進算法與原CPDA算法的數據聚合流程一致,并采用TAG算法構造數據融合樹。
文中使用TinyOS的事件仿真模擬器——TOSSIM工具進行仿真測試。該工具可以讓用戶在一個能重復使用操控的環境中進行調試與檢測數據。
測試系統為一個400×400的區域隨機布置了600個傳感器節點的無線傳感器網絡,節點間的最大傳輸距離與最大傳輸速度分別為50 m和1 Mbps。具體的仿真流程,如圖5所示。

圖5 算法仿真流程
文中分別從數據通信量、隱私性和數據聚合精度3個方面比較了CPDA算法與改進算法。
如圖6所示為10次仿真測試得到的兩種算法的數據通信量大小。從圖中可看出,改進算法的數據包數量比CPDA算法的少。當網絡中含有相同數量的傳感器節點時,簇的規模越小,改進算法中的失敗節點數量就越少。
如圖7所示為,兩種算法的數據聚合精度的比較結果。從圖中可以看出,隨著時間間隔的增大,各節點發生數據碰撞的可能性將逐漸降低,數據聚合的精度則將逐漸提高。同時,還可以看出,改進算法數據發送的時刻更加隨機,能大幅減少數據碰撞發生的幾率。
如圖8所示為,不同節點鏈路間發生數據竊聽的概率比較結果。從圖中可以看出,CPDA算法被竊聽的概率更高。當概率小于0.02時,改進算法的隱私泄露概率極低,滿足隱私保護的目的。

圖6 網絡中數據通信量的比較

圖7 數據聚合精度比較比較

圖8 節點間鏈路被竊聽的概率比較
文中基于CPDA算法提出了一種改進算法,以解決原始算法的隱私保護性較低和需要大量通信量的問題。提出的算法一方面使用部分數據交換策略以減少數據串通階段不必要的數據交換,另一方面使用隨機發送策略以提高數據聚合和的精度。使用TOSSIM測試工具在數據通信量、隱私性和數據聚合精度三方面的測試結果表明,所提出的算法具有更高的通信效率、更精確的數據聚合結果。并能滿足隱私保護的要求,具有一定的實用性和有效性。