陳妮 馬姝穎 李曉鈺
摘要:提出了一種分簇式傳感器網(wǎng)絡的改進矩陣密鑰預分配方案。該方案利用Blom矩陣生成密鑰,并完成密鑰的預分配,使得傳感器網(wǎng)絡中所有節(jié)點間都能相互通信,并減少了簇頭的存儲空間。同時可隨著網(wǎng)絡的拓撲變化來更新密鑰信息,從而能夠進一步提高網(wǎng)絡安全性。
關鍵詞:分簇型傳感器網(wǎng)絡;矩陣;密鑰
1.前言
隨著物聯(lián)網(wǎng)技術的飛速發(fā)展,無線傳感器網(wǎng)絡廣泛使用于各個領域。但由于網(wǎng)絡自身的一些特性,使得無線傳感器網(wǎng)絡在安全性能上面臨很大的挑戰(zhàn),因此安全對傳感器網(wǎng)絡來說是很重要的問題。在其安全機制中,認證和加密是重要的部分,故密鑰管理也是其中最基本的部分。
目前已提出了許多密鑰管理方案,有用于分布式傳感器網(wǎng)絡的,也有分簇式傳感器網(wǎng)絡的,而密鑰主要基于矩陣、身份、多項式、邏輯密鑰樹、格、橢圓曲線、方程組等方式產(chǎn)生。
而基于矩陣的密鑰生成主要采用Blom矩陣[1][2]、LU矩陣。本文是基于Blom矩陣上進行改進的對密鑰預分配方案。
2.改進的矩陣對密鑰預分配方案
2.1網(wǎng)絡結構
方案采用三層分簇式網(wǎng)絡體系結構。網(wǎng)絡中的節(jié)點可分為三類:基站,簇頭,普通節(jié)點?;镜哪芰亢痛鎯δ芰Σ皇芟拗?,它主要負責整個網(wǎng)絡的運行,并且假設基站是安全的。而相對于普通節(jié)點,簇頭也擁有較高的信息處理能力和存儲能力。所有節(jié)點都可以采用多跳或單跳的方式進行相互通信。
2.2 改進的矩陣對密鑰預分配方案
本方案是改進的Blom矩陣對密鑰分配方案。為方便描述,假設網(wǎng)絡一共有n個簇,每一個簇內有m個普通節(jié)點以及一個簇首節(jié)點,并定義一個集(D,G),這里的D和G與Blom矩陣方案[1]所定義的一樣,產(chǎn)生方法一致。簡單描述一下實施過程:基站在有限域GF(q)上構建大小為(λ+1)×(m+1)矩陣G,G的產(chǎn)生方法如下:
其中,只要i≠j那么Si≠Sj,并且G每列都線性無關[1]。每個節(jié)點只需記憶每列的第二個元素就可以衍生出整個列,從而減少對內存空間的需求。
同時基站還產(chǎn)生ω×(λ+1)個行種子li,用來構建一個ω個大小為(λ+1)×(λ+1)的對稱矩陣Di(i=1,2,…,ω)。Di是保密的,其中每λ+1個行種子產(chǎn)生一個D。因此,將有ω個密鑰空間Ti=(Di,Gi)。然后基站計算矩陣Ai,Ai=(Di*Gi)T。Ai是一個(m+1)×(λ+1)的矩陣。以ri(Ai)表示Ai行向量則:
Ai*Gi最終對應ω個(m+1)×(m+1)的對稱密鑰矩陣。因此對于每一個密鑰空間(Di,Gi)可以分配給一個簇使用。
每個簇頭節(jié)點從中隨機選取1個不同的空間(D,G),當密鑰空間Ti被簇頭CHi選中時,就將Ai的第m+1行rm+1(Ai)存入這個簇頭。對于這個CHi簇頭內的其他節(jié)點IDji,分配Ai的第i行ri(Ai)。顯然一個簇頭CHi的簇內節(jié)點IDji與IDjx可以通過計算得到密鑰 ,節(jié)點IDji與其簇頭可計算得到密鑰 。
對Ai的行ri(Ai)做如下計算可知Ai的所有行進行相應的計算后得到的值相等,等于Di中各值的和取模。
因此每個密鑰空間Ti=(Di,Gi),按照運算得到一個值記為CTi,共可以得到ω個值。故基站與簇頭間的通信,簇頭不需要再存儲其他密鑰,而是每次通信時進行運算。以簇頭CHi為例,它存的行rm+1(Ai)進行運算后得到值CTi,與其ID(即CHi),以及通信時間一起進行hash運算,作為簇頭與基站的通信密鑰。
2.3密鑰對的建立
經(jīng)過密鑰預分配階段后,每個節(jié)點都帶有不同的密鑰信息,使用這些信息,就能建立會話的密鑰對。
簇頭與基站間要相互通信,完成部署后,以簇頭CHi為例,每個簇頭廣播自己的ID(即CHi)。當收到ID后,基站取出對應的密鑰空間用于計算出CTi,與簇頭ID,當前時間即可計算出密鑰。簇頭間只能通過基站進行轉發(fā)通信。
對于在一個簇中的節(jié)點和簇頭可相互通信。通信的2個節(jié)點間廣播自己的列種子,通過Blom矩陣方式計算得到共同的密鑰。
這樣,整個網(wǎng)絡形成了一個密鑰共享網(wǎng)絡。
2.4密鑰的動態(tài)管理
傳感器節(jié)點可能損壞或俘獲,假設我們可以探測到并更新,則傳感器網(wǎng)絡可改變拓撲結構。因此新增或刪除節(jié)點,動態(tài)地更新密鑰以提高網(wǎng)絡的安全性能是極其重要的。
2.4.1 普通節(jié)點的加入
當普通傳感器節(jié)點加入時,基站首先為其選定一個簇,根據(jù)這個簇頭所選密鑰空間,由基站為其預分配密鑰。如選定加入CHi簇頭的簇,為新節(jié)點預置一個新增加的行,以及Gi新增一個列種子。新增加的節(jié)點就能根據(jù)Blom矩陣運算得到與簇內其他節(jié)點的通信密鑰。
2.4.2 簇頭節(jié)點的加入
當簇首節(jié)點加入時,為其選擇分配一個未使用的密鑰空間 (Dx,Gx),并存一個對應的Ax的行。簇頭與基站通信時通過ID即可計算得到共同的密鑰。而無需更新其他的簇頭和節(jié)點的密鑰信息。
2.4.3普通節(jié)點的刪除
刪除普通節(jié)點時,基站通知它的簇頭以及所在簇的其他節(jié)點“斷開”與該節(jié)點的連接。基站刪除節(jié)點存的對應A的行以及節(jié)點對應的列種子所產(chǎn)生的列。而不需要進行其他的密鑰更新。
2.4.4簇頭節(jié)點的刪除
當簇頭受損或能量耗盡時,基站廣播這個簇頭的危險性,直接刪除簇頭所用的密鑰空間,為該簇選擇一個新簇頭,并重新分配一個密鑰空間?;蛲ㄖ?jié)點加入其他的簇,操作與普通節(jié)點新增一致。
3.網(wǎng)絡的安全分析及性能分析
3.1安全性能比較
在簇首層和基站間采取了與實時通信密鑰,每次通信時由于時間的不同可以產(chǎn)生不同的密鑰,其安全性有所提高。而簇內的安全性與Blom矩陣方案類似,要求在簇內不超過λ個節(jié)點被俘獲即可保證網(wǎng)絡的安全[1],可選擇λ大于節(jié)點的個數(shù)來保證簇內節(jié)點的安全。
3.2 存儲空間的比較
對于普通節(jié)點存λ+1個行向量的值以及一個列種子,和簇頭所存的密鑰數(shù)一致,簇頭無需存與基站的密鑰,因此簇頭的密鑰存儲空間相比其他的密鑰方案來說更少。
3.3 通信與計算開銷比較
對于在一個簇的通信范圍內,所有節(jié)點的密鑰支持單跳連接,簇頭和基站也是單跳連接,這樣可降低通信開銷。簇頭和基站的密鑰是實時更新的,簇內的密鑰動態(tài)管理,計算開銷比較大。
4.結論
本方案在Blom矩陣的基礎上進行改進產(chǎn)生密鑰,使網(wǎng)絡具有良好的安全性能、靈活的拓撲結構,簇頭節(jié)點具有較小的存儲空間。
參考文獻:
[1]Blom R . An Optimal Class of Symmetric Key Generation Systems[J]. Advances in Cryptology-Eurocrypt'84,1984,209:335-338.
[2]溫蜜,陳克非,鄭燕飛,等. 傳感器網(wǎng)絡中一種可靠的對密鑰更新方案[J]. 軟件學報,2007,18(005):1232-1245.
基金項目:物聯(lián)網(wǎng)中無線傳感器網(wǎng)絡安全關鍵技術研究(成都工業(yè)學院校級項目,編號2019ZR025)