孫 璇
(北京信息科技大學 信息管理學院,北京 100192)
無線傳感器網絡(wireless sensor networks,WSNs)因其低成本、小型化和低功耗等特點,已經在多領域得到廣泛的應用,同時也得到了學術界、工業界的廣泛關注[1-3]。隨著物聯網的萌芽、成熟與推廣,其安全問題逐步成為備受關注的首要問題[4,5]。
文獻[6]中給出了無線傳感器網絡異常節點的定義,無線傳感器網絡中的異常節點是指網絡中由于部分節點出現故障,導致采集的網絡數據存在偏離的節點。已有很多學者在WSNs異常節點檢測與定位方面提出了一些方法,這些方法主要分為基于統計學的方法、聚類分析的方法、分類方法和基于最近鄰居的方法等[7,8]。隨著壓縮感知(compressed sensing,CS)理論在處理信號稀疏性方面的巨大應用潛力在各研究領域的實現[9,10],其也在WSNs領域的數據收集與分析中逐步被廣泛應用。在文獻[11]中,首先給出了監控區域的稀疏數據模型。將監控區域網格化,并實現了用一個N維向量來表達該監控區域下的稀疏數據向量;然后通過理論論證了其在定位應用中的合理性;最后通過采用經典的貪婪匹配追蹤方法實現了稀疏信號的重構。文獻[12]在分析了WSNs無線鏈路不可靠導致的分組丟失現象的基礎上,結合矩陣補全技術,提出了基于極稀疏塊觀測矩陣的壓縮感知數據收集算法。目前壓縮感知算法非常適合在WSNs場景下解決數據收集問題,而在當前WSNs中的安全問題凸顯情況下,如何識別WSNs中的安全問題、如何應對WSNs中的安全問題也是當前亟待解決的問題。
首先對存在異常節點的WSNs進行場景建模,然后在此基礎上采用LDPC校驗矩陣進行線性測量,并根據基于圖模型的置信傳播算法進行重構從而判決。根據壓縮感知的重構結果,即可以較高概率檢測與定位WSNs中的異常節點。
首先建立WSNs電量損耗異常節點識別算法的稀疏模型。將檢測區域模擬為一個方形區域,其大小范圍表示為ar×ar。在此假設基礎上,將其均勻分割成數量為N2的大小相等的子區域,并假設每個子區域中至多存在1個處于工作狀態的傳感器節點。因此,可以將該檢測網絡中前一個檢測周期的電量損耗用一個方陣來表示,記為G(N×N)。若某個子區域不存在傳感器節點,則該節點對應的方陣中的元素應標記為0。異常節點檢測與定位網絡模型如圖1所示,其中下層網絡為用方陣G(N×N)記錄的方形區域,區域中存在大量正常節點和少量異常節點;上層網絡為觀測節點,在每個檢測周期,上層網絡的某觀測節點Mi負責下層網絡數據的收集,并通過計算完成異常節點檢測與定位。

圖1 WSNs異常節點檢測與定位系統模型
文獻[13]中給出了不同協議層下,WSNs可能會遭到的一些攻擊分類。在該文獻中,按照物理層、鏈路層、網絡層、傳輸層以及應用層,將網絡攻擊進行分類描述。每種攻擊都有自己特定的方法和影響效果,因此針對這些攻擊也需要有特定的防御策略。但是總結來看,大部分的網絡攻擊都會存在使得WSNs中的某個或某些關鍵節點能源耗盡的情況出現。比如蟲洞攻擊、鄰居發現攻擊、傳輸層的ICMP泛洪攻擊、Synflood攻擊等[14]。
因此,本算法通過數據整理、線性計算、恢復和判決3個環節識別出WSNs中的電量過快消耗的節點。如圖1所示,在WSNs中,節點分為正常節點和異常節點,上層有觀測節點實現數據的收集和處理。其中星形節點表示被攻擊或其它原因導致的電量損耗過快的節點,圓形節點代表其中的正常工作節點。在方陣G(N×N)中,會存在某些電量損耗異常節點對應的位置的數值,會遠遠大于正常節點位置對應的數值。本文用電量損耗向量來表示整個區域中傳感器節點的電量損耗,即

