本發明屬于無線傳感器網絡安全技術領域,尤其涉及一種基于數字水印與能量均衡的無線傳感器網絡路由方法。
背景技術:
無線傳感器網絡由部署在監測區域內大量的微型傳感器節點組成,其目的是協作地感知、采集、處理和傳輸網絡覆蓋區域內的監測信息。無線傳感器網絡在環境監測、醫療護理、軍事和搶險救災等領域中具有廣泛應用。由于傳感器節點普遍采用電池供電,節點能耗的均衡性成為影響網絡壽命的主要因素。同時,由于網絡攻擊者的蓄意破壞,無線傳感器網絡數據傳輸的準確性和安全性至關重要。因此,如何在保證數據傳輸安全性的基礎上均衡節點能耗、延長無線傳感器網絡的生命周期,是無線傳感器網絡路由方法面臨的挑戰性問題,引起了研究者們的廣泛關注。bradkarp等人在“gpsr:greedyperimeterstatelessroutingforwirelessnetworks”(《proceedingsofthe6thannualinternationalconferenceonmobilecomputingandnetworking》2000,243-254)中提出了一種名為gpsr(greedyperimeterstatelessrouting)的路由算法,該方法基于網絡節點間距離利用貪婪算法與右手定則實現路由選擇。該方法存在的不足之處是:由于該方法只將網絡節點間的距離作為選擇下一跳節點的判定因素,難以充分利用網絡中的節點能量。湖南科技大學申請的專利“無線傳感器網絡中基于校驗碼的數據可靠性保護方法”(申請號:201510432030.4,申請公開號:cn105072618a)中公開了一種無線傳感器網絡中基于校驗碼的數據可靠性保護方法。該方法利用數字水印技術,通過對比信任度閾值來判斷數據可靠性。該方法存在的不足之處是:當檢測到數據包被篡改時,僅通過對比信任度閾值來決定接收或丟棄數據包,未能對數據包傳輸路徑的安全性進行標定,因此該方法不能有效保護數據傳輸的安全性。
綜上所述,上述路由方法未能充分考慮無線傳感器網絡中節點能量均衡,未能有效實現無線傳感器網絡數據安全傳輸。
技術實現要素:
本發明的目的在于克服上述已有技術的不足,提供一種基于數字水印與能量均衡的無線傳感器網絡路由方法,在綜合考慮距離、安全度、剩余能量的基礎上,引入節點質量評估度進行下一跳節點的最優選擇,旨在解決現有無線傳感器網絡路由算法存在的未能充分考慮網絡節點能量均衡以及未能有效實現數據安全傳輸的問題。實現本發明目的的具體思路是,首先生成水印并將其嵌入到待傳輸的數據包中,然后在綜合考慮距離、安全度與剩余能量的基礎上,引入節點質量評估度進行下一跳節點的優化選擇,隨后,通過對接收數據包中水印的檢測判斷該數據包是否在傳輸過程中遭受篡改,并自適應地調整節點安全度,最終實現無線傳感器網絡中數據的安全有效傳輸。
進一步,所述的一種基于數字水印與能量均衡的無線傳感器網絡路由方法包括以下步驟:
步驟一,無線傳感器網絡節點部署:無線傳感器網絡工作區域中包括1個源節點n,1個目的節點sink和n個中間節點b={b1,b2,…,bn}。其中,源節點n負責生成含水印數據包,目的節點sink負責接收數據包,中間節點b={b1,b2,…,bn}負責將源節點n生成的含水印數據包傳輸到目的節點sink,每個中間節點包括能量、安全度及位置三個屬性,其中第i個中間節點的屬性分別記為能量ei∈[0,0.2],安全度si∈[0,10]及位置(xi,yi);
步驟二,生成含水印數據包:首先源節點n生成原始數據包data={data1,data2,…,datai,…,data8},其中第i個數據項datai由28位二進制序列組成;然后生成32位原始水印序列w={w1,w2,…wi,…,w8},其中第i個水印項wi由4位二進制序列組成;再次,將第i個水印項wi追加到第i個數據項datai后,得到32位的第i個含水印數據項wdatai,最后重復這一過程直到得到含水印數據包wdata={wdata1,wdata2,…,wdatai,…,wdata8},i=1,2,…8;
步驟三,選擇鄰居節點;
步驟四,轉發含水印數據包;
步驟五,水印提取和檢測;
步驟六,重復步驟二~步驟五,直到無線傳感器網絡中任一中間節點找不到滿足條件的下一跳節點進行數據包轉發時終止;
進一步,所述選擇鄰居節點具體包括:
(3a)選定源節點n作為當前節點,記為u;
(3b)按照下式,計算當前節點u到目的節點sink的距離dusink:
其中(xu,yu)為當前節點u的位置,(xsink,ysink)為目的節點sink的位置;
(3c)根據公式tr=πr2計算當前節點u的傳輸范圍tr,并將當前節點u傳輸范圍tr內的所有中間節點作為候選鄰居節點,得到候選鄰居節點集合bm={bm1,bm2,…,bmi,…,bmm},其中π為圓周率3.14,r為當前節點u的傳輸半徑,即當前節點u能夠傳輸數據的最大距離;
(3d)按照下式,計算第i個候選鄰居節點bmi到目的節點sink的距離di并將其與當前節點u到目的節點sink的距離dusink進行比較,
如果di<dusink,則將第i個候選鄰居節點bmi作為鄰居節點放入鄰居節點集合bh中,其中(xi,yi)為候選鄰居節點bmi的位置,i=1,2,…m,(xsink,ysink)為目的節點sink的位置;
(3e)重復步驟(3d),直到處理完候選鄰居節點集合bm={bm1,bm2,…,bmi,…,bmm}中的所有候選鄰居節點,得到鄰居節點集合bh={bh1,bh2,…,bhi,…,bhh};
進一步,所述轉發含水印數據包具體包括:
(4a)按照下式,計算第i個鄰居節點bhi的質量評估度mi:
其中,di表示第i個鄰居節點bhi到目的節點sink的距離,ei表示第i個鄰居節點bhi的能量,si表示第i個鄰居節點bhi的安全度,i=1,2,…h,α,β,γ為常數,取值范圍為[0,10];
(4b)重復步驟(4a),直到計算完鄰居節點集合bh={bh1,bh2,…,bhi,…,bhh}中的所有節點的質量評估度m={m1,m2,…,mi,…,mh};
(4c)對質量評估度m={m1,m2,…,mi,…,mh}進行排序,將質量評估度最小的鄰居節點選為下一跳節點,接收由當前節點u轉發的含水印數據包wdata,并將該下一跳節點記錄到數據轉發節點集合c中;
(4d)將下一跳節點作為當前節點u,重復步驟(3b)到(4c)直至將含水印數據包wdata發送到目的節點sink,得到接收數據包rdata={rdata1,rdata2,…,rdatai,…,rdata8}與數據轉發節點集合c={c1,c2,…,ci,…,cr};
進一步,所述水印提取和檢測具體包括:
(5a)目的節點sink依次從接收數據包rdata={rdata1,rdata2,…,rdatai,…,rdata8}中截取第i個數據項rdatai的后四位,得到32位的接收水印序列rw={rw1,rw2,…,rwi,…,rw8},其中第i個接收水印項rwi由4位二進制序列組成,i=1,2,…8;
(5b)按照下式,計算接收水印序列rw={rw1,rw2,…,rwi,…,rw8}與原始水印序列w={w1,w2,…wi,…,w8}是的誤差,其中
(5c)如果err等于0,說明數據包接收正確;反之,如果err不等于0,說明數據包遭受篡改,按照下式,依次修改由步驟(4d)得到的數據轉發節點集合c={c1,c2,…,ci,…,cr}中各個節點的安全度,
其中,si與si′分別為第i個數據轉發節點ci的當前安全度與修改后的安全度。
本發明的另一目的在于提供一種利用所述基于數字水印與能量均衡的無線傳感器網絡路由方法的無線傳感器網絡。
本發明提供的基于數字水印與能量均衡的無線傳感器網絡路由方法,克服了現有方法未能充分考慮網絡節點能量均衡以及未能有效實現數據安全傳輸的缺陷,進而提高了無線傳感器網絡的綜合性能。首先生成水印并將其嵌入到待傳輸的數據包中,然后在綜合考慮距離、安全度與剩余能量的基礎上,引入節點質量評估度進行下一跳節點的優化選擇,隨后,通過對接收數據包中水印的檢測判斷該數據包是否在傳輸過程中遭受篡改,并自適應地調整節點安全度,最終實現無線傳感器網絡中數據的安全有效傳輸。本發明提高了無線傳感器網絡的網絡壽命,更好地實現了下一跳節點的優化選擇,具有節點能量均衡以及數據安全認證的優點,整體性能優于同類方法,可用于無線傳感器網絡的路由選擇。
與現有技術相比,本發明具有以下優點:
第一,本發明在綜合考慮距離、安全度與剩余能量的基礎上,引入節點質量評估度進行下一跳節點的優化選擇,克服了gpsr算法僅以距離為條件的路由選擇思路,使本發明具有節點能量均衡、網絡壽命長等優點。
第二,本發明在數據傳輸過程中通過數字水印的嵌入與檢測實現了數據篡改的鑒別,并采用自適應調節安全度的方式克服了“無線傳感器網絡中基于校驗碼的數據可靠性保護方法”(申請號:201510432030.4,申請公開號:cn105072618a)未能對數據包傳輸路徑安全性進行標定的問題,使本發明具有無線傳感器網絡數據安全認證與傳輸的優點。
附圖說明
圖1是本發明實施例提供的一種基于數字水印與能量均衡的無線傳感器網絡路由方法流程圖。
圖2是本發明實施例提供的無線傳感器網絡工作區域圖。
圖3是本發明實施例提供的含水印數據包結構圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
下面結合附圖對本發明的應用原理作詳細的描述。
如圖1所示,本發明實施例提供的一種基于數字水印與能量均衡的無線傳感器網絡路由方法包括以下步驟:
s101:首先生成水印并將其嵌入到待傳輸的數據包中,然后在綜合考慮距離、安全度與剩余能量的基礎上,引入節點質量評估度進行下一跳節點的優化選擇;
s102:隨后,通過對接收數據包中水印的檢測判斷該數據包是否在傳輸過程中遭受篡改,并自適應地調整節點安全度,最終實現無線傳感器網絡中數據的安全有效傳輸。
下面結合具體實施例對本發明的應用原理作進一步的描述。
步驟1,無線傳感器網絡節點部署。
如圖2所示,無線傳感器網絡工作區域中包括1個源節點n,1個目的節點sink和n個中間節點b={b1,b2,…,bn}。其中,源節點n負責生成含水印數據包,目的節點sink負責接收數據包,中間節點b={b1,b2,…,bn}負責將源節點n生成的含水印數據包傳輸到目的節點sink,每個中間節點包括能量、安全度及位置三個屬性,其中第i個中間節點的屬性分別記為能量ei∈[0,0.2],安全度si∈[0,10]及位置(xi,yi)。
步驟2,生成含水印數據包。
(2a)源節點n生成原始數據包data={data1,data2,…,datai,…,data8},其中第i個數據項datai由28位二進制序列組成,i=1,2,…8;
(2b)生成32位原始水印序列w={w1,w2,…wi,…,w8},其中第i個水印項wi由4位二進制序列組成,i=1,2,…8;
(2c)將第i個水印項wi追加到第i個數據項datai后,得到32位的第i個含水印數據項wdatai,重復這一過程直到得到含水印數據包wdata={wdata1,wdata2,…,wdatai,…,wdata8},i=1,2,…8,如圖3所示。
步驟3,選擇鄰居節點。
(3a)選定源節點n作為當前節點,記為u;
(3b)按照下式,計算當前節點u到目的節點sink的距離dusink:
其中(xu,yu)為當前節點u的位置,(xsink,ysink)為目的節點sink的位置;
(3c)根據公式tr=πr2計算當前節點u的傳輸范圍tr,并將當前節點u傳輸范圍tr內的所有中間節點作為候選鄰居節點,得到候選鄰居節點集合bm={bm1,bm2,…,bmi,…,bmm},其中π為圓周率3.14,r為當前節點u的傳輸半徑,即當前節點u能夠傳輸數據的最大距離;
(3d)按照下式,計算第i個候選鄰居節點bmi到目的節點sink的距離di并將其與當前節點u到目的節點sink的距離dusink進行比較,
如果di<dusink,則將第i個候選鄰居節點bmi作為鄰居節點放入鄰居節點集合bh中,其中(xi,yi)為候選鄰居節點bmi的位置,i=1,2,…m,(xsink,ysink)為目的節點sink的位置;
(3e)重復步驟(3d),直到處理完候選鄰居節點集合bm={bm1,bm2,…,bmi,…,bmm}中的所有候選鄰居節點,得到鄰居節點集合bh={bh1,bh2,…,bhi,…,bhh}。
步驟4,轉發含水印數據包。
(4a)按照下式,計算第i個鄰居節點bhi的質量評估度mi:
其中,di表示第i個鄰居節點bhi到目的節點sink的距離,ei表示第i個鄰居節點bhi的能量,si表示第i個鄰居節點bhi的安全度,i=1,2,…h,α,β,γ為常數,取值范圍為[0,10];
(4b)重復步驟(4a),直到計算完鄰居節點集合bh={bh1,bh2,…,bhi,…,bhh}中的所有節點的質量評估度m={m1,m2,…,mi,…,mh};
(4c)對質量評估度m={m1,m2,…,mi,…,mh}進行排序,將質量評估度最小的鄰居節點選為下一跳節點,接收由當前節點u轉發的含水印數據包wdata,并將該下一跳節點記錄到數據轉發節點集合c中;
(4d)將下一跳節點作為當前節點u,重復步驟(3b)到(4c)直至將含水印數據包wdata發送到目的節點sink,得到接收數據包rdata={rdata1,rdata2,…,rdatai,…,rdata8}與數據轉發節點集合c={c1,c2,…,ci,…,cr}。
步驟5,水印提取和檢測。
(5a)目的節點sink依次從接收數據包rdata={rdata1,rdata2,…,rdatai,…,rdata8}中截取第i個數據項rdatai的后四位,得到32位的接收水印序列rw={rw1,rw2,…,rwi,…,rw8},其中第i個接收水印項rwi由4位二進制序列組成,i=1,2,…8;
(5b)按照下式,計算接收水印序列rw={rw1,rw2,…,rwi,…,rw8}與原始水印序列w={w1,w2,…wi,…,w8}是的誤差,其中
(5c)如果err等于0,說明數據包接收正確;反之,如果err不等于0,說明數據包遭受篡改,按照下式,依次修改由步驟(4d)得到的數據轉發節點集合c={c1,c2,…,ci,…,cr}中各個節點的安全度,
其中,si與si′分別為第i個數據轉發節點ci的當前安全度與修改后的安全度。
步驟6,重復步驟2~步驟5,直到無線傳感器網絡中任一中間節點找不到滿足條件的下一跳節點進行數據包轉發時終止。
下面結合仿真實驗對本發明的應用效果作詳細的描述。
1.實驗條件與實驗說明
本發明的軟件環境為美國opnet公司開發的opnet10.5。本實驗的一些記號為:將gpsr路由方法記為gpsr,將湖南科技大學申請的專利“無線傳感器網絡中基于校驗碼的數據可靠性保護方法”中的方法記為chec,本發明方法記為es。
2.實驗內容
實驗1:網絡壽命實驗
本發明進行網絡壽命實驗的具體過程是:首先由源節點n生成原始數據包后嵌入水印得到含水印數據包,然后通過路由算法計算下一跳節點進行數據包轉發,最終將含水印數據包發送到目的節點sink。在一次實驗中,源節點n不斷生成含水印數據包,直到無線傳感器網絡中任一中間節點找不到滿足條件的下一跳節點進行數據包轉發時終止。
本發明利用網絡壽命作為評判依據測試gpsr方法與本發明方法的性能,網絡壽命定義為一次實驗中無線傳感器網絡可以連續發送數據包的持續時間。顯然,網絡壽命越長,表明網絡中節點的能量使用越充分;反之網絡壽命越短,網絡中節點的能量使用越不充分。實驗中,本發明方法中的參數α,β,γ分別取值為2,4.5,0.1,節點傳輸半徑r為70米,中間節點的初始能量為0.2瓦,中間節點進行一次數據接收消耗356微瓦的能量,進行一次數據轉發消耗454微瓦的能量。
表1分別給出了不同網絡規模下gpsr方法與本發明方法的網絡壽命對比,其中網絡規模表示無線傳感器網絡中的節點個數。從實驗結果可以看出,在兩種網絡規模下,本發明方法的網絡壽命都長于gpsr方法。
表1.在不同網絡規模下的網絡壽命(秒)
實驗2:安全性實驗
本發明進行安全性實驗的具體過程是:首先,在當前網絡規模下,隨機地將一定比例的中間節點設置為攻擊節點;然后,源節點n產生數據包并利用路由算法選擇下一跳節點進行轉發,當攻擊節點被選為下一跳節點時會對數據包進行篡改后將其轉發;最后,目的節點sink對接收到的數據包進行檢測以確定在網絡傳輸過程中數據包是否遭受篡改。
本發明以丟包率plr作為評判依據測試chec方法和本發明方法的性能,丟包率plr定義為:
其中rp是指在一次實驗中目的節點sink接收到的數據包個數,ep是指在一次實驗中被篡改的數據包個數。在網絡規模固定的情況下,plr越小,表明目的節點sink正確接收數據包的個數越多,即網絡的安全性越好;反之,plr越大,表示目的節點sink正確接收數據包的個數越少,即網絡的安全性越差。
實驗中,中間節點的初始安全度為10,網絡規模為400,表2分別給出了不同攻擊節點比例下的丟包率。從上述實驗結果可以看出,在不同攻擊節點比例下本發明方法的丟包率均小于chec方法。
表2.在不同攻擊節點比例下的丟包率
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的思想和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。