一種無線傳感器網(wǎng)絡密鑰分配方法
【技術領域】
[0001] 本發(fā)明涉及一種無線傳感器網(wǎng)絡密鑰分配方法,屬于無線傳感器網(wǎng)絡密鑰預分配 方法技術領域。
【背景技術】
[0002] 無線傳感器網(wǎng)絡(WirelessSensorNetworks,WSN)是由大量成本低廉、資源受限 的傳感器節(jié)點部署而成的移動自組織網(wǎng)絡。WSN與傳統(tǒng)的無線網(wǎng)絡相比具有感知能力高、布 置靈活性強、布局快速、成本低廉等特點,使其應用極為廣泛。其中通信安全是非常重要的 一個課題,而密鑰管理是很多安全服務的基石,如機密性和認證等。由于WSN資源受限,所 以與非對稱密碼體制相比對稱密碼體制更適合用于WSN的保密通信。針對該問題目前提出 了多種方案。
[0003] Eschenauer和Gligor首先提出隨機密鑰預分配方案(EG)。該方案中要求基站產(chǎn) 生一個大的密鑰池,網(wǎng)絡中的每個節(jié)點都從中隨機選擇若干密鑰存入到節(jié)點的內存中。若 兩相鄰節(jié)點保存有共同的密鑰,則把該共享密鑰作為它們之間的通信密鑰,否則將不能進 行直接通信,而是需借助中間節(jié)點的幫助建立路徑密鑰。EG方案的首次提出,為無線傳感器 網(wǎng)絡中的密鑰管理方案提供了新的思路,后人也針對該方案中連通率和安全性等方面的諸 多問題,做了相應的改善。例如由Chan等人提出的q-composite方案,就是在EG方案基礎 上做出的改進。該方案要求只有當兩節(jié)點共享至少#密鑰時,才能建立安全路徑進行通 信。通過這樣的方式可以有效地提高網(wǎng)絡的安全性,但是網(wǎng)絡連通率也隨之降低。
[0004] 由Blom等人提出的密鑰管理方案利用對稱矩陣的性質,使得網(wǎng)絡中任 意兩個節(jié)點計算產(chǎn)生的通信密鑰都是對稱矩陣的對稱元素,因此是相同的。即 網(wǎng)絡中的任意兩個節(jié)點都能夠建立對密鑰進行通信。但該方案存在安全閾值 』,即如果被捕獲的節(jié)點數(shù)不超過』個,那么該方案就是安全的,否則該方案將很容易被攻 擊者攻破。為了改進這一現(xiàn)狀,Du等人提出了基于多密鑰空間的密鑰管理方案,該方案中 每個節(jié)點都保存了多個密鑰空間的信息,而只有擁有共享密鑰空間的兩個節(jié)點,才可以利 用Blom的方法建立共享密鑰。分析結果表明該方案提高了網(wǎng)絡的安全性,但是也降低了網(wǎng) 絡的連通率。
[0005] Blundo等人提出了基于二元對稱多項式的密鑰管理方案,該方案利用二元多項 式的對稱性,也能夠實現(xiàn)全連通的網(wǎng)絡。該方案中由基站隨機生成一個二元I次多項式 /(x,J),該多項式滿足性質/(x,.F) = /(>,x),即改變兩個參數(shù)的位置,多項式的值仍保持 不變?;靖鶕?jù)每個節(jié)點的標識符,為每個節(jié)點,例如節(jié)點,分配一個多項式/(/A^),其 中ZA為節(jié)點i_的標識符。同樣地,節(jié)點j也保存了一個多項式。在計算共享密鑰 時,任意兩節(jié)點纟和j都只需互相交換它們的節(jié)點標識符,便可分別計算得到共享密鑰為 ^ = =/(H〗?,瑪)=心,可見該方案的網(wǎng)絡連通率也是1。但是該方案并不是絕 對安全的,它存在f安全性:只要被捕獲的節(jié)點不超過f個,攻擊者將不能利用得到的信息 恢復出原本的二元多項式,也不能對其他節(jié)點之間的通信造成威脅。但是如果攻擊者捕獲 了超過f個節(jié)點,那么它就可以恢復出該二元多項式,進而可使整個網(wǎng)絡陷入癱瘓。
[0006] 商曉陽提出的簇狀WSN的分層密鑰管理方案中,采用中國剩余定理分配簇頭與普 通節(jié)點間的通信密鑰。首先由基站產(chǎn)生一組彼此互素的正整數(shù)^,和一個初始密 鑰J:,由此得到同余方程組的系數(shù)。根據(jù)中國剩余定理計算由n個同余多 項式組成的同余方程組的解if。并且把JT和叫分配給簇內的每個節(jié)點最后普通節(jié)點 便可通過一次取模運算、一次異或運算來計算自己與簇頭的通信密鑰 。但是經(jīng)過實驗證明,該算法并不能保證簇頭與簇內普通節(jié)點成功建立共享密鑰。而且一 旦有新的普通節(jié)點加入網(wǎng)絡,基站需要重新生成一個更大的同余方程組,并且重復密鑰信 息分配過程,所以新節(jié)點加入操作復雜。
【發(fā)明內容】
[0007] 為了適應分簇式網(wǎng)絡的結構特點,提高WSN中節(jié)點之間的網(wǎng)絡連通度和安全性, 本發(fā)明提出了一種無線傳感器網(wǎng)絡密鑰分配方法,該方法采用中國剩余定理產(chǎn)生簇內節(jié)點 與簇頭節(jié)點之間的通信密鑰,由于復雜的計算都由基站來完成,所以普通節(jié)點的計算開銷 和存儲開銷都大大降低。這樣就能夠保證網(wǎng)絡具有較高的連通率,同時也提高了該方法的 安全性。
[0008] 本發(fā)明為解決其技術問題采用如下技術方案: 一種無線傳感器網(wǎng)絡密鑰分配方法,包括以下步驟: 1) 成簇階段 節(jié)點部署完成后,會自動根據(jù)成簇協(xié)議組成分簇式網(wǎng)絡; 2) 簇內節(jié)點密鑰預分配階段 分簇式網(wǎng)絡形成后,基站根據(jù)中國剩余定理為簇內節(jié)點分配必要的密鑰信息; 3) 簇內密鑰生成階段 簇內節(jié)點根據(jù)基站分配的密鑰信息,計算其與所屬簇頭節(jié)點之間的共享密鑰; 4) 密鑰擦除階段 在時間忍^后,網(wǎng)絡中的節(jié)點自動觸發(fā)密鑰擦除過程,刪除若干密鑰信息; 5) 網(wǎng)絡更新階段 當有新的節(jié)點加入網(wǎng)絡,或有節(jié)點因被攻擊者捕獲而離開網(wǎng)絡時,需要進行網(wǎng)絡的更 新操作。
[0009] 所述步驟1)的具體實現(xiàn)方式是: 節(jié)點部署完成后,根據(jù)分簇算法,選擇網(wǎng)絡中能量較高的節(jié)點作為該區(qū)域的簇頭節(jié)點, 網(wǎng)絡中的普通節(jié)點則選取能量最強的簇頭節(jié)點進行通信;具體實現(xiàn)過程如下:節(jié)點一經(jīng)部 署,網(wǎng)絡中的每個高能節(jié)點便用最大功率隨機延遲廣播一條"Hello"消息,該Hello消息包 含此高能節(jié)點的ID和所處的位置信息;普通節(jié)點找到其中接收信號最強的Hello消息,發(fā) 送該Hello消息的高能節(jié)點也就成了該普通節(jié)點的簇頭,而接收到的其他Hello消息對應 的高能節(jié)點則作為該普通節(jié)點的備用簇頭。
[0010] 所述步驟2)的具體實現(xiàn)方式是: 經(jīng)過上述成簇階段后,每個節(jié)點都找到了自己分屬的簇,自動組成了分簇式網(wǎng)絡;基站 首先將主密鑰預置到網(wǎng)絡中的每個節(jié)點中,然后為網(wǎng)絡中第i個簇頭節(jié)點分配一個唯 一的簇頭節(jié)點,并為其內部每個節(jié)點今分配在簇內唯一的標識符/烏?,該標識符表示 第i個簇內的第j個節(jié)點;同時每個簇內節(jié)點今需要預先生成一個初始密鑰,而每個簇 頭節(jié)點di也與基站共享一個初始密鑰A。
[0011] 所述步驟3)的具體實現(xiàn)方式是: 經(jīng)過密鑰預分配階段,各簇內節(jié)點今和簇頭節(jié)點C7^都保存了同余方程組的解\和 f+ 1個互素整數(shù)中一個,根據(jù)中國剩余定理,計算出通信密鑰,具體過程如下: St印1 :簇內節(jié)點今和簇頭節(jié)點都做一次取模運算、一次加法運算計算出基站隨 機生成的整數(shù)A為
Step2:簇內節(jié)點%和簇頭節(jié)點都做一次Hash運算便得到
所以每個簇內節(jié)點&最終保存了 &、%、及2個密鑰:和;而簇頭節(jié)點 保存了巧、,f+1>、!個簇內節(jié)點的初始密鑰& 二i…』、f個新生成的簇內通信密鑰 J =…。
[0012] 所述步驟4)的具體實現(xiàn)方式是: 密鑰分配完成后,今保存了主密鑰-、所屬簇內同余多項式的解A、素數(shù)%、初始 密鑰&和剛生成的密鑰;經(jīng)過時間后,節(jié)點內的定時器觸發(fā),今將&、%和 &刪除,只保存其初始密鑰及其與所屬簇頭的通信密鑰。
[0013]本發(fā)明的有益效果如下: 1、本發(fā)明能夠實現(xiàn)全連通的網(wǎng)絡,提高了共享密鑰概率,同時也降低了普通節(jié)點的存 儲開銷和計算開銷。
[0014] 2、本發(fā)明能夠將被捕獲節(jié)點和普通節(jié)點隔離開來,與現(xiàn)有技術方案相比,本發(fā)明 的抗毀性得到了明顯改善。
【附圖說明】
[0015] 圖1為簇內節(jié)點密鑰預分配過程圖。
【具體實施方式】
[0016] 下面結合附圖對本發(fā)明創(chuàng)造做進一步詳細說明。
[0017] 為加強網(wǎng)絡的抗毀性,有些現(xiàn)有技術通常假設節(jié)點是由抗篡改硬件集成的,但是 這樣勢必會加重網(wǎng)絡的成本。在本發(fā)明中,我們采用密鑰擦除的方法來提高網(wǎng)絡的安全 性。假設攻擊者要捕獲一個節(jié)點的時間下限為,即攻擊者最少需要的時間才能夠 捕獲網(wǎng)絡中的某個節(jié)點,而節(jié)點一經(jīng)部署直到建立密鑰所需時間為7_,又根據(jù)實驗證明 是符合實際情況的。因此本發(fā)明中的節(jié)點在部署完成L時間后,需立即擦除節(jié) 點存儲的若干密鑰信息,以防節(jié)點被捕獲后,其密鑰信息被攻擊者獲取。該方案可分為成簇 階段、簇內節(jié)點密鑰預分配階段、簇內節(jié)點與簇頭之間的密鑰生成、密鑰擦除階段以及網(wǎng)絡 更新階段。
[0018] 具體實施算法如下: 1)成簇階段 節(jié)點部署完成后,可以根據(jù)分簇算法,選擇網(wǎng)絡中能量較高的節(jié)點作為該區(qū)域的簇頭 節(jié)點,網(wǎng)絡中的普通節(jié)點則選取能量最強的簇頭節(jié)點進行通信。具體實現(xiàn)過程如下:節(jié)點一 經(jīng)部署,網(wǎng)絡中的每個高能節(jié)點便用最大功率隨機延遲廣播一條"Hello(你好)"消息,該 Hello消息包含此高能節(jié)點的ID(標識符)和所處的位置信息。其中采用隨機延遲廣播是 為了避免與鄰近高能節(jié)點的廣播消息發(fā)生碰撞,致使普通節(jié)點無法正常接收到通信范圍內 所有高能節(jié)點的Hello消息。在高能節(jié)點廣播完成后,只要網(wǎng)絡中高能節(jié)點的數(shù)量和能量 夠多夠強,網(wǎng)絡中絕大多數(shù)普通節(jié)點都可以收到至少一個高能節(jié)點的廣播消息。之后普通 節(jié)點便可以找到其中接收信號最強的Hello消息,發(fā)送該Hello消息的高能節(jié)點也就成了 該普通節(jié)點的簇頭,而接收到的其他Hello消息對應的高能節(jié)點可以作為該普通節(jié)點的備 用簇頭。
[0019] 2)簇內節(jié)點密鑰預分配階段 經(jīng)過上述成簇階段后,每個節(jié)點都找到了自己分屬的簇,自動組成了分簇式網(wǎng)絡。為了 減小普通節(jié)點的開銷,簇內節(jié)點僅與所屬簇頭直接通信,與其他簇內節(jié)點或者基站的通信 都需要借助其分屬簇頭的幫助才能建立?;臼紫葘⒅髅荑€尤 M預置到網(wǎng)絡中的每個節(jié)點 中。然后為網(wǎng)絡中第i個簇頭(ClusterHead,CH)節(jié)點分配一個唯一的簇頭節(jié)點,并 為其內部每個節(jié)點%分配在簇內唯一的標識符/q.,該標識符表示第i個簇內的第j個節(jié) 點。同時每個簇內節(jié)點&需要預先生成一個初始密鑰友^,以保證在密鑰預分配階段,簇內 節(jié)點今與其簇頭節(jié)點之間的通信是保密的。而每個簇頭節(jié)點C/&也與基站共享一個 初始密鑰巧,以保證簇頭節(jié)點C盡與基站的通信是保密的。根據(jù)圖1,以簇頭節(jié)點(7盡為 例,將由這兩個初始密鑰生成后續(xù)通信密鑰的詳細過程敘述如下: Stepl:簇內節(jié)點&的初始密鑰是通過對預置在節(jié)點中的主密鑰變型得到的,形式如 下:巧= //(& ||/£〖?)。而簇頭節(jié)點的初始密鑰是通過用主密鑰與簇頭節(jié)點標識符異或,而 后做Hash(哈希)運算得到的,為高=/f(& ?C印)。
[0020] St印2 :每個簇內節(jié)點今啟動自己的定時器,將定時時間設置為It,當定時時間 結束后便啟動密鑰擦除操作。
[0021] St印3 :每個簇內節(jié)