摘要:根據(jù)哈希函數(shù)鏈的單向性,設(shè)計(jì)出一種基于哈希函數(shù)鏈的密鑰分發(fā)機(jī)制,通過將哈希鏈與對稱加密算法和非對稱加密算法的結(jié)合應(yīng)用,為每個(gè)用戶組的成員分發(fā)特定的服務(wù)密鑰,實(shí)現(xiàn)了密鑰分發(fā)的實(shí)時(shí)性、動(dòng)態(tài)性和安全性。
關(guān)鍵詞:組群通信;密鑰管理;哈希函數(shù)
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)33-1353-02
A Key Distribution of Group Communication Based on Hash Chains
PANG Guang-qian
(Beijing Jiaotong University,Beijing 100044,China)
Abstract: Based on hash chains, a real time key distribution of group communication is designed.In this scheme with the hash chain the special application key to the user in the group is provided,and sending the keys online and ensure its safety.
Key words: group communication;key management;hash
1 前言
組群通信作為計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)的一個(gè)重要應(yīng)用,是一種高效的信息交互模式。與單點(diǎn)通信不同,組群通信的基礎(chǔ)是建立在服務(wù)器和一個(gè)用戶組之間的關(guān)系之上,在組里的用戶不能單獨(dú)和信息源建立獨(dú)自的安全通信機(jī)制。所以組群通信既要保證信息的安全性,又要限制非組成員對信息內(nèi)容的訪問。解決這一問題的通常方法是在組成員間使用非組成員不知道的密鑰對信息進(jìn)行加密,這就產(chǎn)生了組群通信密鑰管理問題。
目前存在的組群通信密鑰管理方法有很多種,但大多數(shù)方案都未曾對群組通信的動(dòng)態(tài)性特點(diǎn)予以充分的估計(jì),無法實(shí)現(xiàn)對組群信息源和組內(nèi)用戶進(jìn)行有效控制,也就是說無法防止非法用戶和非法組群信息源。并且大多數(shù)方案均采用離線方式分發(fā)密鑰,這一模式極大地限制了系統(tǒng)的在線安全性能和效率。針對于目前組群通信安全體系中的不足,本文根據(jù)哈希函數(shù)的單向性,提出了一種基于哈希函數(shù)鏈的密鑰實(shí)時(shí)分發(fā)機(jī)制,通過與對稱性加密算法和非對稱性加密算法的結(jié)合應(yīng)用,為每個(gè)用戶組的成員分發(fā)特定的服務(wù)密鑰,實(shí)現(xiàn)了密鑰分發(fā)的在線性和安全性。
2 哈希算法與哈希函數(shù)鏈
哈希(Hash)算法是把任意長度的輸入數(shù)據(jù)經(jīng)過算法壓縮,輸出一個(gè)尺寸小了很多的固定長度的數(shù)據(jù),即哈希值。哈希值也稱為輸入數(shù)據(jù)的數(shù)字指紋(Digital Fingerprint)或消息摘要(Message Digest)等。Hash函數(shù)是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù),Hash函數(shù)的數(shù)學(xué)表述為:h = H(M) ,其中H( )為單向散列函數(shù),為任意長度明文,h為固定長度散列值。Hash函數(shù)具備以下的性質(zhì)
1) 給定輸入數(shù)據(jù),很容易計(jì)算出它的哈希值;
2) 反過來,給定哈希值,倒推出輸入數(shù)據(jù)則很難,計(jì)算上不可行。這就是哈希函數(shù)的單向性,在技術(shù)上稱為抗原像攻擊性;
3) 給定哈希值,想要找出能夠產(chǎn)生同樣的哈希值的兩個(gè)不同的輸入數(shù)據(jù)很難,計(jì)算上不可行,在技術(shù)上稱為抗碰撞攻擊性;
4) 哈希值不表達(dá)任何關(guān)于輸入數(shù)據(jù)的信息。
哈希函數(shù)鏈?zhǔn)前催f歸的形式產(chǎn)生的,首先根據(jù)需要選擇參數(shù)X和哈希函數(shù)鏈的長度n。哈希鏈的第一個(gè)值就是X本身,哈希鏈第二個(gè)值為H(X),第三個(gè)值為H(H(X)),……依此類推,哈希鏈的第n個(gè)值為對第n-1個(gè)哈希鏈的值進(jìn)行一次哈希運(yùn)算,遞歸形式的定義可以表示如下:
根據(jù)哈希函數(shù)的定義和單向性可知,對于H1(X),我們不能由H1(X)反向求出X的值,并且根據(jù)X找到X',使得H(X)=H(X')很難。對于與任意的i(i 3 基于哈希函數(shù)鏈的組群通信實(shí)時(shí)密鑰分發(fā) 3.1 密鑰分發(fā)系統(tǒng)模型 在圖1所示的模型中,密鑰服務(wù)器根據(jù)應(yīng)用服務(wù)器的不同服務(wù),進(jìn)行有針對性的密鑰分發(fā)。首先在應(yīng)用服務(wù)器開始某項(xiàng)服務(wù)之前,準(zhǔn)備申請?jiān)擁?xiàng)服務(wù)的用戶向密鑰服務(wù)器進(jìn)行注冊,成為服務(wù)器的注冊組成員,注冊完成后由密鑰服務(wù)器根據(jù)當(dāng)前服務(wù)的進(jìn)度向用戶發(fā)送當(dāng)前通信的密鑰,從而保證密鑰的實(shí)時(shí)性。應(yīng)用服務(wù)器的服務(wù)開始后,注冊組內(nèi)的成員可以直接向密鑰服務(wù)器發(fā)送申請信息申請?jiān)擁?xiàng)服務(wù),密鑰服務(wù)器接收到申請信息后經(jīng)過確認(rèn)用戶的合法性后發(fā)送服務(wù)密鑰給用戶,此時(shí)應(yīng)用服務(wù)器和用戶之間就可以通過此密鑰進(jìn)行通信。當(dāng)用戶申請退出該服務(wù)時(shí),只需向密鑰服務(wù)器發(fā)送退出服務(wù)的申請信息即可,經(jīng)密鑰服務(wù)器確認(rèn)后在應(yīng)用服務(wù)器中將該項(xiàng)服務(wù)中此用戶的信息刪除。 3.2 方案的描述 密鑰服務(wù)器主要用于產(chǎn)生哈希函數(shù)鏈,將兩個(gè)哈希函數(shù)鏈產(chǎn)生的值分別作為組群通信時(shí)的密鑰和處理密鑰更新時(shí)的認(rèn)證。在整個(gè)方案中還用到了兩種算法:對稱性加密算法和非對稱性加密算法。對稱性加密算法主要用來在密鑰分發(fā)時(shí)對信息進(jìn)行加密;非對稱加密算法主要用在處理用戶的申請加入和退出時(shí),實(shí)現(xiàn)對用戶身份的認(rèn)證。在客戶端,每個(gè)用戶都有與密鑰服務(wù)器相同的對稱性加密算法和非對稱性加密算法。密鑰服務(wù)器與所有用戶都連接于普通的信道,任何兩者之間不存在秘密通道。 3.2.1 系統(tǒng)初始化 1) 服務(wù)器初始化 首先密鑰服務(wù)器選擇隨機(jī)數(shù)R和S,根據(jù)服務(wù)的次數(shù)選取合適的n分別生成哈希鏈: H0(R)、H1(R)、H2(R) …………………Hi(R)…………… Hn-1(R)、Hn(R) H0(S)、H1(S)、 H2(S) …………………Hi(S)…………… Hn-1(S)、Hn(S) 這兩個(gè)哈希鏈滿足:H0(X)= X,Hm(X)=H( Hm-1(X)),0 其次服務(wù)器根據(jù)自己的非對稱加密算法,產(chǎn)生一對密鑰(a,e),a為私鑰,e為公鑰并將公鑰e廣播。 2) 用戶初始化 當(dāng)用戶Ci需要與服務(wù)器建立連接時(shí),根據(jù)非對稱算法產(chǎn)生屬于自己的密鑰對(bi,ci),bi為私鑰,ci為公鑰。 3.2.2 用戶申請注冊 用戶用密鑰服務(wù)器廣播的公鑰e加密自己的身份信息以及申請注冊信息,并將加密后的信息發(fā)送到密鑰服務(wù)器。密鑰服務(wù)器利用自己的私鑰a將收到的信息解密,獲得用戶的申請注冊信息,然后再用用戶的公鑰發(fā)送申請成功信息,至此用戶申請注冊完畢。此過程是每一個(gè)要在這個(gè)系統(tǒng)中進(jìn)行通信的用戶必須進(jìn)行的過程。 3.2.3 密鑰的分發(fā) 在此項(xiàng)服務(wù)中,在應(yīng)用服務(wù)器第一次開始服務(wù)時(shí),用戶Ci用密鑰服務(wù)器廣播的公鑰e加密自己的身份信息以及申請服務(wù)信息RI1,得到加密的信息I1,并且將信息I1發(fā)送到密鑰服務(wù)器中。密鑰服務(wù)器利用自己的私鑰a將收到的信息I1解密,獲得申請服務(wù)信息RI1。密鑰服務(wù)器根據(jù)申請信息,用用戶Ci的公鑰ci加密自己的身份信息DR和初始會(huì)話密鑰Hn(R)。得到加密信息K并發(fā)送給用戶Ci。用戶得到信息K時(shí),用自己的私鑰bi解密,獲得此次應(yīng)用服務(wù)的密鑰Hn(R)。 在第i(i>1)次服務(wù)時(shí),密鑰服務(wù)器使用Hn-i+2(R)作為對稱加密密鑰加密新的密鑰Hn-i+1(R),生成K。然后用Hn-i+2(S)作為密鑰計(jì)算(DR,K)的認(rèn)證碼得到ACi1,使用Hn-i+2(R)作為密鑰計(jì)算(DR,K,ACi1)的認(rèn)證碼得到ACi2,密鑰服務(wù)器將(DR,K,ACi1,ACi2)發(fā)給用戶Ci,用戶Ci收到(DR,K,ACi1,ACi2)后,從數(shù)據(jù)庫中取出密鑰Hn-i+2(R),利用Hn-i+2(R)作為密鑰驗(yàn)證(DR,K, ACi1)的消息認(rèn)證碼ACi2是否正確;利用Hn-i+2(R)作為密鑰,解密計(jì)算出Hn-i+1(R),然后比較H(Hn-i+1(R))與Hn-i+2(R)是否相同。如果消息認(rèn)證碼ACi2正確而且H(Hn-i+1(R))與Hn-i+2(R)相同則確認(rèn)服務(wù)確實(shí)來源于密鑰服務(wù)器,并且用Hn-i+1(R)更新數(shù)據(jù)庫中應(yīng)用服務(wù)器的密鑰Hn-i+2(R)。否則拒絕處理該次的密鑰更新。 3.2.4 用戶隨機(jī)加入 當(dāng)有隨機(jī)成員Ci加入時(shí),應(yīng)用服務(wù)器處于第j次服務(wù),Ci首先要向密鑰服務(wù)器注冊。注冊后,用戶Ci用密鑰服務(wù)器廣播的公鑰e加密自己的身份信息以及申請服務(wù)信息RIj,得到加密的信息Ij,并且將信息Ij發(fā)送到密鑰服務(wù)器中。密鑰服務(wù)器利用自己的私鑰a將其解密,得到申請服務(wù)信息RIj。密鑰服務(wù)器根據(jù)申請信息,用用戶Ci的公鑰cj加密自己的身份信息DR和此時(shí)的會(huì)話密鑰Hn-k+1(R)。得到加密信息K。用戶得到信息K時(shí),用自己的私鑰bi解密,得到會(huì)話密鑰Hn-k+1(R)。此次服務(wù)的密鑰就為Hn-k+1(R)。從而使Ci進(jìn)入正常的服務(wù)過程中。 當(dāng)已注冊或中斷的用戶加入時(shí),由于用戶已經(jīng)進(jìn)行了注冊,故不須注冊,只需要進(jìn)行b中注冊服務(wù)后面的步驟就可以了。 3.2.5 用戶退出 當(dāng)用戶C申請退出該項(xiàng)服務(wù)時(shí),用戶C用密鑰服務(wù)器的公鑰e加密自己的身份信息以及申請退出信息EX,得到加密的信息I,并發(fā)送到密鑰服務(wù)器中。密鑰服務(wù)器利用自己的私鑰a將得到的信息I解密,得到申請退出信息EX。密鑰服務(wù)器用用戶C的公鑰發(fā)送申請退出信息,并且在該項(xiàng)服務(wù)的用戶服務(wù)名中將該用戶刪除,至此用戶申請退出完畢。當(dāng)系統(tǒng)這次短期服務(wù)結(jié)束后,再次進(jìn)行服務(wù)時(shí),該用戶如果不申請的話,密鑰服務(wù)器就不會(huì)將密鑰分給該用戶。用戶只有再次發(fā)送申請服務(wù)信息,才能再次開通服務(wù)。 4 性能分析 本方案的各種性能主要依賴于密鑰鏈的計(jì)算和長度,密鑰鏈由哈希函數(shù)生成。系統(tǒng)在服務(wù)開始之前就根據(jù)需要通過隨機(jī)產(chǎn)生的隨機(jī)數(shù)生成兩個(gè)密鑰鏈,分別用于密鑰的分發(fā)和信息的驗(yàn)證。當(dāng)有新成員加入時(shí),首先進(jìn)行申請,用戶獲得服務(wù)的正式密鑰后,就采用對稱加密算法結(jié)合系統(tǒng)分發(fā)的密鑰對信息進(jìn)行解密和驗(yàn)證。相對于非對稱加密算法用戶和服務(wù)器的計(jì)算量都大量減少。對組內(nèi)的成員發(fā)送信息時(shí),只需要使用系統(tǒng)給該組內(nèi)成員提供的密鑰對信息進(jìn)行加密即可,不需要針對每個(gè)成員設(shè)定單獨(dú)的密鑰,從而提高了系統(tǒng)的工作效率。 本方案將哈希函數(shù)鏈與非對稱性算法相結(jié)合,通過用戶和服務(wù)器之間的多次握手建立用戶對服務(wù)器的依賴關(guān)系,實(shí)現(xiàn)密鑰的在線分發(fā)。在系統(tǒng)對密鑰進(jìn)行更新過程中,系統(tǒng)首先用當(dāng)前的密鑰對新密鑰進(jìn)行加密,然后使用當(dāng)前用于簽名和認(rèn)證的密鑰鏈中的密鑰分別對加密后的密鑰進(jìn)行簽名和認(rèn)證。這樣使得用戶在收到密鑰更新信息時(shí)都對發(fā)來的密鑰更新信息進(jìn)行認(rèn)證檢測,錯(cuò)誤的或經(jīng)過篡改的更新信息不可能使驗(yàn)證碼正確。從而保證了在保密狀態(tài)下的通信使攻擊者不可能從不斷變化的通信中獲得會(huì)話的密鑰。 對于已經(jīng)退出服務(wù)的用戶和非法的用戶,即使得到所有已經(jīng)用過的密鑰也不能猜測出下次系統(tǒng)分發(fā)的密鑰。因?yàn)槭褂眠^的密鑰來源于一個(gè)哈希函數(shù)鏈,并且分發(fā)的時(shí)候是從哈希函數(shù)鏈的最后一個(gè)開始的,根據(jù)前面介紹的哈希函數(shù)鏈的單向性,攻擊者不可能由當(dāng)前密鑰計(jì)算出下一個(gè)密鑰,從而使得非授權(quán)的用戶不能從即得的任何信息得到下一次服務(wù)的密鑰,從而保證了密鑰管理的前向安全性。 5 結(jié)束語 根據(jù)哈希函數(shù)的單向性,通過兩次利用哈希函數(shù)鏈,實(shí)現(xiàn)了信息的加密、認(rèn)證和簽名功能,同時(shí)保證了攻擊者即使獲得了以前的所有密鑰也不能推斷更新后的密鑰。當(dāng)通信雙方發(fā)生爭執(zhí)的時(shí)候,雙方分別向仲裁者提供各自信息后,通過分析可以推出是哪一方作弊,從而保護(hù)用戶的合法權(quán)利。該方案滿足組群通信密鑰分發(fā)時(shí)的安全性、在線性、實(shí)時(shí)性需要,適用于通信系統(tǒng)中由服務(wù)器進(jìn)行密鑰管理的短期的具有安全需求的在線服務(wù)。 參考文獻(xiàn): [1] 王巍.多播安全中群組密鑰管理方案的研究與設(shè)計(jì)[D].西安電子科技大學(xué),2005:8-12. [3] 吳松,等.安全群組通信系統(tǒng)中的密鑰分配機(jī)制[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版,2006(S1):26-29. [4] 王巍,馬建峰,楊世平,等.動(dòng)態(tài)對等群組中高效安全的群組密鑰管理方案[J].吉林大學(xué)學(xué)報(bào),2008,38(1):131-136. [5] 郎為民,譚珂科,靳焰.基于單向密鑰鏈的傳感器網(wǎng)絡(luò)認(rèn)證方案[J].解放軍理工大學(xué)學(xué)報(bào),2005:12-13. 注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。”