文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.10.029
中文引用格式: 張得生,劉直良. 基于圓錐曲線密碼的WSNs密鑰管理方案[J].電子技術(shù)應(yīng)用,2015,41(10):107-110.
英文引用格式: Zhang Desheng,Liu Zhiliang. Key management scheme for WSNs based on conic curve cryptography[J].Application of Electronic Technique,2015,41(10):107-110.
0 引言
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSNs)是由多種學(xué)科高度交叉的熱點研究領(lǐng)域,被廣泛應(yīng)用在軍事監(jiān)察、醫(yī)療護理、交通監(jiān)管和環(huán)境監(jiān)測等各類領(lǐng)域[1]。然而,無線傳感器網(wǎng)絡(luò)也面臨著諸如竊聽、注入、陷阱、欺騙、重放、拒絕服務(wù)和HELLO擴散攻擊等多種安全風(fēng)險,因此如何解決安全問題成為無線傳感器網(wǎng)絡(luò)研究的熱點和難點問題[2]。由于無線傳感器網(wǎng)絡(luò)的節(jié)點在能量、計算能力、存儲能力和通信帶寬等方面有限制,傳統(tǒng)的密鑰管理方案無法直接應(yīng)用在無線傳感器網(wǎng)絡(luò)中,使得無線傳感器網(wǎng)絡(luò)的密鑰管理面臨著諸多困難和挑戰(zhàn)。適用于無線傳感器網(wǎng)絡(luò)的一種比較簡單的密鑰管理方案是在所有節(jié)點中都預(yù)先存儲一個對稱密鑰進行通信,但是如果其中某一個節(jié)點被攻擊成功,則全網(wǎng)絡(luò)就不再安全,而且對稱密鑰管理方案限制了新節(jié)點的加入和密鑰更新等動態(tài)性操作,因此對稱密鑰管理方案不能滿足無線傳感器網(wǎng)絡(luò)的動態(tài)性和安全性需求。而非對稱密鑰管理方案既可以保證網(wǎng)絡(luò)的安全性需求也可以很好地滿足動態(tài)性需求,然而需要更多的能量和資源開銷[3]。但隨著大規(guī)模集成技術(shù)的飛速發(fā)展,傳感器節(jié)點在能量、計算能力、存儲能力和通信帶寬等方面都有很大提高,可以通過有效的控制把非對稱密碼體制中的部分方法應(yīng)用于無線傳感器網(wǎng)絡(luò)中來實現(xiàn)安全密鑰管理。
圓錐曲線密碼是一種比橢圓曲線密碼更加高效的非對稱密碼體制,具有密鑰短、參數(shù)選擇靈活、實現(xiàn)速度快和安全性高等優(yōu)點,通過將其應(yīng)用在無線傳感器網(wǎng)絡(luò)的密鑰管理方案中,給出一種基于圓錐曲線密碼的無線傳感器網(wǎng)絡(luò)密鑰管理方案(Key Management scheme based on Conic Curve cryptography for wireless sensor network,KMCC)。所給方案可以有效實現(xiàn)通信密鑰分配以及動態(tài)添加新節(jié)點、密鑰更新和回收,并且在密鑰存儲空間、可擴展性和抗網(wǎng)絡(luò)攻擊等方面都要比基于橢圓曲線密碼的無線傳感器網(wǎng)絡(luò)密鑰管理方案等經(jīng)典的密鑰管理方案具有更好的性能,因此所給方案可以較好地適用于無線傳感器網(wǎng)絡(luò)中。
1 KMCC方案設(shè)計
1.1 網(wǎng)路模型
假設(shè)部署的無線傳感器網(wǎng)絡(luò)中有且僅有一個基站,且該基站不會失效或者被攻擊。網(wǎng)絡(luò)中每個節(jié)點都能夠感知其鄰近的節(jié)點,同時假設(shè)在網(wǎng)絡(luò)初始化階段不存在外部入侵的問題,即所有節(jié)點都具有一定抵御外部攻擊的能力,且為每個節(jié)點賦予唯一的身份標(biāo)識ID以抵御Sybil攻擊和Newcomer攻擊。其中,基站作為證書管理機構(gòu),用來為每個節(jié)點分配證書,證書內(nèi)容應(yīng)包含與節(jié)點私鑰匹配的公鑰、節(jié)點身份標(biāo)識以及時間戳。證書形式為CAi=E(PKi,IDi,T),i表示某個節(jié)點,Ci表示節(jié)點i的證書,SKCA表示基站的私鑰,PKi表示節(jié)點i的公鑰,IDi表示節(jié)點i身份標(biāo)識號,T表示證書的有效期,且節(jié)點i自身私鑰為SKi,同時被注入基站的公鑰PKCA。
1.2 網(wǎng)絡(luò)初始化
部署無線傳感器網(wǎng)絡(luò)之前,需要對整個網(wǎng)絡(luò)中的基站和所有節(jié)點進行初始化設(shè)置。首先需要構(gòu)造安全圓錐曲線C,然后分別在其上選取階為k的基點P,并定義圓錐曲線C上的點加運算和標(biāo)量乘法運算[4]。節(jié)點i的配置參數(shù)則為(k,C/Fq,E,F(xiàn),G,H),k表示有限域Fq上的素數(shù),C表示有限域Fq上的圓錐曲線,E表示有限域Fq上的加法群,F(xiàn)表示圓錐曲線上的Frobenius映射,G表示加法群E上隨機選取的生成元,H表示單向散列函數(shù),且有SKi=KMH(IDi),KM表示系統(tǒng)的主密鑰。
1.3 通信密鑰建立
部署無線傳感器網(wǎng)絡(luò)完成后,需要在基站和節(jié)點間建立通信密鑰,具體執(zhí)行過程如下所示:
(1)首先,每個節(jié)點都通過廣播“Hello”消息來發(fā)現(xiàn)鄰居節(jié)點,鄰居節(jié)點在收到“Hello”消息后回復(fù)確認消息;
(2)當(dāng)一對節(jié)點i和節(jié)點j互相確認為鄰居節(jié)點之后,節(jié)點i通過利用公鑰證書CAi將自己的公鑰PKi發(fā)送給鄰居節(jié)點j,節(jié)點i發(fā)送給節(jié)點j的消息為(CAi,t)=,節(jié)點j發(fā)送給節(jié)點i的消息為(CAj,t)=
,發(fā)送的消息都包括時間戳t,主要作用是為了保證節(jié)點j收到證書的有效性,避免節(jié)點i重發(fā)已過期證書或防止惡意節(jié)點冒充節(jié)點i重發(fā)過期證書;
(3)節(jié)點i和節(jié)點j只有利用預(yù)注入基站公鑰PKCA才能對證書解密,以驗證證書是由基站發(fā)放的,并獲得鄰近節(jié)點的身份標(biāo)識和公鑰。節(jié)點j利用基站公鑰PKCA來驗證節(jié)點i發(fā)送的消息,節(jié)點j獲得節(jié)點i的身份標(biāo)識IDi和公鑰PKi;同樣,節(jié)點i也需要利用利用基站公鑰PKCA對節(jié)點j發(fā)送的消息進行驗證
,獲得節(jié)點i獲得節(jié)點j的身份標(biāo)識IDj和公鑰PKj;
(4)鄰居節(jié)點i和節(jié)點j互相獲得對方的公鑰后,利用初始化預(yù)先加載的私鑰SKi=KM H(IDi)和SKj=KM H(IDj)建立對密鑰Ki,j。節(jié)點i生成對密鑰Ki,j=F(SKi, H(IDj)),節(jié)點j生成對密鑰Kj,i=F(SKj, H(IDi)),由映射F性質(zhì)可知Ki,j=Kj,i,則建立起鄰居節(jié)點i和j之間對密鑰。
1.4 節(jié)點的加入和刪除
新節(jié)點加入網(wǎng)絡(luò)時,需要首先對其配置身份標(biāo)識,產(chǎn)生新節(jié)點的證書和私鑰,再與鄰近節(jié)點建立通信對密鑰,具體執(zhí)行過程如下:
(1)新節(jié)點t請求加入網(wǎng)絡(luò)時,基站首先為該節(jié)點分配一個身份標(biāo)識號IDt,用以生成證書CAt=E(PKt,IDt,T)以及私鑰SKt=KMH(IDt),并同時為該節(jié)點預(yù)先注入基站公鑰PKCA;
(2)新節(jié)點t部署后,向周圍節(jié)點廣播“Hello”消息尋找鄰居節(jié)點,鄰居節(jié)點回復(fù)確認消息后,然后新節(jié)點t與鄰居節(jié)點之間建立對立對密鑰Ki,t。
由于整個網(wǎng)絡(luò)中每對鄰居節(jié)點的密鑰與其他節(jié)點之間的對密鑰是相互獨立的,所以刪除被捕獲或失效的節(jié)點不會給其他節(jié)點造成危害,節(jié)點刪除的執(zhí)行過程如下:
(1)當(dāng)一個節(jié)點s能量耗盡或被捕獲后,在網(wǎng)絡(luò)中廣播該失效或被捕獲節(jié)點s的身份標(biāo)識IDs及該節(jié)點已退出的消息,從而其證書CAs失效;
(2)其余節(jié)點收到節(jié)點s的身份標(biāo)識IDs退出的消息后,若再有節(jié)點s發(fā)送到消息則直接丟棄。
1.5 密鑰的更新和回收
網(wǎng)絡(luò)中鄰居節(jié)點利用公私密鑰對更新對密鑰,假定是由節(jié)點i發(fā)起密鑰更新請求,具體執(zhí)行過程如下所示:
(1)節(jié)點i采用節(jié)點j的公鑰PKj來加密節(jié)點i的身份標(biāo)識IDi和一個一次性隨機數(shù)R1,然后發(fā)送給節(jié)點j,即節(jié)點i發(fā)送消息(IDi,R1)到節(jié)點j,其中R1唯一地標(biāo)識節(jié)點i更新;
(2)節(jié)點j采用節(jié)點i的公鑰PKi來加密節(jié)點i的一次性隨機數(shù)R1和節(jié)點j新產(chǎn)生的一次性隨機數(shù)R2,然后發(fā)送給節(jié)點i,即節(jié)點j發(fā)送消息E(R1,R2)到節(jié)點i,其中R2唯一地標(biāo)識節(jié)點j更新回復(fù);
(3)節(jié)點i收到消息(R1,R2)進行解密后,得到隨機數(shù)R1,所以節(jié)點i確認回復(fù)消息是節(jié)點j發(fā)送的后采用節(jié)點j的公鑰PKj來加密隨機數(shù)R2,并發(fā)送給節(jié)點j,即節(jié)點i發(fā)送消息
(R2)到節(jié)點j;
(4)節(jié)點j收到消息(R2)進行解密得到隨機數(shù)R2,所以節(jié)點j可以確認此次消息是節(jié)點i發(fā)送的;
(5)節(jié)點i選擇通信會話密鑰KD,并采用自己的私鑰SKi和節(jié)點j的公鑰PKj加密會話密鑰KD達到密鑰更新報文消息M,,然后發(fā)送給基點j。
(6)節(jié)點j收到密鑰更新報文消息M=E(E(KD)),然后采用自己的私鑰SKj和節(jié)點i的公鑰PKi來解密會話密鑰KD,從而鄰居節(jié)點間建立新的會話密鑰。
在無線傳感器網(wǎng)絡(luò)中,如果有節(jié)點發(fā)現(xiàn)某個節(jié)點不合法時,需要向基站對該節(jié)點投不信任票,當(dāng)基站收到對這個節(jié)點的不信任投票超過一定的閾值,則基站就會通過廣播節(jié)點私鑰的方式對該節(jié)點的密鑰進行回收,具體執(zhí)行過程如下:
(1)當(dāng)基站收到對節(jié)點e的不信任投票超過閾值d時,則向網(wǎng)絡(luò)廣播發(fā)送密鑰回收消息(SKe,PKe);
(2)網(wǎng)絡(luò)中節(jié)點在收到回收消息(SKe,PKe)后,查找自己是否與不信任節(jié)點e是鄰居節(jié)點,如果不是鄰居節(jié)點則直接丟棄該消息,如果是鄰近節(jié)點則今后不再接收節(jié)點e的消息,等到證書過期后,則鄰居節(jié)點之間的對密鑰自動撤銷。
2 實驗仿真與性能分析
實驗仿真工具采用伯克利大學(xué)研制的MICA2mote,使用的是8位ATmega128L處理器,4 KB的SRAM以及128 KB的ROM,MAC層協(xié)議采用802.11標(biāo)準協(xié)議,路由協(xié)議采用DSR協(xié)議,傳感器節(jié)點數(shù)目為500,有且僅有1個基站。主要從安全性、存儲開銷、能耗和可擴展性四個方面分別與E&G方案、IBC方案和基于ECC方案三種經(jīng)典密鑰管理方案進行分析比較,以驗證所給KMCC方案的優(yōu)越性。
2.1 安全性分析
KMCC方案的安全是建立在圓錐曲線上離散對數(shù)問題難解性的基礎(chǔ)之上的。在網(wǎng)絡(luò)通信密鑰建立過程中,攻擊者無法獲得圓錐曲線密碼標(biāo)量乘算法的初始密鑰k,而如果通過截獲網(wǎng)絡(luò)通信密鑰協(xié)商消息來推導(dǎo)出初始密鑰是困難的。當(dāng)有新節(jié)點加入網(wǎng)絡(luò)時,由于該節(jié)點沒有初始密鑰,其現(xiàn)在的密鑰分配的密鑰無法解密之前的報文消息,因而能夠保證網(wǎng)絡(luò)的后向安全性;假如攻擊者捕獲了網(wǎng)絡(luò)中的一個節(jié)點,由于鄰居節(jié)點之間的對密鑰只涉及鄰居節(jié)點本身,與其余節(jié)點無關(guān),為避免攻擊者通過恢復(fù)被捕獲節(jié)點初始密鑰獲取通信報文消息,可以通過密鑰更新方法來更新密鑰,從而使得老的對密鑰不能解密以后的報文或生成冒充的加密報文,從而有效防止外部惡意節(jié)點或被捕獲節(jié)點的攻擊,保證網(wǎng)絡(luò)的前向安全性。攻擊者即使捕獲控制了網(wǎng)絡(luò)一個節(jié)點,也不可能獲取其余節(jié)點的密鑰信息和其他相關(guān)信息,并且可以通過其余節(jié)點的不信任投票來刪除該節(jié)點,所以可以減少安全威脅影響整個網(wǎng)絡(luò),所以KMCC方案具有較高的抗毀性。
由于攻擊者總是試圖在無線傳感器網(wǎng)絡(luò)中通過捕獲控制傳感器節(jié)點來獲得其余節(jié)點密鑰信息,所以節(jié)點捕獲對于無線傳感器網(wǎng)絡(luò)是一種需要非常重視的安全威脅。E&G方案由于節(jié)點需要存儲密鑰個數(shù)較多,如果其中一個節(jié)點被捕獲,則極有可能造成多個節(jié)點的密鑰信息泄露,網(wǎng)絡(luò)的抗毀性較差,其節(jié)點的密鑰被捕獲概率為1-(1-a/P)n [5]。IBC方案、基于ECC方案以及所給KMCC方案由于只存儲鄰近節(jié)點密鑰信息,所以單個節(jié)點被捕獲不會擴散整個網(wǎng)絡(luò),IBC方案的節(jié)點密鑰被捕獲的概率為,基于ECC方案的節(jié)點密鑰被捕獲的概率為
,所給KMCC方案的節(jié)點密鑰被捕獲概率為
。其中,a表示密鑰環(huán)大小,P表示密鑰池大小,n表示被捕獲的節(jié)點個數(shù),m表示網(wǎng)絡(luò)節(jié)點數(shù)目,e1表示基于ECC方案的密鑰回收成功概率,e2表示KMCC方案的密鑰回收成功概率。其中,節(jié)點數(shù)m=500。假定令a=300,P=1 000,n=200,e1=0.27,e2=0.35,則KMCC方案與E&G方案、IBC方案和基于ECC方案的密鑰抵抗被捕獲能力的比較分析如圖1所示。
2.2 能耗分析
由于無線傳感器網(wǎng)絡(luò)節(jié)點的能量有限,所以密鑰管理方案應(yīng)盡可能節(jié)約能量消耗,密鑰管理方案的能耗主要包括運算能耗和通信能耗。在無線傳感器網(wǎng)絡(luò)中,節(jié)點傳輸信息所需的通信能耗比執(zhí)行計算時的運算能耗大得多,一般認為傳輸1 bit信息100 m所需能量大約可以執(zhí)行3 000條指令。對于E&G方案,密鑰分配建立階段需需執(zhí)行單向散列函數(shù)運算和XOR運算,同時需要進行節(jié)點間的通信,當(dāng)密鑰環(huán)超過閾值時,通信能耗將會大幅增加,當(dāng)有新節(jié)點加入或更新密鑰時,需要重新執(zhí)行密鑰分配過程,能耗幾乎相同。對于IBC方案,需要執(zhí)行單向散列函數(shù)運算、XOR運算和公鑰運算,當(dāng)需要更新密鑰時,只需在鄰居節(jié)點之間進行計算能量和通信能量消耗。對于基于ECC方案,需要執(zhí)行單向散列函數(shù)運算、橢圓曲線密碼標(biāo)量乘運算和橢圓曲線點加運算,對密鑰只存在于鄰居節(jié)點之間,所以只需考慮鄰居節(jié)點之間的計算和通信能量消耗。對于KMCC方案,需要執(zhí)行單向散列函數(shù)運算、圓錐曲線密碼標(biāo)量乘運算和圓錐曲線點加運算,對密鑰只存在于鄰居節(jié)點之間,所以只需考慮鄰居節(jié)點之間的計算和通信能量消耗,但是圓錐曲線密碼標(biāo)量乘運算和圓錐曲線點加運算優(yōu)于橢圓曲線密碼標(biāo)量乘運算和橢圓曲線點加運算,所以KMCC方案比ECC方案所需能耗更少。其中,假定網(wǎng)絡(luò)中每個節(jié)點的初始能量為0.5 J。圖2給出了隨網(wǎng)絡(luò)規(guī)模變化KMCC方案與經(jīng)典密鑰管理方案的能耗分析比較。
2.3 存儲開銷分析
假定節(jié)點之間通信密鑰的長度是相等的,令存儲參數(shù)的開銷為Sc,存儲單個密鑰的開銷為Sk,h表示平均鄰居節(jié)點的個數(shù),有。對于E&G方案,只需要存儲節(jié)點的通信密鑰,所以其存儲開銷只與網(wǎng)絡(luò)規(guī)模的大小有關(guān),則其單個節(jié)點的存儲開銷為m(lnm+9.21)Sk/h[8]。對于IBC方案,需要存儲鄰居節(jié)點的通信密鑰,還需存儲系統(tǒng)參數(shù)、系統(tǒng)公鑰、節(jié)點公私鑰對以及身份標(biāo)識,所以其存儲開銷與對網(wǎng)絡(luò)規(guī)模大小和參數(shù)個數(shù)有關(guān),則其單個節(jié)點的存儲開銷為Sc+(h+4)Sk[9]。對于基于ECC方案,需要存儲鄰居節(jié)點之間的通信密鑰,還需要存儲公共參數(shù)、節(jié)點公私鑰對以及節(jié)點認證密鑰,所以其存儲開銷與對網(wǎng)絡(luò)規(guī)模大小和參數(shù)個數(shù)有關(guān),則其單個節(jié)點的存儲開銷為Sc+(h+3)Sk[10]。對于所給KMCC方案,需要存儲鄰居節(jié)點之間的通信密鑰,還需要存儲節(jié)點公私鑰對和節(jié)點認證密鑰,所以其存儲開銷與對網(wǎng)絡(luò)規(guī)模大小和參數(shù)個數(shù)有關(guān),則其單個節(jié)點的存儲開銷為Sc+(h+2)Sk。而且由于IBC方案和基于ECC方案以及所給KMCC方案都是存儲鄰居節(jié)點之間的密鑰信息,所以網(wǎng)絡(luò)規(guī)模的增加節(jié)點的存儲開銷變化不大。則KMCC方案與E&G方案、IBC方案和基于ECC方案的存儲開銷比較如圖3所示。
3 結(jié)束語
密鑰管理是無線傳感器網(wǎng)絡(luò)其他安全機制的基礎(chǔ),也是無線傳感器網(wǎng)絡(luò)的研究熱點。通過將圓錐曲線密碼應(yīng)用到無線傳感器網(wǎng)絡(luò)的密鑰管理中,給出了一種有效的KMCC密鑰管理方案。由于通信密鑰的生成算法是基于圓錐曲線上離散對數(shù)問題的難解性之上的,可以有效防止外來節(jié)點的攻擊,同時新節(jié)點加入的密鑰生成以及密鑰更新與回收采用的是圓錐曲線密碼,可以有效提高密鑰安全性以防止內(nèi)部惡意節(jié)點的攻擊。并且所給KMCC方案的密鑰建立、更新、回收、節(jié)點對密鑰生成以及新節(jié)點密鑰建立都是發(fā)生在鄰居節(jié)點之間的通信,不需要進行集中管理,所以具有良好的動態(tài)擴展性。通過與經(jīng)典密鑰管理方案相比,所給方案在安全性、能量消耗和存儲開銷方面都具有較好的優(yōu)越性,因此所給方案具有較好的可行性,適用于動態(tài)無線傳感器網(wǎng)絡(luò)并且可以有效保證網(wǎng)絡(luò)性能。
參考文獻
[1] FARRUH I,AMIR S M,SUNG W K.Energy consumption balancing(Ecb) issues and mechanisms in wireless sensor networks(WSNs):a comprehensive overview[J].Euro.Transac-tions on Telecommunications,2011,22(4):151-167.
[2] LEVI A,TASCI S E.Simple,extensible and flexible random key predistribution schemes for wireless sensor networks using reusable key pools[J].Journal of Intelligent Manufac-turing,2010,21(5):635-645.
[3] 郭萍,張宏,傅德勝,等.一種混合輕量型無線傳感器網(wǎng)絡(luò)公鑰密碼方案[J].計算機科學(xué),2012,39(1):69-72.
[4] 劉鐸.有限域GF(pm)上圓錐曲線標(biāo)量乘快速算法[J].北京交通大學(xué)學(xué)報,2013,37(5):132-137.
[5] ECHENAUER L,GLIGOR V D.A key management schemefor distributed sensor network[C].Proc.of the 9th ACM .on Computer and Communications Security,2002:41-47.
[6] ZHANG Y C,LIU W,LOU W J,et al.Location based compromise- tolerant security mechanisms for wireless sensor networks[C].IEEE Journal on Selected Areas in Communications,2006,24(2):247-260.
[7] 蹇波,郭永輝,羅長遠,等.基于ECC的無線傳感器網(wǎng)絡(luò)密鑰管理協(xié)議[J].計算機工程,2010,36(3):142-144.
[8] 羅文俊,付海洋.一種基于橢圓曲線的WSN密鑰管理方案[J].計算機工程與應(yīng)用,2013,49(19):88-91.
[9] 劉濤,熊焰,黃文超,等.基于信譽模型的WSN密鑰管理方案[J].計算機工程,2013,39(11):123-126.
[10] 王亮,王偉欣,張林.一種新的傳感器網(wǎng)絡(luò)的密鑰協(xié)商算法[J].傳感器與微系統(tǒng),2013,32(7):129-131.