無證書的基于層次身份基的認(rèn)證密鑰協(xié)商方法和協(xié)商系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及無證書的密碼體制,具體涉及一種無證書的基于層次身份基的認(rèn)證密 鑰協(xié)商方法和協(xié)商系統(tǒng)。
【背景技術(shù)】
[0002] 公鑰密碼體制是保證網(wǎng)絡(luò)和信息安全的重要技術(shù)。在傳統(tǒng)的公鑰基礎(chǔ)設(shè)施(PKI, PublicKeyInfrastructure)中,需要可信第三方為用戶頒發(fā)證書來證明用戶的合法身 份,因此涉及到很多證書管理的問題,占用了大量系統(tǒng)相關(guān)資源。為了簡化傳統(tǒng)公鑰基礎(chǔ)設(shè) 施對證書的管理過程,Shamir在1984年提出了一種身份基密碼體制(IBC,IdentityBased Cryptosystem)。該體制不使用證書,直接將用戶的身份作為公鑰,私鑰由可信的私鑰生成 中心PKG(PublicKeyGenerator)生成。
[0003] 然而在Shamir提出的IBC體制中,用戶的私鑰完全由PKG生成,若PKG受到攻擊 造成信息泄露,則攻擊者可以獲得用戶的長期私鑰,以此來假冒用戶。這就是IBC體制固有 的密鑰托管問題。為了解決這一問題,Al-Riyami和Paterson在2003年提出了無證書的 身份基密碼體制(CLIBC,CertificatelessldentityBasedCryptosystem)。在這一體制 中,PKG只為用戶生成部分私鑰,完整的私鑰由用戶結(jié)合PKG生成的部分私鑰以及自身選定 的私有秘密值共同生成。因此,無證書密碼體制既解決了傳統(tǒng)公鑰密碼體制中的證書管理 問題,又解決了身份基密碼體制中的密鑰托管問題。
[0004] 在IBE和CLIBE體制中均只含有一個PKG。PKG不僅承擔(dān)著驗證用戶身份及為 用戶生成私鑰的任務(wù),還要承擔(dān)維護安全信道以便把私鑰安全的發(fā)送給用戶的任務(wù),同時 PKG還要負(fù)責(zé)用戶私鑰的更新,撤銷等工作。顯然,單一PKG將不能承擔(dān)起大型系統(tǒng)繁重 的工作。為了解決這一問題,密碼學(xué)家Gentry和Silverberg與2002年第一次提出了層 次身份基密碼體制(HIBC,HierarchicalIdentityBasedCryptography)。該體制中包 含一個根PKG及多層的域PKG,根PKG驗證域PKG并為其生成私鑰,上層域PKG驗證下層 域PKG并為其生成私鑰,直至用戶的上一層域。不過在HIBC體制中仍然存在密鑰托管問 題。2008年,Chow、Roth和Rieffel則首次對無證書的分層密碼體制(HCLC,Hierarchical CertificatelessCryptography)進行了研究。這一體制既保留了HIBC體制的優(yōu)點,又避 免了HIBC體制中的密鑰托管問題。
[0005] 密鑰協(xié)商作為密碼學(xué)中的基礎(chǔ)部分,在安全通信中有至關(guān)重要的作用。它允許兩 個實體在開放信道上協(xié)商安全的會話密鑰,以保證雙方通信的安全?;跓o證書的身份基 密碼體制,學(xué)者們提出了大量的無證書的身份基認(rèn)證密鑰協(xié)商協(xié)議。然而,大多數(shù)無證書身 份基認(rèn)證密鑰協(xié)商協(xié)議都是在單一PKG環(huán)境下提出的。同時,橢圓曲線上的雙線性對運算 耗時大約是點乘運算的20倍,因此效率較低。針對這一問題,有學(xué)者提出了無雙線性對運 算的無證書的身份基密鑰協(xié)商協(xié)議,不過這類協(xié)議也都是在單一PKG環(huán)境下提出的。
[0006] 橢圓曲線密碼(ECC,Ellipticcurvecryptography)與其他公鑰密碼體制相比, 其主要優(yōu)勢是在相同的安全水平下系統(tǒng)參數(shù)更短,因此在身份基密碼體制中運用最為廣 泛。在無雙線性對運算的密鑰協(xié)商協(xié)議中,協(xié)議的安全性一是基于橢圓曲線離散對數(shù)困難 假設(shè),即(G為橢圓曲線上的q階循環(huán)加法群,給定兩個元素p,ctPe殺,其中ae由P, aP計算a是困難的,但由P,a計算aP是容易的。二是基于計算性Diffie-Hellman困難假 設(shè),即G為橢圓曲線上的q階循環(huán)加法群,給定三個元素其中化&e7ZL 計算abP是困難的。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明旨在至少解決上述技術(shù)問題之一。
[0008] 為此,本發(fā)明的第一個目的在于提出一種無證書的基于層次身份基的認(rèn)證密鑰協(xié) 商方法。
[0009] 本發(fā)明的第二個目的在于提出一種無證書的基于層次身份基的認(rèn)證密鑰協(xié)商系 統(tǒng)。
[0010] 為了實現(xiàn)上述目的,本發(fā)明的的實施例公開了一種無證書的基于層次身份基的認(rèn) 證密鑰協(xié)商方法,包括以下步驟:A:根據(jù)輸入的安全常數(shù)A,得出階數(shù)為q的橢圓曲線循 環(huán)加法群S、其生成元為P,選取主私鑰msk,計算公鑰Ppub,選取安全的哈希函數(shù)氏和哈希 函數(shù)H2;B:根據(jù)第一用戶的身份向量ID=(Ip12,. ..,It),可以通過兩種算法生成所述第 一用戶的私鑰d:B1 :根據(jù)所述主私鑰msk、所述第一用戶身份向量ID=(Ip12,. ..,It)和 隨機選取的5^…,仍根PKG計算所述第一用戶的部分私鑰k和部分公鑰glP,..., gtP,所述第一用戶驗證所述部分私鑰k是否滿足驗證條件,如果所述部分私鑰k滿足驗證 條件,所述第一用戶接受所述部分私鑰k和部分公鑰glP,. . .,gtP;B2 :根據(jù)所述部分私鑰 k和部分公鑰glP,. . .,gtP及隨機選取的XG2$生成所述第一用戶的私鑰d和公鑰pk;或 1:根據(jù)所述第一用戶的身份向量id=a,i2,...,It)、所述第一用戶的上層用戶的身 份向量IDPKG=(I^ 12, ? ? ?,It》、所述上層用戶的部分私鑰V、部分公鑰{glP,? ? ?,gt少} 和隨機選取的汍e2$,所述上層用戶的PKG為所述第一用戶生成部分私鑰k和部分公鑰 glP,. . .,gtP,所述第一用戶驗證所述部分私鑰k是否滿足驗證條件,如果所述部分私鑰k滿 足驗證條件,所述第一用戶接受所述部分私鑰k和部分公鑰glP,. ..,gtP;B' 2 :根據(jù)所述 部分私鑰k和部分公鑰glP,. . .,gtP及隨機選取的=€ 生成所述第一用戶的私鑰d和 公鑰pk。
[0011] 根據(jù)本發(fā)明實施例的無證書的基于層次身份基的認(rèn)證密鑰協(xié)商方法,基于無證書 的層次身份基密碼體制,適用于大型系統(tǒng),而且方法在運算過程中不含雙線性對運算,因此 具有更高的效率。方法的安全性基于橢圓曲線離散對數(shù)困難假設(shè)及計算性Diffie-Hellman 困難假設(shè),滿足密鑰協(xié)商系統(tǒng)所需的基本安全需求。
[0012] 另外,根據(jù)本發(fā)明上述實施例的無證書的基于層次身份基的認(rèn)證密鑰協(xié)商方法, 還可以具有如下附加的技術(shù)特征:
[0013]進一步地,所述步驟A進一步包括:所述橢圓曲線循環(huán)加法群G為滿足安全常數(shù) 入的階為q的橢圓曲線循環(huán)加法群;所述公鑰Ppub=sP,其中主私鑰msk=s;所述哈希函 數(shù)以及所述哈希函數(shù)//2 :GxG4咒,其中父為會話密鑰空間。
[0014] 進一步地,所述步驟B1進一步包括:根據(jù)所述主私鑰msk、所述第一用戶身份向量 ID=(Ip12,…,It)和所述根PKG隨機選取的$1,.價eZg,計算ri =h丨(1; | |g#),其 中1 <i<t,所述第一用戶的部分私鑰k為:
[0015]
[0016] 如果k= 〇,則需要重新選取沒1, , g,通過安全信道將{glP,...,gtp,k} 發(fā)送給所述第一用戶,其中g(shù)lp,...,gtp為所述第一用戶的部分公鑰,所述第一用戶驗證下 列等式:
[0017]
[0018]若等式不成立,則拒絕所述部分私鑰k和部分公鑰glP,. ..,gtP。
[0019] 進一步地,所述步驟B2進一步包括:隨機選取X:e ?生成所述第一用戶的的私 鑰d,
[0020] d=k+x
[0021] 如果d= 〇,重新選取te計算所述第一用戶的私鑰山所述第一用戶的公鑰為 pk= {ID,gjP,. . . , gtP,xP}〇
[0022] 進一步地,所述步驟B' 1進一步包括:根據(jù)所述第一用戶的身份向量ID=(Ip 12,...,It)、所述第一用戶上層用戶IDPKS=(I^12,...,Itl)、所述上層用戶的部分私鑰 M二s 所述上層用戶的部分公鑰{giP,. ..,gtiP}和隨機選取枷6巧,計 算rt=Hi(It | |gtP),所述上層用戶的PKG為所述第一用戶生成所述部分私鑰k,所述部分私 鑰k通過以下公式得到:
[0023]
[0024] 如果k= 0,則需要重新選取汍€g計算所述部分私鑰k,通過安全信道將 {glP,. ..,gtP,k}發(fā)送給所述第一用戶,其中g(shù)lP,. ..,gtP為所述第一用戶的部分公鑰,所 述第一用戶驗證下列等式:
[0025]
[0026]若等式不成立,所述第一用戶拒絕所述部分私鑰k和部分公鑰glP,. ..,gtP。
[0027]進一步地,所述步驟B' 2進一步包括:隨機選取XeZ;;,生成所述第一用戶的的 私鑰d,
[0028]d=k+x
[0029]如果d= 0,重新選取.K 汁算所述第一用戶的私鑰d,所述第一用戶的公鑰為 pk= {ID,gjP, . . . ,gtP,xP} 〇
[0030] 進一步地,在步驟B還包括以下步驟:
[0031]C:隨機選擇第二用戶A和第三用戶B,根據(jù)所述第二用戶A的身份向量 T