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