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