輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法
【專利摘要】本發(fā)明公開了一種輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,包括如下階段:第一階段:系統(tǒng)初始化階段,基站生成單向密鑰鏈,并在各傳感器節(jié)點(diǎn)部署之前將密鑰鏈承諾值加入到各傳感器節(jié)點(diǎn)中;第二階段:數(shù)據(jù)包的前期處理階段,基站利用哈希函數(shù),構(gòu)建特定數(shù)據(jù)項(xiàng)的合法數(shù)據(jù)包;第三階段:數(shù)據(jù)包驗(yàn)證階段,傳感器節(jié)點(diǎn)對(duì)接收到的數(shù)據(jù)包進(jìn)行驗(yàn)證,如果接收到的數(shù)據(jù)包為合法的數(shù)據(jù)包,則接受該數(shù)據(jù)包并對(duì)傳感器節(jié)點(diǎn)進(jìn)行更新,否則直接放棄該數(shù)據(jù)包。本發(fā)明考慮了常用的傳感器節(jié)點(diǎn)資源受限的情況,具有能抵抗傳感器節(jié)點(diǎn)妥協(xié),在丟包以及數(shù)據(jù)包傳送失序上具有高魯棒性、基站與傳感器節(jié)點(diǎn)之間無需時(shí)間同步等優(yōu)點(diǎn),同時(shí)兼具高效節(jié)能、存儲(chǔ)開銷較低、能抵抗惡意攻擊等優(yōu)秀特性。
【專利說明】輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及無線通信的【技術(shù)領(lǐng)域】,特別涉及一種輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法。
【背景技術(shù)】
[0002]目前,無線傳感器網(wǎng)絡(luò)的分布十分廣泛,應(yīng)用也多種多樣,包括環(huán)境監(jiān)測,戰(zhàn)地監(jiān)視以及在嚴(yán)酷地理環(huán)境下的數(shù)據(jù)獲取。在無線傳感器網(wǎng)絡(luò)中,能夠在網(wǎng)絡(luò)中分發(fā)小數(shù)據(jù)是一個(gè)很有用的操作功能。它允許基站往傳感器節(jié)點(diǎn)寫入一些小的程序,命令,查詢和配置參數(shù)。需要強(qiáng)調(diào)的是,小數(shù)據(jù)分發(fā)協(xié)議不同于已經(jīng)被深入研究的代碼分發(fā)(有時(shí)也被稱為數(shù)據(jù)分發(fā)或重編程)協(xié)議。代碼分發(fā)是將新的二進(jìn)制文件分布到網(wǎng)絡(luò)中,從而實(shí)現(xiàn)完整的系統(tǒng)重編程。舉例來說,高效地分發(fā)幾萬字節(jié)的二進(jìn)制文件需要代碼分發(fā)協(xié)議,而分發(fā)幾個(gè)大小為兩個(gè)字節(jié)的配置參數(shù),需要小數(shù)據(jù)分發(fā)協(xié)議。
[0003]最近,一些小數(shù)據(jù)分發(fā)協(xié)議已經(jīng)被提出。其中,Drip, DIP和DHV代表了當(dāng)前的水平。這些協(xié)議假設(shè)無線傳感器網(wǎng)絡(luò)工作在一個(gè)受信任的環(huán)境下,它不同于真正的實(shí)際情況。實(shí)際情況中,可能有攻擊者打算破壞運(yùn)行的無線傳感器網(wǎng)絡(luò)。例如,當(dāng)一個(gè)無線傳感器網(wǎng)絡(luò)在偏遠(yuǎn)地區(qū)工作,以監(jiān)督非法活動(dòng),如遇到槍支卸貨和非法作物種植,攻擊者可以在注入的數(shù)據(jù)項(xiàng)中包括“網(wǎng)絡(luò)休眠很長一段時(shí)間(network dormancy for a long period)”命令,從而關(guān)閉監(jiān)控功能。
[0004]因此,驗(yàn)證分發(fā)的數(shù)據(jù)項(xiàng)的合法性非常重要,這樣傳感器節(jié)點(diǎn)可以驗(yàn)證來自受信任的源的數(shù)據(jù)項(xiàng),并保證數(shù)據(jù)項(xiàng)在傳輸過程中不被修改。因此,傳感器節(jié)點(diǎn)需要依靠認(rèn)證機(jī)制,以確保在運(yùn)輸過程中這些來自可信來源的項(xiàng)目的數(shù)據(jù)沒有被更改。
[0005]通常情況下,認(rèn)證廣播消息依賴于數(shù)字簽名(例如,the Rivest, Shamir, andAdleman(RSA)簽名和Elliptic Curve Cryptography (ECC)簽名)和它們的加強(qiáng)變化版本(例如,群簽名,環(huán)簽名,盲簽名),混合方法以及對(duì)稱密鑰加密。不幸的是,它們?cè)诜?wù)于確保小數(shù)據(jù)分發(fā)時(shí),也有一些安全漏洞和效率問題。例如,數(shù)字簽名驗(yàn)證技術(shù)會(huì)導(dǎo)致很高的計(jì)算和存儲(chǔ)開銷,因此,該方法不適合資源有限的傳感器節(jié)點(diǎn)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,保證了小數(shù)據(jù)分發(fā)過程的效率和安全性。
[0007]為了達(dá)到上述目的,本發(fā)明采用以下技術(shù)方案:
[0008]輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,包括如下三個(gè)階段:
[0009]第一階段:系統(tǒng)初始化階段,基站生成單向密鑰鏈,并在各傳感器節(jié)點(diǎn)部署之前將密鑰鏈承諾值(key chain commitment)加入到各傳感器節(jié)點(diǎn)中;
[0010]第二階段:數(shù)據(jù)包的前期處理階段,需要發(fā)送數(shù)據(jù)的基站或傳感器節(jié)點(diǎn)利用哈希函數(shù)H (.),構(gòu)建特定數(shù)據(jù)項(xiàng)的合法數(shù)據(jù)包;[0011]第三階段:數(shù)據(jù)包驗(yàn)證階段:傳感器節(jié)點(diǎn)對(duì)接收到的數(shù)據(jù)包進(jìn)行驗(yàn)證,如果接收到的數(shù)據(jù)包為合法的數(shù)據(jù)包,則接受該數(shù)據(jù)包并對(duì)傳感器節(jié)點(diǎn)進(jìn)行更新,否則直接放棄該數(shù)據(jù)包。
[0012]所述第一階段包括以下步驟:
[0013]A、基站挑選一個(gè)隨機(jī)數(shù)Kb ;
[0014]B、根據(jù)Kb生成一個(gè)單向密鑰鏈,由K。,K1,…Kb組成,其中Kj = H(KJ+1) (j =b-l,b-2,- ,O);
[0015]C、基站預(yù)分配密鑰鏈,保證密鑰鏈承諾值Ktl在傳感器節(jié)點(diǎn)網(wǎng)絡(luò)部署之前已經(jīng)被裝載到每個(gè)傳感器節(jié)點(diǎn)中。
[0016]步驟B中,所述的單向密鑰鏈生成方法為,以基站選擇的隨機(jī)數(shù)作為單向密鑰鏈的頭節(jié)點(diǎn),其后的每一個(gè)密鑰鏈節(jié)點(diǎn)上的謎鍵都由前一個(gè)密鑰鏈節(jié)點(diǎn)上的謎鍵通過哈希函數(shù)進(jìn)行哈希而得到,單向密鑰鏈的長度可以是任意的,但不應(yīng)小于網(wǎng)絡(luò)生命周期中基站將分發(fā)的數(shù)據(jù)項(xiàng)數(shù)。
[0017]所述第二階段包括以下步驟:
[0018]1、對(duì)于每一輪數(shù)據(jù)分發(fā), 假設(shè)為第j輪,基站使用鏈鍵(puzzle key) Kj ;
[0019]I1、將數(shù)據(jù)項(xiàng)dj的輪值(round)設(shè)為j ;
[0020]II1、數(shù)據(jù)項(xiàng)dj以及鏈鍵(puzzIe key)Κ」構(gòu)成了一個(gè)具有特定消息的鏈(puzzIe)。
[0021]1111、上述具有特定消息的鏈(puzzle)和一個(gè)有效的解答Lj再加上包頭(packetheader)構(gòu)成一個(gè)合法的數(shù)據(jù)包(packet)。其中一個(gè)有效的解答Lj是指這樣一個(gè)數(shù),它使得有效載荷的哈希結(jié)果的前I位全為O。這里的有效載荷指由謎(puzzle)和解答Lj組成的項(xiàng),I稱為強(qiáng)度參數(shù),它的值由基站確定。
[0022]IIII1、步驟II中的數(shù)據(jù)項(xiàng)用四元組(round, key, version, data)來表示,這里輪值(round)表示數(shù)據(jù)項(xiàng)的分發(fā)新舊程度(round值越大,數(shù)據(jù)項(xiàng)的分發(fā)越新),變量標(biāo)識(shí)(key)唯一標(biāo)識(shí)要被更新的變量,版本號(hào)(version)表示數(shù)據(jù)項(xiàng)的新舊程度(version值越大,數(shù)據(jù)項(xiàng)越新),數(shù)據(jù)(data)表示要分發(fā)的數(shù)據(jù)。
[0023]所述第三階段包括以下步驟:
[0024]a、傳感器節(jié)點(diǎn)從任意一個(gè)相鄰的一跳傳感器節(jié)點(diǎn)或基站接收到一個(gè)數(shù)據(jù)包Pi ;
[0025]b、驗(yàn)證接收的數(shù)據(jù)包的輪值(round),從而確定該數(shù)據(jù)包的分發(fā)新舊(有可能為新一輪分發(fā),同一輪分發(fā)或者舊一輪分發(fā));
[0026]C、如果數(shù)據(jù)包是新一輪分發(fā)的數(shù)據(jù)包,則驗(yàn)證步驟如下:
[0027]I)驗(yàn)證包P」中的鏈鍵(puzzle key) Kj是利用有效的哈希函數(shù)H(.)和密鑰鏈承諾值Ktl得到的結(jié)果以及驗(yàn)證該謎鍵沒有被之前的任何一個(gè)有效數(shù)據(jù)項(xiàng)使用過,如果通過驗(yàn)證,則執(zhí)行2),否則執(zhí)行5)。
[0028]2)檢查H(Pj)的前I位是否為0,如果前I位為0,則執(zhí)行3),否則執(zhí)行5)。
[0029]3)檢查Pj中版本號(hào)(version)和變量標(biāo)識(shí)(key)的有效性,即確認(rèn)其為新版本,如果確認(rèn)其為新版本,則執(zhí)行4),否則執(zhí)行5)。
[0030]4)根據(jù)數(shù)據(jù)包的變量標(biāo)識(shí)(key)來更新數(shù)據(jù),同時(shí)用Pj包中相應(yīng)的輪值(round)和鏈鍵(puzzle key)來更新它所存儲(chǔ)的輪值(round)和鏈鍵(puzzle key)。
[0031]5)丟棄該數(shù)據(jù)包。[0032]d、如果數(shù)據(jù)包中的輪值(round)與節(jié)點(diǎn)當(dāng)前存儲(chǔ)的輪值(round)相等,即節(jié)點(diǎn)當(dāng)前接收到的數(shù)據(jù)包與上一次接受的數(shù)據(jù)包屬于同一輪分發(fā),則通過Trickle算法來增加分發(fā)的時(shí)間間隔;
[0033]e、如果數(shù)據(jù)包是舊一輪分發(fā)的數(shù)據(jù)包,則傳感器節(jié)點(diǎn)分發(fā)它自己所儲(chǔ)存的數(shù)據(jù)包。
[0034]我們提供輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法(被稱為LightDrip,下同),該方法保證了小數(shù)據(jù)分發(fā)過程的效率和安全性。
[0035]與DIP和DHV不同,Drip將每一個(gè)數(shù)據(jù)項(xiàng)作為一個(gè)獨(dú)立的實(shí)體進(jìn)行分發(fā),因而對(duì)數(shù)據(jù)項(xiàng)的分發(fā)時(shí)間以及速度具有更好的控制。這里,我們主要將精力集中于安全的Drip協(xié)議。在LightDrip中,我們將Drip的三元組(key, version, data)延展到四元組(round,key, version, data)來表示一個(gè)數(shù)據(jù)項(xiàng),這里的round表示數(shù)據(jù)項(xiàng)的分發(fā)新舊程度(round值越大,數(shù)據(jù)項(xiàng)的分發(fā)越新),而其他的三個(gè)元素與現(xiàn)有協(xié)議具有相同的含義,即key唯一標(biāo)識(shí)要被更新的變量,version表示數(shù)據(jù)項(xiàng)的新舊程度(version值越大,數(shù)據(jù)項(xiàng)越新),data表示要分發(fā)的數(shù)據(jù)。特別地,我們說明如何利用其高效的基礎(chǔ)分發(fā)策略來開發(fā)Drip的一個(gè)安全的擴(kuò)展(即,Trickle)。顯然,同樣的方法也可用于為其他小數(shù)據(jù)分發(fā)協(xié)議提供安全性保護(hù),例如DIP和DHV,它們之間唯一的區(qū)別是如何在傳感器節(jié)點(diǎn)之間搜索不同的數(shù)據(jù)項(xiàng)來實(shí)現(xiàn)高效消息傳輸。
[0036]我們集中研究輕量級(jí)的安全機(jī)制,設(shè)計(jì)我們的協(xié)議來為基站分擔(dān)盡可能多的處理工作。此協(xié)議有三階段組成:系統(tǒng)初始化,數(shù)據(jù)包的前期處理,數(shù)據(jù)包驗(yàn)證。在部署網(wǎng)絡(luò)前執(zhí)行系統(tǒng)初始化階段。在此階段,基站建立單向密鑰鏈,并保證將密鑰鏈承諾值加載到每個(gè)傳感器節(jié)點(diǎn)。然后,在數(shù)據(jù)分發(fā)之前,基站通過解答謎(puzzle)信息,得到一個(gè)有效的解答,然后為數(shù)據(jù)項(xiàng)構(gòu)造數(shù)據(jù)包,來執(zhí)行數(shù)據(jù)包的前期處理階段。在最后一個(gè)階段,數(shù)據(jù)包驗(yàn)證階段,每個(gè)傳感器節(jié)點(diǎn)獨(dú)立驗(yàn)證每一個(gè)接收到的數(shù)據(jù)包。如果驗(yàn)證通過,則根據(jù)接收到的數(shù)據(jù)更新數(shù)據(jù)包。
[0037]在安全性以及效率方面,LightDrip比基于PKC的安全系統(tǒng),混合方法,和基于對(duì)稱密鑰加密技術(shù)的安全性解決方案更為合適。
[0038]本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
[0039](I)抵抗傳感器節(jié)點(diǎn)的妥協(xié):不管有多少個(gè)傳感器節(jié)點(diǎn)被破壞,只要未被損壞的傳感器節(jié)點(diǎn)的子集仍能與基站形成一個(gè)連通圖,那么協(xié)議就對(duì)傳感器節(jié)點(diǎn)的妥協(xié)具有抵抗彈性;
[0040](2)在丟包和數(shù)據(jù)包傳送失序上具有高魯棒性:在無線傳感器網(wǎng)絡(luò)中相對(duì)較多的數(shù)據(jù)包丟失事件以及亂序數(shù)據(jù)包的到達(dá)需要能容忍高數(shù)據(jù)丟失率以及亂序數(shù)據(jù)包傳輸?shù)脑O(shè)計(jì);
[0041](3)基站與傳感器節(jié)點(diǎn)之間不需要時(shí)間上的同步:基站與傳感器節(jié)點(diǎn)之間不要求同步。因此,不用假設(shè)數(shù)據(jù)包到達(dá)的時(shí)間間隔,一旦數(shù)據(jù)包傳送到傳感器節(jié)點(diǎn),它能立刻被驗(yàn)證。
[0042]( 4 )其他優(yōu)點(diǎn):高效節(jié)能(對(duì)于通信和計(jì)算),較低的存儲(chǔ)開銷,能抵抗惡意攻擊等?!緦@綀D】
【附圖說明】[0043]圖1是本發(fā)明的流程圖。
[0044]圖2是單向密鑰鏈的形成示意圖。
[0045]圖3是具有特定消息的加密包的構(gòu)成圖。
【具體實(shí)施方式】
[0046]下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
[0047]實(shí)施例
[0048]如圖1所示,本協(xié)議分為系統(tǒng)初始化、數(shù)據(jù)包的前期處理和數(shù)據(jù)包驗(yàn)證三個(gè)階段,具體如下:
[0049]第一階段:系統(tǒng)初始化階段,基站生成單向密鑰鏈,并在各傳感器節(jié)點(diǎn)部署之前將密鑰鏈承諾值加入到傳感器節(jié)點(diǎn)中;
[0050]第二階段:數(shù)據(jù)包的前期處理階段,基站利用哈希函數(shù),構(gòu)建特定數(shù)據(jù)項(xiàng)的合法數(shù)據(jù)包;
[0051]第三階段:數(shù)據(jù)包驗(yàn)證階段,傳感器節(jié)點(diǎn)對(duì)接收到的數(shù)據(jù)包進(jìn)行驗(yàn)證,如果接收到的數(shù)據(jù)包為合法的數(shù)據(jù)包,則接受該數(shù)據(jù)包并對(duì)傳感器節(jié)點(diǎn)進(jìn)行更新,否則直接放棄該數(shù)據(jù)包。
[0052]在系統(tǒng)初始化階段,如圖2所示,基站挑選一個(gè)隨機(jī)數(shù)Kb,然后生成一個(gè)單向密鑰鏈,由1((|,1(1,一1(13組成, 其中1(」=!10(」+1) (j = b-l,b-2,...,())。然后,基站預(yù)分配密鑰鏈,保證密鑰鏈承諾值Ktl在傳感器節(jié)點(diǎn)網(wǎng)絡(luò)部署之前加入到每個(gè)傳感器節(jié)點(diǎn)中。密鑰Ktl, K1,…Kb稱為鏈鍵(puzzle key),鏈鍵(puzzle key) Kj用于第j輪分發(fā),其中j > O。這里每條鏈的長度b可以是任意的,但不應(yīng)小于網(wǎng)絡(luò)生命周期中基站將分發(fā)的數(shù)據(jù)項(xiàng)數(shù)。
[0053]在LightDrip中,我們將Drip的三元組(key, version, data)延展到四元組(round, key, version, data)來表示一個(gè)數(shù)據(jù)項(xiàng),這里的round表示數(shù)據(jù)項(xiàng)的分發(fā)新舊程度(round值越大,數(shù)據(jù)項(xiàng)的分發(fā)越新),而其他的三個(gè)元素與現(xiàn)有協(xié)議具有相同的含義,SPkey唯一標(biāo)識(shí)要被更新的變量,version表示數(shù)據(jù)項(xiàng)的新舊程度(version值越大,數(shù)據(jù)項(xiàng)越新),data表示要分發(fā)的數(shù)據(jù)。跟Drip的實(shí)現(xiàn)一樣,變量標(biāo)識(shí)(key)和版本號(hào)(version)的長度分別為2字節(jié)和4字節(jié)。每一輪可以將它們的字節(jié)長度設(shè)置到足夠長,例如,4個(gè)字節(jié),以避免在無線傳感器網(wǎng)絡(luò)的生命周期中它們一直環(huán)繞在某個(gè)實(shí)數(shù)空間。然而,為了減少開銷,如果環(huán)繞(wrap around)允許的話,可以使用每個(gè)字節(jié)4位的長度。由于預(yù)期的分發(fā)率并不是非常高,允許環(huán)繞(wrap around)應(yīng)該不會(huì)造成任何傳感器節(jié)點(diǎn)上的歧義。
[0054]在完成系統(tǒng)初始化階段后,進(jìn)入數(shù)據(jù)包的前期處理階段。如果基站想分發(fā)這樣一個(gè)數(shù)據(jù)項(xiàng):d= {round, key, version, data},它會(huì)執(zhí)行以下步驟來構(gòu)建d的數(shù)據(jù)包。在下文中,H(M)表示消息M的哈希值。
[0055]對(duì)于每一輪,假設(shè)為第j輪,基站使用鏈鍵(puzzle key) Kj,然后將數(shù)據(jù)項(xiàng)dj的round值設(shè)為j。數(shù)據(jù)項(xiàng)d」以及鏈鍵(puzzle key) Kj構(gòu)成了一個(gè)具有特定消息的鏈(puzzle)。如圖3所示,一個(gè)有效的解答Lj為,在對(duì)((IjIlKjIlLj)施加哈希函數(shù)H(.)時(shí),結(jié)果鏡像的前I位全為O。參數(shù)I決定了鏈(puzzle)的強(qiáng)度?;敬_定I的值,并在部署前將其加載到所有的傳感器節(jié)點(diǎn)中。在發(fā)送數(shù)據(jù)包之前,基站嘗試通過尋找謎(puzzle)的解答h來解出該謎(puzzle)。隨后,基站會(huì)分發(fā)最終的數(shù)據(jù)包匕,它由包頭以及有效載荷(dj Il Kj Il Lj)組成。
[0056]第三個(gè)階段是數(shù)據(jù)包驗(yàn)證階段。當(dāng)傳感器節(jié)點(diǎn)接收到一個(gè)數(shù)據(jù)包時(shí)(該數(shù)據(jù)包從任意一個(gè)相鄰的一跳傳感器節(jié)點(diǎn)或基站接收到),每個(gè)傳感器節(jié)點(diǎn),假設(shè)為Si,執(zhí)行以下操作:
[0057](I)如果這是新一輪分發(fā)(B卩,接收到的數(shù)據(jù)包中的輪值(round)大于已存儲(chǔ)的(round, puzzle key)中的輪值(round)),傳感器節(jié)點(diǎn)Si有以下的驗(yàn)證順序:
[0058]a)驗(yàn)證包P」中的鏈鍵(puzzle key) Kj是利用有效的哈希函數(shù)H(.)和密鑰鏈承諾值Ktl得到的結(jié)果以及驗(yàn)證該謎鍵沒有被之前的任何一個(gè)有效數(shù)據(jù)項(xiàng)使用過,如果通過驗(yàn)證,則執(zhí)行b),否則執(zhí)行e)。
[0059]b)檢查H(Pj)的前I位是否為0,如果前I位為0,則執(zhí)行C),否則執(zhí)行e)。
[0060]c)檢查Pj中版本號(hào)(version)和變量標(biāo)識(shí)(key)的有效性,即確認(rèn)其為新版本,如果確認(rèn)其為新版本,則執(zhí)行d),否則執(zhí)行e)。
[0061]d)根據(jù)數(shù)據(jù)包的變量標(biāo)識(shí)(key)來更新數(shù)據(jù),同時(shí)用Pj包中相應(yīng)的輪值(round)和鏈鍵(puzzle key)來更新它所存儲(chǔ)的輪值(round)和鏈鍵(puzzle key)。
[0062]e)丟棄該數(shù)據(jù)包。
[0063](2)如果傳感器節(jié)ASi最近曾接收到一個(gè)與其分發(fā)新舊相同的數(shù)據(jù)包(B卩,接收到的數(shù)據(jù)包中的輪值(round)等于已存儲(chǔ)的輪值(round)),它會(huì)通過Trickle算法來增加分發(fā)的時(shí)間間隔。這樣當(dāng)網(wǎng)絡(luò)是一致時(shí),通過這種方法可以減少傳感器節(jié)點(diǎn)的能量消耗。
[0064](3)如果當(dāng)前遇到了舊一輪分發(fā)(B卩,接收到的數(shù)據(jù)包中的輪值(ixnmd)小于已存儲(chǔ)的輪值(round)和鏈鍵(puzzle key)中的輪值(round)),也就是說,其相鄰的一跳傳感器節(jié)點(diǎn)所分發(fā)的數(shù)據(jù)包是舊的,那么傳感器節(jié)點(diǎn)Si分發(fā)它所儲(chǔ)存的數(shù)據(jù)包。
[0065]本發(fā)明中有關(guān)的技術(shù)術(shù)語代表的含義如下:
[0066]K」表示第j輪分發(fā)的鏈鍵(puzzle key);
[0067]Clj表示第j個(gè)數(shù)據(jù)項(xiàng)的內(nèi)容;
[0068]Pj表示第j個(gè)數(shù)據(jù)包;
[0069]H(Pj)表示數(shù)據(jù)包Pj的哈希值;
[0070]Lj表示第j輪一個(gè)有效的解答。
[0071]上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,包括如下階段: 第一階段:系統(tǒng)初始化階段,在此階段,基站隨機(jī)挑選一個(gè)數(shù),根據(jù)該數(shù)生成一條單向密鑰鏈,并在各傳感器節(jié)點(diǎn)部署之前將密鑰鏈承諾值加入到各傳感器節(jié)點(diǎn)中; 第二階段:數(shù)據(jù)包的前期處理階段,在此階段基站利用哈希函數(shù),根據(jù)需要分發(fā)的特定的小數(shù)據(jù)項(xiàng),構(gòu)造一個(gè)屬于該數(shù)據(jù)項(xiàng)的合法數(shù)據(jù)包; 第三階段:數(shù)據(jù)包驗(yàn)證階段,傳感器節(jié)點(diǎn)對(duì)接收到的數(shù)據(jù)包進(jìn)行驗(yàn)證,如果接收到的數(shù)據(jù)包為合法的數(shù)據(jù)包,則接受該數(shù)據(jù)包并對(duì)傳感器節(jié)點(diǎn)進(jìn)行更新,否則直接放棄該數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,所述第一階段包括下述步驟: A、基站挑選一個(gè)隨機(jī)數(shù); B、基站根據(jù)該隨機(jī)數(shù),利用哈希函數(shù)來生成一個(gè)單向密鑰鏈,密鑰鏈上的密鑰稱為謎鍵; C、基站將密鑰鏈承諾值裝載到每個(gè)傳感器節(jié)點(diǎn)中,其中單向密鑰鏈的最后一個(gè)謎鍵稱為密鑰鏈承諾值。
3.根據(jù)權(quán)利要求2 所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,步驟B中,所述的單向密鑰鏈生成方法為,以基站選擇的隨機(jī)數(shù)作為單向密鑰鏈的頭節(jié)點(diǎn),其后的每一個(gè)密鑰鏈節(jié)點(diǎn)上的謎鍵都由前一個(gè)密鑰鏈節(jié)點(diǎn)上的謎鍵通過哈希函數(shù)進(jìn)行哈希而得到,單向密鑰鏈的長度可以是任意的,但不應(yīng)小于網(wǎng)絡(luò)生命周期中基站將分發(fā)的數(shù)據(jù)項(xiàng)數(shù)。
4.根據(jù)權(quán)利要求1所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,所述第二階段包括以下步驟: 1、對(duì)于每一輪數(shù)據(jù)分發(fā),基站使用與該輪分發(fā)對(duì)應(yīng)的謎鍵; I1、將該輪所要分發(fā)的數(shù)據(jù)項(xiàng)的輪值設(shè)為該輪的輪次; II1、該輪所要分發(fā)的數(shù)據(jù)項(xiàng)以及謎鍵構(gòu)成一個(gè)具有特定消息的謎; 1111、上述具有特定消息的謎和一個(gè)有效的解答再加上包頭構(gòu)成一個(gè)合法的數(shù)據(jù)包;其中一個(gè)有效的解答是指這樣一個(gè)數(shù),它使得有效載荷經(jīng)過哈希后,哈希結(jié)果的前面若干位為零,這里零的位數(shù)稱為強(qiáng)度參數(shù)。
5.根據(jù)權(quán)利要求4所述的輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,在步驟I中,從單向密鑰鏈的密鑰鏈承諾值開始,我們對(duì)單向密鑰鏈上的謎鍵從零開始進(jìn)行編號(hào),在進(jìn)行數(shù)據(jù)分發(fā)時(shí),根據(jù)當(dāng)前的分發(fā)輪次,我們使用編號(hào)為該輪次的謎鍵。
6.根據(jù)權(quán)利要求4所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,步驟II中,所述的數(shù)據(jù)項(xiàng)包括輪值、變量標(biāo)識(shí)、版本號(hào)和數(shù)據(jù);其中,輪值表示數(shù)據(jù)項(xiàng)的分發(fā)新舊程度,變量標(biāo)識(shí)唯一標(biāo)識(shí)要被更新的變量,版本號(hào)表示數(shù)據(jù)項(xiàng)的新舊程度,數(shù)據(jù)表示要分發(fā)的數(shù)據(jù)。
7.根據(jù)權(quán)利要求4所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,步驟IIII所述的有效載荷指由謎和該解答組成的項(xiàng),強(qiáng)度參數(shù)的值由基站確定。
8.根據(jù)權(quán)利要求1所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,所述第三階段包括以下步驟: a、傳感器節(jié)點(diǎn)從任意一個(gè)相鄰的一跳傳感器節(jié)點(diǎn)或基站接收到一個(gè)數(shù)據(jù)包;b、傳感器節(jié)點(diǎn)驗(yàn)證接收到的數(shù)據(jù)包的輪值,從而確定該數(shù)據(jù)包的分發(fā)新舊,如果是新一輪分發(fā),則執(zhí)行步驟C,如果是同一輪分發(fā),則執(zhí)行步驟d,如果是舊一輪分發(fā),則執(zhí)行步驟e; C、如果接收到的數(shù)據(jù)包是新一輪分發(fā)的數(shù)據(jù)包,則傳感器節(jié)點(diǎn)執(zhí)行數(shù)據(jù)包的驗(yàn)證步驟; d、如果接收的數(shù)據(jù)包與當(dāng)前數(shù)據(jù)包屬于同一輪分發(fā),則通過Trickle算法來增加該數(shù)據(jù)包分發(fā)的時(shí)間間隔; e、如果接收到的數(shù)據(jù)包是舊一輪分發(fā)的數(shù)據(jù)包,則傳感器節(jié)點(diǎn)分發(fā)它自己所儲(chǔ)存的數(shù)據(jù)包。
9.根據(jù)權(quán)利要求8所述輕量級(jí)的無線傳感器網(wǎng)絡(luò)安全小數(shù)據(jù)分發(fā)方法,其特征在于,步驟c中,傳感器節(jié)點(diǎn)執(zhí)行的驗(yàn)證步驟的具體方法如下: 1)驗(yàn)證數(shù)據(jù)包中的謎鍵是利用有效的哈希函數(shù)和密鑰鏈承諾值得到的結(jié)果以及驗(yàn)證該謎鍵沒有被之前的任何一個(gè)有效數(shù)據(jù)項(xiàng)使用過,如果通過驗(yàn)證,則執(zhí)行2),否則執(zhí)行5); 2)根據(jù)基站確定的強(qiáng)度參數(shù)的值,檢查該數(shù)據(jù)包哈希值前若干位為零的位數(shù)是否與該強(qiáng)度參數(shù)相等,如果相等,則執(zhí)行3),否則執(zhí)行5); 3)檢查該數(shù)據(jù)包中版本號(hào)和變量標(biāo)識(shí)的有效性,即確認(rèn)其為新版本,如果確認(rèn)其為新版本,則執(zhí)行4),否則執(zhí)行5); 4)根據(jù)該數(shù)據(jù)包的變量標(biāo)識(shí)來更新數(shù)據(jù),同時(shí)用數(shù)據(jù)包中相應(yīng)的輪值和謎鍵來更新傳感器節(jié)點(diǎn)所存儲(chǔ)的輪值和謎鍵; 5)丟棄接收到的數(shù)據(jù)包。
【文檔編號(hào)】H04W84/18GK103702325SQ201310705568
【公開日】2014年4月2日 申請(qǐng)日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】何道敬, 黃子超, 林濤 申請(qǐng)人:華南理工大學(xué)