專利名稱:無線傳感器網(wǎng)絡(luò)的自適應(yīng)密鑰部署方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種無線傳感器網(wǎng)絡(luò)的密鑰管理方法,具體是一種自適應(yīng)的 無線傳感器網(wǎng)絡(luò)密鑰部署方法,可以用于無線傳感器網(wǎng)絡(luò)中安全有效的部署 簇頭節(jié)點(diǎn)的密鑰信息,從而保證傳感器節(jié)點(diǎn)間安全有效的進(jìn)行數(shù)據(jù)通信。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)廣泛應(yīng)用于軍事偵察、智能建筑、環(huán)境監(jiān)控以及工業(yè)控 制等各個(gè)領(lǐng)域中。由于傳感器節(jié)點(diǎn)存儲(chǔ)空間小、計(jì)算能力低、電量有限,使 用無線信號(hào)進(jìn)行數(shù)據(jù)傳輸,并且部署在無人值守的區(qū)域,因此需要安全有效 的密鑰管理方法確保傳輸數(shù)據(jù)的安全。
目前無線傳感器網(wǎng)絡(luò)中廣泛采用的密鑰管理方案是密鑰預(yù)分配方案,即 在傳感器節(jié)點(diǎn)部署前將密鑰預(yù)先分配給傳感器節(jié)點(diǎn)。 一方面,由于傳感器節(jié) 點(diǎn)的存儲(chǔ)空間限制使得只能為其分配少量的密鑰信息,這就造成了傳感器節(jié) 點(diǎn)間共享密鑰的概率較低,進(jìn)而導(dǎo)致整個(gè)傳感器網(wǎng)絡(luò)的連通性較差。另一方 面,在傳感器網(wǎng)絡(luò)部署一段時(shí)間以后,部分傳感器節(jié)點(diǎn)就可能因?yàn)閾p毀、被 捕獲、能量耗盡等原因而無法正常工作,從而造成整個(gè)傳感器網(wǎng)絡(luò)不再連通, 所采集的數(shù)據(jù)無法正常傳送到數(shù)據(jù)采集點(diǎn),因此需要再次部署新的傳感器節(jié) 點(diǎn)以替換它們。新部署的傳感器節(jié)點(diǎn)為了確保與已有傳感器節(jié)點(diǎn)的連通性往 往部署已經(jīng)使用過一段時(shí)間的密鑰,然而,這些長(zhǎng)時(shí)間使用的密鑰很可能因 為傳感器節(jié)點(diǎn)的被捕獲而導(dǎo)致泄漏,從而使得新部署的傳感器節(jié)點(diǎn)從部署的 時(shí)刻起就已不再安全。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種自適應(yīng)的無線傳感器網(wǎng)絡(luò)密鑰部署方法。通 過在傳感器網(wǎng)絡(luò)中具有較強(qiáng)計(jì)算、存儲(chǔ)、通信能力的簇頭節(jié)點(diǎn)上運(yùn)行自適應(yīng) 密鑰選擇方法選擇出最佳的密鑰子集,從而輔助屬于同一部署集內(nèi)以及不同 部署集間的傳感器節(jié)點(diǎn)建立安全的通信連接。
為實(shí)現(xiàn)上述目的,本發(fā)明采取了以下技術(shù)方案。整個(gè)方案涉及到三種不 同類型的網(wǎng)絡(luò)元素基站、簇頭節(jié)點(diǎn)和普通的傳感器節(jié)點(diǎn),如圖1所示。簇 頭節(jié)點(diǎn)首先通過廣播ID查詢消息獲得周圍傳感器節(jié)點(diǎn)的ID信息,然后利用
安全的公鑰加密算法向基站査詢與ID相對(duì)應(yīng)的傳感器節(jié)點(diǎn)所預(yù)分配的密鑰信
息,最后通過構(gòu)造密鑰狀態(tài)矩陣并選擇最佳的密鑰子集以生成最優(yōu)密鑰選擇 隊(duì)列,這些最優(yōu)密鑰構(gòu)成了部署集中所有預(yù)分配密鑰的最小生成集。簇頭節(jié)點(diǎn)存儲(chǔ)最優(yōu)密鑰選擇隊(duì)列中的密鑰信息,從而輔助傳感器節(jié)點(diǎn)間建立安全的 通信連接。
無線傳感器網(wǎng)絡(luò)中自適應(yīng)密鑰部署方法的具體步驟如下
1) 簇頭節(jié)點(diǎn)廣播ID査詢消息;
2) 傳感器節(jié)點(diǎn)接收到簇頭節(jié)點(diǎn)發(fā)送來的ID查詢消息后,向簇頭節(jié)點(diǎn)發(fā)送 包含自己ID的消息;
3) 簇頭節(jié)點(diǎn)接收傳感器節(jié)點(diǎn)發(fā)送來的ID信息,存入ID隊(duì)列中;
4) 簇頭節(jié)點(diǎn)使用自己的私鑰對(duì)ID隊(duì)列中所接收到的ID信息進(jìn)行簽名;
5) 簇頭節(jié)點(diǎn)將簽名后的ID信息發(fā)送給基站;
6) 基站接收到簇頭節(jié)點(diǎn)發(fā)送來的ID信息后,使用簇頭節(jié)點(diǎn)的公鑰驗(yàn)證該 消息;
7) 如果驗(yàn)證通過,基站使用簇頭節(jié)點(diǎn)的公鑰加密與ID隊(duì)列對(duì)應(yīng)的傳感器 節(jié)點(diǎn)的密鑰隊(duì)列信息。否則,基站丟棄此消息,繼續(xù)等待接收簇頭節(jié)點(diǎn) 發(fā)送來的ID信息;
8) 基站向簇頭節(jié)點(diǎn)發(fā)送使用簇頭節(jié)點(diǎn)的公鑰加密后的傳感器節(jié)點(diǎn)的密鑰 隊(duì)列信息;
9) 簇頭節(jié)點(diǎn)使用自己的私鑰解密從基站接收到的自己公鑰加密后的密鑰 隊(duì)列信息;
10) 簇頭節(jié)點(diǎn)使用接收到的密鑰隊(duì)列信息構(gòu)造用于描述預(yù)分配密鑰狀態(tài)的
"x;n維矩陣浙其中"是傳感器節(jié)點(diǎn)的數(shù)量,/7是步驟9)中接收到的密
鑰隊(duì)列中所包含的不同密鑰數(shù)量,也是密鑰隊(duì)列中預(yù)分配密鑰的數(shù)量; 如果第i個(gè)傳感器節(jié)點(diǎn)擁有第y個(gè)密鑰,那么設(shè)置M";l,否則設(shè)置
11) 判斷矩陣#中是否所有元素都為0。如果所有元素都為O,執(zhí)行步驟16), 否則執(zhí)行步驟12);
12) 把矩陣i/按列相加,所得結(jié)果存入表示每個(gè)預(yù)分配密鑰出現(xiàn)次數(shù)的nxl 維向量K中;
13) 選出向量r中值最大的元素,其對(duì)應(yīng)的行號(hào)J即為本輪中選出的最優(yōu)密
鑰所對(duì)應(yīng)的編號(hào)。如果值最大的元素不止一個(gè),那么選擇第一個(gè)這樣的
元素。輸出編號(hào)j對(duì)應(yīng)的密鑰;
14) 設(shè)置矩陣#中所有第J'行元素為1的列的所有元素為0;
15) 執(zhí)行步驟ll);
16) 自適應(yīng)密鑰部署方法結(jié)束,所有輸出的密鑰構(gòu)成最佳密鑰子集。簇頭節(jié)點(diǎn)存儲(chǔ)子集中的密鑰,以輔助傳感器節(jié)點(diǎn)間建立安全的通信連接。 通過執(zhí)行無線傳感器網(wǎng)絡(luò)的自適應(yīng)密鑰部署方法,簇頭節(jié)點(diǎn)存儲(chǔ)了周圍傳 感器節(jié)點(diǎn)中所預(yù)分配的最佳密鑰子集中的密鑰信息,這些密鑰可以輔助不具 有共享密鑰的傳感器節(jié)點(diǎn)之間建立安全的通信連接,其中這些傳感器節(jié)點(diǎn)既 可以屬于相同的部署集,也可以屬于不同的部署集。由于密鑰的查詢和傳輸 過程中使用安全的非對(duì)稱公鑰加密算法進(jìn)行簽名和加密,從而可以保證傳感 器節(jié)點(diǎn)的密鑰信息不會(huì)被泄露。
圖1為本發(fā)明的整體方案
圖2為實(shí)施例中無線傳感器網(wǎng)絡(luò)的部署圖 圖3為實(shí)施例中最佳密鑰子集的選擇過程
具體實(shí)施例方式
在本發(fā)明的具體實(shí)施例中包含一個(gè)簇頭節(jié)點(diǎn),四個(gè)傳感器節(jié)點(diǎn)和一個(gè)基 站,它們的部署位置如圖2所示。其中簇頭節(jié)點(diǎn)與基站之間使用RSA非對(duì)稱 加密算法,簇頭節(jié)點(diǎn)的公鑰為(319403171, 10046725992186367369),私鑰 為(2703569297555297351, 10046725992186367369)。四個(gè)傳感器節(jié)點(diǎn)的ID 分別為1、 2、 3、 4,它們預(yù)分配的密鑰信息分別如下表所示。
傳感器節(jié)點(diǎn)ID密鑰編號(hào)密鑰
1117211531963917093653
212399466367555283803
2212399466367555283803
313236996501868931331
3313236996501868931331
412860241378924810628
4412860241378924810628
515774615462084735621
無線傳感器網(wǎng)絡(luò)中自適應(yīng)密鑰部署方法的具體實(shí)施步驟如下
1) 簇頭節(jié)點(diǎn)廣播ID查詢消息。
2) 傳感器節(jié)點(diǎn)接收到簇頭節(jié)點(diǎn)發(fā)送來的ID査詢消息后,向簇頭節(jié)點(diǎn)發(fā)送 包含自己ID的消息。實(shí)施例中的四個(gè)傳感器節(jié)點(diǎn)分別向簇頭節(jié)點(diǎn)發(fā)送 ID=1, ID=2, ID二3, ID二4的消息。
3) 簇頭節(jié)點(diǎn)接收傳感器節(jié)點(diǎn)發(fā)送來的ID信息,存入ID隊(duì)列中。實(shí)施例中 簇頭節(jié)點(diǎn)構(gòu)造的ID隊(duì)列為1, 2, 3, 4。4) 簇頭節(jié)點(diǎn)使用自己的私鑰 (2703569297555297351 , 10046725992186367369)對(duì)ID隊(duì)列中所接收到的ID信息1, 2, 3, 4進(jìn)行 簽名,得到結(jié)果922276843228645143。
5) 簇頭節(jié)點(diǎn)將簽名后的ID信息1, 2, 3, 4, 922276843228645143發(fā)送給基 站。
6) 基站接收到簇頭節(jié)點(diǎn)發(fā)送來的ID信息后,使用簇頭節(jié)點(diǎn)的公鑰
(319403171, 10046725992186367369)驗(yàn)證該消息。
7) 如果驗(yàn)證通過,基站使用簇頭節(jié)點(diǎn)的公鑰加密與ID隊(duì)列對(duì)應(yīng)的傳感器 節(jié)點(diǎn)的密鑰隊(duì)列信息。否則,基站丟棄此消息,繼續(xù)等待接收簇頭節(jié)點(diǎn) 發(fā)送來的ID信息。實(shí)施例中驗(yàn)證通過,基站使用簇頭節(jié)點(diǎn)的公鑰
(319403171, 10046725992186367369)加密與節(jié)點(diǎn)1, 2, 3, 4對(duì)應(yīng)的 預(yù) 分 配 密 鑰 隊(duì) 列 1721153196391709365 3, 12399466367555283803, 12399466367555283803, 13236996501868931 331, 13236996501868931331, 12860241378924810628,128602413789248 10628, 15774615462084735621 , 得 到 加 密 結(jié) 果 3984028006926503708, 2076415362078100432, 8452633859192839273, 8 173834715190563243, 5086100540954450284, 8796170951311558333, 86 64020354781979621, 8526721140815577344, 2734827184010889465, 964 4371844495256794, 5460434362458253347, 5465248751758060600, 8782 828869875564628, 4258375279018893105, 3958369700312485683, 69426 90703667742088, 9972618718925185856, 1482165809498815107, 166808 8647297338077, 8376167074871032632。
8) 基站向簇頭節(jié)點(diǎn)發(fā)送使用其公鑰加密后的傳感器節(jié)點(diǎn)的密鑰隊(duì)列信息 3984028006926503708, 2076415362078100432, 8452633 859192839273, 8173834715190563243, 5086100540954450284, 87961709 51311558333, 8664020354781979621, 8526721140815577344, 273482718 4010889465,9644371844495256794, 5460434362458253347, 5465248751 758060600, 8782828869875564628, 4258375279018893105, 39583697003 12485683, 6942690703667742088, 9972618718925185856, 148216580949 8815107, 1668088647297338077, 8376167074871032632。
9) 簇頭節(jié)點(diǎn)使用其私鑰(2703569297555297351, 100467259921863 67369) 解密從基站接收到的自己公鑰加密后的密鑰隊(duì)列信息,得到與節(jié)點(diǎn)1, 2, 3 ,4 對(duì)應(yīng)的預(yù)分配密鑰隊(duì)歹[J 17211531963917093653, 12399466367555283803, 12399466367555283803, 13236996501868
931331, 13236996501868931331, 12860241378924810628,128602413789
24810628, 1577461546208473562。
10)簇頭節(jié)點(diǎn)使用接收到的密鑰隊(duì)列信息構(gòu)造用于描述預(yù)分配密鑰狀態(tài)的
"x附維矩陣爽其中"是傳感器節(jié)點(diǎn)的數(shù)量,"是步驟9)中接收到的密
鑰隊(duì)列中所包含的不同密鑰數(shù)量。如果第i個(gè)傳感器節(jié)點(diǎn)擁有第J個(gè)密 鑰,那么設(shè)置M^-1,否則設(shè)置M力,0。實(shí)施例中構(gòu)造的矩陣5x4維M
為
10 0 0 110 0 0 110 0 0 11 0 0 0 1
11) 判斷矩陣#中是否所有元素都為0。如果所有元素都為O,執(zhí)行步驟16), 否則執(zhí)行步驟12)。
12) 把矩陣#按列相加,所得結(jié)果存入表示每個(gè)預(yù)分配密鑰出現(xiàn)次數(shù)的5xl 維向量K中。
13) 選出向量K中值最大的元素,其對(duì)應(yīng)的行號(hào)J'即為本輪中選出的最優(yōu)密 鑰所對(duì)應(yīng)的編號(hào)。如果值最大的元素不止一個(gè),那么選擇第一個(gè)這樣的 元素。輸出編號(hào)J'對(duì)應(yīng)的密鑰。
14) 設(shè)置矩陣#中所有第J'行元素為1的列的所有元素為0。 1。
執(zhí)行步驟ll)。
實(shí)施例中步驟ll) -15)的具體實(shí)施過程如圖3所示。分別輸出編號(hào)2對(duì) 應(yīng)的密鑰12399466367555283803和編號(hào)4對(duì)應(yīng)的密鑰 12860241378924810628。
16)自適應(yīng)密鑰部署方法結(jié)束,輸出的密鑰構(gòu)成最佳密鑰子集 12399466367555283803, 12860241378924810628。簇頭節(jié)點(diǎn)存儲(chǔ)子集中 的密鑰,以輔助不具有共享密鑰的傳感器節(jié)點(diǎn)1與3, l與4, 2與4之 間建立安全的通信連接,其中這些節(jié)點(diǎn)既可以屬于相同的部署集,也可 以屬于不同的部署集。
權(quán)利要求
1、一種無線傳感器網(wǎng)絡(luò)的自適應(yīng)密鑰部署方法,其特征在于,包括以下步驟1)簇頭節(jié)點(diǎn)廣播ID查詢消息;2)傳感器節(jié)點(diǎn)接收到簇頭節(jié)點(diǎn)發(fā)送來的ID查詢消息后,向簇頭節(jié)點(diǎn)發(fā)送包含自己ID的消息;3)簇頭節(jié)點(diǎn)接收傳感器節(jié)點(diǎn)發(fā)送來的ID信息,存入ID隊(duì)列中;4)簇頭節(jié)點(diǎn)使用自己的私鑰對(duì)ID隊(duì)列中所接收到的ID信息進(jìn)行簽名;5)簇頭節(jié)點(diǎn)將簽名后的ID信息發(fā)送給基站;6)基站接收到簇頭節(jié)點(diǎn)發(fā)送來的ID信息后,使用簇頭節(jié)點(diǎn)的公鑰驗(yàn)證該消息;7)如果驗(yàn)證通過,基站使用簇頭節(jié)點(diǎn)的公鑰加密與ID隊(duì)列對(duì)應(yīng)的傳感器節(jié)點(diǎn)的密鑰隊(duì)列信息;否則,基站丟棄此消息,繼續(xù)等待接收簇頭節(jié)點(diǎn)發(fā)送來的ID信息;8)基站向簇頭節(jié)點(diǎn)發(fā)送使用簇頭節(jié)點(diǎn)的公鑰加密后的傳感器節(jié)點(diǎn)的密鑰隊(duì)列信息;9)簇頭節(jié)點(diǎn)使用自己的私鑰解密從基站接收到的自己公鑰加密后的密鑰隊(duì)列信息;10)簇頭節(jié)點(diǎn)使用接收到的密鑰隊(duì)列信息構(gòu)造用于描述預(yù)分配密鑰狀態(tài)的n×m維矩陣M,其中m是傳感器節(jié)點(diǎn)的數(shù)量,n是步驟9)中接收到的密鑰隊(duì)列中所包含的不同密鑰數(shù)量,也是密鑰隊(duì)列中預(yù)分配密鑰的數(shù)量;如果第i個(gè)傳感器節(jié)點(diǎn)擁有第j個(gè)密鑰,那么設(shè)置Mj,i=1,否則設(shè)置Mj,i=0;11)判斷矩陣M中是否所有元素都為0;如果所有元素都為0,執(zhí)行步驟16),否則執(zhí)行步驟12);12)把矩陣M按列相加,所得結(jié)果存入表示每個(gè)預(yù)分配密鑰出現(xiàn)次數(shù)的n×1維向量V中;13)選出向量V中值最大的元素,其對(duì)應(yīng)的行號(hào)j即為本輪中選出的最優(yōu)密鑰所對(duì)應(yīng)的編號(hào);如果值最大的元素不止一個(gè),那么選擇第一個(gè)這樣的元素;輸出編號(hào)j對(duì)應(yīng)的密鑰;14)設(shè)置矩陣M中所有第j行元素為1的列的所有元素為0;15)執(zhí)行步驟11);16)自適應(yīng)密鑰部署方法結(jié)束,所有輸出的密鑰構(gòu)成最佳密鑰子集;簇頭節(jié)點(diǎn)存儲(chǔ)子集中的密鑰,以輔助傳感器節(jié)點(diǎn)間建立安全的通信連接。
全文摘要
無線傳感器網(wǎng)絡(luò)的自適應(yīng)密鑰部署方法屬于無線傳感器網(wǎng)絡(luò)中信息安全領(lǐng)域。由于目前無線傳感器網(wǎng)絡(luò)廣泛采用的密鑰預(yù)分配方案中傳感器節(jié)點(diǎn)間共享密鑰的概率較低,網(wǎng)絡(luò)連通性差。同時(shí),由于部分傳感器節(jié)點(diǎn)的失效而再次部署新的節(jié)點(diǎn)時(shí)為了確保與已有節(jié)點(diǎn)的連通性,往往部署長(zhǎng)時(shí)間使用的不安全的密鑰信息。本方案通過在簇頭節(jié)點(diǎn)上運(yùn)行自適應(yīng)密鑰選擇方法,首先通過廣播獲得周圍傳感器節(jié)點(diǎn)的ID信息,然后利用安全的公鑰加密算法向基站查詢與ID相對(duì)應(yīng)的傳感器節(jié)點(diǎn)所預(yù)分配的密鑰信息,最后構(gòu)造密鑰狀態(tài)矩陣并選出最佳的密鑰子集,從而輔助屬于同一部署集內(nèi)以及不同部署集間的傳感器節(jié)點(diǎn)建立安全的通信連接。
文檔編號(hào)H04L29/06GK101420441SQ20081023923
公開日2009年4月29日 申請(qǐng)日期2008年12月5日 優(yōu)先權(quán)日2008年12月5日
發(fā)明者付穎芳, 何涇沙, 李國瑞 申請(qǐng)人:北京工業(yè)大學(xué)