本發(fā)明涉及網(wǎng)絡(luò)預(yù)分配密鑰管理方法。
背景技術(shù):
隨著無線傳感器網(wǎng)絡(luò)的廣泛應(yīng)用,其安全問題也應(yīng)運(yùn)而生。無線傳感器網(wǎng)絡(luò)的安全機(jī)制包括安全路由、安全定位、拓?fù)涔芾?、?shù)據(jù)融合等。密鑰管理是無線傳感器網(wǎng)絡(luò)安全的基礎(chǔ)問題。自wsn安全引起人們的關(guān)注開始,同構(gòu)wsn密鑰管理就成為學(xué)者研究的熱點(diǎn);基本隨機(jī)密鑰預(yù)分配方案,簡(jiǎn)稱e-g方案,實(shí)現(xiàn)簡(jiǎn)單,計(jì)算復(fù)雜度低且存儲(chǔ)需求不高,但是由于該方案是基于概率的,所以網(wǎng)絡(luò)安全性低,同時(shí)該方案出現(xiàn)密鑰重復(fù)的可能性較大。chan等提出的q-composite方案是對(duì)e-g方案的改進(jìn),當(dāng)網(wǎng)絡(luò)中的受損節(jié)點(diǎn)數(shù)量較少時(shí),該方案的抗毀性比e-g方案要好,但隨著受損節(jié)點(diǎn)數(shù)量的增多,該方案變得比較差。bloom等提出的單密鑰空間方案可以使網(wǎng)絡(luò)中的任意兩個(gè)節(jié)點(diǎn)都能夠直接建立配對(duì)密鑰,并且確保在受損節(jié)點(diǎn)數(shù)不超過閾值時(shí),網(wǎng)絡(luò)不會(huì)泄露任何機(jī)密信息。但盡管可以使網(wǎng)絡(luò)拓?fù)鋵?shí)現(xiàn)安全連通,對(duì)節(jié)點(diǎn)的資源開銷占用極大。然而傳統(tǒng)的同構(gòu)wsn密鑰管理方案并沒有考慮到節(jié)點(diǎn)的互異特性,有一定的局限性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有e-g方案網(wǎng)絡(luò)安全性低,出現(xiàn)密鑰重復(fù)的可能性較大,q-composite方案隨著受損節(jié)點(diǎn)數(shù)量的增多抗毀性比較差;單密鑰空間方案對(duì)節(jié)點(diǎn)的資源開銷占用極大;以及傳統(tǒng)的同構(gòu)wsn密鑰管理方案沒有考慮節(jié)點(diǎn)的互異特性,有一定的局限性的問題,而提出異構(gòu)無線傳感器網(wǎng)絡(luò)預(yù)分配密鑰管理方法。
異構(gòu)無線傳感器網(wǎng)絡(luò)預(yù)分配密鑰管理方法具體過程為:
步驟一、構(gòu)建hwsn簇模型;
hwsn為異構(gòu)無線傳感器網(wǎng)絡(luò);
步驟二、在步驟一構(gòu)建的hwsn簇模型下,建立saap方案;過程為:
所述saap方案為基于schnorr身份認(rèn)證的非對(duì)稱預(yù)分配密鑰管理方案;
步驟二一、建立schnorr身份認(rèn)證階段;
步驟二二、在步驟二一的基礎(chǔ)上,建立密鑰預(yù)分配階段;
步驟二三、在步驟二一和步驟二二的基礎(chǔ)上,網(wǎng)絡(luò)中合法的認(rèn)證節(jié)點(diǎn)進(jìn)入共享密鑰發(fā)現(xiàn)階段;
步驟二四、執(zhí)行完步驟二三后,若ln節(jié)點(diǎn)未與鄰居節(jié)點(diǎn)建立配對(duì)密鑰,則進(jìn)入基于簇頭的配對(duì)密鑰設(shè)置階段;
步驟三、步驟二建立saap方案后,在傳感器網(wǎng)絡(luò)中加入新節(jié)點(diǎn)。
本發(fā)明的有益效果為:
本發(fā)明提出一種可靠而有效的非對(duì)稱密鑰預(yù)分配密鑰管理方案(saap方案),在密鑰管理的過程中引入了schnorr身份認(rèn)證。saap方案的主要思想為:假設(shè)簇頭節(jié)點(diǎn)ch相對(duì)安全,給簇頭節(jié)點(diǎn)ch預(yù)分配大量的密鑰,而給ln節(jié)點(diǎn)分配少量的密鑰。本發(fā)明從密鑰池大小、為k跳鄰居節(jié)點(diǎn)概率以及存儲(chǔ)空間三個(gè)方面對(duì)saap方案的性能進(jìn)行了分析。從安全分析中可以看出ln節(jié)點(diǎn)中預(yù)存儲(chǔ)的密鑰數(shù)量越少,網(wǎng)絡(luò)的安全性越高。與傳統(tǒng)的密鑰管理方案相比,saap方案能顯著提高網(wǎng)絡(luò)的安全性,出現(xiàn)密鑰重復(fù)的可能性較小,并降低節(jié)點(diǎn)存儲(chǔ)需求。
從圖3中可以看出,當(dāng)[m,l,m]的取值滿足m×l=m2時(shí),saap方案中的ln節(jié)點(diǎn)與簇頭節(jié)點(diǎn)ch間至少共享一個(gè)密鑰的概率曲線與e-g方案中的概率曲線非常接近;假設(shè)hwsn中有1000個(gè)ln節(jié)點(diǎn)和10個(gè)簇頭節(jié)點(diǎn),并在每個(gè)ln節(jié)點(diǎn)中預(yù)存儲(chǔ)l=15個(gè)密鑰,在簇頭節(jié)點(diǎn)中預(yù)存儲(chǔ)m=375個(gè)密鑰;假設(shè)同構(gòu)傳感器網(wǎng)絡(luò)中有1000個(gè)傳感節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)中均預(yù)存儲(chǔ)了m=75個(gè)密鑰。在hwsn中,用來存儲(chǔ)密鑰所需要的總的內(nèi)存為1000×15+10×375=18750(以密鑰長度為單位);而在同構(gòu)傳感器網(wǎng)絡(luò)中,用來存儲(chǔ)密鑰所需要的總的內(nèi)存為1000×75=75000,其所需要的存儲(chǔ)空間為hwsn的4倍多??梢钥闯?,在實(shí)現(xiàn)相同的共享密鑰概率下與同構(gòu)傳感器網(wǎng)絡(luò)相比,hwsn密鑰管理方案大大降低了傳感器節(jié)點(diǎn)的存儲(chǔ)空間需求。解決了隨著受損節(jié)點(diǎn)數(shù)量的增多抗毀性比較差,對(duì)節(jié)點(diǎn)的資源開銷占用極大,以及傳統(tǒng)的同構(gòu)wsn密鑰管理方案沒有考慮節(jié)點(diǎn)的互異特性,有一定的局限性的問題。
附圖說明
圖1為hwsn的簇模型圖,hwsn為異構(gòu)無線傳感器網(wǎng)絡(luò);
圖2為本發(fā)明新節(jié)點(diǎn)入網(wǎng)流程圖;
圖3為本發(fā)明不同p值下的共享密鑰概率圖,e-g為基本隨機(jī)密鑰預(yù)分配方案;saap為一種可靠而有效的非對(duì)稱密鑰預(yù)分配密鑰管理方案;
圖4為本發(fā)明不同m值下的共享密鑰概率圖;
圖5a為m=200時(shí)1跳或2跳鄰居節(jié)點(diǎn)概率圖;
圖5b為m=500時(shí)1跳或2跳鄰居節(jié)點(diǎn)概率圖;
圖6為q=1時(shí)的妥協(xié)概率圖;
圖7為q=3時(shí)的妥協(xié)概率圖。
具體實(shí)施方式
具體實(shí)施方式一:本實(shí)施方式的異構(gòu)無線傳感器網(wǎng)絡(luò)預(yù)分配密鑰管理方法具體過程為:
步驟一、構(gòu)建hwsn簇模型;
hwsn為異構(gòu)無線傳感器網(wǎng)絡(luò);
步驟二、在步驟一構(gòu)建的hwsn簇模型下,建立saap方案;過程為:
所述saap方案為基于schnorr身份認(rèn)證的非對(duì)稱預(yù)分配密鑰管理方案;
步驟二一、建立schnorr身份認(rèn)證階段;
步驟二二、在步驟二一的基礎(chǔ)上,建立密鑰預(yù)分配階段;
步驟二三、在步驟二一和步驟二二的基礎(chǔ)上,網(wǎng)絡(luò)中合法的認(rèn)證節(jié)點(diǎn)進(jìn)入共享密鑰發(fā)現(xiàn)階段;
步驟二四、執(zhí)行完步驟二三后,若ln節(jié)點(diǎn)未與鄰居節(jié)點(diǎn)建立配對(duì)密鑰,則進(jìn)入基于簇頭的配對(duì)密鑰設(shè)置階段;
步驟三、步驟二建立saap方案后,在傳感器網(wǎng)絡(luò)中加入新節(jié)點(diǎn)。
步驟二建立了saap密鑰管理方案,但是由于wsn的節(jié)點(diǎn)能量有限、易受攻擊等特點(diǎn),需要新節(jié)點(diǎn)的加入,為了進(jìn)一步確保wsn的安全,建立新加入節(jié)點(diǎn)入網(wǎng)流程。
具體實(shí)施方式二:本實(shí)施方式與具體實(shí)施方式一不同的是:所述步驟一中構(gòu)建hwsn簇模型;具體過程為:
設(shè)ch(簇頭節(jié)點(diǎn))和ln(普通節(jié)點(diǎn))均隨機(jī)均勻地分布在網(wǎng)絡(luò)中,其中,ch為能量聚集型簇頭。在傳感器網(wǎng)絡(luò)初始化的過程中,每個(gè)簇頭節(jié)點(diǎn)ch以最大功率和隨機(jī)延遲向其附近的ln節(jié)點(diǎn)廣播hello報(bào)文,ln節(jié)點(diǎn)從一個(gè)或g個(gè)簇頭節(jié)點(diǎn)ch接收到hello報(bào)文后,通過簇頭選擇方法選擇信號(hào)強(qiáng)度最強(qiáng)的ch作為簇頭(ln接收到hello報(bào)文中信號(hào)最強(qiáng)的ch作為簇頭),每個(gè)ln節(jié)點(diǎn)記錄從其他簇頭節(jié)點(diǎn)ch收到的hello報(bào)文,當(dāng)簇頭選擇失敗,其他簇頭節(jié)點(diǎn)ch將作為備份簇頭;
g取值大于等于2;其他ch指除信號(hào)強(qiáng)度最強(qiáng)的的ch;
所述,hello報(bào)文包含簇頭節(jié)點(diǎn)ch的id和位置信息,ch為能量聚集型簇頭,ln為普通節(jié)點(diǎn);id為身份標(biāo)識(shí)。
每個(gè)簇頭節(jié)點(diǎn)ch以最大功率和隨機(jī)延遲向其附近的ln節(jié)點(diǎn)廣播hello報(bào)文(包含ch的id和位置信息),其中,隨機(jī)延遲是為了避免相鄰兩個(gè)簇頭節(jié)點(diǎn)間的hello報(bào)文沖突。由于分布在網(wǎng)絡(luò)中的ch傳輸范圍廣、數(shù)量充足,大多數(shù)ln可以從一個(gè)或多個(gè)ch接收到hello報(bào)文,從而選擇具有最佳信號(hào)強(qiáng)度的ch作為簇頭。與此同時(shí),每個(gè)ln還記錄了從其他ch收到的hello報(bào)文,一旦簇頭選擇失敗,這些ch將作為備份簇頭。如果該網(wǎng)絡(luò)是一個(gè)二維平面,各節(jié)點(diǎn)將選擇最近的ch作為簇頭(有障礙物除外),如圖1所示。
其它步驟及參數(shù)與具體實(shí)施方式一相同。
具體實(shí)施方式三:本實(shí)施方式與具體實(shí)施方式一或二不同的是:所述步驟二一中建立schnorr身份認(rèn)證階段;具體過程為:
為了進(jìn)一步增強(qiáng)網(wǎng)絡(luò)的安全性,在共享密鑰階段之前,首先要對(duì)簇內(nèi)的每個(gè)ln節(jié)點(diǎn)進(jìn)行身份認(rèn)證;
步驟二一一、根據(jù)步驟一構(gòu)建的hwsn簇模型,對(duì)傳感器網(wǎng)絡(luò)進(jìn)行初始化;
傳感器網(wǎng)絡(luò)初始化過程分為兩步:
(1)選擇傳感器網(wǎng)絡(luò)公共參數(shù);
傳感器網(wǎng)絡(luò)選取兩個(gè)素?cái)?shù)p和q,且p和q滿足q|p-1,q≥2140,p≥2512,傳感器網(wǎng)絡(luò)在
q|p-1為q是p-1階素?cái)?shù)因子;
(2)傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)選擇密鑰;
傳感器網(wǎng)絡(luò)中的任意ln節(jié)點(diǎn)a,在節(jié)點(diǎn)a處根據(jù)隨機(jī)原則在zp上選擇一個(gè)隨機(jī)數(shù)x,計(jì)算y=gxmodp,
式中,p、q、g和y為節(jié)點(diǎn)a的公鑰,用于驗(yàn)證節(jié)點(diǎn)a的數(shù)字簽名;x為節(jié)點(diǎn)a的私鑰,用于對(duì)節(jié)點(diǎn)a數(shù)字簽名,zp為從0到p-1的正整數(shù)域;
步驟二一二、在傳感器網(wǎng)絡(luò)初始化后,對(duì)傳感器網(wǎng)絡(luò)內(nèi)的ln節(jié)點(diǎn)進(jìn)行數(shù)字簽名并獲取ln節(jié)點(diǎn)的網(wǎng)絡(luò)證書;過程為:
傳感器網(wǎng)絡(luò)中的任意ln節(jié)點(diǎn)a處首先根據(jù)隨機(jī)原則在zp上選擇一個(gè)隨機(jī)數(shù)k1,并計(jì)算
步驟二一三、在完成步驟二一二后,對(duì)傳感器網(wǎng)絡(luò)中的ln節(jié)點(diǎn)的數(shù)字簽名進(jìn)行認(rèn)證;過程為:
在簇頭節(jié)點(diǎn)ch接收到ln節(jié)點(diǎn)a發(fā)送來的k1,α1,ca后,簇頭節(jié)點(diǎn)ch根據(jù)隨機(jī)原則在[0,2t]選一個(gè)隨機(jī)數(shù)b1,并將b1發(fā)送給ln節(jié)點(diǎn)a;ln節(jié)點(diǎn)a根據(jù)收到的b1,計(jì)算v1=k1+xb1modq,并將v1發(fā)送給ch,ch根據(jù)收到的α1以及v1,驗(yàn)證
上述b1為簇頭節(jié)點(diǎn)ch的私鑰,t為安全參數(shù),t≥40。
其它步驟及參數(shù)與具體實(shí)施方式一或二相同。
具體實(shí)施方式四:本實(shí)施方式與具體實(shí)施方式一至三之一不同的是:
本發(fā)明將給出一個(gè)有效而可靠的異構(gòu)傳感器網(wǎng)絡(luò)密鑰管理方案。該方案的主要思想是給ln預(yù)存儲(chǔ)少量的密鑰,而給ch預(yù)存儲(chǔ)大量的密鑰,這是因?yàn)閏h比普通節(jié)點(diǎn)具有更大的存儲(chǔ)空間。此外,ch中配備有防篡改硬件可以保護(hù)大量的密鑰信息,因此假設(shè)簇頭ch是相對(duì)安全的。針對(duì)共享密鑰泄露可能帶來的問題,本文引入了schnorr身份識(shí)別對(duì)密鑰管理進(jìn)行安全性增強(qiáng)改造。由于ch和ln中預(yù)分配密鑰的數(shù)量截然不同及schnorr身份識(shí)別的引入,把這一方案稱為基于schnorr身份認(rèn)證的非對(duì)稱預(yù)分配密鑰管理方案,簡(jiǎn)稱saap方案,該方案
包括四個(gè)階段:密鑰預(yù)分配階段、身份認(rèn)證階段、共享密鑰發(fā)現(xiàn)階段、基于簇頭的配對(duì)密鑰設(shè)置階段。
所述步驟二二中在步驟二一的基礎(chǔ)上,建立密鑰預(yù)分配階段;具體過程為:
步驟二二一、密鑰處理中心生成一個(gè)密鑰總數(shù)為p的大密鑰池s,每個(gè)密鑰對(duì)應(yīng)一個(gè)唯一的身份標(biāo)識(shí)(id);p的取值為正整數(shù);
步驟二二二、從s中隨機(jī)選擇l個(gè)密鑰預(yù)存儲(chǔ)在每個(gè)ln節(jié)點(diǎn)中,形成一個(gè)密鑰環(huán);l取值為正整數(shù);
步驟二二三、從s中隨機(jī)選取m個(gè)密鑰預(yù)存儲(chǔ)在每個(gè)簇頭節(jié)點(diǎn)ch中,m>>l;每個(gè)ch中預(yù)存儲(chǔ)了一個(gè)特殊的密鑰kh;m取值為正整數(shù);
其中,kh對(duì)于基站(bs)是已知的,而對(duì)任意的ln節(jié)點(diǎn)未知。
其它步驟及參數(shù)與具體實(shí)施方式一至三之一相同。
具體實(shí)施方式五:本實(shí)施方式與具體實(shí)施方式一至四之一不同的是:所述步驟二三中在步驟二一和步驟二二的基礎(chǔ)上,網(wǎng)絡(luò)中合法的認(rèn)證節(jié)點(diǎn)進(jìn)入共享密鑰發(fā)現(xiàn)階段;具體過程為:
步驟二三一、每個(gè)ln節(jié)點(diǎn)(例如節(jié)點(diǎn)u)首先給對(duì)應(yīng)的簇頭節(jié)點(diǎn)ch發(fā)送一條未經(jīng)加密的密鑰列表信息,密鑰列表信息包括ln節(jié)點(diǎn)u的身份標(biāo)識(shí)idu及位置信息;簇頭節(jié)點(diǎn)ch在接收到密鑰列表信息后,簇頭節(jié)點(diǎn)ch為每對(duì)相鄰的ln節(jié)點(diǎn)尋找共享密鑰;
步驟二三二、通過位置信息,簇頭節(jié)點(diǎn)ch確定兩個(gè)ln節(jié)點(diǎn)(例如節(jié)點(diǎn)u和v)是否為鄰居節(jié)點(diǎn)(一跳能到達(dá)的節(jié)點(diǎn)):具體為:
當(dāng)兩個(gè)ln節(jié)點(diǎn)(例如節(jié)點(diǎn)u和v)之間的距離小于ln節(jié)點(diǎn)的傳輸范圍,則ch認(rèn)為兩個(gè)ln節(jié)點(diǎn)(例如節(jié)點(diǎn)u和v)是鄰居節(jié)點(diǎn);
在尋找到每對(duì)相鄰ln節(jié)點(diǎn)之間的共享密鑰后,簇頭節(jié)點(diǎn)ch使用共享密鑰消息向ln節(jié)點(diǎn)傳播共享密鑰信息;一條共享密鑰消息包括三重列表{ids,u,v},其中ids表示ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v的共享密鑰的id;如果ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v具有多個(gè)共享密鑰,為了減小通信開銷,每條共享密鑰消息中只能包含一個(gè)共享密鑰。若一簇中的ln節(jié)點(diǎn)的數(shù)量不是很大,一條共享密鑰消息包括所有對(duì)鄰居節(jié)點(diǎn)的三重列表;把所有三元組聚合在一個(gè)數(shù)據(jù)包中既可以降低分組報(bào)頭開銷又可以減小因多路傳輸而產(chǎn)生的延遲;或者,若一簇中的ln節(jié)點(diǎn)的數(shù)量不是很大,ch給每一對(duì)鄰居節(jié)點(diǎn)分別發(fā)送一條簡(jiǎn)短的三重列表共享密鑰消息(例如,只多播給u和v);
其它步驟及參數(shù)與具體實(shí)施方式一至四之一相同。
具體實(shí)施方式六:本實(shí)施方式與具體實(shí)施方式一至五之一不同的是:所述步驟二四中執(zhí)行完步驟二三后,若ln節(jié)點(diǎn)未與鄰居節(jié)點(diǎn)建立配對(duì)密鑰,則進(jìn)入基于簇頭的配對(duì)密鑰設(shè)置階段;具體過程為:
在網(wǎng)絡(luò)中合法的節(jié)點(diǎn)完成共享密鑰發(fā)現(xiàn)階段之后,當(dāng)ln節(jié)點(diǎn)未與ln節(jié)點(diǎn)的鄰居節(jié)點(diǎn)建立共享密鑰時(shí),例如鄰居ln節(jié)點(diǎn)u和v,ch首先要檢查與ln節(jié)點(diǎn)u、v是否共享一個(gè)密鑰;由于ch中預(yù)存儲(chǔ)了大量的密鑰,所以ch與節(jié)點(diǎn)u或v之間至少共享一個(gè)密鑰的概率很高;當(dāng)ln節(jié)點(diǎn)u、v與簇頭節(jié)點(diǎn)ch存在共享密鑰時(shí),簇頭節(jié)點(diǎn)ch分別獲得與ln節(jié)點(diǎn)u、v之間的共享密鑰,記為ku,kv;然后簇頭節(jié)點(diǎn)ch為ln節(jié)點(diǎn)u、v生成配對(duì)密鑰ku,v,并且把ku,v分別發(fā)送給ln節(jié)點(diǎn)u、v;
當(dāng)ln節(jié)點(diǎn)u、v與簇頭節(jié)點(diǎn)ch不存在共享密鑰時(shí),建立ln節(jié)點(diǎn)u和v的配對(duì)密鑰;過程為:
步驟1)
由于每個(gè)ln節(jié)點(diǎn)均給其簇頭ch發(fā)送密鑰列表信息,所以ch知道在其簇中的每個(gè)ln節(jié)點(diǎn)中的預(yù)存儲(chǔ)密鑰。以節(jié)點(diǎn)u為例,當(dāng)ln節(jié)點(diǎn)u與簇頭節(jié)點(diǎn)ch之間不存在共享密鑰時(shí),簇頭節(jié)點(diǎn)ch將檢查是否有第1跳鄰居節(jié)點(diǎn)與ln節(jié)點(diǎn)u共享一個(gè)密鑰;如果存在1跳鄰居節(jié)點(diǎn)z與ln節(jié)點(diǎn)u共享一個(gè)密鑰ku,z,則簇頭節(jié)點(diǎn)ch要求節(jié)點(diǎn)z把經(jīng)kz加密過的ku,z發(fā)送給簇頭節(jié)點(diǎn)ch,這樣一來簇頭節(jié)點(diǎn)與ln節(jié)點(diǎn)u之間就存在共享密鑰ku,z了;同理,簇頭節(jié)點(diǎn)ch可以獲得與ln節(jié)點(diǎn)v的共享密鑰;當(dāng)ln節(jié)點(diǎn)v與簇頭節(jié)點(diǎn)ch之間不存在共享密鑰時(shí),簇頭節(jié)點(diǎn)ch將檢查是否有第1跳鄰居節(jié)點(diǎn)與ln節(jié)點(diǎn)v共享一個(gè)密鑰;如果存在1跳鄰居節(jié)點(diǎn)f與ln節(jié)點(diǎn)v共享一個(gè)密鑰kv,f,則ch要求節(jié)點(diǎn)f把經(jīng)kf加密過的kv,f發(fā)送給ch,這樣一來簇頭節(jié)點(diǎn)與ln節(jié)點(diǎn)v之間就存在共享密鑰kv,f了;
簇頭節(jié)點(diǎn)ch在分別獲取了與ln節(jié)點(diǎn)u和v之間的共享密鑰后,簇頭節(jié)點(diǎn)ch為ln節(jié)點(diǎn)u和v建立配對(duì)密鑰;
其中,kz為簇頭節(jié)點(diǎn)ch和節(jié)點(diǎn)z之間的共享密鑰,kf為簇頭節(jié)點(diǎn)ch和節(jié)點(diǎn)f之間的共享密鑰;
簇頭節(jié)點(diǎn)ch的1跳鄰居節(jié)點(diǎn)是指ln節(jié)點(diǎn)與簇頭節(jié)點(diǎn)ch至少存在一個(gè)共享密鑰;
如果簇頭節(jié)點(diǎn)ch的1跳鄰居節(jié)點(diǎn)中與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v不存在共享密鑰,則執(zhí)行步驟2);
步驟2)
若簇頭節(jié)點(diǎn)ch的1跳鄰居節(jié)點(diǎn)與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v不存在共享密鑰,則簇頭節(jié)點(diǎn)ch將尋找2跳鄰居節(jié)點(diǎn)、3跳的鄰居節(jié)點(diǎn)、……、d跳鄰居節(jié)點(diǎn),直到找到鄰居節(jié)點(diǎn)中存在與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v的共享密鑰(則簇頭節(jié)點(diǎn)ch將尋找2跳鄰居節(jié)點(diǎn),找到鄰居節(jié)點(diǎn)中存在與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v的共享密鑰,如果不存在共享密鑰,則簇頭節(jié)點(diǎn)ch將尋找3跳鄰居節(jié)點(diǎn),找到鄰居節(jié)點(diǎn)中存在與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v的共享密鑰,如果不存在共享密鑰,則簇頭節(jié)點(diǎn)ch將尋找4跳鄰居節(jié)點(diǎn),直到找到鄰居節(jié)點(diǎn)中存在與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v的共享密鑰),并按照步驟1)為ln節(jié)點(diǎn)u和v建立配對(duì)密鑰;d是一個(gè)系統(tǒng)參數(shù);如果從1跳到d跳鄰居節(jié)點(diǎn)與ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v均無共享密鑰,則ch將向基站bs發(fā)送一條包括ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v的密鑰id的請(qǐng)求消息;然后,基站bs給ch發(fā)送由特殊密鑰kh加密的密鑰;為了降低通信開銷,ch可以收集從bs獲取的密鑰ids,并僅將一條請(qǐng)求消息發(fā)送到bs;簇頭節(jié)點(diǎn)ch從bs獲取密鑰后,簇頭節(jié)點(diǎn)ch為每一對(duì)鄰居ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v生成一個(gè)配對(duì)密鑰ku,v,并將密鑰ku,v分別單播給ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v;即ch→u:{ku,v}ku、ch→v:{ku,v}kv;這樣ln節(jié)點(diǎn)u和ln節(jié)點(diǎn)v就存在共享密鑰ku,v并且可以安全的進(jìn)行通信了;
具體實(shí)施方式七:本實(shí)施方式與具體實(shí)施方式一至六之一不同的是:所述步驟三中步驟二建立saap方案后,在傳感器網(wǎng)絡(luò)中加入新節(jié)點(diǎn);具體過程為:
在傳感器網(wǎng)絡(luò)的初始部署后,由于傳感器節(jié)點(diǎn)位置的隨機(jī)性,有些區(qū)域可能未被覆蓋。此外,傳感器節(jié)點(diǎn)的電源容量有限,隨著時(shí)間的推移電量可能會(huì)耗盡。傳感器網(wǎng)絡(luò)中存在的這些因素可以引起嚴(yán)重的覆蓋和連通性問題,并顯著降低網(wǎng)絡(luò)性能,縮短網(wǎng)絡(luò)生命周期。要解決這些問題,可以在網(wǎng)絡(luò)運(yùn)行一段時(shí)間后,在該區(qū)域部署新的傳感器節(jié)點(diǎn)。然而,新加入的節(jié)點(diǎn)將是傳感器網(wǎng)絡(luò)安全問題的一大挑戰(zhàn)。新加入的節(jié)點(diǎn)需要與現(xiàn)有的傳感器節(jié)點(diǎn)間建立安全密鑰,但是,現(xiàn)有的傳感器節(jié)點(diǎn)可能已經(jīng)被破壞,其次,新加入的節(jié)點(diǎn)可能為惡意節(jié)點(diǎn),因此,新節(jié)點(diǎn)加入的安全問題不容忽視。
許多現(xiàn)有的傳感器網(wǎng)絡(luò)密鑰管理協(xié)議并沒有考慮這一問題。為了進(jìn)一步確保網(wǎng)絡(luò)的安全,將提出一個(gè)有效的方案對(duì)新加入的節(jié)點(diǎn)進(jìn)行驗(yàn)證,并為新加入的ln節(jié)點(diǎn)與傳感器網(wǎng)絡(luò)中現(xiàn)有的ln節(jié)點(diǎn)建立配對(duì)密鑰。
每個(gè)新加入的ln節(jié)點(diǎn)e中都預(yù)存儲(chǔ)有l(wèi)個(gè)密鑰和一個(gè)特殊密鑰kl,e,
l個(gè)密鑰是密鑰處理中心(kdc)生成的;
其中,h(·)為單向散列函數(shù);kh為簇頭ch中預(yù)存儲(chǔ)的特殊密鑰;
其中,location為節(jié)點(diǎn)e的位置信息,mac(·)為消息認(rèn)證碼;
當(dāng)簇頭節(jié)點(diǎn)ch接收到“加入消息”后,將根據(jù)節(jié)點(diǎn)e及簇頭節(jié)點(diǎn)ch中預(yù)存儲(chǔ)的特殊密鑰kh計(jì)算生成對(duì)應(yīng)的kl,e,kl,e與節(jié)點(diǎn)e發(fā)送的加入消息中的kl,e′進(jìn)行對(duì)比(kl,e′為實(shí)測(cè)得到的,kl,e為通過本發(fā)明方法得到的),如果相同,e為合法節(jié)點(diǎn),則簇頭節(jié)點(diǎn)ch將確定節(jié)點(diǎn)e的鄰居節(jié)點(diǎn),并為e及其鄰居節(jié)點(diǎn)生成共享密鑰;如果不相同,則e為非法節(jié)點(diǎn),ch終止與節(jié)點(diǎn)e的通信。
具體過程如圖2所示。
hwsn中的其他安全問題
廣播密鑰的建立
ln節(jié)點(diǎn)通過廣播密鑰向其鄰居節(jié)點(diǎn)安全地廣播消息;每對(duì)鄰居節(jié)點(diǎn)在找到共享密鑰或建立配對(duì)密鑰后,很容易建立廣播密鑰。經(jīng)過相應(yīng)的共享密鑰加密后,ln節(jié)點(diǎn)u生成廣播密鑰kub,并將其單播給每個(gè)鄰居節(jié)點(diǎn)。例如,u給其鄰居節(jié)點(diǎn)v發(fā)送以下的數(shù)據(jù)包:{kub}ku,v,其中ku,v為節(jié)點(diǎn)u、v間的共享密鑰。
密鑰撤銷
一旦網(wǎng)絡(luò)中任意的ln節(jié)點(diǎn)受到敵方節(jié)點(diǎn)妥協(xié)攻擊時(shí),應(yīng)撤銷該ln節(jié)點(diǎn)內(nèi)的所有密鑰信息。假設(shè)檢測(cè)出了被妥協(xié)的節(jié)點(diǎn),并報(bào)告給相應(yīng)的簇頭節(jié)點(diǎn)ch。收到報(bào)告后,簇頭ch將散播含有被撤銷節(jié)點(diǎn)的密鑰ids列表的“撤銷消息”。簇頭ch與許多l(xiāng)n節(jié)點(diǎn)包括1~d跳鄰居節(jié)點(diǎn)間均存在共享密鑰。簇頭ch根據(jù)每個(gè)共享密鑰均能計(jì)算出與之相對(duì)應(yīng)的唯一的消息認(rèn)證碼(mac)。
撤銷消息的形式如下所示:
(list)||(u+mac(kh,u,list))||(v+mac(kh,v,list))||…||(y+mac(kh,y,list))
其中u,v和y表示ln節(jié)點(diǎn)的ids;kh,u,kh,v和kh,y為簇頭ch與節(jié)點(diǎn)u,v和y之間的共享密鑰;||為級(jí)聯(lián)操作;“l(fā)ist”表示密鑰ids列表。當(dāng)在撤銷消息中的ln節(jié)點(diǎn)(例如u)收到撤銷消息時(shí),簇頭可以通過相應(yīng)的mac檢查消息的完整性。
其它步驟及參數(shù)與具體實(shí)施方式一至六之一相同。
采用以下實(shí)施例驗(yàn)證本發(fā)明的有益效果:
實(shí)施例一:
本實(shí)施例異構(gòu)無線傳感器網(wǎng)絡(luò)預(yù)分配密鑰管理方法具體是按照以下步驟制備的:
1密鑰池大小
對(duì)于saap方案來說,密鑰池大小p是一個(gè)關(guān)鍵參數(shù)。假設(shè)預(yù)存儲(chǔ)密鑰的數(shù)量是固定值;一方面,當(dāng)傳感器網(wǎng)絡(luò)中一定數(shù)量的ln節(jié)點(diǎn)妥協(xié)時(shí),p值越大,對(duì)其他節(jié)點(diǎn)的通信能力的影響就越小;然而,隨著p值的增加,兩個(gè)節(jié)點(diǎn)共享一個(gè)密鑰的概率也隨之減小。chan等人提出了q-composite方案,該方案要求兩個(gè)相鄰節(jié)點(diǎn)至少需要共享q個(gè)密鑰才能進(jìn)行安全通信,通過提高q值可以有效的提高網(wǎng)絡(luò)的抵抗力,q-composite方案為傳感器網(wǎng)絡(luò)提高的更好的安全性。本發(fā)明所提出的saap密鑰管理方案可以很容易地達(dá)到兩節(jié)點(diǎn)間至少共享q個(gè)密鑰的條件。
為了獲得最大p值,需滿足如下條件:任意ln節(jié)點(diǎn)與簇頭節(jié)點(diǎn)ch至少共享q個(gè)密鑰的概率大于閾值p的大小。設(shè)任何ln節(jié)點(diǎn)與其簇頭節(jié)點(diǎn)ch之間共享密鑰個(gè)數(shù)為i的概率為p(i)。由于ln節(jié)點(diǎn)和簇頭節(jié)點(diǎn)ch中分別預(yù)存儲(chǔ)了l和m個(gè)密鑰,則任意ln節(jié)點(diǎn)從p個(gè)密鑰中選取l個(gè)密鑰的組合方法有
用pc表示任意兩節(jié)點(diǎn)間至少存在q個(gè)共享密鑰的概率,則有
pc=1-(p(0)+p(1)+p(2)+…+p(q-1))(2)
因此,對(duì)給定的密鑰環(huán)l和m,至少具有的共享密鑰數(shù)q和共享這些密鑰數(shù)的概率p,根據(jù)式(2),令pc≥p,則可以計(jì)算出最大的密鑰池為pmax。
2存儲(chǔ)空間分析
相比于同構(gòu)傳感器網(wǎng)絡(luò)的密鑰預(yù)分配管理方案,saap方案可以降低傳感器網(wǎng)絡(luò)在密鑰預(yù)分配中的存儲(chǔ)需求。在saap方案中l(wèi)n節(jié)點(diǎn)與簇頭節(jié)點(diǎn)ch之間至少共享一個(gè)密鑰的概率(以下簡(jiǎn)稱為共享密鑰概率)ps為
為了方便對(duì)比,式(4)中給出了e-g方案中共享密鑰概率pe
其中p為密鑰池的大小,m為每個(gè)節(jié)點(diǎn)存放密鑰環(huán)的大小。
在密鑰池的大小p從1000變化到10000到條件下,分別繪制了不同p,m,l和m值下的ps和pe,如圖3所示;圖中從上至下[m,l,m]的取值分別為[125,5,25];[250,10,50];[375,15,75];[500,20,100]。從圖3中可以看出,節(jié)點(diǎn)中預(yù)存儲(chǔ)的密鑰數(shù)量越多,兩節(jié)點(diǎn)間至少共享一個(gè)密鑰的概率也就越大;在相同的[m,l,m]的取值下,隨著密鑰池大小p的增加,兩節(jié)點(diǎn)間至少共享一個(gè)共享密鑰概率下降。此外,從圖中還可以觀察到相同[m,l,m]的取值下的兩條曲線的概率非常接近;[m,l,m]這三個(gè)參數(shù)的關(guān)系為m×l=m2;即,如果分別給簇頭ch及l(fā)n節(jié)點(diǎn)預(yù)存儲(chǔ)m和l個(gè)密鑰,且m和l的值滿足m×l=m2,那么,在預(yù)存儲(chǔ)m個(gè)密鑰的條件下,ps和pe曲線大致相同。為了方便對(duì)比,假設(shè)hwsn中有1000個(gè)ln節(jié)點(diǎn)和10個(gè)簇頭節(jié)點(diǎn),并在每個(gè)ln節(jié)點(diǎn)中預(yù)存儲(chǔ)l=15個(gè)密鑰,在簇頭節(jié)點(diǎn)中預(yù)存儲(chǔ)m=375個(gè)密鑰;假設(shè)同構(gòu)傳感器網(wǎng)絡(luò)中有1000個(gè)傳感節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)中均預(yù)存儲(chǔ)了m=75個(gè)密鑰。在hwsn中,用來存儲(chǔ)密鑰所需要的總的內(nèi)存為1000×15+10×375=18750(以密鑰長度為單位);而在同構(gòu)傳感器網(wǎng)絡(luò)中,用來存儲(chǔ)密鑰所需要的總的內(nèi)存為1000×75=75000,其所需要的存儲(chǔ)空間為hwsn的4倍多。從上面這個(gè)例子可以看出,在實(shí)現(xiàn)相同的共享密鑰概率下與同構(gòu)傳感器網(wǎng)絡(luò)相比,hwsn密鑰管理方案大大降低了傳感器節(jié)點(diǎn)的存儲(chǔ)空間需求。
還繪制了不同預(yù)存儲(chǔ)密鑰下的共享密鑰概率,如圖4所示。x軸表示預(yù)存儲(chǔ)密鑰數(shù)量m,其中m的值從25變化到100,增量為25;為了滿足m×l=m2,令l=m/5,m=5m;y軸表示節(jié)點(diǎn)與其簇頭間的共享密鑰概率;對(duì)于saap及e-g方案的4條曲線,從上到下,對(duì)應(yīng)的密鑰池大小p分別為1000,2000,5000和10000。由圖4可以看出,共享密鑰概率隨著傳感器節(jié)點(diǎn)中預(yù)存儲(chǔ)密鑰數(shù)量的增加而增大,而當(dāng)節(jié)點(diǎn)中預(yù)存儲(chǔ)的密鑰數(shù)量一定時(shí),共享密鑰概率隨著p的增加而降低。
3為k跳鄰居節(jié)點(diǎn)的概率
傳感器網(wǎng)絡(luò)中的每一簇由一個(gè)簇頭ch和若干簇內(nèi)成員ln組成;根據(jù)ln節(jié)點(diǎn)與其ch建立共享密鑰的方式,可以把ln節(jié)點(diǎn)分為1跳鄰居節(jié)點(diǎn),2跳鄰居節(jié)點(diǎn),…等等。下面,將分別推導(dǎo)出ln節(jié)點(diǎn)為1跳鄰居節(jié)點(diǎn)和2跳鄰居節(jié)點(diǎn)的概率。已知ln節(jié)點(diǎn)u與簇頭節(jié)點(diǎn)ch中分別預(yù)存儲(chǔ)了l和m個(gè)密鑰,那么節(jié)點(diǎn)u至少要與簇頭ch共享一個(gè)密鑰,才能稱節(jié)點(diǎn)u為1跳鄰居節(jié)點(diǎn);式(3)中給出了節(jié)點(diǎn)u為簇頭ch的1跳節(jié)點(diǎn)的概率,即
若要為2跳鄰居節(jié)點(diǎn),則ln節(jié)點(diǎn)v與1跳鄰居節(jié)點(diǎn)間至少存在一個(gè)共享密鑰;如果簇內(nèi)ln節(jié)點(diǎn)數(shù)為n,則簇中1跳鄰居節(jié)點(diǎn)數(shù)為n1,即
如果令事件b表示節(jié)點(diǎn)v與1跳鄰居節(jié)點(diǎn)間至少共享一個(gè)密鑰,事件c表示節(jié)點(diǎn)v與1跳鄰居節(jié)點(diǎn)間不存在任何共享密鑰,事件d表示節(jié)點(diǎn)v不是1跳鄰居節(jié)點(diǎn),那么,由上述條件,可以推導(dǎo)出節(jié)點(diǎn)v與1跳鄰居節(jié)點(diǎn)間至少共享一個(gè)密鑰的概率為
故,由定義2可知,節(jié)點(diǎn)v為2跳鄰居節(jié)點(diǎn)的概率為
同理,可以計(jì)算出ln節(jié)點(diǎn)為3跳鄰居節(jié)點(diǎn),4跳鄰居節(jié)點(diǎn)的概率,…。圖5a、5b中,分別繪制了不同p和m值下的p1,p2曲線。圖中密鑰池大小p以1000為增量從1000變化到10000,圖5a、5b中的參數(shù)分別為m=200,l=20,n=100和m=500,l=20,n=100。從圖5a、5b中可以看出,隨著簇頭ch中預(yù)存儲(chǔ)密鑰數(shù)量m的增加,為1跳或2跳鄰居節(jié)點(diǎn)的概率增加。例如,當(dāng)m=500時(shí),密鑰池大小6000和1000分別對(duì)應(yīng)的p1值為0.82和0.68。這就意味著,在高概率的條件下,ln節(jié)點(diǎn)可與其簇頭ch直接共享密鑰,從而有效的降低了由尋找共享密鑰而產(chǎn)生的通信開銷,對(duì)于大多數(shù)ln節(jié)點(diǎn)來說,簇頭ch無需與其他節(jié)點(diǎn)或bs通信來獲取共享密鑰。
4安全分析
本發(fā)明將對(duì)saap密鑰管理方案抵抗節(jié)點(diǎn)妥協(xié)攻擊的能力進(jìn)行分析。由于簇頭節(jié)點(diǎn)ch中安裝有預(yù)防篡改的硬件,因此,簇頭ch很難被攻陷,安全分析只需考慮網(wǎng)絡(luò)中的ln節(jié)點(diǎn)。已知每個(gè)ln節(jié)點(diǎn)中都預(yù)存儲(chǔ)了l個(gè)密鑰,那么對(duì)于給定的密鑰k在ln節(jié)點(diǎn)的密鑰環(huán)中的概率為l/p,其中p為密鑰池的大小。因此,k不在ln節(jié)點(diǎn)的密鑰環(huán)中的概率為
從式(9)中,當(dāng)密鑰池大小p以及網(wǎng)絡(luò)中被攻陷節(jié)點(diǎn)的數(shù)量h均為固定不變時(shí),l越小,網(wǎng)絡(luò)暴露安全通信鏈路的概率pr就越小,也就是說,l越小,saap方案抵抗節(jié)點(diǎn)妥協(xié)攻擊的能力越強(qiáng)。這就是為什么要在每個(gè)ln節(jié)點(diǎn)中預(yù)存儲(chǔ)少量密鑰的重要原因。需要注意的是,在密鑰設(shè)置階段后,兩個(gè)相鄰節(jié)點(diǎn)u和v可以通過已建立的安全鏈路來協(xié)商一個(gè)只有它們自己知道并供以后通信使用的新的隨機(jī)密鑰。由于新的密鑰與初始密鑰池的大小p無關(guān),因此,除非攻擊者能夠記錄網(wǎng)絡(luò)中的所有通信過程,否則其他ln節(jié)點(diǎn)的妥協(xié)不會(huì)影響新密鑰的安全性。
如果在兩個(gè)ln節(jié)點(diǎn)間建立一條安全鏈路至少需要q個(gè)密鑰,則在有r個(gè)節(jié)點(diǎn)妥協(xié)的情況下,一條新建的鏈路被損壞的概率會(huì)更加小。若兩ln節(jié)點(diǎn)間的i個(gè)共享密鑰為散列函數(shù),那么鏈路被損壞的概率為
其中,l表示ln中預(yù)存儲(chǔ)的密鑰數(shù)量,p(i)如式(1)所示。
chan等人提出的q-composite方案中,兩ln節(jié)點(diǎn)間有i個(gè)共享密鑰的概率為
從式(10)和(11)中可以看出,r(l)<r(m)和r(m)的大小隨著l和m的增加而遞增,而節(jié)點(diǎn)中預(yù)存儲(chǔ)的密鑰數(shù)量l要比m小得多,因此,r(l)<r(m);這意味著,hwsn密鑰管理方案比同構(gòu)無線傳感器網(wǎng)絡(luò)密鑰管理方案在節(jié)點(diǎn)受到妥協(xié)攻擊上更具有彈性。
如圖6所示,繪制出了當(dāng)網(wǎng)絡(luò)中有r個(gè)妥協(xié)節(jié)點(diǎn)時(shí),攻擊者能夠解密兩傳感器節(jié)點(diǎn)u和v之間的通信的概率(簡(jiǎn)稱為妥協(xié)概率)。圖6中,設(shè)置安全鏈路所需密鑰的數(shù)量為q=1;密鑰池大小p為10000;妥協(xié)節(jié)點(diǎn)的數(shù)量r以10為增量,從1變化到200;對(duì)于e-g密鑰方案,選取了3個(gè)不同的m值,分別為20,30和50;而對(duì)于saap密鑰管理方案,將參數(shù)值設(shè)置為m=100,l=10;當(dāng)m=30時(shí),此時(shí)m×l≈m2,使得saap密鑰管理方案與e-g方案具有相同的共享密鑰概率。從圖6中可以看出,對(duì)于任意r的值,saap方案下的妥協(xié)概率均比在不同取值下的e-g方案的低,即,與e-g方案相比,saap密鑰管理方案在節(jié)點(diǎn)受到妥協(xié)攻擊上更具有彈性。
圖7中,繪制了在q=3時(shí)的妥協(xié)概率,其他參數(shù)均與圖4相同。對(duì)比圖4和圖7,可以發(fā)現(xiàn)在q=3時(shí)的妥協(xié)概率比q=1時(shí)的低。這一結(jié)果表明q-composite密鑰管理方案能夠顯著提高節(jié)點(diǎn)抗妥協(xié)攻擊的能力。
本發(fā)明還可有其它多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,本領(lǐng)域技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。