本發(fā)明屬于無線傳感器網(wǎng)絡領域,特別涉及一種基于壓縮感知技術的多區(qū)域室內安全定位方法。
背景技術:
無線傳感器網(wǎng)絡室內定位近幾年發(fā)展很迅速,其中包括智能感知技術,嵌入式計算技術和通信技術的應用提升了室內定位的精度拓寬了室內定位的應用范圍。
室內定位在最近幾年已經(jīng)成功應用于各種領域,包括博物館導航、倉庫導航、停車場導航等。但是目前該領域的研究主要集中于如何提高定位精確度和能量有效性這方面,對無線傳感器網(wǎng)絡在室內定位過程中的安全性問題考慮不足。由于無線傳感器節(jié)點是開放性部署的,導致它們很容易被攻擊者俘獲,從而定位所依據(jù)的信號的物理屬性很容易被外界篡改。又因為信號的傳輸過程是在完全開放的環(huán)境中進行的,這導致了節(jié)點的信號在傳輸過程中容易被截獲或者被篡改。無線傳感器網(wǎng)絡的室內定位過程遭受來自內部或者外部的攻擊所產(chǎn)生的錯誤定位結果可能導致網(wǎng)絡功能失效和監(jiān)測結果出錯,進而破壞網(wǎng)絡應用的有效性。因此如何在有敵對可能的無線傳感器網(wǎng)絡應用中實現(xiàn)節(jié)點的安全定位,是一個必須解決的問題。
技術實現(xiàn)要素:
本發(fā)明所要解決的技術問題是,針對無線傳感器網(wǎng)絡室內定位的安全性問題,提供一種基于壓縮感知技術的多區(qū)域室內安全定位的方法,保證定位精度的基礎上,排除惡意的定位信息,從而保證定位環(huán)境的安全性。
一種基于壓縮感知技術的多區(qū)域室內安全定位方法,包括離線階段、安全監(jiān)測階段和在線階段,具體步驟如下:
1)離線階段
在待定位節(jié)點所在設定區(qū)域內,按照等邊三角形部署錨節(jié)點,并依據(jù)待定位節(jié)點距離錨節(jié)點之間的距離,構建待定位節(jié)點的RSSI安全密鑰矩陣;
2)安全監(jiān)測階段
利用待定位節(jié)點接收的實際RSSI值與RSSI安全密鑰矩陣中的對應值進行比較,剔除惡意錨節(jié)點;
3)在線階段
待定位節(jié)點實時接收感知到的錨節(jié)點信息,將已感知的錨節(jié)點為圓心繪制圓形區(qū)域,得到所有錨節(jié)點對應的圓形區(qū)域形成的重疊區(qū)域;
依據(jù)重疊區(qū)域選取網(wǎng)格來構建在線測量矩陣,根據(jù)待定位節(jié)點感知到的錨節(jié)點信息構建在線觀測矩陣;對在線測量矩陣和在線觀測矩陣進行正交化預操作獲得稀疏信號,利用信號恢復算法對正交化后的稀疏信號進行還原,進行精確的位置估算,獲得待定位節(jié)點的定位信息。
在線測量矩陣Ψ中的元素依次為重疊區(qū)域中的網(wǎng)格節(jié)點的離線其維數(shù)是其中表示關聯(lián)度為1的網(wǎng)格節(jié)點的數(shù)量;
位于重疊區(qū)域中的網(wǎng)格節(jié)點的關聯(lián)度即為1;
表示第j個網(wǎng)格節(jié)點在第i個錨節(jié)點采樣的離線RSS平均值;
表示第j個網(wǎng)格節(jié)點接收到第i個錨節(jié)點的第τ個RSS采樣值;如果未搜集到錨節(jié)點的信息,令
在線觀測矩陣為Φ,
Φ是M×L維的矩陣,Φ的每一行是一個1×L的向量,所有的元素滿足φi,j∈{0,1},每行都只有一個元素為1,為1的元素所在列號表示選擇的是L個錨節(jié)點中的第幾個;如果φh,g=1,h=1,2…,M,g=1,2…,L,則表示選擇的第h個錨節(jié)點是L個錨節(jié)點中的第g個,錨節(jié)點為選定錨節(jié)點,依據(jù)wi×RSSi,j,i=1,2,...,L,j=1,2,...,N的值,選取非零的錨節(jié)點;
RSSi,j表示第j個網(wǎng)格節(jié)點在第i個錨節(jié)點采樣的在線RSS平均值,wi表示第i個錨節(jié)點的權值,即每個錨節(jié)點在所有網(wǎng)格點采集RSS過程中的貢獻值,Numk表示在第k個網(wǎng)格節(jié)點上是否感知到了該錨節(jié)點,即當在網(wǎng)格節(jié)點放置一測試傳感節(jié)點時,錨節(jié)點是否在測試傳感節(jié)點的通信范圍之內,Numk∈{0,1}.
進一步地,所述待定位節(jié)點的RSSI安全密鑰矩陣為Num:
其中,numi,j表示第i個待定位節(jié)點接收到的第j個錨節(jié)點發(fā)的隨機數(shù),表示第i個待定位節(jié)點接收到第j個錨節(jié)點發(fā)送的RSSI值RSSi,j的閾值,若則的取值為k的取值范圍為0-2;
表示距離錨節(jié)點為r1時,待定位節(jié)點接收到到的RSSI閾值;
表示距離錨節(jié)點為r2時,待定位節(jié)點接收到到的RSSI閾值;
表示距離錨節(jié)點為r3時,待定位節(jié)點接收到到的RSSI閾值;
r1表示任意兩個相鄰錨節(jié)點之間的距離,r3為待定位節(jié)點能接收到RSSI信息的最大的范圍半徑,當待定位節(jié)點的與錨節(jié)點的距離超過了r3就將待定位節(jié)點接受到的RSSI值置零,r2為r1和r3的平均值;
i的取值范圍為1-L,L表示待定位節(jié)點的個數(shù);j表的取值范圍為1-N,N表示錨節(jié)點的個數(shù)。
進一步地,所述利用待定位節(jié)點接收的實際RSSI值與RSSI安全密鑰矩陣中的對應值進行比較,剔除惡意錨節(jié)點的具體過程如下:
第i個待定位節(jié)點接收到第j個錨節(jié)點發(fā)送的隨機數(shù)為numi,j,且感知到的RSSI值為RSSi,j,RSSi,j對應的閾值為
判斷隨機數(shù)numi,j是否滿足公式:
如果滿足,則判定第i個待定位節(jié)點感知到的第j個錨節(jié)點的定位信息是正確的;
如果不滿足或者沒有收到對應的隨機數(shù),則判斷第i個待定位節(jié)點接受到的第j個錨節(jié)發(fā)送的定位信息是惡意的,在第i個待定位節(jié)點的定位過程中將不使用第j個錨節(jié)點的定位信息,刪除該惡意錨節(jié)點發(fā)出的定位信息。
進一步地,所述將已感知的錨節(jié)點為圓心繪制圓形區(qū)域時,圓形半徑按照以下過程確定:
根據(jù)待定位節(jié)點接收到的RSSi,j取得的閾值得到對應的閾值下的半徑等級ri,j,依據(jù)半徑等級獲取對應錨節(jié)點的圓形半徑;
若取值為則半徑等級ri,j對應的半徑為r1;
若取值為則半徑等級ri,j對應的半徑為r2;
若取值為則半徑等級ri,j對應的半徑為r3。
有益效果
本發(fā)明的基于壓縮感知技術的無線傳感網(wǎng)絡室內安全定位方法,該定位方法利用壓縮感知的理論,包括離線、安全監(jiān)測和在線三個階段。通過建立有自適應能力的隨機數(shù)字典剔除掉惡意的定位信息,從而保證定位的安全。與傳統(tǒng)的定位方法相比,本專利的優(yōu)點在于:
1)設計了一種多區(qū)域疊加的機制,提出了基于錨節(jié)點傳輸半徑的有自適應能力的隨機數(shù)密鑰算法,來剔除掉室內定位環(huán)境中的惡意定位信息;
2)在在線線階段進行了一步預處理的工作,對離線的RSS信息進行加權,來平衡每個錨節(jié)點的影響;
3)引進了CS算法來提高定位的效率;
利用多區(qū)域覆蓋和CS算法保證了定位的精確度,重點引入了實時校驗機制,確保了定位環(huán)境的安全性。
附圖說明
圖1為定位的場景圖;
圖2為本發(fā)明的定位方法流程圖;
圖3為不同算法在有攻擊的環(huán)境中平均定位誤差;
圖4為不同的安全定位算法在遭受不同攻擊時的定位誤差。
具體實施方式
以下將結合附圖和具體實施例對本發(fā)明做進一步詳細說明:
實施例1:
一種基于壓縮感知技術的多區(qū)域室內安全定位方法,包括離線階段、安全監(jiān)測階段和在線階段,具體步驟如下:
一、離線階段
在待定位節(jié)點所在設定區(qū)域內,按照等邊三角形部署錨節(jié)點,并依據(jù)待定位節(jié)點距離錨節(jié)點之間的距離,構建待定位節(jié)點的RSSI安全密鑰矩陣;
1)建立離線測量矩陣:
定位區(qū)域內網(wǎng)格節(jié)點的總數(shù)為N,錨節(jié)點的個數(shù)為L;在每個網(wǎng)格上,進行q次采樣,搜集網(wǎng)格點感知到的所有錨節(jié)點的RSS(接收信號強度)值,獲取一個初始L×N維的離線測量矩陣
其中表示第j個網(wǎng)格節(jié)點在第i個錨節(jié)點采樣的離線RSS平均值;
表示網(wǎng)格節(jié)點j接收到錨節(jié)點i的第τ個RSS采樣值;如果未搜集到錨節(jié)點的信息,令
2)加權錨節(jié)點:
權值矩陣W=[w1,w2,…,wL]T,其中表示第i個錨節(jié)點的權值,即每個錨節(jié)點在所有網(wǎng)格節(jié)點采集RSS過程中的貢獻值,Numk表示在第k個網(wǎng)格節(jié)點上是否感知到了該錨節(jié)點,即當在網(wǎng)格節(jié)點放置一測試傳感節(jié)點時,錨節(jié)點是否在測試傳感節(jié)點的通信范圍之內,Numk∈{0,1};
3)建立離線指紋庫:
參考節(jié)點j接收到測試點即錨節(jié)點i采樣值的無偏估計表示為對于每個參考節(jié)點j,無偏估計矩陣表示為Δj=[Δ1,j,Δ2,j,…,ΔL,j]T;離線指紋庫表示為其中(xj,yj)是參考節(jié)點j的坐標。
二、安全監(jiān)測階段
利用待定位節(jié)點接收的實際RSSI值與RSSI安全密鑰矩陣中的對應值進行比較,剔除惡意錨節(jié)點;
所述待定位節(jié)點的RSSI安全密鑰矩陣為Num:
其中,numi,j表示第i個待定位節(jié)點接收到的第j個錨節(jié)點發(fā)的隨機數(shù),表示第i個待定位節(jié)點接收到第j個錨節(jié)點發(fā)送的RSSI值RSSi,j的閾值,若則的取值為k的取值范圍為0-2;
表示距離錨節(jié)點為r1時,待定位節(jié)點接收到到的RSSI閾值;
表示距離錨節(jié)點為r2時,待定位節(jié)點接收到到的RSSI閾值;
表示距離錨節(jié)點為r3時,待定位節(jié)點接收到到的RSSI閾值;
r1表示任意兩個相鄰錨節(jié)點之間的距離,r3為待定位節(jié)點能接收到RSSI信息的最大的范圍半徑,當待定位節(jié)點的與錨節(jié)點的距離超過了r3就將待定位節(jié)點接受到的RSSI值置零,r2為r1和r3的平均值;
i的取值范圍為1-L,L表示待定位節(jié)點的個數(shù);j表的取值范圍為1-N,N表示錨節(jié)點的個數(shù)。
所述利用待定位節(jié)點接收的實際RSSI值與RSSI安全密鑰矩陣中的對應值進行比較,剔除惡意錨節(jié)點的具體過程如下:
第i個待定位節(jié)點接收到第j個錨節(jié)點發(fā)送的隨機數(shù)為numi,j,且感知到的RSSI值為RSSi,j,RSSi,j對應的閾值為
判斷隨機數(shù)numi,j是否滿足公式:
如果滿足,則判定第i個待定位節(jié)點感知到的第j個錨節(jié)點的定位信息是正確的;
如果不滿足或者沒有收到對應的隨機數(shù),則判斷第i個待定位節(jié)點接受到的第j個錨節(jié)發(fā)送的定位信息是惡意的,在第i個待定位節(jié)點的定位過程中將不使用第j個錨節(jié)點的定位信息,刪除該惡意錨節(jié)點發(fā)出的定位信息。
三、在線階段
待定位節(jié)點實時接收感知到的錨節(jié)點信息,將已感知的錨節(jié)點為圓心繪制圓形區(qū)域,得到所有錨節(jié)點對應的圓形區(qū)域形成的重疊區(qū)域;
依據(jù)重疊區(qū)域選取網(wǎng)格來構建在線測量矩陣,根據(jù)待定位節(jié)點感知到的錨節(jié)點信息構建在線觀測矩陣;對在線測量矩陣和在線觀測矩陣進行正交化預操作獲得稀疏信號,利用信號恢復算法對正交化后的稀疏信號進行還原,進行精確的位置估算,獲得待定位節(jié)點的定位信息。
在線測量矩陣Ψ中的元素依次為重疊區(qū)域中的網(wǎng)格節(jié)點的離線其維數(shù)是其中表示關聯(lián)度為1的網(wǎng)格節(jié)點的數(shù)量;
位于重疊區(qū)域中的網(wǎng)格節(jié)點的關聯(lián)度即為1;
表示第j個網(wǎng)格節(jié)點在第i個錨節(jié)點采樣的離線RSS平均值;
表示第j個網(wǎng)格節(jié)點接收到第i個錨節(jié)點的第τ個RSS采樣值;如果未搜集到錨節(jié)點的信息,令
在線觀測矩陣為Φ,
Φ是M×L維的矩陣,Φ的每一行是一個1×L的向量,所有的元素滿足φi,j∈{0,1},每行都只有一個元素為1,為1的元素所在列號表示選擇的是L個錨節(jié)點中的第幾個;如果φh,g=1,h=1,2…,M,g=1,2…,L,則表示選擇的第h個錨節(jié)點是L個錨節(jié)點中的第g個,錨節(jié)點為選定錨節(jié)點,依據(jù)wi×RSSi,j,i=1,2,...,L,j=1,2,...,N的值,選取非零的錨節(jié)點;
RSSi,j表示第j個網(wǎng)格節(jié)點在第i個錨節(jié)點采樣的在線RSS平均值,wi表示第i個錨節(jié)點的權值,即每個錨節(jié)點在所有網(wǎng)格點采集RSS過程中的貢獻值,Numk表示在第k個網(wǎng)格節(jié)點上是否感知到了該錨節(jié)點,即當在網(wǎng)格節(jié)點放置一測試傳感節(jié)點時,錨節(jié)點是否在測試傳感節(jié)點的通信范圍之內,Numk∈{0,1}.
首先對Φ和Ψ進行正交化預操作,再利用信號恢復算法對稀疏信號進行還原;信號恢復采用凸優(yōu)化算法中的l1-最小范式來處理,得到恢復后的稀疏信號
通過和節(jié)點的位置坐標進行加權,對待定位節(jié)點的位置進行更加精確的估算,表達式為:
其中,px和py分別代表待定位節(jié)點最終的位置對應的橫坐標和縱坐標;xk、yk和分別代表第k個網(wǎng)格的x坐標,y坐標和待定位節(jié)點出現(xiàn)在該網(wǎng)格的概率。
在正交化預操作和信號恢復步驟中,假設T是測量值y的正交化預操作,對y進行正交化,得到正交化后的測量值y′=Ty;定義P=ΦΨ,Q=orth(PT)T,orth(A)表示對矩陣P的規(guī)范正交化操作,為P的偽逆矩陣,則定位問題描述為以下l1-最小范式模型:
其中,θ是表示待定位節(jié)點可能出現(xiàn)的一組位置的向量,表示對于特定的誤差值ε′的滿足等式條件的特定的θ值,Z是計算時用到的目標矩陣函數(shù),有Z=y(tǒng),y為測量向量,是指在線階段待定位節(jié)點采集的感知到的所有錨節(jié)點的RSS值,ε′是設定的誤差,在區(qū)間[0,0.1]范圍內取值;計算不等式z-Qθ≤ε'。
構建關聯(lián)矩陣可以看做是一個聚類問題。多區(qū)域疊加算法被設計來解決該問題。多區(qū)域疊加算法的思想是利用疊加技術縮小定位區(qū)域。區(qū)域疊加算法在解決聚類問題上有很多優(yōu)勢。區(qū)域疊加是非迭代的。這樣定位速度比一般的聚類算法更快;區(qū)域疊加算法很容易實現(xiàn)。在線階段動態(tài)獲取的RSS信息比離線數(shù)據(jù)庫更能反映當前的環(huán)境狀況,因此定位更加精確;區(qū)域疊加算法在線階段對定位區(qū)域的縮小性能較好。因此,該算法比傳統(tǒng)的聚類算法更有效。
在聚類思想中,找到最小且最精確的定位區(qū)域是最關鍵的問題。區(qū)域疊加算法利用重疊機制來獲取最優(yōu)的區(qū)域。重疊的基本思想是將通信區(qū)域內的候選錨節(jié)點的通信半徑區(qū)域全部疊加。候選節(jié)點通過最適函數(shù)來進行選取。在該算法中,候選節(jié)點有更高的在線RSS值和離線權值。
根據(jù)接收到的在線RSSI矩陣,得到非零的RSSI值的錨節(jié)點的標號,根據(jù)這些標號將相對應的傳輸半徑矩陣進行融合得到待定位節(jié)點的位置估計值。最后根據(jù)得到的半徑值進行區(qū)域疊加覆蓋。接著正交化生成稀疏矩陣,再利用壓縮感知和L1-最小范式回復稀疏信號,獲取帶定位節(jié)點的坐標。
圖1為本發(fā)明的應用場景圖。在場上定位區(qū)域中共部署了5個待定位節(jié)點,用紅色的圓點表示。25個錨節(jié)點用藍色三角形表示。4個惡意節(jié)點,用黃色的三角形表示。每個待定位節(jié)點感知周圍的錨節(jié)點信息,并從數(shù)據(jù)庫中下載錨節(jié)點的相關信息。各錨節(jié)點利用相關信息和定位方法確定自己的位置。惡意節(jié)點通過發(fā)送錯誤的RSS信息誤導定位。
圖2為本發(fā)明定位方法流程圖。定位分為離線、安全監(jiān)測和在線階段。離線階段構建初始數(shù)據(jù)庫。再對離現(xiàn)階段感知到的錨節(jié)點進行加權,使得的每個錨節(jié)點在定位過程中達到均衡。然后并建立安全密鑰,設定錨節(jié)點的發(fā)送功率,根據(jù)發(fā)送功率不同給出不同范圍的隨機數(shù)。錨節(jié)點在發(fā)送RSS信息的同時發(fā)送隨機數(shù)。每個待定位節(jié)點都能接收到不同的隨機數(shù),作為在線價段進行安全驗證的密鑰。在現(xiàn)階段,根據(jù)待定位節(jié)點接受到的隨機數(shù)集給出相對應的半徑值。驗證隨機數(shù)和接收到的RSS信息是否對等。剔除掉惡意的定位信息。最后根據(jù)得到的半徑值進行區(qū)域疊加覆蓋。接著正交化生成稀疏矩陣,再利用壓縮感知和L1-最小范式回復稀疏信號,獲取帶定位節(jié)點的坐標。
圖3為幾種算法在遭受攻擊時的定位誤差,橫坐標代表了惡意錨節(jié)點的個數(shù),縱坐標代表定位的平均誤差。CS_NSL算法是一種單一密鑰校驗算法。錨節(jié)點在發(fā)送定位信息的同時向所有定位區(qū)域內廣播同一的密鑰。當待定位節(jié)點接收到的密鑰不是初始密鑰時,則證明該定位信息是惡意的。CS_SL是一種基于壓縮感知的多區(qū)域網(wǎng)格室內定位算法,它是利用網(wǎng)格將區(qū)域劃分成為一個一個的小區(qū)域,提高定位的精確度。同時利用了壓縮感知的方法,選取活性比較強錨節(jié)點進行定位,排除了部分惡意節(jié)點的干擾。其中當惡意錨節(jié)點數(shù)目逐漸增加時,CS_SL的定位誤差急劇上升,而當惡意節(jié)點超過兩個以后CS_NSL的定位誤差也有明顯的增加。而本專利提出的多區(qū)域的密鑰驗證算法的定位誤差幾乎沒有變化。因為本發(fā)明的校驗算法是實時性的動態(tài)驗證的,幾乎所有的惡意定位信息都可以被檢驗并排除。
圖4為CS_NSL算法和本發(fā)明的算法在遭受外部攻擊和內部攻擊時的平均定位誤差,其中選取了洪范攻擊和偽造攻擊作為內部和外部攻擊的代表,對算法的安全性進行驗證。圖中,‘-*-’代表了本發(fā)明的定位方法(CSMR_SL),將它與其他兩種算法CS_SL和CS_NSL進行對比。兩種攻擊結果都顯示本發(fā)明所述的算法防御攻擊的能力更好。外部攻擊無法獲取密鑰,但是可以不斷的發(fā)送錯誤的密鑰去猜測安全密鑰。內部攻擊可以通過俘獲錨節(jié)點,再發(fā)送錯誤的定位信息,從而來破壞定位過程。當密鑰比較單一時,外部攻擊可以通過不斷試發(fā)送密鑰,猜中算法的密鑰,使得安全算法失效。而基于傳輸半徑值的密鑰實時變化,幾乎無法猜中。而內部攻擊中,根據(jù)密鑰生成算法。如果接收到的隨機數(shù)密鑰不超過用于密鑰生成的半徑閾值,即定位信息正常。本發(fā)明所述的方法與傳統(tǒng)的單一密鑰算法相比,將以前的覆蓋范圍劃分成幾個子范圍,在進行一一驗證,很大程度上提高了算法的有效性。