圖2為某檢測周期中的電量損耗向量V的仿真圖示。從圖2看出,受某種WSNs網絡異常事件影響,WSNs中少數異常節點的電量損耗會明顯高于其它正常狀態傳感器節點。根據壓縮感知理論,如果信號是稀疏的,那么它可以由遠低于采樣定理要求的采樣點重建恢復。由于該向量V是稀疏的,在異常檢測算法中,不需要采集WSNs中所有傳感器節點的電量損耗,只需要按照壓縮感知的方式進行壓縮采樣,即可在觀測端實現稀疏向量的重建從而做出異常節點的判決與定位。這樣可以極大程度節省網絡資源,延長網絡壽命。

圖2 4個連續周期的電量損耗向量(歸一化)
在建立好WSNs異常節點檢測與定位系統模型之后,通過數據整理、線性計算以及重構與判決3個步驟來完成壓縮感知的過程,從而實現對WSNs異常節點的檢測與定位,異常節點檢測定位算法步驟如圖3所示。

圖3 異常節點檢測定位算法步驟
數據整理包括兩個步驟,首先是進行閾值計算。由于電量損耗向量V中正常節點也會產生一定的電量損耗,使得電量損耗向量V在時域的稀疏性不明顯,并進一步影響數據重構的成功率和精度,因此需要先通過計算正常節點與異常節點的能量損耗閾值對稀疏向量V進行進一步整理。
文獻[15]中給出了受攻擊的WSNs中的無線電收發信息能量消耗模型。在距離為d的節點之間發送l-bit消息,需消耗的能量為

Eelec是接收機接收或者發射器發射l-bit信號所消耗的能量,εfs和εmp分別是自由空間耗散能量和多路徑損耗能量。傳感器節點的能量損耗主要來自于接收或發射數據包,且能量損耗主要受距離d的影響,而且當距離d大于d0時,能量損耗會更大

則

則XN2×1表示子區域傳感器節點在檢測周期r的電量損耗狀態向量。根據具體情況對門限系數a進行合理取值,使得XN2×1中元素為1的個數非常少,即滿足
則經過整理后的節點電量損耗狀態向量為稀疏的01-向量。
在數據整理階段完成了用XN2×1表示子區域傳感器節點在檢測周期r的電量損耗狀態向量。XN2×1為01-向量,且其中值為1的元素個數非常少,具有良好稀疏特性,因此可以對向量XN2×1進行壓縮感知。
接下來是測量矩陣的選擇。目前,高斯矩陣是最常見的被選作測量矩陣的情況,原因在于高斯矩陣與變換矩陣的不相干性強。但是在實際的應用場景下,這種隨機矩陣在硬件上不太容易實現,是由于其效率低下,存儲量又較大。本算法面向WSNs中的實際應用,因此選擇LDPC碼的校驗矩陣作為測量矩陣,其元素只有0和1兩種情況,因此硬件實現簡單。測量矩陣的產生是用PEG(progressive edge growth)方式產生,其作為壓縮感知的測量矩陣的合理性分析見文獻[16]。
對XN2×1的壓縮感知過程如下式所示
Y=ΦΨXN2×1
式中:Φ是LDPC碼的稀疏校驗矩陣,也是算法中線性計算采用的測量矩陣。該線性計算過程中的矩陣相乘過程,其涉及的加法是模2加的過程。式中的矩陣Ψ是為稀疏域的基底矩陣。另外,因為電量損耗狀態向量XN2×1中1的元素遠小于向量元素個數,因此其在時域就是稀疏的,故Ψ=I。在觀測端Mi進行數據收集的線性計算,得到觀測結果Y。
重構階段依據上一階段所得觀測結果Y與測量矩陣Φ實現電量損耗狀態向量的重構。由于測量矩陣為LDPC碼的校驗矩陣,因此重構過程即為LDPC碼的譯碼過程。最經典的LDPC譯碼算法就是置信傳播算法(belief propagation,BP)。由于譯碼時主要涉及加法運算和乘法運算,所以BP算法也被稱作和積算法。BP算法需要將LDPC碼首先映射為一個Tanner圖,然后通過信息在Tanner圖上的不斷迭代過程,從而達到收斂[17]。圖4為LDPC校驗矩陣與Tanner圖的對應。

