專利名稱:基于身份的認證群組密鑰管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,具體地說,是一種基于身份的認證群組密鑰共享和管理方法,可用于在協(xié)同和分布式網(wǎng)絡(luò)應(yīng)用中進行安全可靠的群通信,如組播、音頻視頻會議、網(wǎng)絡(luò)協(xié)同游戲。
背景技術(shù):
業(yè)內(nèi)周知,在許多協(xié)同和分布式網(wǎng)絡(luò)應(yīng)用中,如組播、音頻視頻會議、網(wǎng)絡(luò)協(xié)同游戲,安全可靠的群通信是一個關(guān)鍵問題。群組會話密鑰共享和管理能夠很好解決這一問題。一個安全群組通信系統(tǒng)提供的基本安全服務(wù)包括數(shù)據(jù)保密性、完整性、成員認證和存取控制。實現(xiàn)對信息的限制訪問通常采用的方法是對群組的消息進行加密。如果所有的群組成員都共享一個共同的密鑰,就可以很方便的實現(xiàn)這些安全服務(wù),這個共享的密鑰被稱為群組密鑰。研究群組密鑰的生成、分發(fā)和更新維護的機制是群組密鑰管理機制需要解決的主要問題。
實現(xiàn)認證性,基于身份的認證機制相對基于公鑰基礎(chǔ)設(shè)施PKI的系統(tǒng)能夠大大簡化密鑰分發(fā)過程。國內(nèi)外學(xué)者在這方面提出了許多方法,主要的問題集中在以下幾方面(1)在密鑰生成中心KGC和組成員之間需要事先存在一個安全信道,在實際中這是一個非??量痰囊?; (2)存在隱性的密鑰托管,這一點有時是不希望有的;(3)密鑰協(xié)商過程一般需要O(n 1gn)或O(n)輪通信,網(wǎng)絡(luò)通信負擔(dān)較大;(4)計算有效性較差,一般需要O(n 1gn)或O(n)次配對運算。
發(fā)明內(nèi)容
本發(fā)明目的在于避免以上提及的技術(shù)不足,提出一種高效、實用的基于身份認證群組密鑰共享和管理的方法,以實現(xiàn)低通信開銷和低計算開銷的、不需要安全信道和無密鑰托管的群組密鑰共享。
為實現(xiàn)上述目的,本發(fā)明的技術(shù)過程如下 (1)密鑰生成中心KGC和所有組成員運行BDH參數(shù)產(chǎn)生器生成階為第一個素數(shù)q的群G1、第二個階為素數(shù)q的群G2和雙線性映射eG1×G1→G2; (2)密鑰生成中心KGC選擇自己的秘密鑰和公開參數(shù),并生成自己的公開鑰,將公開參數(shù)和公開鑰公布給所有組成員; (3)每個組成員ui,i=1,...,n,選擇自己的秘密鑰si以及秘密參數(shù)
根據(jù)秘密鑰和自己的身份標(biāo)識IDi生成公開鑰Qi; (4)密鑰生成中心KGC根據(jù)自己的秘密鑰和每個組成員ui,i=1,...,n,的身份標(biāo)識IDi生成ui主密鑰的一部分Ci,并通過公開信道將該Ci發(fā)送給組成員ui; (5)每個組成員ui,i=1,...,n,根據(jù)自己的秘密鑰si以及秘密參數(shù)
生成自己的主密鑰其中H1是從0和1組成的比特序列集合映射到第二個群G2的H ash函數(shù); (6)每個組成員ui,i=1,...,n,根據(jù)自己的主密鑰ki和自己的公開鑰Qi的Hash值hi組成對公開鑰Qi的驗證信息Ti=siPpub+hiki,并將公開鑰Qi與該驗證信息Ti鏈接,廣播給所有其他組成員,其中Ppub是密鑰生成中心KGC的公開鑰,這是第一輪廣播; (7)每個組成員ui,i=1,...,n,收到其左鄰居ui-1和右鄰居ui+1的第一輪廣播消息后,驗證廣播消息的真實性,如果是真實的,先計算其與左鄰居共享的秘密中間值Li以及與右鄰居共享的秘密中間值
再根據(jù)這兩個中間值計算群組會話密鑰中所包含的該組成員的信息Xi,并廣播該Xi,這是第二輪廣播; (8)每個組成員ui,i=1,...,n,根據(jù)計算的Xi以及收到的所有其他組成員廣播的消息Xj,j=1,...,n,j≠i,計算此次會話的群組會話密鑰K; (9)若任意成員離開,該成員的左鄰居和右鄰居分別刪除它們和離開成員共享的秘密中間值,并通過兩方密鑰協(xié)商協(xié)議重新共享新的秘密中間值,組成員uj,j=1,...,n-1,計算群組會話密鑰中所包含的該組成員的信息Xj,并廣播該Xj,再執(zhí)行步驟(8); (10)若有新成員un+1加入,該新成員un+1通過兩方密鑰協(xié)商協(xié)議,分別與第n個成員un和第1個成員u1共享秘密中間值,組成員uj,j=1,...,n+1,各自計算群組會話密鑰中所包含的該組成員的信息Xj,并在廣播該Xj后執(zhí)行步驟(8)。
本發(fā)明具有如下優(yōu)點 (1)本發(fā)明由于組成員的秘密鑰由KGC和成員共同產(chǎn)生,各擁有秘密鑰的一部分信息,從而避免了密鑰托管,秘密鑰只有組成員自己擁有。
(2)本發(fā)明由于密鑰生成中心KGC發(fā)送給組成員的密鑰不需要保密,可以通過公開信道發(fā)送,因此KGC和組成員之間不需要事先存在安全信道,解決了應(yīng)用過程中一個非常棘手的問題; (3)本發(fā)明由于將組成員的身份信息嵌入密鑰中,使密鑰既用來加密也用于身份認證,杜絕了任何未經(jīng)KGC批準(zhǔn)的非法者加入群組會話。
(4)相比已有方法,本發(fā)明在計算量和通信量上都大有改善,其密鑰分發(fā)過程中只有兩輪廣播,而之前的群組密鑰分發(fā)方案廣播輪數(shù)要么和用戶數(shù)成正比,要么和用戶數(shù)的對數(shù)成正比;在計算上以本發(fā)明以二元加法為主,每個用戶分別只需計算5個配對運算,而之前方案一般都需要大量配對運算,O(n 1g n)或O(n)。
已經(jīng)過理論推導(dǎo)證明,本發(fā)明方法在DBDH假設(shè)和CDH假設(shè)下是前向安全的。
圖1是本發(fā)明的基于身份的認證群組密鑰共享步驟示意圖; 圖2是本發(fā)明的任意組成員離開群組后新的群組密鑰重新共享步驟示意圖; 圖3是本發(fā)明的新組成員加入后新的群組密鑰重新共享步驟示意圖。
具體實施例方式 一、本發(fā)明所應(yīng)用的數(shù)學(xué)理論及技術(shù)術(shù)語說明 1、Hash函數(shù) Hash函數(shù)就是把任意長的輸入消息變化成固定長的輸出消息的一種函數(shù),這個輸出稱為該消息的Hash值。一個安全的Hash函數(shù)應(yīng)該至少滿足以下幾個條件;①輸入長度是任意的;②輸出長度是固定的,一般至少取128bits長,以便抵抗生日攻擊;③對每一個給定的輸入,可很容易地計算其輸出,即Hash值;④給定Hash函數(shù)的描述,找到兩個不同的輸入消息Hash到同一個值是計算上不可行的,或給定Hash函數(shù)的描述和一個隨機選擇的消息,找到另一個與該消息不同的消息,使得它們Hash到同一個值是計算上不可行的。Hash函數(shù)主要用于完整性校驗和提高數(shù)字簽名的有效性。
本發(fā)明中共有三個Hash函數(shù),其中H1{0,1}*→G1,是從0和1組成的比特序列集合映射到群G1;H2{0,1}*→Zq,是從0和1組成的比特序列集合映射到加法循環(huán)群Zq;HG2→{0,1}m,從群G2映射到由0和1組成的長為m的比特序列集合,m為正整數(shù)。
2、可容許雙線性映射 如果映射eG1×G1→G2滿足下面的條件就稱其為可容許雙線性映射 (1)雙線性。對于任意P,Q,R∈G1和α,β∈Zq有 e(αP+βQ,R)=e(P,R)αe(Q,R)β e(R,αP+βQ)=e(R,P)αe(R,Q)β’ 特別地 e(αP,βQ)=e(P,Q)αβ, 其中G1是階為q的加法群,G2是階為q的乘法群,在G1、G2中求解離散對數(shù)是困難的。
(2)非退化性e為非平凡映射,即e不會把G1×G1中的所有元都映射到G2的單位元上。
(3)可計算性對任意的P,Q∈G1,存在有效算法計算e(P,Q)。
雙線性映射可以通過超奇異橢圓曲線上的Weil配對或Tate配對來構(gòu)造。
3、有關(guān)技術(shù)術(shù)語 (1)KGC,密鑰生成中心。在基于身份的密碼體制中,用戶的秘密鑰要由KGC生成并通過安全信道發(fā)送給用戶,這會引入兩個安全缺陷①隱性的密鑰托管,②KGC和用戶之間需要安全信道。本發(fā)明避免了基于身份的密碼體制這一缺點。
(2)配對運算,即雙線性映射eG1×G1→G2,將加法群G1中的兩個元即橢圓曲線上的兩個點映射到乘法群G2中。
(3)CDH產(chǎn)生器 CDH產(chǎn)生器是一個概率多項式時間算法,運行在多項式時間內(nèi),輸出階為q的加法群G。
(4)BDH產(chǎn)生器 BDH產(chǎn)生器是一個概率多項式時間算法,運行在多項式時間內(nèi),輸出兩個階為q的加法群G1和G2,以及一個可容許雙線性映射eG1×G1→G2。
(5)DBDH問題,即對于群G1中的隨機元素Y和Zq*中的隨機元素a,b,c,d,區(qū)分五元組(Y,aY,bY,cY,e(Y,Y)abc)和(Y,aY,bY,cY,e(Y,Y)d)是困難的。
二、本發(fā)明的具體實現(xiàn) 參照圖1,本發(fā)明分為認證群組密鑰共享、成員離開后群組密鑰的重新共享和新成員加入后群組密鑰的重新共享三部分,具體步驟如下 (一)本發(fā)明的認證群組密鑰共享步驟 步驟一,密鑰生成中心KGC和所有組成員運行BDH參數(shù)產(chǎn)生器生成第一個階為素數(shù)q的群G1、第二個階為素數(shù)q的群G2和雙線性映射eG1×G1→G2; 步驟二,KGC選擇秘密鑰和公開參數(shù),生成自己的公開鑰,并將公開參數(shù)和公開鑰公布給所有組成員。
(2.1)密鑰生成中心KGC選擇自己的隨機秘密鑰s∈Zq*,P∈G1是群G1的生成元,Zq*是模q的乘法循環(huán)群; (2.2)KGC根據(jù)其自己的秘密鑰計算公開鑰Ppub=sP,公開參數(shù)為{e,G1,G2,q,P,Ppub,H,H1,H2},其中Hash函數(shù)H1:{0,1}*→G1,Hash函數(shù)H2:{0,1}*→Zq,Hash函數(shù)H:G2→{0,1}m,m為正整數(shù)。
步驟三,每個組成員ui,i=1,...,n,選擇自己的秘密鑰si以及秘密參數(shù)
根據(jù)秘密鑰和自己的身份標(biāo)識IDi生成公開鑰Qi。
(3.1)每個組成員ui選擇si∈Zq*作為自己的秘密鑰,選擇隨機秘密數(shù) (3.2)每個組成員ui計算身份信息Pi=H1(sessionID,IDi),則ui的公開鑰為Qi=siPi,其中sessionID是此次會話的會話標(biāo)識,IDi是組成員ui的身份標(biāo)識,令Wi是公開參數(shù)。
步驟四,密鑰生成中心KGC根據(jù)自己的秘密鑰和每個組成員ui,i=1,...,n的身份標(biāo)識IDi生成ui主密鑰的一部分Ci,并通過公開信道將該Ci發(fā)送給該組成員ui。
(4.1)KGC計算群每個組成員ui,i=1,...,n的身份標(biāo)識IDi的Hash值Pi=H1(sessionID,IDi); (4.2)KGC計算Ci=sPi,i=1,...,n,通過公開信道發(fā)送Ci給組成員ui。
步驟五,每個組成員ui,i=1,...,n,根據(jù)自己的秘密鑰si以及秘密參數(shù)
生成自己的主密鑰。
(5.1)每個組成員ui,i=1,...,n,計算密鑰中自己的那一部分
其中是ui的身份標(biāo)識IDi的Hash值; (5.2)每個組成員ui,i=1,...,n,計算自己的主密鑰設(shè) 步驟六,每個組成員ui,i=1,...,n,根據(jù)自己的主密鑰ki和自己公開鑰Qi的Hash值hi組成對公開鑰Qi的驗證信息Ti,并將公開鑰Qi與該驗證信息Ti鏈接,廣播給所有其他組成員,這是第一輪廣播。
(6.1)每個組成員ui計算自己公開鑰Qi的Hash值hi=H2(Qi); (6.2)每個組成員ui在計算完自己公開鑰Qi的Hash值后,再計算公開鑰Qi的驗證信息Ti=siPpub+hiki=siPpub+hisPi+sihiRi,其中Ppub是密鑰生成中心KGC的公開鑰,si是ui的秘密鑰,ki是ui的主密鑰,H2是從0和1組成的比特序列集合映射到群Zq上的Hash函數(shù)。
(6.3)廣播<Qi,Ti>給所有其他組成員。
步驟七,每個組成員ui,i=1,...,n,收到其左鄰居ui-1和右鄰居ui+1的第一輪廣播消息后,驗證廣播消息的真實性,如果是真實的,先計算其與左鄰居共享的秘密中間值Li以及與右鄰居共享的秘密中間值
再根據(jù)這兩個中間值計算群組會話密鑰中所包含的該組成員的信息Xi,并廣播該Xi,這是第二輪廣播; (7.1)每個組成員ui,i=1,...,n,收到其左鄰居的廣播消息<Qi-1,Ti-1>、第一右鄰居的廣播消息<Qi+1,Ti+1>和第二右鄰居的廣播消息<Qi+2,Ti+2>之后,通過下列等式是否成立驗證收到的廣播消息是否真實式中,e為可容許雙線性映射,l∈{-1,1,2}是求和變量,P是群G1的生成元,Ppub是密鑰生成中心KGC的公開鑰,
和Wi是ui的公開參數(shù),Qi+l,是組成員ui+l,的公開鑰,Ti+l,是對公開鑰Qi+l,的驗證信息,hi+l是公開鑰Qi+l的Hash值,Pi+l,是會話標(biāo)識和組成員ui+l身份標(biāo)識的Hash值,該Hash值表示ui+l的身份信息。
(7.2)如果上述等式成立,則所收到的左右鄰居的廣播消息是真實的,每個組成員ui,i=1,...,n,先利用自己的秘密鑰si和其左鄰居的公開鑰Qi-1以及其右鄰居的公開鑰Qi+1計算其與左鄰居共享的秘密中間值Li, Li=e(siQi-1,Qi+1), 再利用自己的秘密鑰si和其第一右鄰居的公開鑰Qi+1以及其第二右鄰居的公開鑰Qi+2計算它與右鄰居共享的秘密中間值
顯然,其中Li+1是組成員ui+1和他的左鄰居,即ui,共享的秘密中間值; (7.3)每個組成員ui,i=1,...,n,根據(jù)上述計算的其與左鄰居共享的秘密中間值Li以及與右鄰居共享的秘密中間值
計算群組會話密鑰中所包含的該組成員的信息Xi, 其中
是模2加,sessionID是此次會話的會話標(biāo)識,H:G2→{0,1}m,是從群G2映射到由0和1組成的長為m的比特序列集合上的Hash函數(shù)。
步驟八,每個組成員ui,i=1,...,n,根據(jù)計算的Xi以及收到的所有其他組成員廣播的消息Xj,j=1,...,n,j≠i,計算此次會話的群組會話密鑰K。
(8.1)每個組成員ui,i=1,...,n,收到所有其他成員第二輪的廣播消息后,根據(jù)計算的Xi、收到的所有其他組成員廣播的消息Xj,j=1,...,n,j≠i,以及其與右鄰居共享的秘密中間值Li′和會話標(biāo)識sessionID計算群組會話密鑰的n個份額Bj,j=1,...,n, 其中當(dāng)j≥i時 而當(dāng)j<i時 (8.2)每個組成員ui比較Bi-1是否等于H(Li,sessionID),如果相等則進行下一步,反之則可能存在計算上錯誤或者收到的其他成員第二輪廣播Xj,j=1,...,n,j≠i,消息被篡改或被偽造,因此先檢查上述計算是否存在的錯誤,而如果計算無誤,則收到的廣播消息被篡改或被偽造,應(yīng)終止進行; (8.3)每個組成員ui,i=1,...,n,計算共享群組會話密鑰K=H(B1‖B2‖...‖Bn),其中,“‖表示兩個比特串的拼接。
以上步驟一至步驟五為初始化過程,步驟六至步驟八為群組密鑰共享過程。
(二)本發(fā)明的成員離開后群組密鑰的重新共享步驟 本發(fā)明支持動態(tài)群組,即隨時有成員離開和新成員加入。
步驟九,參照圖2,組成員uk離開群組,其余群組成員重新共享新群組密鑰。
(9.1)其余成員將群組成員個數(shù)改變?yōu)?n-1); (9.2)組成員uk-1刪除它和uk共享的秘密值
組成員uk+1刪除它和uk共享的秘密值Lk+1; (9.3)然后uk-1和uk+1通過兩方密鑰協(xié)商協(xié)議,如DH協(xié)議,共享一個新的秘密值S,令且Lk+1=S; (9.4)k成員之后的所有組成員uj改變它們的索引值為(j-1); (9.5)每個成員自步驟(7.3)開始執(zhí)行密鑰共享協(xié)議重新獲得新的群組密鑰。
(四)本發(fā)明的新成員加入后群組密鑰的重新共享步驟 步驟十,參照圖3,新成員加入一個由n個成員組成的群組中,所有組成員,包括新加入的成員,共享新的群組會話密鑰。
(10.1)新成員為un+1,它通過兩方密鑰協(xié)商協(xié)議和un共享Ln+1,通過兩方密鑰協(xié)商協(xié)議和u1共享
(10.2)u1將L1改為和un+1共享的秘密值
(10.3)最后,每個成員自步驟(7.3)開始執(zhí)行密鑰共享協(xié)議重新獲得新的群組密鑰。
本發(fā)明的安全性可通過以下簡明理論證明進一步說明 前向安全即用戶主密鑰的泄露不會對在此之前的群組會話密鑰的安全性構(gòu)成威脅。
本發(fā)明的前向安全性基于加法循環(huán)群G1中求解DBDH問題的困難性,即對于G1中的隨機元素Y和Zq*中的隨機元素a,b,c,d,區(qū)分五元組(Y,aY,bY,cY,e(Y,Y)abc)和(Y,aY,bY,cY,e(Y,Y)d)是困難的。
本發(fā)明前向安全性的證明思路是根據(jù)求解DBDH問題的困難性,將本發(fā)明歸約到DBDH這樣一個困難問題上,則本發(fā)明具有至少和DBDH相同的安全性。具體歸約方法如下。
本發(fā)明中,假設(shè)組成員ui主密鑰ki泄露,攻擊者已知即攻擊者掌握了
總可以令其中P是群G1的生成元,β∈Zq*。除此之外攻擊者還已知相關(guān)公開參數(shù)
因為P是群G1的生成元,可以令Qi-1=bP,Qi+1=cP,為了將歸約到DBDH問題上,又令Y=P,a=si,則Li=e(siQi-1,Qi+1)=e(P,P)abc。如果攻擊者能由{P,siP,Qi-1,Qi+1,siβP}求出Li=e(siQi-1,Qi+1),則該攻擊者就能夠求解DBDH問題。反過來說,由于DBDH問題是困難的,那么攻擊者不可能由求出Li=e(siQi-1,Qi+1),即本發(fā)明是前向安全的。
權(quán)利要求
1.一種基于身份的認證群組密鑰管理方法,包括如下步驟
(1)密鑰生成中心KGC和所有組成員運行BDH參數(shù)產(chǎn)生器生成階為第一個素數(shù)q的群G1、第二個階為素數(shù)q的群G2和雙線性映射eG1×G1→G2;
(2)密鑰生成中心KGC選擇自己的秘密鑰和公開參數(shù),并生成自己的公開鑰,將公開參數(shù)和公開鑰公布給所有組成員;
(3)每個組成員ui,i=1,...,n,選擇自己的秘密鑰si以及秘密參數(shù)
,根據(jù)秘密鑰和自己的身份標(biāo)識IDi生成公開鑰Qi;
(4)密鑰生成中心KGC根據(jù)自己的秘密鑰和每個組成員ui,i=1,...,n,的身份標(biāo)識IDi生成ui主密鑰的一部分Ci,并通過公開信道將該Ci發(fā)送給組成員ui;
(5)每個組成員ui,i=1,...,n,根據(jù)自己的秘密鑰si以及秘密參數(shù)
生成自己的主密鑰其中H1是從0和1組成的比特序列集合映射到第二個群G2的H ash函數(shù);
(6)每個組成員ui,i=1,...,n,根據(jù)自己的主密鑰ki和自己的公開鑰Qi的Hash值hi組成對公開鑰Qi的驗證信息Ti=siPpub+hiki,并將公開鑰Qi與該驗證信息Ti鏈接,廣播給所有其他組成員,其中Ppub是密鑰生成中心KGC的公開鑰;
(7)每個組成員ui,i=1,...,n,收到其左鄰居ui-1和右鄰居ui+1的第一輪廣播消息后,驗證廣播消息的真實性,如果是真實的,先計算其與左鄰居共享的秘密中間值Li以及與右鄰居共享的秘密中間值
,再根據(jù)這兩個中間值計算群組會話密鑰中所包含的該組成員的信息Xi,并廣播該Xi;
(8)每個組成員ui,i=1,...,n,根據(jù)計算的Xi以及收到的所有其他組成員廣播的消息Xj,j=1,...,n,j≠i,計算此次會話的群組會話密鑰K;
(9)若任意成員離開,該成員的左鄰居和右鄰居分別刪除它們和離開成員共享的秘密中間值,并通過兩方密鑰協(xié)商協(xié)議重新共享新的秘密中間值,組成員uj,j=1,...,n-1,計算群組會話密鑰中所包含的該組成員的信息Xj,并廣播該Xj,再執(zhí)行步驟(8);
(10)若有新成員un+1加入,該新成員un+1通過兩方密鑰協(xié)商協(xié)議,分別與第n個成員un和第1個成員u1共享秘密中間值,組成員uj,j=1,...,n+1,各自計算群組會話密鑰中所包含的該組成員的信息Xj,并在廣播該Xj后執(zhí)行步驟(8)。
2.根據(jù)權(quán)利要求1所述的基于身份的認證群組密鑰管理方法,其中步驟(3),按如下過程進行
(3a)組成員ui選擇秘密鑰和隨機秘密數(shù)其中
是循環(huán)群。
(3b)計算身份信息Pi=H1(sessionID,IDi),sessionID是此次會話的會話標(biāo)識,IDi是組成員ui的身份標(biāo)識;
(3b)根據(jù)所述的隨機秘密數(shù)和身份標(biāo)識,分別生成公開鑰Qi=siPi和公開參數(shù)其中P是第一個群G1的生成元。
3.根據(jù)權(quán)利要求1所述的基于身份的認證群組密鑰管理方法,其中步驟(4)所述的密鑰生成中心KGC根據(jù)自己的秘密鑰和組成員ui的身份標(biāo)識IDi生成ui主密鑰的一部分Ci,是由密鑰生成中心KGC根據(jù)組成員ui的身份標(biāo)識IDi(i=1,...,n)先計算ui身份信息Pi=H1(sessionID,IDi);再將該組成員ui身份信息Pi與密鑰生成中心KGC的秘密鑰s進行標(biāo)量乘法運算,得到組成員ui主密鑰的一部分Ci=sPi。
4.根據(jù)權(quán)利要求1所述的基于身份的認證群組密鑰管理方法,其中步驟(7)所述的每個組成員ui驗證廣播消息的真實性,是在收到其左鄰居廣播消息<Qi-1,Ti-1>,第一右鄰居廣播消息<Qi+1,Ti+1>和第二右鄰居的廣播消息<Qi+2,Ti+2>之后,通過驗證如下等式是否成立而確定,即式中e為可容許雙線性映射,l是求和變量,P是群G1的生成元,Ppub是密鑰生成中心KGC的公開鑰,
和Wi是公開參數(shù),Qi+l是組成員ui+l的公開鑰,Ti+l是對公開鑰Qi+l的驗證信息,hi+l是公開鑰Qi+l的Hash值,Pi+l是會話標(biāo)識和組成員ui+l身份標(biāo)識的Hash值,該Hash值表示ui+l的身份信息。
5.根據(jù)權(quán)利要求1所述的基于身份的認證群組密鑰管理方法,其中驟(7)所述的先計算其與左鄰居共享的秘密中間值Li以及與右鄰居共享的秘密中間值
再根據(jù)這兩個中間值計算群組會話密鑰中所包含的該組成員的信息Xi,按如下公式進行
(7a)每個組成員ui,i=1,...,n,利用自己的秘密鑰si和其左鄰居的公開鑰Qi-1以及其右鄰居的公開鑰Qi+1計算其與左鄰居共享的秘密中間值Li,
Li=e(siQi-1,Qi+1);
(7b)組成員ui,i=1,...,n,利用自己的秘密鑰si和其第一右鄰居的公開鑰Qi+1以及其第二右鄰居的公開鑰Qi+2計算它與右鄰居共享的秘密中間值
(7c)組成員ui,i=1,...,n,根據(jù)上述計算的其與左鄰居共享的秘密中間值Li以及與右鄰居共享的秘密中間值
,計算群組會話密鑰中所包含的該組成員的信息Xi,
其中
是模2加,HG2→{0,1}m,是從群G2映射到由0和1組成的長為m的比特序列集合上的Hash函數(shù)。
6.根據(jù)權(quán)利要求1所述的基于身份的認證群組密鑰管理方法,其中步驟(8),按如下步驟進行
(8a)每個組成員ui,i=1,...,n,收到所有其他成員第二輪的廣播消息后,根據(jù)計算的Xi、收到的所有其他組成員廣播的消息Xj,j=1,...,n,j≠i,以及其與右鄰居共享的秘密中間值
和會話標(biāo)識sessionID計算群組會話密鑰的n個份額Bj,j=1,...,n,
其中當(dāng)j≥i時
.....
而當(dāng)j<i時
.....
(8b)比較Bi-1是否等于H(Li,sessionID),如果相等則進行下一步,反之則可能存在計算上錯誤或者收到的其他成員第二輪廣播消息Xj,j=1,...,n,j≠i,被篡改或被偽造,因此先檢查上述計算是否存在的錯誤,而如果計算無誤,則收到的廣播消息被篡改或被偽造,應(yīng)終止進行;
(8c)計算共享群組密鑰K=H(B1‖B2‖...‖Bn),其中“‖”表示兩個比特串的拼接。
全文摘要
本發(fā)明公開了一種基于身份的認證群組密鑰管理方法。其步驟是利用橢圓曲線上雙線性映射將身份標(biāo)識嵌入密鑰中;密鑰生成中心根據(jù)自己的秘密鑰和組成員ui的身份標(biāo)識生成ui主密鑰的一部分Ci,通過公開信道發(fā)送該Ci給ui;每個組成員ui根據(jù)該Ci和自己秘密鑰生成主密鑰;每個組成員根據(jù)主密鑰和公開鑰Hash值計算公開鑰驗證信息,將公開鑰與該驗證信息鏈接在群組內(nèi)廣播;每個組成員驗證所收到消息是真實時計算其與左右鄰居共享的秘密值,根據(jù)該秘密值計算群組會話密鑰中所包含的該組成員信息Xi,在群組內(nèi)廣播該Xi;每個組成員根據(jù)所有Xj,j=1,…,n,計算群組會話密鑰K。本發(fā)明具有無密鑰托管、無需安全信道的優(yōu)點,用于協(xié)同和分布式網(wǎng)絡(luò)應(yīng)用中安全可靠群通信。
文檔編號H04L9/32GK101431414SQ20081023265
公開日2009年5月13日 申請日期2008年12月15日 優(yōu)先權(quán)日2008年12月15日
發(fā)明者呂錫香, 暉 李, 張衛(wèi)東 申請人:西安電子科技大學(xué)