專利名稱:一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于無線網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法及裝置。
背景技術(shù):
(1)無線傳感器網(wǎng)絡(luò)技術(shù)無線傳感器網(wǎng)絡(luò)是由很多體積微小的傳感器(相當(dāng)于日常網(wǎng)絡(luò)中的計(jì)算機(jī))組成,這里的傳感器被稱作“節(jié)點(diǎn)”,每一個(gè)節(jié)點(diǎn)都可以監(jiān)視、搜集所處環(huán)境的信息,并加以存儲(chǔ)處理,然后將信息傳給目的用戶,常用于軍事、醫(yī)療及智能家居等方面。節(jié)點(diǎn)具有如下三個(gè)特征存儲(chǔ)容量較??;處理信息的能力有限;所帶能量有限。節(jié)點(diǎn)之間的通信方式為無線通信。這種通信方式使得無線傳感器網(wǎng)絡(luò)的信息安全受到嚴(yán)重威脅,所以需要高度安全的加密機(jī)制。這種加密機(jī)制的加解密過程不能有太多的空間、能量消耗,能夠適應(yīng)節(jié)點(diǎn)自身的固有缺陷。
(2)橢圓曲線加密機(jī)制這種加密方法是公鑰加密機(jī)制中的一種,是代數(shù)幾何、數(shù)論等多個(gè)數(shù)學(xué)分支的一個(gè)交叉點(diǎn),橢圓曲線是建立在有限域上的,涉及到數(shù)學(xué)中群、域的概念。橢圓曲線加密機(jī)制的安全性體現(xiàn)在橢圓曲線的離散對(duì)數(shù)問題,離散對(duì)數(shù)問題定義如下 給定定義在有限域F,上的橢圓曲線E,基點(diǎn)P e E(Ftl),階為n。Qe E(Fq)。尋找一個(gè)整數(shù)1 e
使得Q = 1P。整數(shù)1稱為Q的基于P的離散對(duì)數(shù)。我們把Q作為公鑰發(fā)布,1作為私鑰保存(1由通信雙方自己在上述規(guī)定范圍內(nèi)任選作為私鑰保存)。
其密鑰產(chǎn)生的一般過程可用圖1表示,其中A是發(fā)送方,B是接收方。公鑰機(jī)制加解密過程如圖2所示,圖中PUa表示A的公鑰,PUb表示B的公鑰,PRb表示B的私鑰。
橢圓曲線加密機(jī)制是目前公鑰機(jī)制中每比特密鑰安全強(qiáng)度最高的一種密碼機(jī)制, 其特點(diǎn)是在同等安全強(qiáng)度下產(chǎn)生的密鑰長度小、節(jié)省帶寬、執(zhí)行速度快、需要的功率低和對(duì)硬件要求低。其優(yōu)越性主要體現(xiàn)在橢圓曲線不僅具有豐富的群結(jié)構(gòu)和多選擇性,而且隨著計(jì)算機(jī)運(yùn)行速度的加快,為達(dá)到特定安全級(jí)別所需密鑰長度的增加速度比RSA機(jī)制及使用有限域的公有機(jī)制要慢得多,所以密鑰長度小、安全性高成為橢圓曲線密碼機(jī)制最具有吸引力的特征。在同等安全強(qiáng)度下,ECC所需的密鑰長度比RSA要小得多,目前被公認(rèn)為己知的公鑰密碼機(jī)制中最安全的一種。
橢圓曲線加密機(jī)制的安全性主要體現(xiàn)在橢圓曲線的離散對(duì)數(shù)問題,描述如下 設(shè)G是一個(gè)群,已知α,β e G,確定一個(gè)整數(shù)X使得β = α χ,若X存在,即X = Ioga β,則X稱作以α為底β的離散對(duì)數(shù)。若己知α、Χ,計(jì)算β是容易的。而反過來, 已知α、β,求解X是數(shù)學(xué)界公認(rèn)得難題,這就被稱為求解離散對(duì)數(shù)問題。
求解有限域上的離散對(duì)數(shù)問題是公認(rèn)的難題,而求解橢圓曲線離散對(duì)數(shù)問題比求解有限域上的離散對(duì)數(shù)還要困難。在有限域F,,選擇橢圓曲線E及一個(gè)具有較高階的基點(diǎn) GeE (Fq),要想計(jì)算該點(diǎn)的倍乘mG (即m個(gè)G相加),相對(duì)來說是容易的。但己知G和mG, 要求m則是很困難的。這實(shí)際上就是橢圓曲線離散對(duì)數(shù)問題。
(3)基于地理位置信息的無線傳感器網(wǎng)絡(luò)分簇方法 在無線傳感器網(wǎng)絡(luò)中,網(wǎng)絡(luò)分簇結(jié)構(gòu)與平面結(jié)構(gòu)相比,具有較好的擴(kuò)展性、可伸縮性、靈活性,可以大大提高系統(tǒng)的性能。分簇算法根據(jù)無線傳感器網(wǎng)絡(luò)的應(yīng)用需求,按照某種規(guī)則將網(wǎng)絡(luò)分成可以相互連通并覆蓋所有節(jié)點(diǎn)的多個(gè)簇,并在網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化時(shí)更新簇結(jié)構(gòu)以及維護(hù)網(wǎng)絡(luò)的正常功能。
在軍事領(lǐng)域,無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)一般通過飛機(jī)拋撒或者炮彈發(fā)射到目標(biāo)區(qū)域; 本文將目標(biāo)區(qū)域分為若干個(gè)目標(biāo)子區(qū)域,然后對(duì)各個(gè)子區(qū)域分別部署傳感器網(wǎng)絡(luò),節(jié)點(diǎn)部署目標(biāo)區(qū)域模型如圖3所示。對(duì)應(yīng)的無線傳感器網(wǎng)絡(luò)結(jié)構(gòu)圖如圖4所示,圖中實(shí)心圓圈表示簇頭節(jié)點(diǎn),空心節(jié)點(diǎn)表示簇內(nèi)普通節(jié)點(diǎn)。
模型具體描述如下 (I)將目標(biāo)區(qū)域分為k個(gè)子區(qū)域,每一個(gè)子區(qū)域都有自己唯一的標(biāo)識(shí)IDf。例如在圖3中,目標(biāo)區(qū)域被分為9個(gè)子區(qū)域,其標(biāo)識(shí)符為IDFi(i = 1,2,3,9)。
(II)設(shè)需要部署到目標(biāo)區(qū)域的傳感器網(wǎng)絡(luò)節(jié)點(diǎn)有N個(gè),每個(gè)節(jié)點(diǎn)都有唯一的標(biāo)識(shí) IDn,將這N個(gè)節(jié)點(diǎn)分為k簇,每一簇也有自己唯一的標(biāo)識(shí)IDg,這樣每個(gè)節(jié)點(diǎn)可標(biāo)識(shí)為<IDn, IDg>。
(III)如果某一簇節(jié)點(diǎn)的IDg等于某子區(qū)域標(biāo)識(shí)IDf,則在該區(qū)域中心點(diǎn)附近,拋撒該簇所有節(jié)點(diǎn);節(jié)點(diǎn)的位置呈近似為以目標(biāo)子區(qū)域的中心點(diǎn)為中心的高斯分布。
與本發(fā)明最接近的現(xiàn)有技術(shù)中的無線傳感器網(wǎng)絡(luò)密鑰管理方法,其會(huì)話密鑰的建立過程主要包括三個(gè)步驟密鑰分配、共享密鑰發(fā)現(xiàn)和路徑密鑰建立。
(1)密鑰的分配過程分為兩步基站為簇分配密鑰和簇首為簇內(nèi)節(jié)點(diǎn)分配密鑰。
(I)基站為簇分配密鑰階段首先基站通過向各節(jié)點(diǎn)發(fā)送同步脈沖信號(hào)來實(shí)現(xiàn)基站與節(jié)點(diǎn)的時(shí)鐘同步,利用時(shí)間戳來確定節(jié)點(diǎn)距離基站的遠(yuǎn)近。運(yùn)用分簇協(xié)議在傳感器網(wǎng)絡(luò)中選擇簇首,新當(dāng)選的簇首節(jié)點(diǎn)向基站發(fā)送消息,告知基站自己為簇首以及自己與基站的距離?;靖鶕?jù)各簇首與其距離分配給每個(gè)簇首所在的簇一個(gè)惟一的簇標(biāo)識(shí)符CLID(簇首距離基站越近,則其所在簇的標(biāo)識(shí)符越小),將各簇首的節(jié)點(diǎn)標(biāo)識(shí)符NID與其所在簇的標(biāo)識(shí)符CLID相關(guān)聯(lián)。每個(gè)簇首都通過廣播一個(gè)含有自己NID以及所在簇的CLID的節(jié)點(diǎn)發(fā)現(xiàn)包interiornod^disc來發(fā)現(xiàn)自己的簇成員及網(wǎng)關(guān)節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)是能夠收到兩個(gè)或者兩個(gè)以上簇首廣播消息的節(jié)點(diǎn)。簇首通過網(wǎng)關(guān)節(jié)點(diǎn)得知自己與哪些簇相鄰,向基站通報(bào)自己鄰接簇的CLID,基站由此得到簇之間的鄰接信息。
基站為密鑰空間S中的每個(gè)密鑰分配一個(gè)密鑰標(biāo)識(shí)符Kid,規(guī)定各簇密鑰池的大小,按照各簇與基站距離由遠(yuǎn)及近地為各簇分配密鑰,在給每個(gè)簇分配密鑰池時(shí),基站檢查自己收到的通報(bào)信息得到該簇的鄰接簇的數(shù)量和已分配密鑰池的鄰接簇的數(shù)量,鄰接簇的數(shù)量決定了該簇與其鄰接簇共享密鑰的比例,已分配密鑰池的鄰接簇的數(shù)量決定了該簇的密鑰池中來自鄰接簇的密鑰與來自當(dāng)前S的密鑰的比例,每個(gè)簇的密鑰池分配完畢,基站將這些密鑰用與該簇簇首標(biāo)識(shí)符相對(duì)應(yīng)的會(huì)話密鑰加密后發(fā)送給該簇簇首,計(jì)算當(dāng)前S。在密鑰分配算法的描述中,將用到下述符號(hào) S 基站為該傳感器網(wǎng)絡(luò)選擇的初始密鑰空間; Sati 基站為簇分配密鑰池以后剩余的密鑰空間; N:網(wǎng)絡(luò)中簇的個(gè)數(shù); S1 基站為CLID = I的簇分配的密鑰池,I = 1,2,…,N ; ScI 常量,每個(gè)簇的密鑰池中密鑰的個(gè)數(shù); S1 : 的密鑰的個(gè)數(shù),Is1I = ScI ; kx =CLID = I的簇的鄰接簇個(gè)數(shù),Ii1彡N-I ; hx =CLID = I的簇的鄰接簇中已分配密鑰池的簇的個(gè)數(shù),即該簇的鄰接簇中CLID > I的個(gè)數(shù),^ kx ; S1'從其Ill個(gè)鄰接簇的密鑰池中為CLID = I的簇選擇的密鑰池,I = 1,2,…, N7S1^S1; S1"從S當(dāng)前中為CLID = I的簇分配的密鑰池,I = 1,2,…,N,Si" G尚。
密鑰分配算法 S浦=S,基站從初始密鑰空間S中為CLID = N的簇分配密鑰池5WSWG5; Sn =
IscI ; SatJ= S-Sn ; 為CLID = N-I的簇分配密鑰池; If V1 彡 land 簇 N 與簇 N-I 鄰接; 從Sn中隨機(jī)選擇IzV1* I Sc I個(gè)密鑰組成Sh ‘; Sn./' GiS當(dāng)前,ISn-/ = (I-IZV1)^IscI ; Sh = Sh' U Sn-/',Isn-J = ScI ; S 當(dāng)前=S-(、U Sim); Else S^S m, Is^11 = IscI ; S 當(dāng)前=S-Gn U Sh); For (CLID =I5I^l ;I—); If Ii1 彡 1 and 1 彡 Ii1 乒 k ; 從、個(gè)簇的密鑰池中各隨機(jī)選擇1/X*|SC|個(gè)密鑰,組成,S1' I = Qll/
kx)*|Sc; Sln^Sm, Is1" I = (I-VX)^scI; S1 = S1' U S1",S1 = Sc ; Ssffi= S-(SN U Sh U …U S1); Else If kj ^ 1 and hx = kx 分別從Ic1個(gè)鄰接簇的密鑰池中取1/XIS」個(gè)密鑰放入I的密鑰池,組成I的密鑰池& ; Else If kj = 0 Si^S m, Is1I = |sc| ; Ssffi= S-(SN U Sn^1 U …U S1)。
(II)簇首為簇內(nèi)節(jié)點(diǎn)分配密鑰階段簇首不是將自己存儲(chǔ)的整個(gè)密鑰池分配給每個(gè)節(jié)點(diǎn),而是從密鑰池中為簇內(nèi)每個(gè)節(jié)點(diǎn)隨機(jī)分配ζ (ζ < ScD個(gè)密鑰,從而減少節(jié)點(diǎn)存儲(chǔ)密鑰所要消耗的空間,并且提高密鑰池的保密性。如果將密鑰池中所有密鑰分配給每個(gè)節(jié)點(diǎn)或者單個(gè)節(jié)點(diǎn)中存儲(chǔ)密鑰空間過大,則有可能單個(gè)節(jié)點(diǎn)或者少數(shù)幾個(gè)節(jié)點(diǎn)被俘就會(huì)暴露整個(gè)簇的密鑰空間,每個(gè)節(jié)點(diǎn)中存儲(chǔ)的密鑰空間也不能太小,否則簇內(nèi)兩節(jié)點(diǎn)建立安全通信的概率就會(huì)降低,即有可能會(huì)形成“安全孤島”。
網(wǎng)關(guān)節(jié)點(diǎn)是用于簇間安全通信的節(jié)點(diǎn),這決定了其密鑰分配原則與普通節(jié)點(diǎn)不同。在建簇的同時(shí)得到網(wǎng)關(guān)節(jié)點(diǎn)且得知網(wǎng)關(guān)節(jié)點(diǎn)用于連接哪些簇,為了實(shí)現(xiàn)簇間通信可解密、可驗(yàn)證,網(wǎng)關(guān)節(jié)點(diǎn)必須與自己連接的所有簇的簇首都具有共享密鑰,所以網(wǎng)關(guān)節(jié)點(diǎn)的密鑰來源于自己連接的多個(gè)簇,與每個(gè)簇首共享密鑰的比例由其連接的簇的個(gè)數(shù)決定。假定簇內(nèi)節(jié)點(diǎn)的密鑰空間大小為ζ,某個(gè)網(wǎng)關(guān)節(jié)點(diǎn)用于連接L個(gè)簇,則每個(gè)簇的簇首為該網(wǎng)關(guān)節(jié)點(diǎn)分配的密鑰個(gè)數(shù)為1/1*ζ,來自L個(gè)簇的密鑰共同組成了此網(wǎng)關(guān)節(jié)點(diǎn)的密鑰空間。
(2)共享密鑰發(fā)現(xiàn)階段 當(dāng)所有節(jié)點(diǎn)的密鑰分配完畢以后,節(jié)點(diǎn)將廣播自己的密鑰,以發(fā)現(xiàn)自己與鄰居節(jié)點(diǎn)的共享密鑰。每個(gè)節(jié)點(diǎn)在收到其余節(jié)點(diǎn)廣播的密鑰時(shí)檢查這些密鑰的Kid是否有與自己的密鑰的Kid相一致的,存在相同的Kid的兩個(gè)節(jié)點(diǎn)之間就可以建立安全連接。
(3)路徑密鑰建立階段 兩個(gè)節(jié)點(diǎn)之間具有共同的密鑰,則可以用節(jié)點(diǎn)預(yù)先存儲(chǔ)的Hash函數(shù)計(jì)算路徑密鑰。計(jì)算方法為如果節(jié)點(diǎn)A與B之間共享q個(gè)密鑰,則用所有q個(gè)密鑰共同生成A與B的通信密鑰Kab = hash (kj Ic2II... Il kq) 0 Hash的自變量的順序是按照預(yù)先議定的規(guī)范,本方案規(guī)定q個(gè)密鑰的Kid由小到大排列。在同一個(gè)簇內(nèi),兩個(gè)無共同密鑰的節(jié)點(diǎn)之間要進(jìn)行通信,可以通過一個(gè)與這兩個(gè)節(jié)點(diǎn)都具有共同密鑰的節(jié)點(diǎn)作為中間節(jié)點(diǎn)進(jìn)行通信,為了減少簇首的能量消耗,在簇內(nèi)節(jié)點(diǎn)進(jìn)行通信時(shí),盡量不選擇簇首作為中間節(jié)點(diǎn)。如果要進(jìn)行通信的兩節(jié)點(diǎn)位于不同的簇內(nèi),則要選擇簇首和網(wǎng)關(guān)節(jié)點(diǎn)作為中間節(jié)點(diǎn),不能越過簇首直接選擇網(wǎng)關(guān)節(jié)點(diǎn)作為中間節(jié)點(diǎn),是因?yàn)槭紫却貎?nèi)普通節(jié)點(diǎn)未存儲(chǔ)網(wǎng)關(guān)節(jié)點(diǎn)的有關(guān)信息,其次普通節(jié)點(diǎn)與網(wǎng)關(guān)節(jié)點(diǎn)之間恰好存在共同密鑰的概率較低。在基站查詢式方式中,基站向各節(jié)點(diǎn)發(fā)出查詢請(qǐng)求,節(jié)點(diǎn)采集到的信息將通過簇首轉(zhuǎn)發(fā)給基站。簇首并非直接將信息發(fā)送到基站,而是通過多跳方式。每個(gè)簇首的下一跳并不是某鄰接簇的簇首,而是連接此鄰接簇的網(wǎng)關(guān)節(jié)點(diǎn)。
上述現(xiàn)有的無線傳感器網(wǎng)絡(luò)密鑰管理方法使用的是對(duì)稱加密機(jī)制,無法實(shí)現(xiàn)節(jié)點(diǎn)間的認(rèn)證,使得網(wǎng)絡(luò)的安全性降低。
本發(fā)明涉及的術(shù)語解釋如下 ECC 橢圓曲線加密機(jī)制(Elliptic Curve Cryptosystem),是一種基于橢圓曲線理論的加密機(jī)制,是公鑰加密機(jī)制中的一種。
WSN 無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks),是由許多體積微小的傳感器節(jié)點(diǎn)組成的,這些節(jié)點(diǎn)之間可以進(jìn)行無線通信,對(duì)所處環(huán)境進(jìn)行實(shí)時(shí)的監(jiān)視,并將收集到的信息進(jìn)行存儲(chǔ)、處理,最終傳送給目的用戶。
基站一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),在其所處的無線傳感器網(wǎng)絡(luò)中,相對(duì)于其它的節(jié)點(diǎn),具有較強(qiáng)的存儲(chǔ)能力和較多的能量。
簇頭一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn),在其所處的簇內(nèi),相對(duì)于其它的節(jié)點(diǎn),具有較強(qiáng)的存儲(chǔ)能力和較多的能量。
公鑰加密機(jī)制是一種加密方法,也稱為非對(duì)稱加密機(jī)制,加密和解密過程中使用的密鑰不同,加密使用的是公鑰(可以公開的密鑰,除了通信雙方外,其它第三方也可以知道的密鑰),解密使用的是通信雙方的私鑰。
對(duì)稱加密機(jī)制與公鑰加密機(jī)制相對(duì)而言,加解密過程使用的是同一密鑰。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)中存在的上述缺陷,提出一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法及裝置,以進(jìn)一步提高網(wǎng)絡(luò)的安全性。
本發(fā)明采用的技術(shù)方案包括 一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法,包括如下步驟 對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,且滿足基站僅與簇頭通信,簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,簇與簇之間不存在共享節(jié)點(diǎn); 在分發(fā)通信密鑰,建立安全通信鏈路時(shí),采用橢圓曲線加密算法對(duì)所述無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理;節(jié)點(diǎn)之間正常通信時(shí),采用對(duì)稱加密方法進(jìn)行密鑰管理。
進(jìn)一步地,所述對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,指基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,分簇算法采用分布式能量核自動(dòng)生成算法(Distributed Energy-Core Algorithm, DECA)。
進(jìn)一步地,對(duì)所述橢圓曲線加密算法的點(diǎn)乘運(yùn)算進(jìn)行了如下優(yōu)化 采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。采用這種轉(zhuǎn)換方式后,減少了減法鏈中非零位的個(gè)數(shù),從而減少了所需要的點(diǎn)加運(yùn)算的次數(shù),能夠顯著降低傳感器節(jié)點(diǎn)的能耗。
進(jìn)一步地,采用所述橢圓曲線加密算法對(duì)所述無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理,其中的身份認(rèn)證過程包括如下步驟 步驟1、節(jié)點(diǎn)A隨機(jī)選取整數(shù)巧e Fq,并用節(jié)點(diǎn)B的公鑰Pb和節(jié)點(diǎn)A的私鑰a計(jì)算TA = a · ri · Pb,并向節(jié)點(diǎn)B發(fā)送TA,其中Ftl為選定的有限域,·表示點(diǎn)乘; 步驟2、節(jié)點(diǎn)B隨機(jī)選取r2 e Fq,并利用節(jié)點(diǎn)A的公鑰Pa和節(jié)點(diǎn)A的私鑰b計(jì)算 TB = b · r2 · Pa ; 步驟3、節(jié)點(diǎn)A計(jì)算& =巧· TB,并發(fā)送給節(jié)點(diǎn)B ; 步驟4、節(jié)點(diǎn)B計(jì)算& = r2 ·ΤΑ,并驗(yàn)證等式& = Sb是否成立,完成對(duì)A的身份認(rèn)證。
一種無線傳感器網(wǎng)絡(luò)的密鑰管理裝置,包括分簇模塊和密鑰管理模塊; 其中,所述分簇模塊用于,對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,且滿足基站僅與簇頭通信,簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,簇與簇之間不存在共享節(jié)點(diǎn); 所述密鑰管理模塊用于,在分發(fā)通信密鑰,建立安全通信鏈路時(shí),采用橢圓曲線加密算法對(duì)所述無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理;節(jié)點(diǎn)之間進(jìn)行正常通信時(shí)采用對(duì)稱加密方法進(jìn)行密鑰管理。
進(jìn)一步地,所述對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,指基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,采用的分簇算法是DECA算法。
進(jìn)一步地,所述無線傳感器網(wǎng)絡(luò)的密鑰管理裝置還包括橢圓曲線加密算法優(yōu)化模塊,用于對(duì)所述橢圓曲線加密算法的點(diǎn)乘運(yùn)算進(jìn)行如下優(yōu)化 采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。
本發(fā)明的有益效果為 在本發(fā)明技術(shù)方案中,傳感器節(jié)點(diǎn)之間通信使用了橢圓曲線加密機(jī)制,能夠?qū)崿F(xiàn)節(jié)點(diǎn)之間的認(rèn)證,顯著提高了無線傳感器網(wǎng)絡(luò)系統(tǒng)的安全性,該方案具備良好的前向安全性和后向安全性,支持動(dòng)態(tài)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),具備良好的抗分布式拒絕服務(wù)攻擊 (Distributed Denial of krvice,DDoS)、防篡改能力。同時(shí),本發(fā)明采用基于地理位置信息的無線傳感器網(wǎng)絡(luò)分簇方法對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,基站僅與簇頭通信,簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不直接通信,簇與簇之間不存在共享節(jié)點(diǎn),能夠進(jìn)一步有效保護(hù)通信密鑰的安全性。
圖1為橢圓曲線加密體制產(chǎn)生密鑰過程示意圖; 圖2為公鑰加密體制加解密過程示意圖; 圖3為基于地理位置信息的WSN分布示意圖; 圖4為WSN層簇式結(jié)構(gòu)示意圖; 圖5為非基于地理位置信息的WSN結(jié)構(gòu)示意圖; 圖6為橢圓曲線主要運(yùn)算結(jié)構(gòu)簡圖; 圖7為WSN節(jié)點(diǎn)認(rèn)證過程示意圖; 圖8為本發(fā)明一個(gè)具體實(shí)施例的WSN節(jié)點(diǎn)認(rèn)證過程示意圖; 圖9為本發(fā)明無線傳感器網(wǎng)絡(luò)的密鑰管理裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
本發(fā)明無線傳感器網(wǎng)絡(luò)的密鑰管理方法具體包括如下步驟 一、采用基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,分簇后的WSN結(jié)構(gòu)如圖4所示,基站僅與簇頭通信、簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,如果簇頭之間需要通信,則必須要通過基站節(jié)點(diǎn)建立安全通信鏈路,采用這種結(jié)構(gòu)能夠提高WSN的安全性。如果采用如圖5所示的WSN結(jié)構(gòu),則節(jié)點(diǎn)α、β、ζ會(huì)同時(shí)擁有1區(qū)和2區(qū)的通信密鑰,一旦敵對(duì)方俘獲這三個(gè)節(jié)點(diǎn),則兩個(gè)區(qū)的通信密鑰將會(huì)被破解,從而降低了 WSN的安全性。
二、采用橢圓曲線加密算法對(duì)無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理。
(I)初始化階段 在運(yùn)行方案之前運(yùn)行系統(tǒng)初始化算法,進(jìn)行初始化工作。系統(tǒng)初始化選擇一條有限域F,上的橢圓曲線Ε。選取橢圓曲線上的點(diǎn)P作為基點(diǎn)。選取整數(shù)s e F,作為系統(tǒng)的私鑰,并計(jì)算S = s*P作為系統(tǒng)公鑰。系統(tǒng)參數(shù)初始化為Para = {Ε, Fq, P,s, S}。其中, 系統(tǒng)私鑰由系統(tǒng)保存,系統(tǒng)其它參數(shù)作為公共信息公布。
為了增強(qiáng)本方案的安全性,這里的橢圓曲線的選取是隨機(jī)選取的,選擇的橢圓曲線滿足方程Y2 = X3+aX+b。算法的詳細(xì)描述如下 (1)選擇有限域F,; (2)隨機(jī)均勻生成a,b且滿足a,b e Fq,且4a3+27b2 !三Omodq(其中“!三”表示非恒等于); (3)利用schoof (朔夫)算法,計(jì)算滿足方程Y2 = X3+aX+b,定義在有限域F,上的橢圓曲線的階,記為#E(Fq); (4)分解#E(Fq),進(jìn)行Miller-Rabin (米勒一拉賓)素性檢測(cè),如果橢圓曲線的階含有大素?cái)?shù)則進(jìn)行下一步,否則回到步驟O); (5)返回 a,b 結(jié)束。
由于傳感器節(jié)點(diǎn)的計(jì)算能力和能耗的限制,我們對(duì)橢圓曲線計(jì)算中的點(diǎn)乘計(jì)算進(jìn)行了優(yōu)化,以適應(yīng)傳感器節(jié)點(diǎn)的自身約束條件。橢圓曲線上的主要運(yùn)算如圖6所示。
點(diǎn)乘運(yùn)算是整個(gè)橢圓曲線密碼系統(tǒng)最基本、最關(guān)鍵的運(yùn)算,它決定著整個(gè)系統(tǒng)的執(zhí)行效率,因此對(duì)點(diǎn)乘算法的優(yōu)化能夠較大幅度的提高ECC的計(jì)算速度,從而減少傳感器節(jié)點(diǎn)的能耗,降低對(duì)傳感器節(jié)點(diǎn)的計(jì)算能力要求。具體優(yōu)化方案如下 有限域加是最直接、最容易實(shí)現(xiàn)的運(yùn)算,其算法如下 輸入域元素 a = {a^··· a^a,) >b = Ov1... t^t^bo) 輸出c = (CmVC2C1C0) = a b (1)對(duì)i從O到m,執(zhí)行 如果屮=bi;則Ci = O 否則Ci = l (2)返回 c 從上述算法可以看出,點(diǎn)乘算法中,點(diǎn)加運(yùn)算的次數(shù)是由k的加法鏈中的非零位的個(gè)數(shù)決定的,所以本發(fā)明通過優(yōu)化k的加法鏈來減少所需要的點(diǎn)加運(yùn)算的次數(shù)。由公式 2m+1_1+2m+1_2+…+2l =產(chǎn)1-21,將連續(xù)為丄的二進(jìn)制串轉(zhuǎn)化為10…0-1的形式來表示,即采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。采用這種轉(zhuǎn)換方式后,減少了減法鏈中非零位的個(gè)數(shù),從而減少了所需要的點(diǎn)加運(yùn)算的次數(shù)。
我們計(jì)算點(diǎn)乘主要包括兩步首先求出大整數(shù)的加法鏈,然后利用求得的值進(jìn)行點(diǎn)乘運(yùn)算。下面兩個(gè)算法分別給出了相應(yīng)步驟的算法。
算法1: 輸入整數(shù)η 輸出串S 令k —n,S —<> 當(dāng)k>0時(shí)執(zhí)行 (I)如果k是奇數(shù),則令U — (2_101110(14,否則令11一0 (II)令 k —k_u (III)將u添加到S中 (IV)令 k — k/2 輸出S 在這里,經(jīng)過上述算法后加減法鏈的長度將比原來加法鏈的長度增1。
算法2: 輸入P、η 輸出Q 令 Q —P 對(duì)i = t-Ι遞減到1,執(zhí)行 (I)令 Q — 2Q (II)如果 ei = 1,則令 Q —Q+P (III)如果 ei =-1,則令 Q —Q-P 輸出Q 該算法的花費(fèi)主要依賴于加減法鏈長度,對(duì)原長為t比特的大整數(shù),采用算法1 后,加減法鏈長度變?yōu)閠+Ι。在本優(yōu)化方案中加減法鏈中非零位數(shù)的平均密度是(t+l)/3。 因此算法的平均共需要進(jìn)行t+1次的倍點(diǎn)和(t+l)/3次的點(diǎn)加運(yùn)算。平均所需要的總的運(yùn)算時(shí)間為(t+l)A+((t+l)/3)D。與重復(fù)加一倍點(diǎn)運(yùn)算相比,本方案節(jié)省了 t/6次的點(diǎn)加運(yùn)算。因此,加快了橢圓曲線的生成速度,在一定程度上降低了傳感器節(jié)點(diǎn)的能耗及對(duì)傳感器節(jié)點(diǎn)的計(jì)算能力的要求。
(II)密鑰分發(fā) 選擇基站作為證書授權(quán)中心(Certificate Authority,CA),管理相應(yīng)子群的公私鑰分發(fā)。對(duì)于圖1中的節(jié)點(diǎn)A,CA選擇a e F,作為其私鑰,Pa = a*P作為其公鑰。CA通過安全信道向節(jié)點(diǎn)A點(diǎn)分發(fā)信息{a,Pa, Ps}。其中Ps為CA利用系統(tǒng)私鑰對(duì)節(jié)點(diǎn)的公鑰加密信息,記作Ps = s*Pa。
(III)身份認(rèn)證過程 節(jié)點(diǎn)在收到密鑰分發(fā)信息之后利用系統(tǒng)分發(fā)的密鑰對(duì)和系統(tǒng)公鑰驗(yàn)證a*Pa = Ps 是否成立來決定是否接受該密鑰對(duì)。節(jié)點(diǎn)的公鑰信息作為公共信息公布,私鑰自己保存。
本實(shí)施例采用承諾、詢問和應(yīng)答的身份認(rèn)證流程。假設(shè)A和B在通信前必須互相驗(yàn)證身份。A有系統(tǒng)分發(fā)的私鑰a e F,和公鑰Pa = a*P。B有系統(tǒng)分發(fā)的私鑰b e Fq和公鑰Pb = b*P。如圖7所示,本實(shí)施例的身份認(rèn)證流程具體包括以下步驟 步驟1、節(jié)點(diǎn)A隨機(jī)選取整數(shù)巧e Fq,并用節(jié)點(diǎn)B的公鑰Pb和節(jié)點(diǎn)A的私鑰a計(jì)算TA = a · ri · Pb,并向節(jié)點(diǎn)B發(fā)送TA,其中Ftl為選定的有限域,·表示點(diǎn)乘; 步驟2、節(jié)點(diǎn)B隨機(jī)選取r2 e Fq,并利用節(jié)點(diǎn)A的公鑰Pa和節(jié)點(diǎn)A的私鑰b計(jì)算 TB = b · r2 · Pa ; 步驟3、節(jié)點(diǎn)A計(jì)算& =巧· TB,并發(fā)送給節(jié)點(diǎn)B ; 步驟4、節(jié)點(diǎn)B計(jì)算& = r2 ·ΤΑ,并驗(yàn)證等式& = Sb是否成立,完成對(duì)A的身份認(rèn)證。即如果等式成立則身份認(rèn)證成功,如果等式不成立則認(rèn)證失敗。
本發(fā)明的基于ECC的密鑰管理方案可以基于微操作系統(tǒng)(TinyOS)平臺(tái)實(shí)現(xiàn)。
下面以一個(gè)具體實(shí)施例的方式對(duì)本發(fā)明采用的ECC加密管理方案做進(jìn)一步詳細(xì)說明。
本實(shí)施例為一個(gè)基于ID的標(biāo)準(zhǔn)單向身份認(rèn)證方案,方案設(shè)計(jì)分為如下三個(gè)階段 (1)系統(tǒng)初始化 運(yùn)行系統(tǒng)初始化算法,生成兩個(gè)階為q點(diǎn)群G1, G20其中(G1, +)和(G2, ·)是階q的兩個(gè)群,q是大素?cái)?shù),G1是加法群,G2是乘法群,e =G1XG1 = &。其中,·表示點(diǎn)乘。
隨機(jī)選擇點(diǎn)群G1上的點(diǎn)P作為生成元。選擇s e Fq為系統(tǒng)主密鑰。計(jì)算Ps = s· P作為系統(tǒng)公鑰。
選擇一個(gè)哈希函數(shù)氏。H1為任何字符串到G1的映射=H1 = {0,1}* — &。得到系統(tǒng)的參數(shù)如下 Para = (G1, G2, e, P, n, H1, s, Pj 其中系統(tǒng)主密鑰由系統(tǒng)保存,其它作為公共參數(shù)公布。
(2)公私鑰提取 節(jié)點(diǎn)A通過其ID (身份標(biāo)識(shí))哈希映射得到其公鑰Da = H1(ID),并公布該信息作為其公鑰。并由系統(tǒng)通過主密鑰計(jì)算Pa = sDa作為其私鑰,通過安全信道分發(fā)給A,由A自己保存。節(jié)點(diǎn)A驗(yàn)證e(Da,Ps)是否與e(Pa,P)相等。若相等則接受公鑰生成中心(Public Key Generation, PKG)的私鑰分發(fā),否則拒絕接受。所有的節(jié)點(diǎn)都通過這樣一個(gè)過程獲取公私鑰。
(3)身份認(rèn)證方案 假設(shè)兩個(gè)節(jié)點(diǎn)是A、B,其中A作為示證方,B作為驗(yàn)證方。身份認(rèn)證流程如圖8所示,具體包括如下步驟 步驟1,A隨機(jī)選擇數(shù)k e Fq,利用公鑰Da計(jì)算R = k*Da,并向B發(fā)送R,F(xiàn)q為選定的有限域。
步驟2,B收到R后隨機(jī)選擇數(shù)t e Ftl,并向A發(fā)送t。
步驟3,A收到t后,利用其私鑰Pa和t計(jì)算s = (k+t)Pa,并向B發(fā)送密文S。
步驟4,B收到s后驗(yàn)證等式e (S,P) = e(R+tDa,Ps)是否成立完成對(duì)A的認(rèn)證。顯然若是式子成立則完成了對(duì)A的身份確認(rèn)。驗(yàn)證過程如下 e (S,P) = e ((k+t) Pa, P) = e (kPa,P) *e (tPa,P); e (kPa,P) *e (tPa,P) = e (R,Ps) e (tDa,Ps) = e (R+tDa, Ps)。
圖9為本發(fā)明無線傳感器網(wǎng)絡(luò)的密鑰管理裝置結(jié)構(gòu)示意圖,如圖所示,本發(fā)明無線傳感器網(wǎng)絡(luò)的密鑰管理裝置包括分簇模塊、密鑰管理模塊和橢圓曲線加密算法優(yōu)化模塊。
其中,分簇模塊用于,基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,且滿足基站僅與簇頭通信,簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,簇與簇之間不存在共享節(jié)點(diǎn)。
密鑰管理模塊用于,采用橢圓曲線加密算法對(duì)無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理。
橢圓曲線加密算法優(yōu)化模塊,用于對(duì)橢圓曲線加密算法的點(diǎn)乘運(yùn)算進(jìn)行如下優(yōu)化 采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。
以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,應(yīng)注意的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求記載的技術(shù)方案及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法,其特征在于,包括如下步驟對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,且滿足基站僅與簇頭通信,簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,簇與簇之間沒有共享節(jié)點(diǎn);在分發(fā)通信密鑰,建立安全通信鏈路時(shí)采用橢圓曲線加密算法對(duì)所述無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理,在正常通信時(shí)采用對(duì)稱加密方法進(jìn)行密鑰管理。
2.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的密鑰管理方法,其特征在于,所述對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,指基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,分簇的算法是分布式能量核自動(dòng)生成算法。
3.根據(jù)權(quán)利要求1所述的無線傳感器網(wǎng)絡(luò)的密鑰管理方法,其特征在于,對(duì)所述橢圓曲線加密算法的點(diǎn)乘運(yùn)算進(jìn)行了如下優(yōu)化采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。
4.根據(jù)權(quán)利要求1或2或3所述的無線傳感器網(wǎng)絡(luò)的密鑰管理方法,其特征在于,采用所述橢圓曲線加密算法對(duì)所述無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理,其中的身份認(rèn)證過程包括如下步驟步驟1、節(jié)點(diǎn)A隨機(jī)選取整數(shù)Γι e Fq,并用節(jié)點(diǎn)B的公鑰Pb和節(jié)點(diǎn)A的私鑰a計(jì)算TA =a · T1 · Pb,并向節(jié)點(diǎn)B發(fā)送TA,其中Fq為選定的有限域,·表示點(diǎn)乘;步驟2、節(jié)點(diǎn)B隨機(jī)選取r2 e Fq,并利用節(jié)點(diǎn)A的公鑰Pa和節(jié)點(diǎn)A的私鑰b計(jì)算TB = b · r2 · Pa ;步驟3、節(jié)點(diǎn)A計(jì)算Sa = Γι · TB,并發(fā)送給節(jié)點(diǎn)B ;步驟4、節(jié)點(diǎn)B計(jì)算Sb = r2 · ΤΑ,并驗(yàn)證等式Sa = Sb是否成立,完成對(duì)A的身份認(rèn)證。
5.一種無線傳感器網(wǎng)絡(luò)的密鑰管理裝置,其特征在于,包括分簇模塊和密鑰管理模塊;其中,所述分簇模塊用于,對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,且滿足基站僅與簇頭通信,簇頭與所在簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,簇與簇之間不存在共享節(jié)點(diǎn);所述密鑰管理模塊用于,在分發(fā)通信密鑰,建立安全通信鏈路時(shí)采用橢圓曲線加密算法對(duì)所述無線傳感器網(wǎng)絡(luò)進(jìn)行密鑰管理;在正常通信時(shí)采用對(duì)稱加密方法進(jìn)行密鑰管理。
6.根據(jù)權(quán)利要求5所述的無線傳感器網(wǎng)絡(luò)的密鑰管理裝置,其特征在于,所述對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,指基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)進(jìn)行分簇,分簇算法是分布式能量核自動(dòng)生成算法。
7.根據(jù)權(quán)利要求5或6所述的無線傳感器網(wǎng)絡(luò)的密鑰管理裝置,其特征在于,所述無線傳感器網(wǎng)絡(luò)的密鑰管理裝置還包括橢圓曲線加密算法優(yōu)化模塊,用于對(duì)所述橢圓曲線加密算法的點(diǎn)乘運(yùn)算進(jìn)行如下優(yōu)化采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。
全文摘要
本發(fā)明公開了一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法,包括步驟1、采用DECA算法并基于節(jié)點(diǎn)的空間位置信息對(duì)傳感器節(jié)點(diǎn)分簇,基站僅與簇頭通信,簇頭與簇內(nèi)普通節(jié)點(diǎn)進(jìn)行通信,簇頭之間不能直接通信,簇與簇之間不存在共享節(jié)點(diǎn);2、在分發(fā)通信密鑰時(shí),采用橢圓曲線加密算法對(duì)無線傳感器網(wǎng)絡(luò)進(jìn)行加解密處理;在建立安全通信鏈路之后,利用對(duì)稱加密方法進(jìn)行節(jié)點(diǎn)之間的通信。并對(duì)所述橢圓曲線加密算法的點(diǎn)乘運(yùn)算進(jìn)行了如下優(yōu)化采用滑動(dòng)窗口的方法減少連續(xù)非零整數(shù)的個(gè)數(shù)。采用本發(fā)明方法能夠顯著提高無線傳感器網(wǎng)絡(luò)系統(tǒng)的安全性。本發(fā)明還公開了一種無線傳感器網(wǎng)絡(luò)的密鑰管理裝置,包括分簇模塊、密鑰管理模塊和橢圓曲線加密算法優(yōu)化模塊。
文檔編號(hào)H04W84/18GK102186170SQ20101055689
公開日2011年9月14日 申請(qǐng)日期2010年11月24日 優(yōu)先權(quán)日2010年11月24日
發(fā)明者姜建偉 申請(qǐng)人:北京天融信科技有限公司