輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)與分發(fā)方法
【專利摘要】本發(fā)明公開了一種輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,包括如下三個(gè)階段:第一階段:基站將傳感器節(jié)點(diǎn)分組,同時(shí)為每一個(gè)傳感器節(jié)點(diǎn)組創(chuàng)建一條單向密鑰哈希鏈,并且將哈希鏈的定向哈希值分配給對應(yīng)群組的傳感器節(jié)點(diǎn)作為密鑰;第二階段:基站執(zhí)行數(shù)據(jù)包的預(yù)處理,即構(gòu)建數(shù)據(jù)包,然后再分發(fā)數(shù)據(jù)包;第三階段:傳感器節(jié)點(diǎn)在接收到數(shù)據(jù)包后恢復(fù)該數(shù)據(jù)包所包含的群組信息并判斷所述接收的數(shù)據(jù)包是否合法,最后根據(jù)判斷結(jié)果處理所述接收到的數(shù)據(jù)包。本發(fā)明具有包括抵抗傳感器節(jié)點(diǎn)妥協(xié),在丟包和數(shù)據(jù)包傳送失序上具有高魯棒性、基站與傳感器節(jié)點(diǎn)間無需時(shí)間同步、不需利用數(shù)字簽名引導(dǎo)身份驗(yàn)證過程、允許動(dòng)態(tài)數(shù)據(jù)等優(yōu)點(diǎn)。
【專利說明】輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)與分發(fā)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及無線通信的【技術(shù)領(lǐng)域】,特別涉及一種輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)與分發(fā)方法。
【背景技術(shù)】
[0002]無線體域網(wǎng)(WirelessBody Area Networks 或者 Wireless Body SensorNetworks)是一種特殊的傳感網(wǎng)絡(luò),它能夠通過植入人體中的人體傳感器實(shí)時(shí)地檢測并報(bào)告病人的生理狀況,醫(yī)護(hù)人員通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù),及時(shí)地了解病人的健康狀況,給病人的健康治療帶來極大的便利。在無線體域網(wǎng)部署完成之后,為了調(diào)整傳感器節(jié)點(diǎn)的配置參數(shù)或者向傳感器節(jié)點(diǎn)分發(fā)管理命令和請求信息,常需要通過無線鏈路來傳遞數(shù)據(jù)。
[0003]現(xiàn)有的無線體域網(wǎng)數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,傳感器節(jié)點(diǎn)會(huì)周期性的廣播其自身保存的數(shù)據(jù)摘要(smiimary),并通過對比接收到的數(shù)據(jù)摘要和自身的數(shù)據(jù)摘要進(jìn)行廣播周期的調(diào)整。當(dāng)傳感器節(jié)點(diǎn)接收到的數(shù)據(jù)摘要比自身保存的數(shù)據(jù)摘要舊時(shí),傳感器節(jié)點(diǎn)將廣播自身的數(shù)據(jù)摘要;當(dāng)收到的數(shù)據(jù)摘要比自身數(shù)據(jù)摘要新時(shí),傳感器節(jié)點(diǎn)將更新自身的數(shù)據(jù)摘要;當(dāng)收到的數(shù)據(jù)摘要與自身數(shù)據(jù)摘要相同時(shí),傳感器節(jié)點(diǎn)將延長廣播周期以節(jié)省能量。這些現(xiàn)有的無線傳感器網(wǎng)絡(luò)發(fā)現(xiàn)和傳播方法,能保證數(shù)據(jù)傳輸?shù)目煽啃?,但是卻忽略了數(shù)據(jù)發(fā)現(xiàn)和傳播過程的安全性。在敵對環(huán)境中,攻擊者可以通過發(fā)起竊聽攻擊、拒絕服務(wù)攻擊等多種惡意攻擊來更改或替換傳感器節(jié)點(diǎn)的合法數(shù)據(jù)、把錯(cuò)誤數(shù)據(jù)引入到傳感器網(wǎng)絡(luò)或者刪除傳感器節(jié)點(diǎn)上的重要數(shù)據(jù)。這些攻擊會(huì)給無線體域網(wǎng)造成不可估量的損失,所以對于無線體域網(wǎng),安全的數(shù)據(jù)發(fā)現(xiàn)和傳播技術(shù)顯得十分重要。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法(命名為CoDrip,下同),該技術(shù)保證了數(shù)據(jù)發(fā)現(xiàn)和分發(fā)過程的效率和安全性。
[0005]本發(fā)明中有關(guān)的技術(shù)術(shù)語代表的含義如下:
[0006]K, j表示第j組傳感器節(jié)點(diǎn)的編號為i的單向密鑰哈希鏈節(jié)點(diǎn);
[0007]Cli表示第i個(gè)數(shù)據(jù)項(xiàng)的內(nèi)容;
[0008]E (X,K)表示用對稱密鑰K給數(shù)據(jù)項(xiàng)X進(jìn)行對稱加密;
[0009]D (X,K)表示用對稱密鑰K給數(shù)據(jù)項(xiàng)X進(jìn)行解密;
[0010]H(.)表示單向密鑰哈希函數(shù);
[0011]H(M)表示數(shù)據(jù)項(xiàng)M的哈希值;
[0012]Pi表示第i次分發(fā)的數(shù)據(jù)包;
[0013]I I表示連接運(yùn)算。
[0014]本發(fā)明的目的通過下述技術(shù)方案實(shí)現(xiàn):
[0015]第一階段:在程序初始化階段,基站將傳感器節(jié)點(diǎn)分組,同時(shí)為每一組傳感器節(jié)點(diǎn)生成一條單向密鑰哈希鏈,最后將各條哈希鏈的定向哈希值(committed value of the keychain)分配給對應(yīng)群組的傳感器節(jié)點(diǎn)。
[0016]第二階段:基站執(zhí)行數(shù)據(jù)包的預(yù)處理,即構(gòu)建數(shù)據(jù)包,然后分發(fā)數(shù)據(jù)項(xiàng)。
[0017]第三階段:傳感器節(jié)點(diǎn)在接收到數(shù)據(jù)包后恢復(fù)該數(shù)據(jù)包所包含的群組信息并判斷所述接收的數(shù)據(jù)包是否合法,最后根據(jù)判斷結(jié)果處理所述接收到的數(shù)據(jù)包。
[0018]所述第一階段包括如下步驟:
[0019]A.基站根據(jù)所要部署的傳感器節(jié)點(diǎn)跟基站之間的跳距大小將傳感器節(jié)點(diǎn)分組,跳距相同的傳感器節(jié)點(diǎn)在同一組;
[0020]B.基站為每個(gè)組選取一個(gè)隨機(jī)數(shù),并以隨機(jī)數(shù)為種子數(shù)字利用函數(shù)H(.)各生成一條長度為b的單向哈希鏈,其中b的取值為任意整數(shù),但必須是大于基站生命周期內(nèi)所能發(fā)送的數(shù)據(jù)項(xiàng)總數(shù),哈希鏈中每個(gè)哈希鏈節(jié)點(diǎn)值均由其前一個(gè)哈希鏈節(jié)點(diǎn)值作為參數(shù)通過HO函數(shù)計(jì)算而來(第一個(gè)哈希鏈節(jié)點(diǎn)的哈希值由選取的隨機(jī)數(shù)作為參數(shù)通過H(.)函數(shù)計(jì)算而來),哈希鏈中最后一個(gè)哈希值為定向哈希值;
[0021]C.利用B中的哈希鏈,將每一條哈希鏈的定向哈希值分配給對應(yīng)傳感器節(jié)點(diǎn)組的傳感器節(jié)點(diǎn)作為密鑰(該密鑰用于傳感器節(jié)點(diǎn)對接收的數(shù)據(jù)包進(jìn)行解密);
[0022]D.CoDrip用四元組(order, key, version, data)表示每一個(gè)數(shù)據(jù)項(xiàng),四個(gè)參數(shù)意義如下:order (級別)值表示數(shù)據(jù)分發(fā)級別(級別越高,數(shù)據(jù)分發(fā)(data dissemination)越新),key (變量標(biāo)識)值是需要更新變量的唯一標(biāo)識,version (版本號)用于表示數(shù)據(jù)新舊的版本號(version值越大,數(shù)據(jù)越新),data(數(shù)據(jù)值)則表示傳播的數(shù)據(jù)值(如參數(shù),命令或者請求)。key和version可以設(shè)置為2字節(jié)和4字節(jié)長。選用較長的字節(jié)數(shù),如4字節(jié)作為order的長度,可以避免數(shù)據(jù)包在網(wǎng)絡(luò)生存周期中,出現(xiàn)在實(shí)數(shù)空間中的環(huán)繞(wraparound)現(xiàn)象。另外,如果基站采用了滑動(dòng)窗口機(jī)制,則可以選擇只有4比特長度,避免因?yàn)樵趯?shí)數(shù)空間出現(xiàn)數(shù)值環(huán)繞(wrap around)而產(chǎn)生歧義。這樣的窗口機(jī)制要求基站做更多的處理,因此需要在order的比特長度(即CoDrip的傳輸開銷)選擇與基站的處理負(fù)載之間做出權(quán)衡。
[0023]所述的第二階段包括以下步驟:
[0024]1.基站通過函數(shù)E (HJ ,U II...I Ie(HnKK^n)對要分發(fā)的數(shù)據(jù)項(xiàng)進(jìn)行對稱加密,其中Cli為要分發(fā)的數(shù)據(jù)項(xiàng),Ku (I < j <N)為目標(biāo)傳感器節(jié)點(diǎn)接受數(shù)據(jù)包后要更新的密鑰值,Ki^jd ^ j ^ N)為每一層繼承的密鑰(即目標(biāo)傳感器節(jié)點(diǎn)存儲(chǔ)的密鑰)。
Ki^均為通過哈希函數(shù)H(.)計(jì)算而得的各個(gè)哈希鏈上的哈希值。基站利用傳感器節(jié)點(diǎn)上的密鑰對數(shù)據(jù)包進(jìn)行對稱加密的具體過程為:基站利用目標(biāo)傳感器節(jié)點(diǎn)現(xiàn)有的密鑰對數(shù)據(jù)包進(jìn)行對稱加密,所述數(shù)據(jù)包包含要分發(fā)的數(shù)據(jù)項(xiàng)與及目標(biāo)傳感器節(jié)點(diǎn)成功接受數(shù)據(jù)項(xiàng)之后要更新的密鑰值。最后基站將要分發(fā)到各個(gè)目標(biāo)傳感器節(jié)點(diǎn)的已進(jìn)行對稱加密的數(shù)據(jù)包連接在一起構(gòu)成一個(gè)新的數(shù)據(jù)包,其中,在一次分發(fā)過程中連接在一起的各個(gè)數(shù)據(jù)包所包含的數(shù)據(jù)項(xiàng)為同一個(gè)數(shù)據(jù)項(xiàng)。
[0025]I1.當(dāng)基站要分發(fā)數(shù)據(jù)給所有傳感器節(jié)點(diǎn)時(shí)使用廣播模式,要分發(fā)數(shù)據(jù)給一些特定的傳感器節(jié)點(diǎn)時(shí)使用多點(diǎn)傳輸模式,當(dāng)使用多點(diǎn)傳輸模式時(shí),目標(biāo)傳感器節(jié)點(diǎn)需根據(jù)數(shù)據(jù)項(xiàng)目標(biāo)域上的數(shù)據(jù)進(jìn)行H(.)運(yùn)算來確定數(shù)據(jù)包的真實(shí)性和完整性 [0026]所述的第三階段包括如下:[0027]a.傳感器節(jié)點(diǎn)利用自身存有的密鑰Ku1對接收到的數(shù)據(jù)包進(jìn)行解密,解密過程如下:基站發(fā)送的數(shù)據(jù)包傳送到目標(biāo)傳感器節(jié)點(diǎn)后,目標(biāo)傳感器節(jié)點(diǎn)利用自身的存儲(chǔ)的密鑰對其中連接在一起的各個(gè)數(shù)據(jù)包進(jìn)行逐一解密,只有經(jīng)過目標(biāo)傳感器節(jié)點(diǎn)存儲(chǔ)的密鑰加密過的數(shù)據(jù)包才能被目標(biāo)傳感器節(jié)點(diǎn)成功解密;具體公式為:
[0028]D (E ({d” Ki, J,Kh,i),Kh,^ = {d” Ki, 1]
[0029]b.成功解密后進(jìn)行數(shù)據(jù)包的數(shù)據(jù)分發(fā)級別比較,主要步驟如下:
[0030]1)若新的數(shù)據(jù)包的order值比傳感器節(jié)點(diǎn)上存儲(chǔ)的order值大則執(zhí)行步驟
[0031]2)否則執(zhí)行步驟5);
[0032]2)若傳感器節(jié)點(diǎn)上存有的Ku1跟以新接收的數(shù)據(jù)包的密鑰Km為參數(shù),通過哈希函數(shù)H(.)推導(dǎo)出的哈希值相同,則執(zhí)行步驟3)否則執(zhí)行步驟4);
[0033]3)傳感器節(jié)點(diǎn)將密鑰Km替換原來的密鑰Ki^,若數(shù)據(jù)項(xiàng)中的version是新的,則傳感器節(jié)點(diǎn)更新數(shù)據(jù),否則執(zhí)行步驟4);
[0034]4)拋棄這個(gè)數(shù)據(jù)包;
[0035]5)若新的數(shù)據(jù)包的order值與存儲(chǔ)在傳感器節(jié)點(diǎn)上的order值相等,則傳感器節(jié)點(diǎn)根據(jù)Trickle算法增大廣播數(shù)據(jù)包的時(shí)間間隔,否則傳感器節(jié)點(diǎn)廣播其自身存儲(chǔ)的數(shù)據(jù)包。
[0036]在多個(gè)單向密鑰哈希鏈的基礎(chǔ)上將Drip擴(kuò)展為一個(gè)安全的,輕量級的,保密并且抵御拒絕服務(wù)攻擊(Denial-of-Service, DoS)攻擊的數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法。
[0037]在CoDrip中通過執(zhí)行以下操作來建立多條哈希鏈:基站選取N個(gè)(傳感器節(jié)點(diǎn)的組數(shù))不同的隨機(jī)種子數(shù)字,并從這些種子數(shù)字開始計(jì)算出一個(gè)長度為b單向哈希鏈。其中,第b-1個(gè)哈希函數(shù)值是由第j個(gè)隨機(jī)種子數(shù)字(即Kb,p推導(dǎo)而來,并表示為Ku。每個(gè)鏈表的長度是可以任意改變的,但是不能少于基站在網(wǎng)絡(luò)生命周期內(nèi)想要分發(fā)的數(shù)據(jù)項(xiàng)的數(shù)目。第k個(gè)密鑰鏈的定向哈希值——K0,j對應(yīng)的跳距為j,它就作為第j組的傳感器節(jié)點(diǎn)密鑰,同時(shí)基站利用這個(gè)密鑰為發(fā)往第j組傳感器節(jié)點(diǎn)的數(shù)據(jù)包進(jìn)行對稱加密,然后再將數(shù)據(jù)包分發(fā)出去。CoDrip能在不產(chǎn)生數(shù)據(jù)延時(shí)情況下提供即時(shí)認(rèn)證,即使在一些傳感器節(jié)點(diǎn)被妥協(xié)的情況下,CoDrip仍然能保證數(shù)據(jù)發(fā)現(xiàn)和傳播的安全性。
[0038]無線體域網(wǎng)擁有一個(gè)固定的基站和大量流動(dòng)性強(qiáng)的傳感器節(jié)點(diǎn),并且傳感器節(jié)點(diǎn)的資源是非常有限的。因此在無線體域網(wǎng)數(shù)據(jù)發(fā)現(xiàn)和傳播方法中,采用Trickle算法進(jìn)行控制,傳感器節(jié)點(diǎn)周期性的廣播其擁有的數(shù)據(jù)摘要。如果所有傳感器節(jié)點(diǎn)數(shù)據(jù)一致,則廣播的時(shí)間間隔將指數(shù)型增長以便節(jié)省能源,反之,如果有傳感器節(jié)點(diǎn)檢測到了其他傳感器節(jié)點(diǎn)更新了數(shù)據(jù),廣播的時(shí)間間隔將縮小。這一特性容易被攻擊者利用以發(fā)起拒絕服務(wù)等惡意攻擊;CoDrip保留了原有數(shù)據(jù)發(fā)現(xiàn)和傳播方法的優(yōu)點(diǎn),同時(shí)加上對稱加密等機(jī)制,保證了數(shù)據(jù)發(fā)現(xiàn)和傳播過程的效率和安全性。
[0039]CoDrip利用無線人體傳感器上有限的資源為無線體域網(wǎng)建立一個(gè)數(shù)據(jù)發(fā)現(xiàn)和分發(fā)的安全機(jī)制。其主要特性包括數(shù)據(jù)的真實(shí)性和完整性保障,確保數(shù)據(jù)新鮮度,動(dòng)態(tài)數(shù)據(jù)的支持,能耗高效(相對于通信和計(jì)算),低存儲(chǔ)開銷,數(shù)據(jù)保密性,延遲容忍和即時(shí)認(rèn)證,抗惡意攻擊(如節(jié)點(diǎn)妥協(xié)和拒絕服務(wù)攻擊)。
[0040]本發(fā)明通過系統(tǒng)初始化階段、數(shù)據(jù)包預(yù)處理階段和數(shù)據(jù)包驗(yàn)證階段共三個(gè)階段完成。在系統(tǒng)初始化階段中,基站基于多個(gè)哈希鏈構(gòu)建密鑰;在數(shù)據(jù)包預(yù)處理階段,基站根據(jù)需要發(fā)送的數(shù)據(jù),基于多個(gè)哈希鏈構(gòu)建數(shù)據(jù)包并完成對稱加密,并向整個(gè)網(wǎng)絡(luò)廣播數(shù)據(jù)包;在數(shù)據(jù)包校驗(yàn)階段,各傳感器節(jié)點(diǎn)檢查數(shù)據(jù)包的真實(shí)性并完成數(shù)據(jù)的更新。所述安全數(shù)據(jù)發(fā)現(xiàn)和傳播方法,考慮到傳感器節(jié)點(diǎn)的資源限制,數(shù)據(jù)包丟失和數(shù)據(jù)包失序等問題,能夠在無需數(shù)據(jù)緩沖延時(shí)的情況下提供即時(shí)認(rèn)證,同時(shí)能抵抗如拒絕服務(wù)攻擊,拒絕服務(wù)攻擊等惡意攻擊。
[0041]本發(fā)明的工作原理:本發(fā)明基于多個(gè)哈希鏈,對著名的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)發(fā)現(xiàn)和傳播方法(Drip)進(jìn)行安全擴(kuò)展,實(shí)現(xiàn)輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)與分發(fā)方法(CoDrip);在CoDrip中通過執(zhí)行以下操作來建立多個(gè)哈希鏈:基站選取N個(gè)(傳感器節(jié)點(diǎn)的組數(shù))不同的隨機(jī)種子數(shù)字,并從這些種子數(shù)字開始分別計(jì)算出一個(gè)長度為b單向哈希鏈。其中,第b-1個(gè)哈希函數(shù)值是由第j個(gè)隨機(jī)種子數(shù)字(即Kb,p推導(dǎo)而來,并表示為Ku。每個(gè)鏈表的長度是可以任意改變的,但是不能少于基站在網(wǎng)絡(luò)生命周期內(nèi)想要分發(fā)的數(shù)據(jù)項(xiàng)的數(shù)目,第k個(gè)密鑰鏈最后的定向哈希值——Ktu對應(yīng)的跳距為j,它就作為第j組傳感器節(jié)點(diǎn)的密鑰,同時(shí)基站利用該組傳感器節(jié)點(diǎn)上的密鑰對發(fā)往第j組傳感器節(jié)點(diǎn)的數(shù)據(jù)包進(jìn)行對稱加密,然后再將數(shù)據(jù)包分發(fā)出去。CoDrip能在不產(chǎn)生數(shù)據(jù)延時(shí)情況下提供即時(shí)認(rèn)證。即使在一些傳感器節(jié)點(diǎn)被妥協(xié)的情況下,仍然能保證數(shù)據(jù)發(fā)現(xiàn)和傳播的安全性。
[0042]本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
[0043](I)抵抗傳感器節(jié)點(diǎn)的妥協(xié):只要未被妥協(xié)的傳感器節(jié)點(diǎn)依舊能夠連接到基站,則不管已經(jīng)妥協(xié)傳感器節(jié)點(diǎn)的數(shù)目多少,協(xié)議都能抵抗傳感器節(jié)點(diǎn)妥協(xié)。
[0044](2)在丟包和數(shù)據(jù)包傳送失序上具有高魯棒性:在無線傳感器網(wǎng)絡(luò)中高頻率的出現(xiàn)丟包和數(shù)據(jù)包傳送失序現(xiàn)象,這要求協(xié)議設(shè)計(jì)能夠在最大限度上容忍高丟包率和傳送失序。
[0045](3)基站與傳感器節(jié)點(diǎn)間無時(shí)間同步:基站與傳感器節(jié)點(diǎn)間不要求時(shí)間同步。因此,無需對數(shù)據(jù)包到達(dá)間隔時(shí)間做任何假設(shè),當(dāng)傳感器節(jié)點(diǎn)接收到數(shù)據(jù)包時(shí)便可即刻對所述接收到的數(shù)據(jù)包進(jìn)行認(rèn)證。
[0046](4)不需利用數(shù)字簽名引導(dǎo)身份驗(yàn)證過程:直接通過多個(gè)哈希鏈計(jì)算相應(yīng)的對稱密鑰進(jìn)行匹配,這就充分利用了每個(gè)傳感器節(jié)點(diǎn)上預(yù)先的計(jì)算能力并且避免了數(shù)字簽名的能耗。
[0047](5)允許動(dòng)態(tài)數(shù)據(jù):基站不需要提前知道各個(gè)廣播數(shù)據(jù)項(xiàng)的完整信息,從而提高了
信息量。
【專利附圖】
【附圖說明】
[0048]圖1是本發(fā)明輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法的實(shí)現(xiàn)流程圖。
[0049]圖2是多個(gè)哈希鏈產(chǎn)生N個(gè)密鑰的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0050]下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
[0051]實(shí)施例
[0052]如圖1所示,CoDrip分為系統(tǒng)初始化,數(shù)據(jù)包預(yù)處理和數(shù)據(jù)包的驗(yàn)證三個(gè)階段,具體為:
[0053]第一階段:基站將傳感器節(jié)點(diǎn)分組,同時(shí)為每一個(gè)傳感器節(jié)點(diǎn)組創(chuàng)建一條單向密鑰哈希鏈,并且將哈希鏈的定向哈希值分配給對應(yīng)群組的傳感器節(jié)點(diǎn)作為密鑰。
[0054]第二階段:基站執(zhí)行數(shù)據(jù)包的預(yù)處理,即構(gòu)建數(shù)據(jù)包,然后再分發(fā)數(shù)據(jù)包。
[0055]第三階段:傳感器節(jié)點(diǎn)在接收到數(shù)據(jù)包后恢復(fù)該數(shù)據(jù)包所包含的群組信息并判斷所述接收的數(shù)據(jù)包是否合法,最后根據(jù)判斷結(jié)果處理所述接收到的數(shù)據(jù)包。
[0056]在系統(tǒng)初始化階段根據(jù)傳感器節(jié)點(diǎn)跟基站之間的跳距大小我們將傳感器節(jié)點(diǎn)分組,跳距相同的傳感器節(jié)點(diǎn)分到同一組,假設(shè)有N組。在傳感器節(jié)點(diǎn)被部署以前,基站構(gòu)建如下N個(gè)哈希鏈(每一組傳感器節(jié)點(diǎn)對應(yīng)一條哈希鏈)。基站為對應(yīng)的每一個(gè)傳感器節(jié)點(diǎn)組分別選取一個(gè)隨機(jī)數(shù)作為種子數(shù)字,并從這些種子數(shù)字開始分別計(jì)算出一個(gè)長度為b單向哈希鏈。如圖2所示(第b-1個(gè)哈希函數(shù)值是由第j個(gè)隨機(jī)種子數(shù)字(即Kb,p推導(dǎo)而來,并表示為Ku).每個(gè)鏈表的長度是可以任意改變的,但是不能少于基站在網(wǎng)絡(luò)生命周期內(nèi)想要分發(fā)的數(shù)據(jù)項(xiàng)的數(shù)目。
[0057]最后第k個(gè)密鑰鏈的定向哈希值——K0, j對應(yīng)的跳距為j,它將在部署傳感器節(jié)點(diǎn)之前被預(yù)先分配給第j組的傳感器節(jié)點(diǎn)作為密鑰。
[0058]在CoDrip中,使用四元組(order, key, version, data)來表示每個(gè)數(shù)據(jù)項(xiàng),其中參數(shù)order (命令)表示數(shù)據(jù)分發(fā)的級別(級別越高,數(shù)據(jù)分發(fā)越新),key (變量標(biāo)識)值是需要更新變量的唯一標(biāo)識,version (版本號)用于表示數(shù)據(jù)新舊的版本號(version值越大,數(shù)據(jù)越新),data(數(shù)據(jù)值)則表示傳播的數(shù)據(jù)值(如參數(shù),命令或者請求)。key和version可以設(shè)置為2字節(jié)和4字節(jié)長。以order為例,選用較長的字節(jié)數(shù),如4字節(jié),可以避免數(shù)據(jù)包在網(wǎng)絡(luò)生存周期中,出現(xiàn)在實(shí)數(shù)空間中的環(huán)繞(wrap around)現(xiàn)象。另外,如果基站采用了滑動(dòng)窗口機(jī)制,則可以·選擇只有4比特長度,避免因?yàn)樵趯?shí)數(shù)空間出現(xiàn)數(shù)值環(huán)繞(wraparound)而產(chǎn)生歧義。這樣的窗口機(jī)制要求基站做更多的處理,因此需要在order的比特長度(即CoDrip的傳輸開銷)選擇與基站的處理負(fù)載之間做出權(quán)衡。
[0059]在完成了系統(tǒng)初始化階段后,進(jìn)入數(shù)據(jù)包預(yù)處理階段。如果基站想分發(fā)數(shù)據(jù)項(xiàng)d= {order, key, version, data},它就要通過聯(lián)合數(shù)據(jù)項(xiàng)d和繼承的密鑰(即目標(biāo)傳感器節(jié)接受數(shù)據(jù)包后更新的密鑰)來生成數(shù)據(jù)包,并且需要用繼承的密鑰(即目標(biāo)傳感器節(jié)點(diǎn)組的密鑰)通過對稱加密技術(shù)來加密數(shù)據(jù)項(xiàng)。更特殊的,第i個(gè)數(shù)據(jù)項(xiàng)((Ii= 1rderi, key” verSioni, dataj )分發(fā)到N組目標(biāo)傳感器節(jié)點(diǎn)的加密結(jié)果(Pi)如下:
[0060]Pi=E(HhK1-U) II...I E(HnKKhin)
[0061]其中I < i < b, Orderi=I不同于DIP和DHV, Drip中的每一個(gè)數(shù)據(jù)項(xiàng)是獨(dú)立地分發(fā)和廣播的。因此,在Drip協(xié)議中,基站可以通過廣播的模式將要分發(fā)的數(shù)據(jù)傳送給所有的傳感器節(jié)點(diǎn),也可以通過多點(diǎn)傳輸模式傳給特殊的幾個(gè)傳感器節(jié)點(diǎn)。后者中,目標(biāo)傳感器節(jié)點(diǎn)的識別信息包含在數(shù)據(jù)包的頭上,即數(shù)據(jù)包上的目標(biāo)域。如上所述,每個(gè)密碼哈希函數(shù)H(.)計(jì)算數(shù)據(jù)包的目標(biāo)域來確保數(shù)據(jù)包的真實(shí)性和完整性。
[0062]第三個(gè)階段是數(shù)據(jù)包驗(yàn)證階段。以對發(fā)往第一組數(shù)據(jù)包的數(shù)據(jù)驗(yàn)證為例(其他熱點(diǎn)群組傳感器節(jié)點(diǎn)的數(shù)據(jù)包驗(yàn)證過程類似)。當(dāng)接收到一個(gè)數(shù)據(jù)包時(shí)(用Pi表示)(來自于相距一個(gè)跳距的任何一個(gè)傳感器節(jié)點(diǎn)或者是基站),每個(gè)傳感器節(jié)點(diǎn),稱為sk,都要從Pi上檢索出正確的群組信息(即傳感器節(jié)點(diǎn)要解釋正確的區(qū)域EGdi, U,Ki^)然后利用密鑰KiI1來通過執(zhí)行函數(shù)
[0063]D (E ({d” Ki, J,Kh,i),Kh,^ = {d” Ki, J
[0064]來對數(shù)據(jù)包進(jìn)行解密。然后傳感器節(jié)點(diǎn)Sk執(zhí)行如下步驟:
[0065]I)若新的數(shù)據(jù)包的order值比傳感器節(jié)點(diǎn)上存儲(chǔ)的order值大則執(zhí)行步驟2)否則執(zhí)行步驟5);
[0066]2)若傳感器節(jié)點(diǎn)上存有的Ku1跟以新接收的數(shù)據(jù)包的密鑰Km為基數(shù),通過哈希函數(shù)H(.)推導(dǎo)出的哈希值相同,則執(zhí)行步驟3)否則執(zhí)行步驟4);
[0067]3)傳感器節(jié)點(diǎn)將密鑰Km替換原來的密鑰Ki^,若數(shù)據(jù)包的version是新的,則傳感器節(jié)點(diǎn)根據(jù)密鑰更新數(shù)據(jù),否則執(zhí)行步驟4);
[0068]4)拋棄這個(gè)數(shù)據(jù)包;
[0069]5)若新的數(shù)據(jù)包的order值與存儲(chǔ)在傳感器節(jié)點(diǎn)上的order值相等,則傳感器節(jié)點(diǎn)根據(jù)Trickle算法增大廣播數(shù)據(jù)包的時(shí)間間隔,否則傳感器節(jié)點(diǎn)廣播其自身存在的數(shù)據(jù)包。
[0070]數(shù)據(jù)包的驗(yàn)證階段還可以如下描述:
[0071]傳感器節(jié)點(diǎn)Si恢復(fù)新接收的數(shù)據(jù)包P。的群組信息并判斷數(shù)據(jù)包的目的群組是否正確,如果所述接收到的群組信息正確,傳感器節(jié)點(diǎn)Si執(zhí)行以下操作:
[0072]A.如果是新的數(shù) 據(jù)分發(fā)(即數(shù)據(jù)包包含的Orderi比傳感器節(jié)點(diǎn)上存儲(chǔ)的<orderi_1, Ki^的Ordeiv1值要新),那么傳感器節(jié)點(diǎn)Sk判斷新接收的密鑰Km是否為存有的Ku1推導(dǎo)出的哈希值。如果是,則說明數(shù)據(jù)包的真實(shí)性和完整性(通過使用適當(dāng)?shù)膲K加密模式的方法)得到了保證,傳感器節(jié)點(diǎn)Sk接收數(shù)據(jù)包,否則數(shù)據(jù)包將被拋棄。存儲(chǔ)的KiI1將被Km代替。如果version是新的,那么傳感器節(jié)點(diǎn)Sk根據(jù)數(shù)據(jù)包的密鑰更新數(shù)據(jù),否則傳感器節(jié)點(diǎn)Sk將拋棄這個(gè)數(shù)據(jù)包。
[0073]B.如果傳感器節(jié)點(diǎn)Sk監(jiān)聽到一個(gè)可識別的數(shù)據(jù)包(即這個(gè)數(shù)據(jù)包中包含的Orderi跟原來存儲(chǔ)的〈ordeiViKin〉的值相同),那么它將通過Trickle算法來增大廣播這個(gè)數(shù)據(jù)包時(shí)間間隔,從而在保證網(wǎng)絡(luò)一致性的同時(shí)節(jié)省了能耗。
[0074]C.如果這個(gè)數(shù)據(jù)分發(fā)是舊的(即這個(gè)數(shù)據(jù)包中包含的orderi比原來存儲(chǔ)的〈orderi+Ki^〉的值舊,也就是說相隔一個(gè)跳距的傳感器節(jié)點(diǎn)發(fā)的數(shù)據(jù)包是舊的),那么傳感器節(jié)點(diǎn)Sk將廣播它本來存有的數(shù)據(jù)包。
[0075]上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,包括如下三個(gè)階段: 第一階段:基站將傳感器節(jié)點(diǎn)分組,同時(shí)為每一個(gè)傳感器節(jié)點(diǎn)組創(chuàng)建一條單向密鑰哈希鏈,并且將哈希鏈的定向哈希值分配給對應(yīng)群組的傳感器節(jié)點(diǎn)作為密鑰; 第二階段:基站執(zhí)行數(shù)據(jù)包的預(yù)處理,即構(gòu)建數(shù)據(jù)包,然后再分發(fā)數(shù)據(jù)包; 第三階段:傳感器節(jié)點(diǎn)在接收到數(shù)據(jù)包后恢復(fù)該數(shù)據(jù)包所包含的群組信息并判斷所述接收的數(shù)據(jù)包是否合法,最后根據(jù)判斷結(jié)果處理所述接收到的數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,所述的第一階段包括以下步驟: Al、基站將跳距相同的傳感器節(jié)點(diǎn)分到同一個(gè)群組,并為每個(gè)傳感器節(jié)點(diǎn)群組選取一個(gè)隨機(jī)數(shù)作為種子數(shù)字; B1、基站利用步驟Al中產(chǎn)生的種子數(shù)字為對應(yīng)的每個(gè)傳感器節(jié)點(diǎn)群組構(gòu)建一條單向哈希鏈,種子數(shù)字作為哈希鏈頭節(jié)點(diǎn)值,其它哈希鏈節(jié)點(diǎn)值由其前一個(gè)哈希鏈節(jié)點(diǎn)值作為參數(shù)輸入到哈希函數(shù)中計(jì)算得到,哈希鏈最后一個(gè)節(jié)點(diǎn)值稱為定向哈希值,其中哈希鏈的長度必須大于基站生命周期內(nèi)所分發(fā)的數(shù)據(jù)項(xiàng)的總數(shù)目; Cl、把步驟BI中產(chǎn)生的定向哈希值分配給對應(yīng)的傳感器節(jié)點(diǎn)群組的傳感器節(jié)點(diǎn),作為密鑰往后用于對接收的數(shù)據(jù)包進(jìn)行解密; D1、系統(tǒng)使用四元組表示每一個(gè)數(shù)據(jù)項(xiàng)。
3.根據(jù)權(quán)利要求2所`述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,步驟Dl中所述四元組分別為:級別、變量標(biāo)識、版本號和數(shù)據(jù)值;其中級別表示數(shù)據(jù)項(xiàng)的數(shù)據(jù)分發(fā)級別,即數(shù)據(jù)分發(fā)的新舊程度,變量標(biāo)識表示需要更新變量的唯一標(biāo)識,版本號表示數(shù)據(jù)的新舊,數(shù)據(jù)值表示數(shù)據(jù)項(xiàng)的數(shù)據(jù)值。
4.根據(jù)權(quán)利要求1所述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,所述的第二階段包括以下步驟: A2、基站利用目標(biāo)傳感器節(jié)點(diǎn)上的密鑰對數(shù)據(jù)包進(jìn)行對稱加密; B2、當(dāng)基站要分發(fā)數(shù)據(jù)給所有傳感器節(jié)點(diǎn)時(shí)使用廣播模式,要分發(fā)數(shù)據(jù)給一些特定的傳感器節(jié)點(diǎn)時(shí)使用多點(diǎn)傳輸模式,當(dāng)使用多點(diǎn)傳輸模式時(shí),目標(biāo)傳感器節(jié)點(diǎn)需根據(jù)數(shù)據(jù)項(xiàng)所包含的目標(biāo)域上的數(shù)據(jù)來確定數(shù)據(jù)包的真實(shí)性和完整性。
5.根據(jù)權(quán)利要求4所述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,步驟A2中所述的基站利用傳感器節(jié)點(diǎn)上的密鑰對數(shù)據(jù)包進(jìn)行對稱加密的具體過程為:基站利用目標(biāo)傳感器節(jié)點(diǎn)現(xiàn)有的密鑰對數(shù)據(jù)包進(jìn)行對稱加密,所述數(shù)據(jù)包包含要分發(fā)的數(shù)據(jù)項(xiàng)與及目標(biāo)傳感器節(jié)點(diǎn)成功接受數(shù)據(jù)項(xiàng)之后要更新的密鑰值。最后基站將要分發(fā)到各個(gè)目標(biāo)傳感器節(jié)點(diǎn)的已進(jìn)行對稱加密的數(shù)據(jù)包連接在一起構(gòu)成一個(gè)新的數(shù)據(jù)包,其中,在一次分發(fā)過程中連接在一起的各個(gè)數(shù)據(jù)包所包含的數(shù)據(jù)項(xiàng)為同一個(gè)數(shù)據(jù)項(xiàng)。
6.根據(jù)權(quán)利要求1所述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,所述的第三階段包括以下步驟: A3、傳感器節(jié)點(diǎn)利用自身存儲(chǔ)的密鑰對接收到的數(shù)據(jù)包進(jìn)行解密; B3、成功解密后進(jìn)行數(shù)據(jù)包的數(shù)據(jù)級別比較。
7.根據(jù)權(quán)利要求6所述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,步驟A3中所述的傳感器節(jié)點(diǎn)利用自身存儲(chǔ)的密鑰對接收的數(shù)據(jù)包進(jìn)行解密的具體過程為:基站發(fā)送的數(shù)據(jù)包傳送到目標(biāo)傳感器節(jié)點(diǎn)后,目標(biāo)傳感器節(jié)點(diǎn)利用自身的存儲(chǔ)的密鑰對其中連接在一起的各個(gè)數(shù)據(jù)包進(jìn)行逐一解密,只有經(jīng)過目標(biāo)傳感器節(jié)點(diǎn)存儲(chǔ)的密鑰加密過的數(shù)據(jù)包才能被目標(biāo)傳感器節(jié)點(diǎn)成功解密。
8.根據(jù)權(quán)利要求6所述的輕量級機(jī)密的無線體域網(wǎng)安全數(shù)據(jù)發(fā)現(xiàn)和分發(fā)方法,其特征在于,步驟B3具體為: B31、若新的數(shù)據(jù)包的數(shù)據(jù)分發(fā)級別值比傳感器節(jié)點(diǎn)上原有的數(shù)據(jù)分發(fā)級別值大則執(zhí)行步驟B32,否則執(zhí)行步驟B35 ; B32、若新接收的數(shù)據(jù)包的密鑰值通過哈希函數(shù)計(jì)算后得到的哈希值跟傳感器節(jié)點(diǎn)上保存的密鑰值相同,則執(zhí)行步驟B33,否則執(zhí)行步驟B34 ; B33、傳感器節(jié)點(diǎn)用新接收的數(shù)據(jù)包中的密鑰值替換原來的密鑰值,若數(shù)據(jù)包的版本號是新的,則傳感器節(jié)點(diǎn)更新數(shù)據(jù),否則執(zhí)行步驟B34 ; B34、拋棄這個(gè)數(shù)據(jù)包; B35、若新的數(shù)據(jù)包的數(shù)據(jù)分發(fā)級別值與傳感器節(jié)點(diǎn)上原有的數(shù)據(jù)分發(fā)級別值相等,則傳感器節(jié)點(diǎn)根據(jù)Trickle算 法增大廣播數(shù)據(jù)包的時(shí)間間隔;否則廣播自身存有的數(shù)據(jù)包。
【文檔編號】H04W84/18GK103686715SQ201310703900
【公開日】2014年3月26日 申請日期:2013年12月19日 優(yōu)先權(quán)日:2013年12月19日
【發(fā)明者】何道敬, 曾志超, 林濤 申請人:華南理工大學(xué)