(杭州電子科技大學(xué)通信工程學(xué)院,浙江 杭州310018)
無線傳感器網(wǎng)絡(luò)是部署在特定區(qū)域的傳感器節(jié)點(diǎn)自組織構(gòu)成的無線網(wǎng)絡(luò)[1]。在無線傳感器網(wǎng)絡(luò)中,組播是比單播更有效的通信方法,組播能夠在很大程度上節(jié)省帶寬和能量。在一般情況下,由于傳輸是發(fā)生在多個(gè)網(wǎng)絡(luò)渠道上的,組播遠(yuǎn)比單播更容易受到攻擊。因此,如何保證無線傳感器網(wǎng)絡(luò)中組通信的安全成為了一個(gè)重要問題[2]。為了保證組通信安全,文獻(xiàn)[3-4]提出了兩個(gè)經(jīng)典的組密鑰管理方案。這兩個(gè)方案都采用本地協(xié)作的方法,節(jié)點(diǎn)預(yù)存組密鑰分量信息,通過與鄰居節(jié)點(diǎn)的協(xié)作來實(shí)現(xiàn)組密鑰的更新,從而保證組通信的安全,但這兩個(gè)方案的安全性并不理想,而且存儲開銷和通信開銷也非常大。文獻(xiàn)[5]提出了一種基于多項(xiàng)式的組密鑰管理方案,該方案利用節(jié)點(diǎn)存儲的多項(xiàng)式和匯聚節(jié)點(diǎn)發(fā)送的節(jié)點(diǎn)標(biāo)識符集合來實(shí)現(xiàn)組密鑰的更新,減小了網(wǎng)絡(luò)的通信開銷,但存在安全性太低的問題。文獻(xiàn)[6]提出了一種基于本地協(xié)作的改進(jìn)方案,該方案引入基站參與組密鑰分量更新,提高了組密鑰更新的安全性,但仍存在通信開銷過大的問題。本文在借鑒本地協(xié)作方法的基礎(chǔ)上,提出了一種基于簇協(xié)作的組密鑰管理方案,本方案不需要基站參與更新,采用簇協(xié)作的方式進(jìn)行組密鑰更新,避免了簇內(nèi)節(jié)點(diǎn)多余地發(fā)送信息。性能分析和仿真結(jié)果表明,相比于現(xiàn)有采用本地協(xié)作的方案,本方案在保證良好安全性的同時(shí),減小了存儲開銷和通信開銷。
1)以組為單位將節(jié)點(diǎn)部署到特定區(qū)域后,節(jié)點(diǎn)根據(jù)文獻(xiàn)[7]中的分簇算法生成多個(gè)簇,同時(shí)每簇生成自身在組內(nèi)的編號;
2)合法節(jié)點(diǎn)能夠及時(shí)檢測出妥協(xié)節(jié)點(diǎn)以及新加入節(jié)點(diǎn)。
假設(shè)每組節(jié)點(diǎn)總數(shù)為N。在節(jié)點(diǎn)部署前,基站為每個(gè)節(jié)點(diǎn)Ui(i=1,2,…,N)預(yù)置:
1)節(jié)點(diǎn)的ID;
2)偽隨機(jī)數(shù)生成器(Pseudo-random Number Generator,PRNG);
3)初始組密鑰K0;
4)哈希函數(shù)H1(x)和H2(x);
5)初始組密鑰分量GK0。GK0的生成操作如下:在節(jié)點(diǎn)部署前,基站在有限域Fq上隨機(jī)選取t+1個(gè)隨機(jī)數(shù)a0,0,a0,1,…,a0,t,用這t+1個(gè)隨機(jī)數(shù)構(gòu)建t 階多項(xiàng)式根據(jù)門限密鑰共享機(jī)制[8],任意節(jié)點(diǎn)Ui的初始組密鑰分量為GK0=f0(IDi)。
節(jié)點(diǎn)部署后,每個(gè)簇的簇內(nèi)合法節(jié)點(diǎn)(簇內(nèi)未被妥協(xié)的節(jié)點(diǎn))將各自的ID 單播發(fā)送給簇頭節(jié)點(diǎn),簇頭保存各自簇內(nèi)合法節(jié)點(diǎn)的ID。當(dāng)簇頭因被妥協(xié)或能量消耗等特殊原因退出組通信,組內(nèi)所有合法節(jié)點(diǎn)都會重新選舉產(chǎn)生新簇頭,接著簇內(nèi)合法節(jié)點(diǎn)將自身的ID 單播發(fā)送給新簇頭,選舉前的合法簇頭會刪除自身存儲的簇內(nèi)合法節(jié)點(diǎn)的ID,最后新簇頭發(fā)起簇頭退出的組密鑰更新,其更新操作與下面描述的簇內(nèi)合法節(jié)點(diǎn)被妥協(xié)進(jìn)行的組密鑰更新相同。本文中新加入節(jié)點(diǎn)由基站預(yù)置最新階段的消息。第1輪更新表示為節(jié)點(diǎn)部署后的第一次組密鑰更新,第j 階段表示為第j 輪到第j+1 輪更新之間的時(shí)間段。第j 輪組密鑰更新操作如下:
1)當(dāng)某一簇頭收到新加入節(jié)點(diǎn)的組通信請求消息和它的ID,或者當(dāng)某一簇頭收到簇內(nèi)合法節(jié)點(diǎn)檢測到的妥協(xié)節(jié)點(diǎn)的ID,該簇頭需要聯(lián)合幾個(gè)鄰居簇頭對消息進(jìn)行核實(shí)。如屬實(shí),該簇頭生成組密鑰更新消息,并將其發(fā)送給組內(nèi)其他簇頭,接著廣播組密鑰分量請求消息給其簇內(nèi)合法節(jié)點(diǎn);
2)簇內(nèi)合法節(jié)點(diǎn)收到消息后,將自身的組密鑰分量單播給簇頭。簇頭至少得到t個(gè)組密鑰分量后,加上自身的組密鑰分量,采用拉格朗日插值定理得到第j 階段的組密鑰多項(xiàng)式fj-1(x),并計(jì)算出新的組密鑰Kj=H1(fj-1(0));
3)組內(nèi)其他簇頭收到更新消息后,也各自廣播組密鑰分量請求消息給其簇內(nèi)合法節(jié)點(diǎn),后面的操作如步驟2所述;
為了保證組通信的安全性,本方案采用一個(gè)更新多項(xiàng)式來對組密鑰分量進(jìn)行更新。更新多項(xiàng)式中系數(shù)的生成如圖1所示。組密鑰分量更新操作如下:
1)簇頭得到第j 階段的fj-1(0)之后,將fj-1(0)作為隨機(jī)種子代入PRNG 中得到aj,0,再將aj,0作為隨機(jī)種子代入PRNG 得到aj,1,以此類推得到t+1個(gè)偽隨機(jī)數(shù)aj,0,aj,1,…,aj,t;
2)簇頭將每個(gè)aj,i代入哈希函數(shù)H2(x)計(jì)算得到bj,i,用這t+1個(gè)數(shù)構(gòu)造t 階更新多項(xiàng)式gj(x)=并用組密鑰Kj加密更新多項(xiàng)式,接著將其廣播發(fā)送給簇內(nèi)合法節(jié)點(diǎn),簇內(nèi)任意合法節(jié)點(diǎn)Ui解密后代入計(jì)算就可將組密鑰分量更新為GKj=GKj-1+gj(IDi),簇頭也計(jì)算自身的組密鑰分量GKj,隨之刪除更新多項(xiàng)式gj(x)。
圖1 更新多項(xiàng)式系數(shù)的生成圖
在每次組密鑰更新之后,每個(gè)簇頭都會發(fā)起組密鑰分量的更新,從而及時(shí)更新組內(nèi)合法節(jié)點(diǎn)的組密鑰分量,這保證了每個(gè)階段都具有不同的組密鑰多項(xiàng)式fj-1(x)。由于簇頭節(jié)點(diǎn)數(shù)遠(yuǎn)遠(yuǎn)小于簇內(nèi)合法節(jié)點(diǎn)數(shù),其被妥協(xié)的概率非常小,如果簇頭節(jié)點(diǎn)被妥協(xié),組內(nèi)所有合法節(jié)點(diǎn)根據(jù)分簇算法重新生成新簇頭,分簇前的合法簇頭會刪除自身存儲的簇內(nèi)合法節(jié)點(diǎn)的ID,新簇頭存儲的簇內(nèi)合法節(jié)點(diǎn)ID 集合與妥協(xié)簇頭存儲的ID 集合肯定不會相同,因此新階段組密鑰更新時(shí)的撤銷多項(xiàng)式無法被妥協(xié)簇頭破解,從而保證組密鑰更新的繼續(xù)進(jìn)行。但如果攻擊者在同一階段妥協(xié)的節(jié)點(diǎn)數(shù)超過t個(gè),那么攻擊者可以計(jì)算得到當(dāng)前階段的組密鑰多項(xiàng)式fj-1(x),并可以計(jì)算出當(dāng)前階段的組密鑰Kj和此階段之后的組密鑰多項(xiàng)式,從而攻破網(wǎng)絡(luò)。因此,只要攻擊者在同一階段妥協(xié)的節(jié)點(diǎn)數(shù)少于t+1個(gè),本方案利用撤銷多項(xiàng)式使得妥協(xié)節(jié)點(diǎn)無法得到新的組密鑰,并更新合法節(jié)點(diǎn)的組密鑰分量,使得組密鑰多項(xiàng)式得到更新,從而保證了組通信的安全性。
本文方案中節(jié)點(diǎn)ID、簇編號、哈希函數(shù)和PRNG 占用空間比較小,其信息長度可以忽略不計(jì),其他信息的長度均為L bits,本文方案中大O表示復(fù)雜度。簇頭和簇內(nèi)合法節(jié)點(diǎn)都需存儲節(jié)點(diǎn)自身的ID、簇編號、哈希函數(shù)、PRNG、組密鑰分量GKj和組密鑰Kj,除此之外簇頭還需存儲簇內(nèi)所有合法節(jié)點(diǎn)的ID,但由于ID的信息長度可以忽略不計(jì),因此簇頭和簇內(nèi)合法節(jié)點(diǎn)的存儲開銷都為O(L)。組密鑰更新時(shí),發(fā)起組密鑰更新的簇頭需要將組密鑰更新消息發(fā)送給組內(nèi)其他簇頭,組內(nèi)每個(gè)簇頭都需要廣播一條組密鑰分量請求消息,每個(gè)簇頭至少需要t個(gè)簇內(nèi)合法節(jié)點(diǎn)向其發(fā)送組密鑰分量,每個(gè)簇頭需要將各自的撤銷多項(xiàng)式廣播給簇內(nèi)合法節(jié)點(diǎn),并將加密后的更新多項(xiàng)式發(fā)送給簇內(nèi)合法節(jié)點(diǎn),方案總體的通信開銷為O(NL)。組密鑰更新時(shí),簇頭需進(jìn)行拉格朗日插值、計(jì)算組密鑰、構(gòu)建撤銷多項(xiàng)式、生成和加密更新多項(xiàng)式、計(jì)算新的組密鑰分量,當(dāng)中拉格朗日插值的計(jì)算開銷為O(t3),遠(yuǎn)大于其他操作的計(jì)算開銷,因此簇頭的計(jì)算開銷約為O(t3);簇內(nèi)合法節(jié)點(diǎn)需將ID 代入撤銷多項(xiàng)式計(jì)算組密鑰、解密更新多項(xiàng)式和計(jì)算新的組密鑰分量,當(dāng)中撤銷多項(xiàng)式的代入計(jì)算的計(jì)算開銷為O(d2)(d為簇內(nèi)合法節(jié)點(diǎn)總數(shù)),遠(yuǎn)大于其他操作的計(jì)算開銷,因此簇內(nèi)合法節(jié)點(diǎn)的計(jì)算開銷約為O(d2)。
本文方案(簡稱CCBG方案)和文獻(xiàn)[3]中的GKD方案、文獻(xiàn)[4]中的B-PCGR方案、文獻(xiàn)[6]中的DGKM方案的性能比較如表1所示。4種方案的通信開銷仿真圖如圖2所示。表1中,L為信息長度,n為平均鄰居節(jié)點(diǎn)數(shù),r為組密鑰會話次數(shù),d為簇內(nèi)合法節(jié)點(diǎn)總數(shù),s為B-PCGR方案的系統(tǒng)參數(shù)。
表1 方案性能比較
圖2的仿真軟件為Matlab2010a,仿真區(qū)域設(shè)定為400 m×400 m,節(jié)點(diǎn)均勻分布在此區(qū)域內(nèi)。節(jié)點(diǎn)的通信半徑為50 m,組內(nèi)節(jié)點(diǎn)總數(shù)N 取500 3 000,t=n/3。
圖2 通信開銷仿真圖
4種方案對比結(jié)果分析如下:
1)GKD方案需要節(jié)點(diǎn)保存每次會話的隱藏多項(xiàng)式分量和一個(gè)加密多項(xiàng)式分量,B-PCGR方案中節(jié)點(diǎn)除了保存自身的t 階多項(xiàng)式之外,還需保存所有鄰居節(jié)點(diǎn)的t 階加密多項(xiàng)式分量,DGKM方案中節(jié)點(diǎn)需要保存節(jié)點(diǎn)標(biāo)識符、組密鑰分量和組密鑰,CCBG方案中節(jié)點(diǎn)主要需要保存組密鑰分量和組密鑰,其他存儲信息的信息長度可以忽略不計(jì),因此CCBG方案的存儲開銷略小于DGKM方案,遠(yuǎn)小于其他2個(gè)方案;
2)每次密鑰更新,GKD方案中每個(gè)節(jié)點(diǎn)都需要t個(gè)鄰居節(jié)點(diǎn)向其發(fā)送自身的密鑰預(yù)置信息,B-PCGR方案中每個(gè)節(jié)點(diǎn)都需向所有鄰居節(jié)點(diǎn)發(fā)送加密多項(xiàng)式分量,DGKM方案中每個(gè)節(jié)點(diǎn)都需t個(gè)鄰居節(jié)點(diǎn)向其發(fā)送自身的組密鑰分量,而CCBG方案中每個(gè)簇頭至少需要t個(gè)簇內(nèi)合法節(jié)點(diǎn)向其發(fā)送組密鑰分量信息,每個(gè)簇頭負(fù)責(zé)廣播撤銷多項(xiàng)式和t 階更新多項(xiàng)式,理論上的通信開銷要小于其他3個(gè)方案,仿真結(jié)果也表明隨著組內(nèi)節(jié)點(diǎn)規(guī)模的增大,CCBG方案在通信開銷方面的優(yōu)勢越來越大;
3)在密鑰更新階段,CCBG方案中簇頭需要進(jìn)行一次拉格朗日插值,簇內(nèi)合法節(jié)點(diǎn)需要進(jìn)行一次撤銷多項(xiàng)式的代入計(jì)算,其他3個(gè)方案都需要節(jié)點(diǎn)進(jìn)行一次拉格朗日插值,4個(gè)方案總體的計(jì)算開銷相差不大,而且4個(gè)方案的密鑰計(jì)算時(shí)間很短,并不會影響到組密鑰更新的實(shí)時(shí)性;
4)B-PCGR方案中攻擊者攻破網(wǎng)絡(luò)只需獲取t+1個(gè)不同階段的組密鑰或妥協(xié)一個(gè)節(jié)點(diǎn)及其s+1個(gè)鄰居節(jié)點(diǎn),GKD方案中攻擊者只要妥協(xié)節(jié)點(diǎn)數(shù)超過2t個(gè)就可攻破網(wǎng)絡(luò),DGKM方案中攻擊者只要在連續(xù)的兩個(gè)階段內(nèi)妥協(xié)節(jié)點(diǎn)數(shù)超過t+2個(gè)就可攻破網(wǎng)絡(luò),與其他3個(gè)方案相比,CCBG方案安全性相對較高。
本文采用簇協(xié)作的方式實(shí)現(xiàn)組密鑰的更新,并使用偽隨機(jī)數(shù)生成器和哈希函數(shù)產(chǎn)生更新多項(xiàng)式,從而實(shí)現(xiàn)組內(nèi)所有合法節(jié)點(diǎn)組密鑰分量的及時(shí)更新。與其他基于本地協(xié)作的方案相比,本文提出的方案在保證安全性的同時(shí),減小了通信開銷與存儲開銷。然而,本文方案還是存在一些可以改進(jìn)的地方,下一步的工作是如何在保證方案開銷小的同時(shí),進(jìn)一步提高方案安全性。
[1]Akyildiy I F,Su W,Sankarasubramaniam Y,et al.Wireless sensor networks:a survey[J].Computer Networks,2002,38(4):393-422.
[2]Wu F,Pai H,Zhu X,et al.Am adaptable and scalable group access control scheme for managing wireless sensor networks[J].Telematics and Informatics,2013,30(2):144-157.
[3]Chadha A,Yonghe L,Das S K.Group key distribution via local collaboration in wireless sensor networks[C].Piscataway:Institute of Electrical and Electronics Engineers Computer Society,2005:46-54.
[4]Zhang W,Zhu S,Cao G.Predistribution and local collaboration-based group rekeying for wireless sensor networks[J].Ad Hoc Networks,2009,7(6):1 229-1 242.
[5]Fan X,Gong G.LPKM:A Lightweight Polynomial-Based Key Management Protocol for Distributed Wireless Sensor Networks[C].Berlin:Springer Verlag,2012:180-195.
[6]鄧淑華,趙澤茂.WSN的一種分布式組密鑰管理方案[J].信息安全與技術(shù),2012,3(2),18-20.
[7]樊志平,金政哲,謝冬青.基于能量效率的無線傳感網(wǎng)絡(luò)分簇算法[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(3):535-539.
[8]Shamir A.How to share a secret[J].Communications of the Association for Computing Machinery,1979,22(11):612-613.