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