圖4 LDPC校驗矩陣與Tanner圖對應
通過在Tanner圖上的消息傳遞過程實現和積算法的迭代過程。當信息在校驗節點和變量節點之間的交互和迭代達到一個收斂狀態的時候,即可得到電量損耗狀態向量XN2×1的估計值。
根據置信傳播算法得到的節點電量損耗狀態向量的估計值,其中元素值為1對應的傳感器節點,即被判決為在本檢測周期電量損耗過高的節點。在下一檢測周期的路由算法中,應盡量避開這樣的節點。
如果在連續的N個檢測周期內,都發生某節點電量損耗過高的現象,即應被判決為異常節點,從網絡中剔除。
仿真場景如圖5所示,監控區域為方形區域,按一定規則部署傳感器節點。在某些異常事件影響下,某些傳感器節點的電量會消耗很快。如圖5所示,黑色圓圈標注的是因為遭受DDoS攻擊或因為其它情況(如負載不均衡)導致的電量快速消耗的節點。這些節點在向量XN2×1中對應的值為1,其它節點對應的值為0。

圖5 算法仿真場景假設
壓縮感知所選用的LDPC稀疏校驗矩陣的行重L根據傳感器節點的個數設定。在每個檢測周期,觀測端某觀測節點Mi按一定規則生成用于壓縮感知的測量矩陣,并對WSNs中的部分節點進行電量損耗信息收集并完成線性計算。在觀測端得到測量結果Y之后運行置信傳播算法進行重構并判決。仿真使用MATLAB R2014b運行。

從圖6可以看出,算法的檢測概率受測量矩陣影響明顯。仿真中假設節點電量損耗向量長度是1024,異常節點個數為5。第一個影響因素是行重L,在稀疏度已知且不變的情況下,行重L越大,則算法的檢測概率越高。第二個影響因素則是測量矩陣的測量數M,M越大,算法的檢測概率也越高。行重L與測量數M的設置越高,則算法越精確,但同時帶來的是算法成本的上升。

圖6 不同矩陣行重對檢測概率的影響
從圖7可以看出,在固定的測量矩陣參數設定下(測量個數M與行重L均相同),算法檢測概率主要受電量損耗狀態向量的稀疏度影響。通過置信傳播算法對電量損耗狀態向量的重構效果受原始信號的稀疏度影響較大。在滿足K?N條件時,原始信號是稀疏的。也就是在WSNs場景下,只有當能量消耗異常的節點遠小于總傳感器節點數的條件下,該算法可以有效節省網絡成本并能夠重構WSNs的電量損耗狀態向量。稀疏度K越大,就需要在構造測量矩陣時,設定較大的M值與L值,才能夠達到精確重構。

圖7 不同稀疏度對檢測概率的影響
圖8為不同測量矩陣的檢測概率對比。在該實驗過程中,將信號長度固定、信號稀疏度固定,測量數M從200到600的變化區間中,選用不同的測量矩陣從而比較其對算法檢測概率的影響。從圖8可以看出,相比選用高斯矩陣、傅里葉矩陣,本算法選用LDPC的校驗矩陣作為測量矩陣有更高的檢測概率。這是因為LDPC矩陣作為測量矩陣,其具有更高的正交性和更低的相關度的影響。

圖8 不同測量矩陣的檢測概率對比
仿真結果表明,本文提出的異常節點檢測定位算法能夠通過合理設置測量矩陣對節點電量損耗狀態向量進行線性計算,并通過置信傳播算法實現精確重構從而判決。與其它壓縮感知方案的性能對比結果表示,選擇LDPC的校驗矩陣相比傳統的壓縮感知方案有更好的檢測概率。在實際應用中,測量矩陣的設置可以依據上一周期的重構結果去調整行重和測量個數從而達到期望的定位結果。
本文提出的基于壓縮感知的WSNs異常節點檢測定位算法的重構是基于置信傳播的LDPC譯碼。為降低計算的工作量和復雜度,文中提出的異常節點檢測定位算法以節點電量損耗狀態為測量值,將狀態值用0或1來表示,大大簡化了譯碼的難度。該測量值在網絡中易于獲取,不需要額外的測量設備和通信設施。通過仿真也驗證了合理的調整行重或測量數,可以以不多的代價達到較好的檢測概率結果。
本文提出了一種基于壓縮感知的WSNs異常節點檢測定位算法。依據WSNs電量損耗狀態向量的稀疏性,采用壓縮感知的方式進行數據整理、線性計算、重構與判決3個步驟完成異常節點的識別與定位,對WSNs異常檢測研究有一定借鑒意義。后續工作將進一步分析該方法在稀疏度時變條件下的自適應方案從而優化該算法的可靠性與實用性。