孫 璇
(北京信息科技大學(xué) 信息管理學(xué)院,北京 100192)
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)因其低成本、小型化和低功耗等特點(diǎn),已經(jīng)在多領(lǐng)域得到廣泛的應(yīng)用,同時(shí)也得到了學(xué)術(shù)界、工業(yè)界的廣泛關(guān)注[1-3]。隨著物聯(lián)網(wǎng)的萌芽、成熟與推廣,其安全問題逐步成為備受關(guān)注的首要問題[4,5]。
文獻(xiàn)[6]中給出了無線傳感器網(wǎng)絡(luò)異常節(jié)點(diǎn)的定義,無線傳感器網(wǎng)絡(luò)中的異常節(jié)點(diǎn)是指網(wǎng)絡(luò)中由于部分節(jié)點(diǎn)出現(xiàn)故障,導(dǎo)致采集的網(wǎng)絡(luò)數(shù)據(jù)存在偏離的節(jié)點(diǎn)。已有很多學(xué)者在WSNs異常節(jié)點(diǎn)檢測與定位方面提出了一些方法,這些方法主要分為基于統(tǒng)計(jì)學(xué)的方法、聚類分析的方法、分類方法和基于最近鄰居的方法等[7,8]。隨著壓縮感知(compressed sensing,CS)理論在處理信號(hào)稀疏性方面的巨大應(yīng)用潛力在各研究領(lǐng)域的實(shí)現(xiàn)[9,10],其也在WSNs領(lǐng)域的數(shù)據(jù)收集與分析中逐步被廣泛應(yīng)用。在文獻(xiàn)[11]中,首先給出了監(jiān)控區(qū)域的稀疏數(shù)據(jù)模型。將監(jiān)控區(qū)域網(wǎng)格化,并實(shí)現(xiàn)了用一個(gè)N維向量來表達(dá)該監(jiān)控區(qū)域下的稀疏數(shù)據(jù)向量;然后通過理論論證了其在定位應(yīng)用中的合理性;最后通過采用經(jīng)典的貪婪匹配追蹤方法實(shí)現(xiàn)了稀疏信號(hào)的重構(gòu)。文獻(xiàn)[12]在分析了WSNs無線鏈路不可靠導(dǎo)致的分組丟失現(xiàn)象的基礎(chǔ)上,結(jié)合矩陣補(bǔ)全技術(shù),提出了基于極稀疏塊觀測矩陣的壓縮感知數(shù)據(jù)收集算法。目前壓縮感知算法非常適合在WSNs場景下解決數(shù)據(jù)收集問題,而在當(dāng)前WSNs中的安全問題凸顯情況下,如何識(shí)別WSNs中的安全問題、如何應(yīng)對WSNs中的安全問題也是當(dāng)前亟待解決的問題。
首先對存在異常節(jié)點(diǎn)的WSNs進(jìn)行場景建模,然后在此基礎(chǔ)上采用LDPC校驗(yàn)矩陣進(jìn)行線性測量,并根據(jù)基于圖模型的置信傳播算法進(jìn)行重構(gòu)從而判決。根據(jù)壓縮感知的重構(gòu)結(jié)果,即可以較高概率檢測與定位WSNs中的異常節(jié)點(diǎn)。
首先建立WSNs電量損耗異常節(jié)點(diǎn)識(shí)別算法的稀疏模型。將檢測區(qū)域模擬為一個(gè)方形區(qū)域,其大小范圍表示為ar×ar。在此假設(shè)基礎(chǔ)上,將其均勻分割成數(shù)量為N2的大小相等的子區(qū)域,并假設(shè)每個(gè)子區(qū)域中至多存在1個(gè)處于工作狀態(tài)的傳感器節(jié)點(diǎn)。因此,可以將該檢測網(wǎng)絡(luò)中前一個(gè)檢測周期的電量損耗用一個(gè)方陣來表示,記為G(N×N)。若某個(gè)子區(qū)域不存在傳感器節(jié)點(diǎn),則該節(jié)點(diǎn)對應(yīng)的方陣中的元素應(yīng)標(biāo)記為0。異常節(jié)點(diǎn)檢測與定位網(wǎng)絡(luò)模型如圖1所示,其中下層網(wǎng)絡(luò)為用方陣G(N×N)記錄的方形區(qū)域,區(qū)域中存在大量正常節(jié)點(diǎn)和少量異常節(jié)點(diǎn);上層網(wǎng)絡(luò)為觀測節(jié)點(diǎn),在每個(gè)檢測周期,上層網(wǎng)絡(luò)的某觀測節(jié)點(diǎn)Mi負(fù)責(zé)下層網(wǎng)絡(luò)數(shù)據(jù)的收集,并通過計(jì)算完成異常節(jié)點(diǎn)檢測與定位。
圖1 WSNs異常節(jié)點(diǎn)檢測與定位系統(tǒng)模型
文獻(xiàn)[13]中給出了不同協(xié)議層下,WSNs可能會(huì)遭到的一些攻擊分類。在該文獻(xiàn)中,按照物理層、鏈路層、網(wǎng)絡(luò)層、傳輸層以及應(yīng)用層,將網(wǎng)絡(luò)攻擊進(jìn)行分類描述。每種攻擊都有自己特定的方法和影響效果,因此針對這些攻擊也需要有特定的防御策略。但是總結(jié)來看,大部分的網(wǎng)絡(luò)攻擊都會(huì)存在使得WSNs中的某個(gè)或某些關(guān)鍵節(jié)點(diǎn)能源耗盡的情況出現(xiàn)。比如蟲洞攻擊、鄰居發(fā)現(xiàn)攻擊、傳輸層的ICMP泛洪攻擊、Synflood攻擊等[14]。
因此,本算法通過數(shù)據(jù)整理、線性計(jì)算、恢復(fù)和判決3個(gè)環(huán)節(jié)識(shí)別出WSNs中的電量過快消耗的節(jié)點(diǎn)。如圖1所示,在WSNs中,節(jié)點(diǎn)分為正常節(jié)點(diǎn)和異常節(jié)點(diǎn),上層有觀測節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)的收集和處理。其中星形節(jié)點(diǎn)表示被攻擊或其它原因?qū)е碌碾娏繐p耗過快的節(jié)點(diǎn),圓形節(jié)點(diǎn)代表其中的正常工作節(jié)點(diǎn)。在方陣G(N×N)中,會(huì)存在某些電量損耗異常節(jié)點(diǎn)對應(yīng)的位置的數(shù)值,會(huì)遠(yuǎn)遠(yuǎn)大于正常節(jié)點(diǎn)位置對應(yīng)的數(shù)值。本文用電量損耗向量來表示整個(gè)區(qū)域中傳感器節(jié)點(diǎn)的電量損耗,即
圖2為某檢測周期中的電量損耗向量V的仿真圖示。從圖2看出,受某種WSNs網(wǎng)絡(luò)異常事件影響,WSNs中少數(shù)異常節(jié)點(diǎn)的電量損耗會(huì)明顯高于其它正常狀態(tài)傳感器節(jié)點(diǎn)。根據(jù)壓縮感知理論,如果信號(hào)是稀疏的,那么它可以由遠(yuǎn)低于采樣定理要求的采樣點(diǎn)重建恢復(fù)。由于該向量V是稀疏的,在異常檢測算法中,不需要采集WSNs中所有傳感器節(jié)點(diǎn)的電量損耗,只需要按照壓縮感知的方式進(jìn)行壓縮采樣,即可在觀測端實(shí)現(xiàn)稀疏向量的重建從而做出異常節(jié)點(diǎn)的判決與定位。這樣可以極大程度節(jié)省網(wǎng)絡(luò)資源,延長網(wǎng)絡(luò)壽命。
圖2 4個(gè)連續(xù)周期的電量損耗向量(歸一化)
在建立好WSNs異常節(jié)點(diǎn)檢測與定位系統(tǒng)模型之后,通過數(shù)據(jù)整理、線性計(jì)算以及重構(gòu)與判決3個(gè)步驟來完成壓縮感知的過程,從而實(shí)現(xiàn)對WSNs異常節(jié)點(diǎn)的檢測與定位,異常節(jié)點(diǎn)檢測定位算法步驟如圖3所示。
圖3 異常節(jié)點(diǎn)檢測定位算法步驟
數(shù)據(jù)整理包括兩個(gè)步驟,首先是進(jìn)行閾值計(jì)算。由于電量損耗向量V中正常節(jié)點(diǎn)也會(huì)產(chǎn)生一定的電量損耗,使得電量損耗向量V在時(shí)域的稀疏性不明顯,并進(jìn)一步影響數(shù)據(jù)重構(gòu)的成功率和精度,因此需要先通過計(jì)算正常節(jié)點(diǎn)與異常節(jié)點(diǎn)的能量損耗閾值對稀疏向量V進(jìn)行進(jìn)一步整理。
文獻(xiàn)[15]中給出了受攻擊的WSNs中的無線電收發(fā)信息能量消耗模型。在距離為d的節(jié)點(diǎn)之間發(fā)送l-bit消息,需消耗的能量為
Eelec是接收機(jī)接收或者發(fā)射器發(fā)射l-bit信號(hào)所消耗的能量,εfs和εmp分別是自由空間耗散能量和多路徑損耗能量。傳感器節(jié)點(diǎn)的能量損耗主要來自于接收或發(fā)射數(shù)據(jù)包,且能量損耗主要受距離d的影響,而且當(dāng)距離d大于d0時(shí),能量損耗會(huì)更大
則
則XN2×1表示子區(qū)域傳感器節(jié)點(diǎn)在檢測周期r的電量損耗狀態(tài)向量。根據(jù)具體情況對門限系數(shù)a進(jìn)行合理取值,使得XN2×1中元素為1的個(gè)數(shù)非常少,即滿足
則經(jīng)過整理后的節(jié)點(diǎn)電量損耗狀態(tài)向量為稀疏的01-向量。
在數(shù)據(jù)整理階段完成了用XN2×1表示子區(qū)域傳感器節(jié)點(diǎn)在檢測周期r的電量損耗狀態(tài)向量。XN2×1為01-向量,且其中值為1的元素個(gè)數(shù)非常少,具有良好稀疏特性,因此可以對向量XN2×1進(jìn)行壓縮感知。
接下來是測量矩陣的選擇。目前,高斯矩陣是最常見的被選作測量矩陣的情況,原因在于高斯矩陣與變換矩陣的不相干性強(qiáng)。但是在實(shí)際的應(yīng)用場景下,這種隨機(jī)矩陣在硬件上不太容易實(shí)現(xiàn),是由于其效率低下,存儲(chǔ)量又較大。本算法面向WSNs中的實(shí)際應(yīng)用,因此選擇LDPC碼的校驗(yàn)矩陣作為測量矩陣,其元素只有0和1兩種情況,因此硬件實(shí)現(xiàn)簡單。測量矩陣的產(chǎn)生是用PEG(progressive edge growth)方式產(chǎn)生,其作為壓縮感知的測量矩陣的合理性分析見文獻(xiàn)[16]。
對XN2×1的壓縮感知過程如下式所示
Y=ΦΨXN2×1
式中:Φ是LDPC碼的稀疏校驗(yàn)矩陣,也是算法中線性計(jì)算采用的測量矩陣。該線性計(jì)算過程中的矩陣相乘過程,其涉及的加法是模2加的過程。式中的矩陣Ψ是為稀疏域的基底矩陣。另外,因?yàn)殡娏繐p耗狀態(tài)向量XN2×1中1的元素遠(yuǎn)小于向量元素個(gè)數(shù),因此其在時(shí)域就是稀疏的,故Ψ=I。在觀測端Mi進(jìn)行數(shù)據(jù)收集的線性計(jì)算,得到觀測結(jié)果Y。
重構(gòu)階段依據(jù)上一階段所得觀測結(jié)果Y與測量矩陣Φ實(shí)現(xiàn)電量損耗狀態(tài)向量的重構(gòu)。由于測量矩陣為LDPC碼的校驗(yàn)矩陣,因此重構(gòu)過程即為LDPC碼的譯碼過程。最經(jīng)典的LDPC譯碼算法就是置信傳播算法(belief propagation,BP)。由于譯碼時(shí)主要涉及加法運(yùn)算和乘法運(yùn)算,所以BP算法也被稱作和積算法。BP算法需要將LDPC碼首先映射為一個(gè)Tanner圖,然后通過信息在Tanner圖上的不斷迭代過程,從而達(dá)到收斂[17]。圖4為LDPC校驗(yàn)矩陣與Tanner圖的對應(yīng)。
圖4 LDPC校驗(yàn)矩陣與Tanner圖對應(yīng)
通過在Tanner圖上的消息傳遞過程實(shí)現(xiàn)和積算法的迭代過程。當(dāng)信息在校驗(yàn)節(jié)點(diǎn)和變量節(jié)點(diǎn)之間的交互和迭代達(dá)到一個(gè)收斂狀態(tài)的時(shí)候,即可得到電量損耗狀態(tài)向量XN2×1的估計(jì)值。
根據(jù)置信傳播算法得到的節(jié)點(diǎn)電量損耗狀態(tài)向量的估計(jì)值,其中元素值為1對應(yīng)的傳感器節(jié)點(diǎn),即被判決為在本檢測周期電量損耗過高的節(jié)點(diǎn)。在下一檢測周期的路由算法中,應(yīng)盡量避開這樣的節(jié)點(diǎn)。
如果在連續(xù)的N個(gè)檢測周期內(nèi),都發(fā)生某節(jié)點(diǎn)電量損耗過高的現(xiàn)象,即應(yīng)被判決為異常節(jié)點(diǎn),從網(wǎng)絡(luò)中剔除。
仿真場景如圖5所示,監(jiān)控區(qū)域?yàn)榉叫螀^(qū)域,按一定規(guī)則部署傳感器節(jié)點(diǎn)。在某些異常事件影響下,某些傳感器節(jié)點(diǎn)的電量會(huì)消耗很快。如圖5所示,黑色圓圈標(biāo)注的是因?yàn)樵馐蹹DoS攻擊或因?yàn)槠渌闆r(如負(fù)載不均衡)導(dǎo)致的電量快速消耗的節(jié)點(diǎn)。這些節(jié)點(diǎn)在向量XN2×1中對應(yīng)的值為1,其它節(jié)點(diǎn)對應(yīng)的值為0。
圖5 算法仿真場景假設(shè)
壓縮感知所選用的LDPC稀疏校驗(yàn)矩陣的行重L根據(jù)傳感器節(jié)點(diǎn)的個(gè)數(shù)設(shè)定。在每個(gè)檢測周期,觀測端某觀測節(jié)點(diǎn)Mi按一定規(guī)則生成用于壓縮感知的測量矩陣,并對WSNs中的部分節(jié)點(diǎn)進(jìn)行電量損耗信息收集并完成線性計(jì)算。在觀測端得到測量結(jié)果Y之后運(yùn)行置信傳播算法進(jìn)行重構(gòu)并判決。仿真使用MATLAB R2014b運(yùn)行。
從圖6可以看出,算法的檢測概率受測量矩陣影響明顯。仿真中假設(shè)節(jié)點(diǎn)電量損耗向量長度是1024,異常節(jié)點(diǎn)個(gè)數(shù)為5。第一個(gè)影響因素是行重L,在稀疏度已知且不變的情況下,行重L越大,則算法的檢測概率越高。第二個(gè)影響因素則是測量矩陣的測量數(shù)M,M越大,算法的檢測概率也越高。行重L與測量數(shù)M的設(shè)置越高,則算法越精確,但同時(shí)帶來的是算法成本的上升。
圖6 不同矩陣行重對檢測概率的影響
從圖7可以看出,在固定的測量矩陣參數(shù)設(shè)定下(測量個(gè)數(shù)M與行重L均相同),算法檢測概率主要受電量損耗狀態(tài)向量的稀疏度影響。通過置信傳播算法對電量損耗狀態(tài)向量的重構(gòu)效果受原始信號(hào)的稀疏度影響較大。在滿足K?N條件時(shí),原始信號(hào)是稀疏的。也就是在WSNs場景下,只有當(dāng)能量消耗異常的節(jié)點(diǎn)遠(yuǎn)小于總傳感器節(jié)點(diǎn)數(shù)的條件下,該算法可以有效節(jié)省網(wǎng)絡(luò)成本并能夠重構(gòu)WSNs的電量損耗狀態(tài)向量。稀疏度K越大,就需要在構(gòu)造測量矩陣時(shí),設(shè)定較大的M值與L值,才能夠達(dá)到精確重構(gòu)。
圖7 不同稀疏度對檢測概率的影響
圖8為不同測量矩陣的檢測概率對比。在該實(shí)驗(yàn)過程中,將信號(hào)長度固定、信號(hào)稀疏度固定,測量數(shù)M從200到600的變化區(qū)間中,選用不同的測量矩陣從而比較其對算法檢測概率的影響。從圖8可以看出,相比選用高斯矩陣、傅里葉矩陣,本算法選用LDPC的校驗(yàn)矩陣作為測量矩陣有更高的檢測概率。這是因?yàn)長DPC矩陣作為測量矩陣,其具有更高的正交性和更低的相關(guān)度的影響。
圖8 不同測量矩陣的檢測概率對比
仿真結(jié)果表明,本文提出的異常節(jié)點(diǎn)檢測定位算法能夠通過合理設(shè)置測量矩陣對節(jié)點(diǎn)電量損耗狀態(tài)向量進(jìn)行線性計(jì)算,并通過置信傳播算法實(shí)現(xiàn)精確重構(gòu)從而判決。與其它壓縮感知方案的性能對比結(jié)果表示,選擇LDPC的校驗(yàn)矩陣相比傳統(tǒng)的壓縮感知方案有更好的檢測概率。在實(shí)際應(yīng)用中,測量矩陣的設(shè)置可以依據(jù)上一周期的重構(gòu)結(jié)果去調(diào)整行重和測量個(gè)數(shù)從而達(dá)到期望的定位結(jié)果。
本文提出的基于壓縮感知的WSNs異常節(jié)點(diǎn)檢測定位算法的重構(gòu)是基于置信傳播的LDPC譯碼。為降低計(jì)算的工作量和復(fù)雜度,文中提出的異常節(jié)點(diǎn)檢測定位算法以節(jié)點(diǎn)電量損耗狀態(tài)為測量值,將狀態(tài)值用0或1來表示,大大簡化了譯碼的難度。該測量值在網(wǎng)絡(luò)中易于獲取,不需要額外的測量設(shè)備和通信設(shè)施。通過仿真也驗(yàn)證了合理的調(diào)整行重或測量數(shù),可以以不多的代價(jià)達(dá)到較好的檢測概率結(jié)果。
本文提出了一種基于壓縮感知的WSNs異常節(jié)點(diǎn)檢測定位算法。依據(jù)WSNs電量損耗狀態(tài)向量的稀疏性,采用壓縮感知的方式進(jìn)行數(shù)據(jù)整理、線性計(jì)算、重構(gòu)與判決3個(gè)步驟完成異常節(jié)點(diǎn)的識(shí)別與定位,對WSNs異常檢測研究有一定借鑒意義。后續(xù)工作將進(jìn)一步分析該方法在稀疏度時(shí)變條件下的自適應(yīng)方案從而優(yōu)化該算法的可靠性與實(shí)用性。