(哈爾濱理工大學 計算機科學與技術學院, 哈爾濱 150080)
摘 要:針對現有無線傳感器網絡密鑰管理中計算量過大、存儲空間過多和管理不夠靈活的問題,在分簇結構無線傳感器網絡基礎上,定義了數據在無線傳感器網絡中的通信格式以及在網絡動態管理中所需的管理矩陣,混合了對稱密鑰管理策略中密鑰產生的快捷性和公鑰管理策略的安全性,實現了密鑰的動態更新和網絡的動態密鑰管理。最后分析所提出的策略,對比現有成熟的密鑰管理策略,證明了所提策略具有更好的特性。
關鍵詞:無線傳感器網絡; 傳感器節點; 密鑰管理
中圖分類號:TP393 文獻標志碼:A
文章編號:10013695(2009)031112004
Dynamic mixed private key management strategy of clustering WSN
LI Lanying, HU Lei, JIANG Xiuli
(School of Computer Science Technology, Harbin University of Science Technology, Harbin 150080, China)
Abstract:According to the existing problems in current key management strategy of wireless sensor network——overwhelming computational complexity, multimemory space and inflexible management. Based on the clustering wireless sensor networks, this paper defined the data format in the communication of the wireless sensor networks and management matrix in the network dynamic management, mixed the rapidness which was produced in the symmetric private key management strategy and security of public key management strategy, implemented the dynamic private key management of the network. In the end, this paper analyzed the strategy theoretically. The strategy of this paper is proved to own better characteristics through the comparison with existing welldeveloped private key management strategy.
Key words:wireless sensor network(WSN); sensor node; private key management
近年來,由于擁有廣泛的應用前景,無線傳感器網絡(WSN)得到了迅速發展,廣泛應用于國防軍事、工業控制、環境監測、交通管理等領域。雖然無線傳感器網絡有許多優點,但當傳感器部署在敵對區域或其他可能會遭到惡意攻擊的地帶時,安全問題就顯得極為重要。例如,對方很容易監聽通信,冒充網絡中節點或向其他節點提供虛假信息[1]。為了實現安全通信,對通信內容應該進行加密和認證,因此,如何對密鑰進行管理就成為解決安全問題的關鍵。
在無線傳感器網絡的密鑰管理方案中,目前對密鑰預分配方案[2]研究得較多,但由于該方案在初始階段需要一個大的密鑰池,消耗節點的資源過多,而在分配密鑰過程中的隨機性導致了網絡的密鑰連通性降低,且該方案密鑰一經分配,動態更新比較困難。文獻[3]提出了LEAP協議,在該協議中密鑰的分發需要在簇內進行多輪的數據交換,節點密鑰在分發前需要相互認證。該協議優點是能有效地消除假冒接入點,網絡管理比較容易,但缺點是當無線設備丟失時,為防止非法用戶訪問網絡,網絡中的節點須重新獲取密鑰,在這個過程中該協議對節點資源的消耗較大。文獻[4]提出了動態組密鑰管理方案,節點的密鑰可以動態產生,極大地提高了網絡的安全,但該協議對節點加入和退出時的安全性考慮不足,不利于網絡的動態管理。
針對以上方案中出現的問題,本文不采用預分配的思想,而采用LEAP[3]協議和動態組密鑰管理方案[4]的管理思想,所設計的密鑰管理策略旨在減少密鑰建立過程中數據的傳輸量,降低資源消耗,提高網絡的生存時間,增強網絡動態管理的安全性。由于目前已有的加密方案中的對稱加密方案具有加密速度快、占用資源少的優點,較適合于無線傳感器網絡,但為了增強網絡的安全性,可以考慮采用公鑰系統對無線傳感器網絡進行加密。可是由于公鑰加密復雜,所需運算量和存儲空間都比較大,在傳感器節點自身能源、計算能力、存儲空間有限的情況下,公鑰加密不能直接應用于無線傳感器網絡。因此本文綜合對稱密鑰管理和公鑰管理的優點,針對典型分簇結構的無線傳感器網絡模型,提出一種動態混合密鑰管理策略。
1 分簇無線傳感器網絡結構
由于分簇無線傳感器網絡是現在使用比較廣泛的網絡結構,本文將基于該結構進行密鑰管理。該結構網絡是由三種類型的節點構成,如圖1所示。
在圖1中,基站(base station,BS)的主要功能是數據匯總,對網絡中的傳感器節點發送命令,基站具有無限能量、高計算能力以及充足存儲空間的特點。簇頭節點(cluster head,CH)的功能是將本簇內成員收集到的信息進行簡單的數據融合并發送到基站,同時下達基站對本簇成員的命令;簇頭節點是具有特殊功用的傳感器節點,其能量、計算能力和存儲空間都很有限。簇內節點(cluster member,CM)負責感知周圍環境,將采集到的數據傳送給簇頭節點,屬于傳感器節點。按照分簇無線傳感器網絡的結構,數據傳輸被分為兩層,MCL(CMtoCH layer)和CBL(CHtoBS layer)。MCL即數據在簇內節點與簇頭節點間的傳輸層;CBL是數據在簇頭節點與基站間的傳輸層。
2 基本約定
2.1 通信約定
對于無線傳感器網絡而言,由于其部署的隨機性,要想進行動態管理,則需要保證每個節點在網絡中的惟一性。為此,約定每一個傳感器節點都有惟一的認證身份的id號(基站id號設為1)。為了便于管理,可類似于TCP/IP,建立發送信息的基本格式,使發送的信息應該至少包括功能號、對方id號、自身id號 、加密的數據文件。其中,功能號的主要作用是提示該段信息的功用,如普通信息、公共信息等。假設傳送的是點對點的普通信息時,發送方需填寫自身id與接收方id,接收方接收到信息以后,先查功能號,確定是點對點信息,再確定該信息是否是傳送給本節點的,確認后再確認發送方的id,在密鑰矩陣中查找密鑰,若查出,則進行相應解密,否則拋棄;而若傳輸公共信息,發送方只需填寫自身id,對方id任意,接收方接收到信息后,發現該信息為公共信息,則直接查找自己密鑰矩陣中是否有發送方密鑰,有則解密,否則拋棄。
在本文所提出的密鑰管理策略中,假定數據的傳輸都是采用該種通信格式。
2.2 存儲空間
在本文所提的策略中,基站需要存儲所有節點的位置信息,以及與簇頭節點的通信密鑰,而簇頭節點需要存儲其與本簇內所有節點的通信密鑰和其與基站間的通信密鑰。
由上面的設定可知,基站擁有無限計算能力、存儲空間和能源。設m為網絡最大可以容納的簇的個數,n為在每個簇當中最多能容納的成員個數。基站里需存儲兩個矩陣,一個是m×3的矩陣,該矩陣存儲所有的簇頭節點id,并將相應的簇頭節點id與該簇的編號進行對應,以及存儲與簇頭節點間通信用的密鑰;另一個是m×n的矩陣,該矩陣的m對應于某簇,n則為該簇內的所有節點編號,該矩陣為整個無線傳感器網絡的管理矩陣,整個無線傳感器網絡中的節點都需要在該矩陣中注冊,通過該矩陣可以完成網絡中新節點的加入和舊節點的退出。此外,還需要存儲一個有限域上的本原元素g,該元素的選取需要滿足橢圓曲線本原元素的選取規則。
在每一個傳感器節點里需要有一個n×2的矩陣,該矩陣主要是在該傳感器節點成為簇頭節點時,存儲該簇內節點的id號以及對應的密鑰,此外傳感器節點還需有一部分空間用于存儲簇內節點到簇頭節點的通信密鑰,或簇頭節點到基站的通信密鑰。同時,各節點中需要存儲一個有限域上的本原元素g,該元素的選取需要滿足橢圓曲線本原元素的選取規則。
3 方案設計
3.1 節點注冊
由于整個網絡要能動態管理節點的加入與退出,首先要對網絡中所有節點在基站的管理矩陣中進行注冊,步驟如下:
a)布置無線傳感器網絡,采用已有的分簇算法選舉相應的簇頭節點。
b)簇內節點在簇頭節點進行注冊,同時簇頭節點將自身的id以及本簇所有節點的id號發送給基站進行注冊。
對于基站而言,在節點注冊完成以后,整個網絡中所有節點都可以在基站中查找到,即建立起了管理矩陣。而對于簇頭節點而言,明確了本簇所擁有的成員。
3.2 簇內節點與簇頭節點間的密鑰管理
3.2.1 初始密鑰
在簇頭節點分發密鑰之前,簇內節點與簇頭節點通信需要初始的通信密鑰,因此在無線傳感器網絡布置之前,有兩個密鑰必須存于每一個節點中。設第一個密鑰為k1,該密鑰為密鑰分發前簇內節點的公共通信密鑰;第二個密鑰為k2,用于在密鑰分發前節點間的通信。這兩個密鑰都將在網絡啟動密鑰管理后進行動態更新。
3.2.2 簇內節點與簇頭節點間的密鑰管理
在各簇確定后,各個簇內部開始產生簇內數據通信用密鑰。產生密鑰的基本過程如下:
a)簇頭節點使用公共廣播密鑰向簇內節點廣播消息,該消息是通知本簇內成員開始密鑰分發。
b)簇內節點i接收到命令以后,產生隨機數radomi,并按規定好的信息格式,將隨機數radomi用初始密鑰進行加密,并向簇頭節點發送radomi。
c)簇頭節點接收到簇內節點i發送的隨機數radoni,自動產生一個隨機數chradoni,并用式(1)計算:
keyi = radomichradoni (1)
即對簇內節點i的隨機數radoni和簇頭節點產生的隨機數chRadoni按位進行異或運算,由于是按位運算,所以計算速度很快,在得出運算結果keyi后,將該值存儲在簇頭節點與簇內成員通信用密鑰矩陣里,并采用初始密鑰加密,將keyi發送回簇內的第i個節點。
d)簇內第i個節點接收到簇頭發送的密鑰keyi,將該密鑰存儲在其與簇頭通信的位置上,此時簇內節點到簇頭的通信密鑰獲取完畢。
e)在簇頭節點接收并發送完簇頭節點與簇內節點的通信密鑰后,簇頭節點使用式(2)計算key:
key = key1key2…keyn(2)
該公式將存入密鑰矩陣的所有密鑰按位進行異或運算,運算得到的值key作為公共通信密鑰,并采用公共信道發送。各個簇內節點接收到數據包后,若發現發送方id是本簇簇頭時,則更新本節點的公共通信密鑰為key。
該階段流程如圖2所示。
該階段結束以后,簇頭節點與簇內節點之間通信用密鑰全部分發完畢。
3.3 簇頭節點與基站間的密鑰管理
各個簇的簇頭節點將其所收集到的數據發送到基站進行匯總,簇頭節點與基站間的密鑰管理需要更好地保證其通信的安全性。為了防止傳輸過程中數據被截取,避免密鑰被暴露,可采用公鑰加密,而常用的公鑰加密算法RSA、ELGAMAL、RABIN等往往需要計算的次數很多,消耗存儲空間過多[5]。因此,本文采用公鑰加密中速度較快的橢圓曲線公鑰加密。其密鑰產生的步驟如下:
a)基站向各個簇頭節點發送信息,要求建立密鑰。
b)簇頭節點接收到基站的建立密鑰信息后,產生隨機數CRi,將其存入本節點與基站通信密鑰中,用本原元素g計算gCRi,發送gCRi到基站。
c)基站接收簇頭節點i的gCRi后,將其存入簇頭節點列表中,待接收完畢產生隨機數m,存入該簇頭節點與基站的通信表中,同時也使用本原元素g計算gm,并進行廣播。
d)各個簇頭節點接收到gm,將其存入通信密鑰,密鑰分發完成。
其過程如圖3所示。
至此,各個簇頭節點擁有基站的通信公鑰,基站擁有各個簇頭的通信公鑰,最后的通信密鑰gmCRi采用式(3)產生:
gmCRi= (gm)CRi= (gCRi)m(3)
其中:gmCRi就是最終加密用的密鑰,而第三者只能從公共渠道知道gm和gCRi,而無法得知gmCRi,而從gm和gCRi計算m和CRi,是離散對數問題,是人所共知的困難問題。因此通過橢圓曲線加密,可以提升無線傳感器網絡的安全性。
3.4 密鑰的更新
因為長時間保留密鑰可能導致密鑰的泄露,所以每隔一段時間需要對密鑰進行更新,更新的步驟如下:
a) 在基站設置時間片T,基站每隔時間T后,向所有的簇頭節點發送重新選舉簇頭的命令,并同時產生兩個隨機數,分別將其作為網絡更新過程中公共通信密鑰和節點間的通信密鑰。
b)各個簇頭節點接收到重新選舉簇頭命令后,向簇內成員發送重新選舉簇頭命令,同時將更新過程中的加密密鑰也進行分發。
c)各個簇內部重新選舉簇頭節點,選舉結束后,簇內成員向簇頭節點進行注冊,按圖2、3流程更新密鑰,從而完成整個密鑰系統的更新。
3.5 節點的加入
當有新的節點需要加入網絡,網絡需要確認新的節點是本網絡的合法節點,從而保證新節點加入后網絡的安全性。節點加入的基本步驟如下:
a)新加入節點的id號必須要先存入基站中新加入節點隊列中。
b)新加入節點進入網絡后,向周圍廣播本節點是新加入節點。
c)最近的簇頭節點接收到新加入節點的信息后,向基站發送該新加入節點的id號,請求基站進行核實。
d)基站接收到信息以后,查找是否有該新加入節點id號,若有該節點的id號。則從新加入節點隊列中刪除該id,同時將該id寫入矩陣中相應簇,并對發送信息的節點回復確認信息;若無該id號,則不予響應。
e)簇頭節點接收到回復的確認信息后,在自己的矩陣表中加入新節點所對應的id號,發送要求新節點建立密鑰的命令;如果等待一段時間后沒有回復,則認為該節點為非法節點,不予處理。
f)新加入節點接收到簇頭節點的建立密鑰命令后,按圖2的密鑰產生方式產生的相應通信密鑰。
至此,保證了新加入節點是網絡許可的節點,確保了網絡的動態更新。
3.6 節點的退出
舊的節點能量耗盡時,為了減少網絡存儲節點的密鑰,需要將其刪除,整個過程如下:
a)簇內節點能量即將耗盡,發送能量耗盡信息。
b)簇頭節點接收到能量耗盡信息以后,將該節點信息發送到基站,同時將該節點矩陣列表中的相應id號刪除。
c)基站收到節點能量耗盡的信息以后找到該簇,并刪除該簇下的耗盡能量節點。
完成這三步以后,能量耗盡節點已經在網絡中刪除,該節點以后即使發送數據,其數據也不再被接收,減少了網絡冗余。
4 方案分析
4.1 安全性保證
要確保網絡的安全性,有一點非常重要,即隨機數的產生。在整個網絡中密鑰的產生離不開隨機數,而偽隨機數發生器由于在給定初始值后產生的隨機數是固定的,為了防止敵手通過破譯隨機數產生函數,導致網絡密碼被竊取,因此,在保證性能的前提下,隨機數發生器應盡可能采用真隨機數發生器,使產生的隨機數是不可重現的,從而確保3網絡安全。
在保證了隨機數產生的安全性后,現將本策略的安全性與LEAP協議和動態組密鑰分配協議進行比較。
在LEAP 協議中,收到消息的節點在沒有認證消息來源節點合法性的情況下計算并保存與該節點的點對密鑰,并且給該節點發送回復消息,從而導致節點浪費大量能量用于計算虛假無用的點對密鑰上,并使節點存儲了大量虛假無用的點對密鑰信息 [6]。對于本文所提出的策略,由于采用規定的通信格式,在信息發送到節點的同時,由接收方的id立即判斷出信息的目的地是否正確,之后再用發送方id判定發送方是否被本節點認可,最后再用相應密鑰進行解密。在這個過程中,本文策略與LEAP協議相比,同樣保證了信息傳輸的安全性,并由于在信息接收的同時就進行了相應的判定,減少了節點的存儲空間和計算量,而且本文策略中密鑰是動態更新的,所以密鑰的暴露幾率大大降低,更進一步提高了網絡的安全性。
而在動態組密鑰分配協議中,由于采用隨機數動態產生密鑰,減少了密鑰泄露的可能,提升了網絡的安全性,但該做法在靜態網絡中比較有效;而當網絡中加入新節點時,該協議缺乏對新節點合法性的認證,可能導致敵手趁虛而入。所以在本文策略中添加了管理矩陣和新節點認證的一道程序,從而確保了網絡中的所有節點都是經過許可的合法節點,保證了節點新加入時的網絡安全性。
4.2 性能分析
綜合分析整個方案,在建立密鑰時,傳感器節點的計算量集中在簇內節點密鑰的產生上,因此分析該方案的重點應集中在簇內節點到簇頭節點的密鑰建立上。由于進行分析需使用統一的度量指標,對于所有的協議,發送節點和接收節點都發送和接收相同格式的消息,可以將無線傳感器網絡中傳遞的內容不同的消息數作為度量指標。本文將通過比較已有的協議,用各個過程的消息數對所提出的密鑰分配策略進行復雜性分析,分析結果如表1所示。
其中:d為各簇內節點的平均密度;N為網絡中節點的數目;m所有傳感器節點間建立的配對密鑰數;KL為密鑰長度;L為密鑰鏈長度;NCH為簇頭節點數目;k為與公鑰相關的密鑰長度。
本文所提出策略的密鑰建立前階段主要任務是對節點進行注冊。其中簇內節點向簇頭節點注冊發送的信息數為N-NCH,簇頭節點向基站注冊發送信息數為NCH。所以本文所提策略在密鑰建立階段所需要的信息數為以上二值相加,結果為N。相應地,對于LEAP協議而言,在密鑰建立前需要在節點中進行多輪信息交換,進行節點間的相互認證,這個過程中傳遞的信息數與簇內節點的平均密度d緊密相關,因此其信息數目為N(1+5D)[7]。可以看出,本文策略在密鑰建立階段,通信所需密鑰數N遠小于LEAP協議。
密鑰管理階段包括從要求密鑰分發,到整個網絡中各個節點成功建立密鑰的過程。在本文所提出的管理策略中,簇頭節點向簇內節點廣播發送共NCH條密鑰建立命令,簇內節點接收到命令后,向簇頭節點發送隨機數,該數目為m,簇頭節點接收到這m條信息以后,為各個簇內成員建立密鑰,同時進行分發,該數目也為m,對于簇頭節點而言,還需與基站建立公鑰,因此需要在接收到建立命令后,發送和接收共2NCH條信息。所以整個過程中,共需要信息數為2m+3NCH,因為簇內節點的數目至少是簇頭節點數目的d倍,所以在這個算式中3m占主導地位,可知其復雜性為O(log m)。對于LEAP協議而言,由于在一個區域里節點要進行多輪信息交換,而后還要進行兩輪廣播,其時間復雜性較高。對于動態協議,在網絡中的每簇需要進行三輪信息交換,需要發送3N的信息,其復雜性O(log N)類似于本文策略。
存儲空間的計算指的是傳感器節點和密鑰相關的存儲空間。對于本文提出的密鑰管理策略,為了便于計算,以密鑰存儲空間最多的簇頭節點作為基準,其存儲的與簇內節點相關的密鑰數為d,所以相應的存儲字節數為d×KL。而與基站相關的密鑰,由于采用公鑰系統,需存儲一個本原元素g,其長度為KL,一個與基站通信的公鑰gm,其長度為k,一個產生公鑰時的隨機數CRi,長度為KL,簇頭節點存儲空間數為上面各數相加,即為(d+2)KL+k,則整個網絡節點的存儲空間數為N×((d+2)KL+k)。對于LEAP協議而言,每個節點需要為本簇內所有其他節點存儲三個密鑰,一個自身的密鑰、一個組密鑰以及一個有L個值的密鑰鏈,所有這些密鑰長度都為KL,存儲空間的總和為N×((3d+2+L)KL)。因此本文所提出的策略與LEAP協議相比有更低存儲空間需求,但是與動態密鑰管理協議比較,本文策略的存儲空間與網絡的規模相關,當網絡超過一定規模時,本文策略存儲空間將略小于動態密鑰管理協議。舉例說明:若一個無線傳感器網絡分為兩層,在動態密鑰管理協議中,每層的節點數動態產生,每層最少需要的節點數為logN,此時為log2N。例如,當網絡具有以下屬性時d=20,N=2 000,m=20,KL=10,k=14,該策略和動態密鑰管理協議有接近的密鑰存儲空間,都為468 000。因此可以得出結論,當網絡規模小于2 000時,動態密鑰管理協議的存儲空間占優,超過2 000,本文所提出策略的存儲空間優勢逐步擴大,其策略所使用的是最大存儲空間,所以在同一時刻實際存儲空間應該更小些。
5 結束語
在傳感器網絡中,采用公鑰和對稱密鑰混合的加密方案,不僅可以充分利用公鑰系統的加密安全性,同時也可以利用對稱加密系統加密速度快的特點綜合兩種加密算法,可以揚長避短,減少所需密鑰的數量,在降低存儲器資源的同時,提高網絡的安全性,動態的密鑰管理更好地提升了該加密策略的適應面。而本文所提出的策略基于分簇無線傳感器網絡結構,該結構是當前無線傳感器網絡發展的一個大趨勢,具有較強的適用性,同時該協議的擴展性良好,當增加網絡層數時,其中的對稱密鑰系統可相應地進行擴展。但本文提出的密鑰管理策略的不足是基站在整個管理過程中作用較大,因此如何減少對基站的依賴將是下一步要研究的重點。