專利名稱:一種傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)中傳感器網(wǎng)絡(luò)安全相關(guān)應(yīng)用領(lǐng)域,尤其涉及一種傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法。
背景技術(shù):
集成了傳感器、嵌入式計算系統(tǒng)、分布式信息處理和無線通信網(wǎng)絡(luò)等多種技術(shù)而形成的傳感器網(wǎng)絡(luò)(Sensor Network)是一種全新的信息獲取和處理技術(shù)。
通常,傳感器網(wǎng)絡(luò)是由大量具有感知能力、計算能力和通信能力的微型傳感器節(jié)點構(gòu)成的自組織、分布式網(wǎng)絡(luò)系統(tǒng)。借助于節(jié)點中內(nèi)置的形式多樣的集成化微型傳感器測量所在周邊環(huán)境中的熱、紅外、聲納、雷達和地震波信號,從而探測包括溫度、濕度、噪聲、光強度、壓力、土壤成分、移動物體的大小、速度和方向等眾多人們感興趣的環(huán)境或被監(jiān)測對象的信息。
在傳感器網(wǎng)絡(luò)中,節(jié)點任意散落在被監(jiān)測區(qū)域內(nèi),這一過程是通過飛行器撒播、人工埋置和火箭彈射等方式完成的。節(jié)點可以協(xié)作地實時監(jiān)測、感知和采集各種信息,并對其進行處理。節(jié)點以自組織形式構(gòu)成網(wǎng)絡(luò),通過多跳中繼方式將所感知的信息結(jié)果傳到基站節(jié)點(Sink),最終借助長距離鏈路或有線網(wǎng)絡(luò)將數(shù)據(jù)傳送到遠程中心進行集中處理。
傳感器網(wǎng)絡(luò)在軍事國防、科學研究、環(huán)境監(jiān)測、工農(nóng)業(yè)、醫(yī)療護理、智能家居等眾多領(lǐng)域都有著十分重要的科研價值和巨大的實用價值,被認為是將對二十一世紀產(chǎn)生巨大影響力的技術(shù)之一。
在傳感器網(wǎng)絡(luò)中,節(jié)點既要完成信息采集、處理,還要作為網(wǎng)絡(luò)中繼承擔路由功能。節(jié)點多以電池供電,多數(shù)應(yīng)用環(huán)境中不便進行能源補給。這種傳感器網(wǎng)絡(luò)是一種能源耗盡型網(wǎng)絡(luò),節(jié)點能源非常有限且珍貴,其感知能力、計算能力和通信能力都因此受到了約束。另外,由于節(jié)點多散落部署在非受控區(qū)域,無線信道的脆弱特性、廣播特性以及網(wǎng)絡(luò)結(jié)構(gòu)的自組織組網(wǎng)特性都使得這些節(jié)點容易受到攻擊者的被動攻擊和主動攻擊。同時,節(jié)點很可能遭到攻擊者實施的物理或邏輯俘獲。傳感器網(wǎng)絡(luò)的這些特點給其安全應(yīng)用帶來了全新的挑戰(zhàn),信息安全問題已經(jīng)成為制約傳感器網(wǎng)絡(luò)進一步廣泛應(yīng)用的關(guān)鍵因素。
傳感器網(wǎng)絡(luò)主要的安全目標包括在節(jié)點間建立信任的通信關(guān)系(即密鑰分配)、密鑰管理、保密、鑒別以及對各種攻擊的魯棒性。密鑰分配與管理,即在節(jié)點間建立信任的通信關(guān)系問題是其它安全功能(如保密、鑒別等)實現(xiàn)的基礎(chǔ)。
然而,在傳感器網(wǎng)絡(luò)中,由于無線信道的脆弱性,即便對于靜止的節(jié)點,其間的通信信道并不穩(wěn)定,導(dǎo)致網(wǎng)絡(luò)拓撲容易變化。這樣,對于任何基于可信第三方的安全協(xié)議,節(jié)點和可信第三方之間的通信開銷很大,并且不穩(wěn)定的信道和通信延遲足以危及安全協(xié)議的能力和效率。另外,鑒于節(jié)點在計算能力和存儲能力方面都存在較強的約束,高計算復(fù)雜度的公鑰密碼體制也不適合用于傳感器網(wǎng)絡(luò)。
一般而言,基于密鑰預(yù)分配方式,傳感器網(wǎng)絡(luò)通過共享密鑰建立節(jié)點間信任的通信關(guān)系。目前,傳感器網(wǎng)絡(luò)密鑰預(yù)分配管理主要分為兩類一類是隨機型密鑰預(yù)分配,另一類是確定型密鑰預(yù)分配。
對于隨機型密鑰預(yù)分配,根據(jù)隨機圖連通理論,隨機型密鑰預(yù)分配方法的主要思想是在網(wǎng)絡(luò)撒布之前隨機地從密鑰池中選取一個密鑰子集分配給每個傳感節(jié)點,使得任兩個節(jié)點之間能以某一概率共享相同的密鑰。主要包括3個階段1、密鑰鏈預(yù)裝入階段。節(jié)點被撒布前,每個節(jié)點從一個足夠大的密鑰池中隨機選擇一個小的密鑰集合作為密鑰鏈,并存儲在節(jié)點中;2、共享密鑰發(fā)現(xiàn)階段。如果在兩個節(jié)點各自的密鑰鏈中存在有相同的密鑰,則該密鑰即可作為這兩個節(jié)點安全通信的共享密鑰。
3、安全路徑發(fā)現(xiàn)階段。如果兩個節(jié)點各自的密鑰鏈中不存在相同密鑰,則需通過其它節(jié)點作中繼,尋找一條安全通信路徑。
在實用中初始密鑰池的大小與網(wǎng)絡(luò)連通性和安全性之間的關(guān)系比較微妙密鑰池越大,安全性越好,但兩節(jié)點間能找到共享密鑰的可能性越小,因此安全通信的連通性就越差;密鑰池越小,網(wǎng)絡(luò)抗攻擊的能力就越差。
對于隨機型密鑰預(yù)分配,具體可參考文獻[1]分布式傳感器網(wǎng)絡(luò)中的一種密鑰管理方案(L.Eschenauer,V.D.Gligor.“A Key-Management Schemefor Distributed Sensor Networks”,in Proceedings of the Ninth ACMConference on Computer and Communications Security,Washington DC,Nov.2002,pp41-47)、文獻[2]傳感器網(wǎng)絡(luò)中的隨機密鑰預(yù)分配方案(H.Chan,A.Perrig,D.Song.“Random Key Pre-distribution Schemes for SensorNetworks”,in proc.IEEE Symposium of Privacy and Security 03,Berkeley,California,May2003)和文獻[3]安全傳感器網(wǎng)路中的隨機密鑰分配(R.D.Pietro,L.V.Mancini,A.Mei,“Random Key Assignment for Secure WirelessSensor Networks,”2003 ACM Workshop on Security of Ad Hoc and SensorNetworks,October2003)等公開的內(nèi)容。
對于確定型密鑰預(yù)分配借助文獻[4]無線傳感器網(wǎng)路密鑰分配機制(S.A.Camtepe,B.Yener,“Combinatorial Design of Key DistributionMechanisms for Wireless Sensor Networks,”ESORICS2004,pp.293-308)公開的組合論、文獻[5]分布式傳感器網(wǎng)絡(luò)中建立密鑰對(D.Liu,P.Ning,“Establishing pairwise keys in distributed sensor networks,”Proceedings ofthe 10th ACM conference on Computer and communication security,Washington,DC,October2003,pp.52-61.)公開的多項式、文獻[6]無線傳感器網(wǎng)路中的一種密鑰對預(yù)分配方案(W.Du,J.Deng,Y.S.Han,Et.al.,“APairwise Key Predistribution Scheme for Wireless Sensor Networks,”Proceedings of the 10th ACM Conference on Computer and CommunicationSecurity,Washington,DC,October2003,pp42-51)公開的矩陣等數(shù)學方法,直接構(gòu)造節(jié)點間的共享密鑰。
這類密鑰預(yù)分配方法可以歸納為一個三元組(U,F(xiàn),K)。這里U為傳感器網(wǎng)絡(luò)節(jié)點集合,F(xiàn)為算法集合,K為密鑰集合,并且滿足對每一節(jié)點u∈U,分派一個算法fu∈F;
對任意兩個節(jié)點u、v∈U,它們共享一個唯一獨特的密鑰可keyu,v∈K,且keyu,v可以從fu或fv計算得到;對于任何其它節(jié)點w∈U,keyu,v不可能從fw計算得到。
確定型密鑰預(yù)分配方法共同的缺點是,當被攻破節(jié)點數(shù)超過某一門限時,整個網(wǎng)絡(luò)被攻破的概率急劇升高。隨機型密鑰預(yù)分配方法則可避免這樣的缺點,即當被攻破節(jié)點數(shù)超過某一門限時,整個網(wǎng)絡(luò)被攻破的概率溫和升高,而代價是增加了共享密鑰的發(fā)現(xiàn)難度和相應(yīng)的通信開銷。同時,由于隨機型密鑰預(yù)分配是基于隨機圖連通理論。所以在某些特殊場合,如節(jié)點分布稀疏或者密度不均勻,隨機型密鑰預(yù)分配不能保證網(wǎng)絡(luò)的連通性。
事實上,在傳感器網(wǎng)絡(luò)中節(jié)點的設(shè)計上,可以采用簡單的方法(用安全芯片保存敏感信息)實現(xiàn)弱防篡改機制,使得敵手物理捕獲傳感器節(jié)點后只能獲取部分秘密數(shù)據(jù),或者說,獲取全部秘密數(shù)據(jù)需要更多的時間。傳感器網(wǎng)絡(luò)安全模型經(jīng)過這樣的弱化后,可以實現(xiàn)更高效、更簡潔的密鑰分配機制和其他安全機制。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題有鑒于此,本發(fā)明的主要目的在于提供一種傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,以在傳感器網(wǎng)絡(luò)中建立可信任的節(jié)點間通信關(guān)系。
(二)技術(shù)方案為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,該方法包括A、在撒布傳感器網(wǎng)絡(luò)的節(jié)點前,為每個節(jié)點設(shè)置全局密鑰Km和加密用隨機函數(shù)F,分配唯一的節(jié)點身份ID,并根據(jù)Ki=F(Km,i)計算該節(jié)點的后備密鑰Ki;B、在傳感器網(wǎng)絡(luò)初始化階段,以分簇結(jié)構(gòu)構(gòu)建傳感器網(wǎng)絡(luò),簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中,整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc;C、在傳感器網(wǎng)絡(luò)運行時,當有新節(jié)點加入時,新加入節(jié)點向一跳通信范圍內(nèi)鄰居節(jié)點廣播一條HELLO消息,接收到HELLO消息的鄰居節(jié)點返回響應(yīng)消息,新節(jié)點根據(jù)接收的響應(yīng)消息構(gòu)造簇密鑰鏈。
所述步驟A進一步包括將全局密鑰Km、加密用隨機函數(shù)F、節(jié)點身份ID和后備密鑰Ki存儲到每個節(jié)點的安全芯片存儲器中,并在該安全芯片存儲器中為簇密鑰鏈Kc預(yù)留備用空間,從數(shù)組元素的下標0開始,將簇密鑰鏈Kc數(shù)組中每個元素的兩個數(shù)據(jù)域cid和key都設(shè)置為0。
步驟B中所述簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中按照以下方式進行Kc
.cid=i;//i為簇頭節(jié)點ID,簡稱簇IDKc
.key=Ki。
步驟B中所述整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc包括以下兩部分
B1、簇頭節(jié)點i隨機選擇消息發(fā)送窗口,向一跳通信范圍內(nèi)鄰居節(jié)點廣播包含簇密鑰Ki信息的消息M,所述消息M包括標識位字段MBit和信息字段MInfo;B2、當任一節(jié)點k接收到一條發(fā)自節(jié)點i的消息M,即用全局密鑰Km解密并驗證該消息M,得到MBit和MInfo,并根據(jù)得到的MBit和MInfo決定簇密鑰鏈構(gòu)造和進一步簇密鑰信息擴散的策略。
步驟B1中所述簇頭節(jié)點廣播發(fā)送的消息M的具體格式為E(MBit|MInfo|MAC(MBit|MInfo,Km),Km),表示消息體MBit|MInfo被Km簽名并加密,所用的簽名和加密密鑰由Km變化得到,且此處MBit=0,MInfo=i,MBit用1位二進制位表示,MBit=0表示消息發(fā)送者為簇頭節(jié)點;MInfo為發(fā)送消息的節(jié)點所在簇的簇頭節(jié)點ID信息。
步驟B2中所述簇密鑰信息擴散的策略按照以下方式進行B201、判斷在節(jié)點k的簇密鑰鏈Kc數(shù)組中是否存在與MInfo相同的記錄,如果存在,則執(zhí)行步驟B208;否則,執(zhí)行步驟B202;B202、判斷簇密鑰鏈Kc數(shù)組中Kc
.cid和MBit是否全等于0,如果全等于0,則執(zhí)行步驟B203;否則,執(zhí)行步驟B204;B203、將節(jié)點k加入到以發(fā)送消息節(jié)點j為簇頭的簇中,令r=0,執(zhí)行步驟B205;B204、將節(jié)點k的簇密鑰鏈Kc數(shù)組中非首的第一個0元素下標值賦給r,執(zhí)行步驟B205;B205、按照如下方式構(gòu)造節(jié)點k的簇密鑰鏈數(shù)組信息Kc[r].cid=MInfo;//MInfo為發(fā)送消息節(jié)點j所在簇的簇頭節(jié)點ID
Kc[r].key=F(Km,MInfo);接著執(zhí)行步驟B206;B206、判斷r是否等于0,如果r等于0,執(zhí)行步驟B207;否則執(zhí)行步驟B208;B207、隨機選擇消息發(fā)送窗口,令MBit=1并保持MInfo信息不變構(gòu)造消息M,以向一跳通信范圍內(nèi)的鄰居節(jié)點通告所在簇的簇密鑰信息,接著執(zhí)行步驟B208;B208、刪除消息M。
在步驟B中所述傳感器網(wǎng)絡(luò)初始化階段,經(jīng)過一定時間的簇密鑰信息擴散過程后,針對尚未加入到任一簇中的孤立節(jié)點,該方法進一步包括將所述孤立節(jié)點設(shè)為新的簇頭節(jié)點,并執(zhí)行步驟B中所述簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中,整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc。
在步驟B中所述傳感器網(wǎng)絡(luò)初始化階段完成后,即每個節(jié)點都已經(jīng)加入到一個簇中,同時建立了自己的簇密鑰鏈后,該方法進一步包括每個節(jié)點擦除安全芯片中存儲的全局密鑰Km和加密用隨機函數(shù)F。
步驟C中所述鄰居節(jié)點返回給新加入節(jié)點響應(yīng)消息的格式形如MBit|Kc
.cid|MAC(MBit|Kc
.cid,Kc
.key),所述新加入節(jié)點根據(jù)接收的響應(yīng)消息構(gòu)造簇密鑰鏈包括新加入節(jié)點根據(jù)響應(yīng)消息中的簇ID信息Kc
.cid,計算得到相應(yīng)簇密鑰Kc
.key,并認證該響應(yīng)消息;同時,新加入節(jié)點根據(jù)標識位MBit=0確定其收到的首個鄰居簇頭節(jié)點發(fā)來的信息后加入該簇,并從其余響應(yīng)消息中提取不重復(fù)的簇密鑰信息來構(gòu)造簇密鑰鏈Kc數(shù)組。
在新加入節(jié)點處理完所有能收到的響應(yīng)消息后,如果所述新加入節(jié)點還沒有加入到某個簇中,該方法進一步包括將所述新加入節(jié)點設(shè)為新的簇頭節(jié)點,其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中。
在新加入節(jié)點加入網(wǎng)絡(luò)的結(jié)束階段,進一步通過一跳通信范圍內(nèi)簇密鑰信息的擴散來修正鄰居節(jié)點中的簇密鑰鏈,實現(xiàn)簇密鑰共享。
所述簇密鑰信息的擴散包括新加入節(jié)點用其簇密鑰鏈中記錄的每一個鄰居簇密鑰進行簽名和加密,向一跳通信范圍內(nèi)所有鄰居發(fā)送新加入節(jié)點所在簇的簇密鑰信息。
在新加入節(jié)點加入網(wǎng)絡(luò)的結(jié)束時,新加入節(jié)點擦除安全芯片中存儲的全局密鑰Km和加密用隨機函數(shù)F。
(三)有益效果從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、利用本發(fā)明,由于在網(wǎng)絡(luò)撒布后的初始化階段,通過既定的分簇策略,局部密鑰預(yù)分配算法可將傳感器網(wǎng)絡(luò)劃分為若干個單跳簇,然后通過將所有簇頭后備密鑰發(fā)布給單跳范圍內(nèi)鄰居節(jié)點實現(xiàn)簇密鑰共享,最后,使用當前簇密鑰信息可以實現(xiàn)簇內(nèi)安全通信,借助共享鄰居簇密鑰可以實現(xiàn)簇間安全通信,進而在傳感器網(wǎng)絡(luò)中建立可信任的節(jié)點間通信關(guān)系。
2、本發(fā)明提供的這種在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,采用輕量級加密單向函數(shù),整個密鑰預(yù)分配過程中無需可信第三方參與,能夠適應(yīng)傳感器網(wǎng)絡(luò)中資源約束強的特點。在分簇及局部密鑰分配算法中,每個節(jié)點只需發(fā)送一條消息,最高效的控制通信總次數(shù)開銷。消息中只傳送節(jié)點ID而不傳送密鑰,不僅一定程度上防止在通信中密鑰直接被竊聽,而且最大可能縮短了消息包長度,有利于節(jié)省通信能量開銷。因此,本發(fā)明提供的這種在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,通信、計算和存儲開銷小,是一個易于實現(xiàn)的簡潔的、具有良好的安全性能的完全分布式局部簇密鑰預(yù)分配算法。
3、利用本發(fā)明,通過控制單跳通信距離控制單跳簇大小,不僅可以降低一次通信的能量開銷,而且在傳感器網(wǎng)絡(luò)安全模型合理弱化的前提下,基于單跳分簇范圍的密鑰共享機制有利于將敵手的物理或邏輯捕獲影響有效地控制在一個局部范圍,從而確保網(wǎng)絡(luò)其它地方部分不受影響。
4、本發(fā)明提供的這種在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,在密鑰更新管理及網(wǎng)絡(luò)擴展適應(yīng)性上性能也較突出。
5、本發(fā)明提供的這種在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,傳感器網(wǎng)絡(luò)在運行時,為平衡能量消耗,簇頭節(jié)點需要經(jīng)常更換。借助于已有的簇密鑰信息,新的分簇算法可以在安全通信環(huán)境中進行,新簇頭的后備密鑰將作為簇密鑰。這樣,簇的重新劃分導(dǎo)致簇密鑰信息的更新,亦有利于增強系統(tǒng)的安全性
圖1為本發(fā)明提供的在傳感器網(wǎng)絡(luò)中單跳分簇網(wǎng)絡(luò)結(jié)構(gòu)的示意圖;圖2為本發(fā)明提供的在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理總體技術(shù)方案的實現(xiàn)流程圖;圖3為依照本發(fā)明實施例提供的在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明進一步詳細說明。
基于網(wǎng)絡(luò)可擴展性和易管理性考慮,大規(guī)模傳感器網(wǎng)絡(luò)常常采用分層組織網(wǎng)絡(luò)結(jié)構(gòu)。在這種結(jié)構(gòu)中,網(wǎng)絡(luò)被劃分成若干個簇,每個簇由一個簇頭和多個普通節(jié)點組成,因此也稱為分簇網(wǎng)絡(luò)結(jié)構(gòu)。傳感器節(jié)點通過既定策略形成獨立的簇,每個簇選出相應(yīng)的簇頭,由簇頭負責控制簇內(nèi)節(jié)點,并對本簇節(jié)點收集的數(shù)據(jù)進行融合,隨后轉(zhuǎn)發(fā)給基站。
本發(fā)明中所采用的單跳分簇網(wǎng)絡(luò)結(jié)構(gòu)是指,所有簇內(nèi)節(jié)點都是其簇頭節(jié)點的直接通信(單跳范圍內(nèi)的)鄰居。如圖1所示,圖1為本發(fā)明提供的在傳感器網(wǎng)絡(luò)中單跳分簇網(wǎng)絡(luò)結(jié)構(gòu)的示意圖。在圖1中,所示網(wǎng)絡(luò)共有三個單跳簇。其中4號節(jié)點屬于2號簇(以2號節(jié)點為簇頭),其單跳通信范圍內(nèi)的鄰居節(jié)點有2、5、6、7、8號節(jié)點,它們分屬三個單跳簇。為便于描述,我們稱1號簇和3號簇是4號節(jié)點的鄰居簇,同時將4號節(jié)點和2、8號節(jié)點間的通信為簇內(nèi)通信,和5、6、7號節(jié)點間的通信為簇間直接通信。
基于上述將傳感器網(wǎng)絡(luò)劃分為單跳分簇網(wǎng)絡(luò)的思想,本發(fā)明在對傳感器網(wǎng)絡(luò)中的密鑰進行分配和管理時包括以下4個分配策略
1、節(jié)點預(yù)置安全信息鑒于在撒布傳感器網(wǎng)絡(luò)前,所有節(jié)點通常同屬一個管理部門或公司。因此易于在節(jié)點內(nèi)統(tǒng)一預(yù)置兩類安全信息全局安全信息為所有節(jié)點共享;局部安全信息分屬每個節(jié)點。
其中,所述局部安全信息包括節(jié)點身份ID每個節(jié)點擁有一個全網(wǎng)唯一等長的身份標識,用非0二進制數(shù)表示后備密鑰Ki當節(jié)點i(節(jié)點ID=i)為簇頭節(jié)點時,Ki作為該簇的簇密鑰,在簇內(nèi)共享簇密鑰鏈Kc[]存放節(jié)點所在簇以及鄰居簇的簇密鑰信息的數(shù)組此數(shù)組中的每個元素包含兩個數(shù)據(jù)域(cid域和key域),分別記錄簇頭ID和相應(yīng)簇密鑰信息。其中,約定數(shù)組首元素Kc
記錄當前節(jié)點所在簇,亦稱當前簇的簇密鑰信息,其余元素記錄鄰居簇密鑰信息。這樣,當前簇的簇頭ID為Kc
.cid,當前簇密鑰為Kc
.key。
所述全局安全信息包括全局秘密Km對于任一節(jié)點i,根據(jù)Km可以推導(dǎo)出Ki隨機函數(shù)F它是一個加密單向函數(shù)FKm,i→Ki;滿足關(guān)系Ki=F(Km,i),并且對于任意i,j(i≠j),有Ki≠Kj。
2、分簇及局部簇密鑰預(yù)分配算法在網(wǎng)絡(luò)撒布后的初始化階段,通過既定的分簇策略,局部密鑰預(yù)分配算法可將傳感器網(wǎng)絡(luò)劃分為若干個單跳簇。然后通過將所有簇頭后備密鑰發(fā)布給單跳范圍內(nèi)鄰居節(jié)點實現(xiàn)簇密鑰共享。最后,使用當前簇密鑰信息可以實現(xiàn)簇內(nèi)安全通信,借助共享鄰居簇密鑰可以實現(xiàn)簇間安全通信。
3、密鑰更新管理傳感器網(wǎng)絡(luò)在運行期間,為平衡能量消耗,簇頭節(jié)點需要經(jīng)常更換。借助于已有的簇密鑰信息,新的分簇算法可以在安全通信環(huán)境中進行,新簇頭的后備密鑰將作為簇密鑰。這樣,簇的重新劃分導(dǎo)致簇密鑰信息的更新,亦有利于增強系統(tǒng)的安全性。
4、網(wǎng)絡(luò)擴展適應(yīng)性傳感器網(wǎng)絡(luò)在運行期間,常需動態(tài)補充新節(jié)點以保證網(wǎng)絡(luò)覆蓋及服務(wù)質(zhì)量。因此,新節(jié)點的加入問題是解決網(wǎng)絡(luò)可擴展性的基本問題。在本發(fā)明的密鑰預(yù)分配策略中,新節(jié)點的加入問題非常簡單。新節(jié)點部署之后,首先向一跳鄰居廣播一條HELLO消息,所有鄰居節(jié)點均回應(yīng)該消息。新節(jié)點即可根據(jù)回應(yīng)消息構(gòu)造自己的簇密鑰鏈Kc[]。
基于上述本發(fā)明在對傳感器網(wǎng)絡(luò)中的密鑰進行分配和管理時的4個分配策略,圖2示出了本發(fā)明提供的在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理總體技術(shù)方案的實現(xiàn)流程圖,該方法具體包括以下步驟步驟201在撒布傳感器網(wǎng)絡(luò)的節(jié)點前,為每個節(jié)點設(shè)置全局密鑰Km和加密用隨機函數(shù)F,分配唯一的節(jié)點身份ID,并根據(jù)Ki=F(Km,i)計算該節(jié)點的后備密鑰Ki;步驟202在傳感器網(wǎng)絡(luò)初始化階段,以分簇結(jié)構(gòu)構(gòu)建傳感器網(wǎng)絡(luò),簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中,整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc;步驟203在傳感器網(wǎng)絡(luò)運行時,當有新節(jié)點加入時,新加入節(jié)點向一跳通信范圍內(nèi)鄰居節(jié)點廣播一條HELLO消息,接收到HELLO消息的鄰居節(jié)點返回響應(yīng)消息,新節(jié)點根據(jù)接收的響應(yīng)消息構(gòu)造簇密鑰鏈。
基于圖2所示的本發(fā)明提供的在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理總體技術(shù)方案的實現(xiàn)流程圖,圖3示出了依照本發(fā)明實施例提供的在傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法流程圖,該方法具體包括以下步驟步驟301在撒布傳感器網(wǎng)絡(luò)的節(jié)點前,為每個節(jié)點設(shè)置全局密鑰Km和加密用隨機函數(shù)F,分配唯一的節(jié)點身份ID,并根據(jù)Ki=F(Km,i)計算該節(jié)點的后備密鑰Ki。
步驟302將全局密鑰Km、加密用隨機函數(shù)F、節(jié)點身份ID和后備密鑰Ki存儲到每個節(jié)點的安全芯片存儲器中,并在該安全芯片存儲器中為簇密鑰鏈Kc預(yù)留備用空間,從數(shù)組元素的下標0開始,將簇密鑰鏈Kc數(shù)組中每個元素的兩個數(shù)據(jù)域cid和key都設(shè)置為0。
步驟303在傳感器網(wǎng)絡(luò)初始化階段,以分簇結(jié)構(gòu)構(gòu)建傳感器網(wǎng)絡(luò),簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中;在本步驟中,所述簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中按照以下方式進行Kc
.cid=i;//i為簇頭節(jié)點ID,簡稱簇IDKc
.key=Ki。
步驟304簇頭節(jié)點i隨機選擇消息發(fā)送窗口,向一跳通信范圍內(nèi)鄰居節(jié)點廣播包含簇密鑰Ki信息的消息M,所述消息M包括標識位字段MBit和信息字段MInfo;在本步驟中,所述簇頭節(jié)點廣播發(fā)送的消息M的具體格式為E(MBit|MInfo|MAC(MBit|MInfo,Km),Km),表示消息體MBit|MInfo被Km簽名并加密,所用的簽名和加密密鑰由Km變化得到,且此處MBit=0,MInfo=i,MBit用1位二進制位表示,MBit=0表示消息發(fā)送者為簇頭節(jié)點;MInfo為發(fā)送消息的節(jié)點所在簇的簇頭節(jié)點ID信息。
步驟305當任一節(jié)點k接收到一條發(fā)自節(jié)點i的消息M,即用全局密鑰Km解密并驗證該消息M,得到MBit和MInfo,并根據(jù)得到的MBit和MInfo決定簇密鑰鏈構(gòu)造和進一步簇密鑰信息擴散的策略;在本步驟中,所述簇密鑰信息擴散的策略按照以下方式進行步驟3051、判斷在節(jié)點k的簇密鑰鏈Kc數(shù)組中是否存在與MInfo相同的記錄,如果存在,則執(zhí)行步驟3058;否則,執(zhí)行步驟3052;步驟3052、判斷簇密鑰鏈Kc數(shù)組中Kc
.cid和MBit是否全等于0,如果全等于0,則執(zhí)行步驟3053;否則,執(zhí)行步驟3054;步驟3053、將節(jié)點k加入到以發(fā)送消息節(jié)點j為簇頭的簇中,令r=0,執(zhí)行步驟步驟3055;步驟3054、將節(jié)點k的簇密鑰鏈Kc數(shù)組中非首的第一個0元素下標值賦給r,執(zhí)行步驟3055;步驟3055、按照如下方式構(gòu)造節(jié)點k的簇密鑰鏈數(shù)組信息Kc[r].cid=MInfo;//MInfo為發(fā)送消息節(jié)點j所在簇的簇頭節(jié)點ID
Kc[r].key=F(Km,MInfo);接著執(zhí)行步驟3056;步驟3056、判斷r是否等于0,如果r等于0,執(zhí)行步驟3057;否則執(zhí)行步驟3058;步驟3057、隨機選擇消息發(fā)送窗口,令MBit=1并保持MInfo信息不變構(gòu)造消息M,以向一跳通信范圍內(nèi)的鄰居節(jié)點通告所在簇的簇密鑰信息,接著執(zhí)行步驟3058;步驟3058、刪除消息M。
步驟306在傳感器網(wǎng)絡(luò)運行時,當有新節(jié)點加入時,新加入節(jié)點向一跳通信范圍內(nèi)鄰居節(jié)點廣播一條HELLO消息,接收到HELLO消息的鄰居節(jié)點返回響應(yīng)消息;在本步驟中,所述鄰居節(jié)點返回給新加入節(jié)點響應(yīng)消息的格式形如MBit|Kc
.cid|MAC(MBit|Kc
.cid,Kc
.key)。
步驟307新加入節(jié)點根據(jù)響應(yīng)消息中的簇ID信息Kc
.cid,計算得到相應(yīng)簇密鑰Kc
.key,并認證該響應(yīng)消息;同時,新加入節(jié)點根據(jù)標識位MBit=0確定其收到的首個鄰居簇頭節(jié)點發(fā)來的信息后加入該簇,并從其余響應(yīng)消息中提取不重復(fù)的簇密鑰信息來構(gòu)造簇密鑰鏈Kc數(shù)組。
在本發(fā)明所舉的這個實施例的步驟303至305中,即傳感器網(wǎng)絡(luò)撒布后的初始化階段,經(jīng)過一定時間的簇密鑰信息擴散過程后,針對尚未加入到任一簇中的孤立節(jié)點,該方法進一步包括將所述孤立節(jié)點設(shè)為新的簇頭節(jié)點,所述新的簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中,整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信思的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc。這樣的技術(shù)方案與本發(fā)明提供的技術(shù)方案在技術(shù)思路上是一致的,應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
在本發(fā)明所舉的這個實施例的步驟305之后,即傳感器網(wǎng)絡(luò)初始化階段完成之后,也就是說每個節(jié)點都已經(jīng)加入到一個簇中,同時建立了自己的密鑰鏈之后,該方法還可以進一步包括每個節(jié)點擦除安全芯片中存儲的全局密鑰Km和加密用隨機函數(shù)F,以消除全網(wǎng)安全隱患,并可騰出安全芯片存儲空間以備它用。這樣的技術(shù)方案與本發(fā)明提供的技術(shù)方案在技術(shù)思路上是一致的,應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
在本發(fā)明所舉的這個實施例的步驟307中,在新加入節(jié)點處理完所有能收到的響應(yīng)消息后,如果所述新加入節(jié)點還沒有加入到某個簇中,該方法進一步包括將所述新加入節(jié)點設(shè)為新的簇頭節(jié)點,其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中。這樣的技術(shù)方案與本發(fā)明提供的技術(shù)方案在技術(shù)思路上是一致的,應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
在本發(fā)明所舉的這個實施例的步驟307中,即在新加入節(jié)點加入網(wǎng)絡(luò)的結(jié)束階段,該方法還可以進一步通過一跳通信范圍內(nèi)簇密鑰信息的擴散來修正鄰居節(jié)點中的簇密鑰鏈,實現(xiàn)簇密鑰共享。此處,所述簇密鑰信息的擴散包括新加入節(jié)點用其簇密鑰鏈中記錄的每一個鄰居簇密鑰進行簽名和加密,向一跳通信范圍內(nèi)所有鄰居發(fā)送新加入節(jié)點所在簇的密鑰信息。這樣的技術(shù)方案與本發(fā)明提供的技術(shù)方案在技術(shù)思路上是一致的,應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
在本發(fā)明所舉的這個實施例的步驟307中,在構(gòu)造簇密鑰鏈Kc數(shù)組之后該方法還可以進一步包括新加入節(jié)點擦除安全芯片中存儲的全局密鑰Km和加密用隨機函數(shù)F;新加入節(jié)點以單播形式用鄰居簇密鑰信息簽名和加密,向所有鄰居簇發(fā)送節(jié)點所在當前簇的簇密鑰信息。這樣的技術(shù)方案與本發(fā)明提供的技術(shù)方案在技術(shù)思路上是一致的,應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
以上所述的具體實施例,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,該方法包括A、在撒布傳感器網(wǎng)絡(luò)的節(jié)點前,為每個節(jié)點設(shè)置全局密鑰Km和加密用隨機函數(shù)F,分配唯一的節(jié)點身份ID,并根據(jù)Ki=F(Km,i)計算該節(jié)點的后備密鑰Ki;B、在傳感器網(wǎng)絡(luò)初始化階段,以分簇結(jié)構(gòu)構(gòu)建傳感器網(wǎng)絡(luò),簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中,整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc;C、在傳感器網(wǎng)絡(luò)運行時,當有新節(jié)點加入時,新加入節(jié)點向一跳通信范圍內(nèi)鄰居節(jié)點廣播一條HELLO消息,接收到HELLO消息的鄰居節(jié)點返回響應(yīng)消息,新節(jié)點根據(jù)接收的響應(yīng)消息構(gòu)造簇密鑰鏈。
2.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,所述步驟A進一步包括將全局密鑰Km、加密用隨機函數(shù)F、節(jié)點身份ID和后備密鑰Ki存儲到每個節(jié)點的安全芯片存儲器中,并在該安全芯片存儲器中為簇密鑰鏈Kc預(yù)留備用空間,從數(shù)組元素的下標0開始,將簇密鑰鏈Kc數(shù)組中每個元素的兩個數(shù)據(jù)域cid和key都設(shè)置為0。
3.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,步驟B中所述簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中按照以下方式進行Kc
.cid=i;//i為簇頭節(jié)點ID,簡稱簇IDKc
.key=Ki。
4.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,步驟B中所述整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc包括以下兩部分B1、簇頭節(jié)點i隨機選擇消息發(fā)送窗口,向一跳通信范圍內(nèi)鄰居節(jié)點廣播包含簇密鑰Ki信息的消息M,所述消息M包括標識位字段MBit和信息字段MInfo;B2、當任一節(jié)點k接收到一條發(fā)自節(jié)點i的消息M,即用全局密鑰Km解密并驗證該消息M,得到MBit和MInfo,并根據(jù)得到的MBit和MInfo決定簇密鑰鏈構(gòu)造和進一步簇密鑰信息擴散的策略。
5.根據(jù)權(quán)利要求4所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,步驟B1中所述簇頭節(jié)點廣播發(fā)送的消息M的具體格式為E(MBit|MInfo|MAC(MBit|MInfo,Km),Km),表示消息體MBit|MInfo被Km簽名并加密,所用的簽名和加密密鑰由Km變化得到,且此處MBit=0,MInfo=i,MBit用1位二進制位表示,MBit=0表示消息發(fā)送者為簇頭節(jié)點;MInfo為發(fā)送消息的節(jié)點所在簇的簇頭節(jié)點ID信息。
6.根據(jù)權(quán)利要求4所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,步驟B2中所述簇密鑰信息擴散的策略按照以下方式進行B201、判斷在節(jié)點k的簇密鑰鏈Kc數(shù)組中是否存在與MInfo相同的記錄,如果存在,則執(zhí)行步驟B208;否則,執(zhí)行步驟B202;B202、判斷簇密鑰鏈Kc數(shù)組中Kc
.cid和MBit是否全等于0,如果全等于0,則執(zhí)行步驟B203;否則,執(zhí)行步驟B204;B203、將節(jié)點k加入到以發(fā)送消息節(jié)點j為簇頭的簇中,令r=0,執(zhí)行步驟B205;B204、將節(jié)點k的簇密鑰鏈Kc數(shù)組中非首的第一個0元素下標值賦給r,執(zhí)行步驟B205;B205、按照如下方式構(gòu)造節(jié)點k的簇密鑰鏈數(shù)組信息Kc[r].cid=MInfo;//MInfo為發(fā)送消息節(jié)點j所在簇的簇頭節(jié)點IDKc[r].key=F(Km,MInfo);接著執(zhí)行步驟B206;B206、判斷r是否等于0,如果r等于0,執(zhí)行步驟B207;否則執(zhí)行步驟B208;B207、隨機選擇消息發(fā)送窗口,令MBit=1并保持MInfo信息不變構(gòu)造消息M,以向一跳通信范圍內(nèi)的鄰居節(jié)點通告所在簇的簇密鑰信息,接著執(zhí)行步驟B208;B208、刪除消息M。
7.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,在步驟B中所述傳感器網(wǎng)絡(luò)初始化階段,經(jīng)過一定時間的簇密鑰信息擴散過程后,針對尚未加入到任一簇中的孤立節(jié)點,該方法進一步包括將所述孤立節(jié)點設(shè)為新的簇頭節(jié)點,并執(zhí)行步驟B中所述簇頭節(jié)點將其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中,整個網(wǎng)路通過在一跳通信范圍內(nèi)簇密鑰信息的擴散來構(gòu)造節(jié)點中的簇密鑰鏈Kc。
8.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,在步驟B中所述傳感器網(wǎng)絡(luò)初始化階段完成后,即每個節(jié)點都已經(jīng)加入到一個簇中,同時建立了自己的簇密鑰鏈后,該方法進一步包括每個節(jié)點擦除安全芯片中存儲的全局密鑰Km和加密用隨機函數(shù)F。
9.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,步驟C中所述鄰居節(jié)點返回給新加入節(jié)點響應(yīng)消息的格式形如MBit|Kc
.cid|MAC(MBit|Kc
.cid,Kc
.key),所述新加入節(jié)點根據(jù)接收的響應(yīng)消息構(gòu)造簇密鑰鏈包括新加入節(jié)點根據(jù)響應(yīng)消息中的簇ID信息Kc
.cid,計算得到相應(yīng)簇密鑰Kc
.key,并認證該響應(yīng)消息;同時,新加入節(jié)點根據(jù)標識位MBit=0確定其收到的首個鄰居簇頭節(jié)點發(fā)來的信息后加入該簇,并從其余響應(yīng)消息中提取不重復(fù)的簇密鑰信息來構(gòu)造簇密鑰鏈Kc數(shù)組。
10.根據(jù)權(quán)利要求9所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,在新加入節(jié)點處理完所有能收到的響應(yīng)消息后,如果所述新加入節(jié)點還沒有加入到某個簇中,該方法進一步包括將所述新加入節(jié)點設(shè)為新的簇頭節(jié)點,其后備密鑰Ki作為該簇的簇密鑰保存到簇密鑰鏈Kc數(shù)組中。
11.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,在新加入節(jié)點加入網(wǎng)絡(luò)的結(jié)束階段,進一步通過一跳通信范圍內(nèi)簇密鑰信息的擴散來修正鄰居節(jié)點中的簇密鑰鏈,實現(xiàn)簇密鑰共享。
12.根據(jù)權(quán)利要求11所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,所述簇密鑰信息的擴散包括新加入節(jié)點用其簇密鑰鏈中記錄的每一個鄰居簇密鑰進行簽名和加密,向一跳通信范圍內(nèi)所有鄰居發(fā)送新加入節(jié)點所在簇的簇密鑰信息。
13.根據(jù)權(quán)利要求1所述的傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,其特征在于,在新加入節(jié)點加入網(wǎng)絡(luò)的結(jié)束時,新加入節(jié)點擦除安全芯片中存儲的全局密鑰Km和加密用隨機函數(shù)F。
全文摘要
本發(fā)明公開了一種傳感器網(wǎng)絡(luò)中對密鑰進行分配和管理的方法,包括A.在撒布傳感器網(wǎng)絡(luò)的節(jié)點前,為每個節(jié)點設(shè)置全局密鑰K
文檔編號H04L12/28GK1996833SQ20061014435
公開日2007年7月11日 申請日期2006年12月4日 優(yōu)先權(quán)日2006年12月4日
發(fā)明者謝磊, 朱紅松, 徐勇軍, 李曉維 申請人:中國科學院計算技術(shù)研究所