魏煜皓 魏雪峰
摘 要:密鑰安全和節(jié)點能量受限是無線傳感器網(wǎng)絡(luò)中密鑰管理要考慮的問題。為有效改善節(jié)點密鑰存儲開銷和通信能耗開銷,通過結(jié)合圓錐曲線密碼和單項散列函數(shù),給出一種雙簇頭無線傳感器網(wǎng)絡(luò)密鑰管理方案。該方案中主簇頭節(jié)點負(fù)責(zé)安全收集和簇內(nèi)節(jié)點的數(shù)據(jù)傳輸,副簇頭節(jié)點則負(fù)責(zé)簇內(nèi)密鑰管理工作。性能分析結(jié)果表明:該方案能夠保證節(jié)點的高連同率和強抗捕獲性,較低的存儲開銷和通信能耗開銷,以及良好的可擴展性,可在實際的網(wǎng)絡(luò)環(huán)境中廣泛應(yīng)用。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);圓錐曲線密碼;密鑰管理;雙簇頭
中圖分類號:TP212.9;TN918.82 文獻標(biāo)識碼:A 文章編號:2096-4706(2019)04-0076-03
Exploration of a Key Management Scheme for Double Cluster Head
Wireless Sensor Networks
WEI Yuhao1,WEI Xuefeng2
(1.Zhumadian Senior Middle School of Henan,Zhumadian 463000,China;
2.School of Information Engineering,Huanghuai University,Zhumadian 463000,China)
Abstract:The security of key and the limited energy of nodes should be considered in key management of wireless sensor networks simultaneity. In order to improve the consumption of key storage and communication energy,a key management scheme of dual cluster heads for wireless sensor networks was proposed by combining conic curve cryptography and hash functions. The main cluster heads were responsible for safely collecting and transmitting the data information,and the assistant cluster heads take charge of the key management of the nodes. The performance analysis results show that the scheme can ensure the node’s high rate of integration and strong anti-capture,low storage and communication energy consumption,and good scalability,and can be widely used in the actual network environment.
Keywords:wireless sensor network;conic curve cryptography;key management;dual cluster heads
0 引 言
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Networks,WSN)是一種分布式傳感網(wǎng)絡(luò),它是由一到數(shù)個無線數(shù)據(jù)接收器和大量傳感器節(jié)點組成的網(wǎng)絡(luò)系統(tǒng),各組件之間的通信采用無線通信方式,跟互聯(lián)網(wǎng)進行有線或無線方式的連接。每個傳感器連續(xù)傳輸傳感器的讀取值,并將讀取值傳輸?shù)綗o線數(shù)據(jù)收集器進行進一步處理。因此,大量的數(shù)據(jù)將同時在無線傳感網(wǎng)絡(luò)中傳輸,導(dǎo)致網(wǎng)絡(luò)擁塞和傳感器消耗大量的電力,無線傳感網(wǎng)絡(luò)中的無線傳感,會造成數(shù)據(jù)安全漏洞,進而減損整個網(wǎng)絡(luò)的使用時效。為了克服這個問題,本文在無線傳感器網(wǎng)絡(luò)中基于圓錐曲線密碼算法,采用雙簇頭的分簇拓?fù)浣Y(jié)構(gòu)形式,主簇頭是負(fù)責(zé)安全收集及傳輸簇內(nèi)節(jié)點采集的數(shù)據(jù),而副簇頭則對簇內(nèi)節(jié)點的密鑰進行有效管理,可以降低網(wǎng)絡(luò)能耗,提高整個網(wǎng)絡(luò)的使用時效。因此,本文通過采用雙簇頭結(jié)構(gòu),結(jié)合圓錐曲線密碼和單向散列函數(shù),提出一種雙簇頭無線傳感器網(wǎng)絡(luò)密鑰管理方案。該方案有效實現(xiàn)了密鑰的生成與分發(fā)、密鑰更新和回收以及節(jié)點連通率和抗捕獲性等性能,進而實現(xiàn)密鑰安全與均衡能耗相結(jié)合的目標(biāo),可較好的用于無線傳感器網(wǎng)絡(luò)中。
1 密鑰管理方案
1.1 數(shù)據(jù)安全技術(shù)分析
針對數(shù)據(jù)傳遞方法,存在以下幾個安全漏洞:
若是數(shù)據(jù)以明文的形式傳遞,攻擊者可以很容易就竊聽到傳遞中的數(shù)據(jù),甚至利用Man-in-the-MiddleAttack攻擊竄改傳遞中的資料。在無線感測網(wǎng)絡(luò)下,加/解密方法會導(dǎo)致:
(1)加/解密會消耗額外的電能,導(dǎo)致單一傳感器或整個傳感器網(wǎng)絡(luò)的使用時間變短。
(2)使用加/解密的雙方都要存有一把或一把以上的加/解密密鑰,這使得每一個傳感器都必須有夠大的空間來儲存這些密鑰。但由于傳感器硬件的限制,有足夠大的儲存空間來儲存數(shù)以千萬計的密鑰是很不容易實現(xiàn)的。即使可以增加硬件上的內(nèi)存,越大的內(nèi)存代表需要更多的電能來運作,這樣也造成單一傳感器或整個傳感器網(wǎng)絡(luò)的使用時效變短。
(3)若是整個無線傳感器網(wǎng)絡(luò)共同使用一把金鑰來做資料加/解密,攻擊者就可以一邊偵測傳感器的讀值,然后記錄它傳出來的加密讀值,由于共同使用一把密鑰,相同的傳感器讀值會得到相同對應(yīng)的加密讀值,所以,攻擊者只需去記錄所有的傳感器讀值及加密讀值的配對,就可以在不知道密鑰及不解密的情形得知某一個傳感器送出什么樣的讀值。這導(dǎo)致數(shù)據(jù)沒有隱私性。
若是數(shù)據(jù)以密文的形式傳遞,雖然攻擊者無法解密得出傳感器的讀值,但攻擊者可以在正常傳感器的附近去布建擁有一樣傳感器的惡意傳感器,通過這一方法攻擊者便可以知道正常傳感器的讀值及相對應(yīng)的密文,在記錄一段時間后,攻擊者就可以在不解開密文的情形下,憑借著比對密文,就可以得知傳感器的讀值。一直不斷的更新加/解密密鑰可以解決這個問題,但這個方法會導(dǎo)致以下兩個方面的問題:
(1)一直不斷的更新加/解密密鑰導(dǎo)致傳感器需要更多的儲存空間,更多的儲存空間導(dǎo)致消耗更多的電源。
(2)由于加/解密密鑰必須一直更新,因此,如何做好密鑰更新在無線傳感器網(wǎng)絡(luò)中是一大問題。
1.2 初始化參數(shù)
(1)在有限域GF(p)上構(gòu)造安全圓錐曲線C,其中p為大素數(shù),選取C上一點Q作為基點,其階為大素數(shù)q;
(2)基于圓錐曲線密碼算法,隨機的選取xij∈GF(p),構(gòu)造m×n的私鑰種子矩陣XPR,其中1≤i≤m,1≤j≤n,;
(3)根據(jù)私鑰種子矩陣XPR生成對應(yīng)的公鑰種子矩陣XPK,其中yij=xijQ,1≤i≤m,1≤j≤n;
(4)選取兩個單向散列函數(shù),H1:{0,1}*→{0,1}l×n,其中;H2:{0,1}*→{0,1}n;
(5)基站存儲系統(tǒng)參數(shù)(C,Q,p,q,H1,H2,XPR,XPK),并利用參數(shù)(C,Q,p,q,H2)初始化節(jié)點;
(6)為每個初始化節(jié)點分配一個唯一的ID標(biāo)識,ID∈{0,1}*,創(chuàng)建一個ID鏈表以存儲所有節(jié)點的ID信息,基于節(jié)點信息生成節(jié)點種子密鑰對。
1.3 生成密鑰對
(1)首先A通過GPS模塊收集自身位置信息LA及當(dāng)前時間TA,然后生成密鑰參數(shù)KPA={TPA‖LA‖TA},其中TPA是A的類型標(biāo)識,包括主簇頭、副簇頭、Sink節(jié)點和普通節(jié)點;
(2)計算密鑰參數(shù)散列值H2(KPA)=kpA1…kpAi…kpAn,其中kpAi是H2(KPA)的第i比特;
(3)根據(jù)A的公私鑰種子對(SeedXA,SeedYA),計算A的私鑰和公鑰,其中kpAi∈H2(KPA),,,并保存其自身公私鑰對(PRA,PKA)。
1.4 節(jié)點加/解密
假設(shè)普通節(jié)點A需要與主簇頭MCH進行安全通信,發(fā)送信息為MS,按圓錐曲線密碼體制進行安全通信,具體步驟如下:
(1)A將信息MS編碼成圓錐曲線C上一個明文點P,然后計算H1(IDMCH‖IDA)=h;
(2)A將明文點P加密成圓錐曲線C上加密點C= P+h·PKMCH,并發(fā)送給MCH;
(3)MCH解密A發(fā)送的消息;
(4)MCH解碼點P得到MS,并向A發(fā)送消息收到通知。
1.5 建簇與節(jié)點注冊
網(wǎng)絡(luò)建簇主要由副簇頭ACH負(fù)責(zé)協(xié)調(diào)完成簇的建立,具體步驟如下:
(1)ACH首先廣播消息PublicACH-1={TK1,IDACH,PKACH,T1},其中TK1是ACH的聲明信息,IDACH為ACH的身份標(biāo)識,PKACH為ACH的公鑰,T1表示當(dāng)前時刻;
(2)A比較接收到的廣播消息強度,選擇響應(yīng)消息強度最大的副簇頭部節(jié)點,并發(fā)送請求加入此簇的消息。RequestA=PKACH(TK2‖TPA‖IDA‖PKA‖STA‖T2);
(3)ACH收到A的入簇申請后,首先要檢判斷是否滿足入簇條件T2-T1<ΔT,其中ΔT是ACH可以接受的延時時長;
(4)ACH收到Sink節(jié)點申請成為主簇頭的消息后,即向基站發(fā)送驗證申請RequestACH-1=PKBS(TK3‖IDACH‖PKACH‖IDACH‖PKMCH‖T3);
(5)基站解密ACH發(fā)送的驗證申請,并在簇頭鏈表中找到TK3中簇對應(yīng)的預(yù)分配主副簇頭ID;
(6)ACH解密基站發(fā)信息后,先驗證基站的ID和TK4,若驗證通過,則在簇內(nèi)廣播信息PublicACH-2={TK5,IDMCH,PKMCH,T5}。
1.6 新節(jié)點加入/舊節(jié)點退出
網(wǎng)絡(luò)中如果靠近基站的簇內(nèi)節(jié)點,轉(zhuǎn)發(fā)數(shù)據(jù)量較多,容易造成節(jié)點能量消耗過快甚至節(jié)點死亡,則節(jié)點將退出網(wǎng)絡(luò)。因此基站BS不時地選擇在網(wǎng)絡(luò)中的這些簇中添加新的節(jié)點,以保持網(wǎng)絡(luò)的正常運行。具體步驟如下:
(1)假設(shè)需要向網(wǎng)絡(luò)部署一個新的節(jié)點B。在部署之前,BS向新節(jié)點分配一個唯一的節(jié)點標(biāo)識IDB,然后初始化節(jié)點系統(tǒng)的相應(yīng)參數(shù),即公共密鑰和私鑰的種子對(PRB,PKB),節(jié)點的驗證信息TKB和簇的副簇頭存儲在節(jié)點中。部署后,節(jié)點首先生成自身的公私密鑰對(PRB,PKB),等待簇ACH檢測,ACH發(fā)現(xiàn)B后即向其發(fā)送HelloACH=(TK13,IDACH,PKACH,T13);
(2)B收到ACH發(fā)送的HelloACH信息后,先檢驗IDACH的真實性,隨后B加密自身節(jié)點信息向ACH發(fā)送入簇申請RequestB=PKACH(TK14‖TPB‖IDB‖PKB‖STB‖T14);
(3)ACH收到B的入簇申請信息RequestB后,即向BS發(fā)送驗證B的申請消息RequestACH-2=PKBS(TK15‖IDACH‖ IDB‖TKB‖TB‖T15);
(4)BS解密RequestACH-2并驗證ACH和B的身份標(biāo)識IDACH和IDB及信息TKB。若驗證都通過,則BS更新節(jié)點注冊信息鏈表,并回復(fù)ACH驗證結(jié)果ResultBS-3=PKACH(TK16‖IDBS‖T16);
(5)ACH解密驗證結(jié)果后,添加B節(jié)點注冊信息鏈表,記錄相應(yīng)的節(jié)點信息,發(fā)送歡迎入簇信息WelcomeACH=PKB(TK17‖IDACH‖T17),啟動節(jié)點密鑰更新。然后ACH對更新后的集群節(jié)點注冊信息鏈表進行加密,發(fā)送到主簇頭和基站,完成新節(jié)點的添加。如果新節(jié)點是接收Sink節(jié)點,則更新簇頭;
(6)當(dāng)網(wǎng)絡(luò)工作一段時間后,某些工作頻率較高的節(jié)點可能耗盡能量或低于某個閾值或被捕獲,這些節(jié)點將被強制退出。如果是普通節(jié)點,ACH可將節(jié)點加入黑名單,刪除節(jié)點注冊信息鏈列表中的相關(guān)信息,在簇中進行廣播。簇中的節(jié)點密鑰更新已啟動,集群中的其他節(jié)點不再與其通信。如果MCH、ACH直接將其添加到黑名單中,那么簇內(nèi)的普通節(jié)點將不再與之通信,并啟動集群頭更新。如果BS檢測到ACH異常,則直接向該簇廣播廢除ACH通知,由MCH發(fā)起簇內(nèi)簇頭更新。
2 性能分析
為驗證所給DCHC3密鑰管理方案的優(yōu)越性,對存儲開銷和能耗開銷進行性能分析。
2.1 存儲開銷
假設(shè)每個簇中至多有M個節(jié)點,所給DCHC3密鑰管理方案在密鑰對生成前,大部分計算工作是基站PKG完成,每個階段需要的密鑰信息存儲量都比較小。簇頭將存儲所有簇內(nèi)節(jié)點的ID和公鑰,而其它節(jié)點只需存儲其自身的ID、公私密鑰對和種子密鑰對,則密鑰信息的總數(shù)就會提前存儲R=2(M-1)+2·3M=8M-2。每個節(jié)點平均存儲的密鑰信息數(shù)為8,不會隨節(jié)點數(shù)增加或減少。所給方案在密鑰信息存儲開銷上具有優(yōu)勢。
2.2 通信能耗
由于更新節(jié)點密鑰所產(chǎn)生的通信消耗主要和網(wǎng)絡(luò)規(guī)模相關(guān)。隨著網(wǎng)絡(luò)規(guī)模增大,對于所給DCHC3密鑰管理方案的通信能耗,經(jīng)過驗證,在更新密鑰或新節(jié)點加入時,負(fù)責(zé)發(fā)布密鑰更新通知的主要是通過副簇頭,所以不論網(wǎng)絡(luò)規(guī)模如何變化,不會增加其它額外的通信開銷,從而節(jié)省了節(jié)點的能量消耗。
3 結(jié) 論
由于無線傳感器網(wǎng)絡(luò)沒有固定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),而且每個傳感器都可以任意部署,因此,無線傳感器網(wǎng)絡(luò)容易構(gòu)建,但很難進行數(shù)據(jù)傳輸。目前的資料聚集方法有著許多的安全漏洞,再加上無線傳感器的硬件限制,使得資料聚集方法很難同時滿足數(shù)據(jù)的安全性及隱私性。本研究所給DCHC3密鑰管理方案的預(yù)分配密鑰種子對始終保持不變,由于采用身份加密,且密鑰生成大多是在基站中進行,在通信前只向副簇頭發(fā)送通信請求,副簇頭統(tǒng)一協(xié)調(diào),相互分配節(jié)點標(biāo)識和公鑰,降低了節(jié)點的存儲開銷,減少了通信能耗。同時,副簇頭具有節(jié)點監(jiān)測的功能,它可以實時獲得節(jié)點的能量狀態(tài),更好地更新簇頭,使簇內(nèi)網(wǎng)絡(luò)更加穩(wěn)定、安全,運行時間更長。
參考文獻:
[1] 周大偉,魏國珩,張煥國.基于無證書公鑰體制的層簇式WSN密鑰管理方案 [J].北京工業(yè)大學(xué)學(xué)報,2016,42(5):707-712.
[2] 危蓉,趙德正.基于身份的無線傳感器網(wǎng)絡(luò)層簇式密鑰管理方案 [J].武漢大學(xué)學(xué)報(工學(xué)版),2015,48(4):580-583+590.
[3] 陳昊,黃海平.基于節(jié)點間信任評估算法的無線傳感器網(wǎng)絡(luò)密鑰管理方案 [J].計算機科學(xué),2015,42(S1):395-398.
[4] 李蘭英,易春煥,孫建達,等.基于單位的無線傳感器網(wǎng)絡(luò)密鑰管理方案 [J].計算機工程與應(yīng)用.2015(2):94-98.
作者簡介:魏雪峰(1973-),男,漢族,河南遂平人,教授,碩士,研究方向:智能計算。