專利名稱:基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,涉及自認(rèn)證公鑰及會(huì)話密鑰協(xié)商,具體地說(shuō),是一
種基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,能夠?yàn)橥ㄐ啪W(wǎng)絡(luò)安全和信任體系的建立提供基礎(chǔ) 技術(shù)支撐,特別適用于移動(dòng)自組織網(wǎng)絡(luò)。
背景技術(shù):
會(huì)話密鑰分法是公鑰密碼體制的最主要應(yīng)用之一,利用公鑰密碼體制,會(huì)話兩方 Alice和Bob能夠在公開(kāi)網(wǎng)絡(luò)環(huán)境中進(jìn)行會(huì)話密鑰協(xié)商。 目前會(huì)話密鑰協(xié)商所依賴的公鑰密碼體制有三種模式基于證書(shū)的、基于身份的 和自認(rèn)證的?;谧C書(shū)的模式以公鑰基礎(chǔ)設(shè)施PKI為基礎(chǔ),存在著復(fù)雜的證書(shū)管理問(wèn)題?;?于身份的模式直接以用戶的身份信息作為其公開(kāi)鑰,沒(méi)有證書(shū)的存儲(chǔ)和管理問(wèn)題,但其缺 點(diǎn)是具有密鑰托管。在自認(rèn)證公鑰模式中公鑰自身具有認(rèn)證性,無(wú)須證書(shū),沒(méi)有復(fù)雜的證書(shū) 管理問(wèn)題,也不具有密鑰托管問(wèn)題。 基于自認(rèn)證公鑰的兩方密鑰協(xié)商協(xié)議在通信量、計(jì)算量以及存儲(chǔ)量上優(yōu)于傳統(tǒng)公 鑰模式的兩方密鑰協(xié)商協(xié)議,而且也無(wú)需安全信道。 基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法的這些優(yōu)點(diǎn)使得它特別適合于資源受限的 移動(dòng)自組織網(wǎng)絡(luò)。相對(duì)于傳統(tǒng)網(wǎng)絡(luò),移動(dòng)自組織網(wǎng)絡(luò)具有動(dòng)態(tài)的拓?fù)浣Y(jié)構(gòu)、有限的節(jié)點(diǎn)性 能、分布式控制、無(wú)中心及安全性差等特性。但是,移動(dòng)自組織網(wǎng)絡(luò)中應(yīng)用基于自認(rèn)證公鑰 的兩方密鑰協(xié)商還存在以下問(wèn)題(l)網(wǎng)絡(luò)必須存在一個(gè)中心服務(wù)器為用戶生成自認(rèn)證公 鑰;(2)需要安全信道傳送秘密信息;(3)計(jì)算量和通信量比較大;(4)存在密鑰托管。其中 前兩個(gè)問(wèn)題在移動(dòng)自組織網(wǎng)絡(luò)中是不可實(shí)現(xiàn)的,而后兩個(gè)問(wèn)題對(duì)這種資源受限的網(wǎng)絡(luò)也是 不合理的,因此都是需要極力避免的。 在移動(dòng)自組織網(wǎng)絡(luò)中,目前還沒(méi)有以自認(rèn)證公鑰模式為基礎(chǔ)的通信兩方會(huì)話密鑰 協(xié)商方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免以上提及的技術(shù)不足,以輕量級(jí)密碼體制ECC為理論基
礎(chǔ),提出一種基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,應(yīng)用于資源受限的移動(dòng)自組織網(wǎng)絡(luò),減
小通信開(kāi)銷和計(jì)算開(kāi)銷,且在不需要安全信道、無(wú)中心和無(wú)密鑰托管的條件下,實(shí)現(xiàn)移動(dòng)自
組織網(wǎng)絡(luò)中通信雙方的會(huì)話密鑰共享。
為實(shí)現(xiàn)上述目的,本發(fā)明包括如下過(guò)程 A.離線初始化過(guò)程 在網(wǎng)絡(luò)運(yùn)行之前,中心處理節(jié)點(diǎn)C選擇虛擬中心的秘密鑰a G Zp*和t次秘密多項(xiàng) 式f(x),并計(jì)算虛擬中心公開(kāi)鑰Y,再將秘密鑰a拆成n個(gè)份額di = f(i), i = 1, ... , n, 分別分發(fā)給n個(gè)虛擬中心節(jié)點(diǎn)Ai,i = l,...,n;
B.會(huì)話兩方分別向虛擬中心申請(qǐng)自認(rèn)證公鑰過(guò)程
(Bl)會(huì)話一方Alice選取自己的隨機(jī)秘密整數(shù)h G Zq*,計(jì)算其公開(kāi)參數(shù)U和R, 并將U、 R以及自己的身份信息ID發(fā)送給某虛擬中心節(jié)點(diǎn)An獲取自己的自認(rèn)證公鑰Q,計(jì) 算與該自認(rèn)證公鑰對(duì)應(yīng)秘密鑰s ; (B2)另一方Bob選取自己的隨機(jī)秘密整數(shù)/ 'eZ:,計(jì)算其公開(kāi)參數(shù)U'和R', 并將U' 、R'以及自己的身份信息ID'發(fā)送給某虛擬中心節(jié)點(diǎn)A,獲取自己的自認(rèn)證公鑰 Q',計(jì)算與該自認(rèn)證公鑰對(duì)應(yīng)秘密鑰s';
C.兩方會(huì)話密鑰協(xié)商過(guò)程 (CI)會(huì)話一方Alice將自己的身份ID、公開(kāi)參數(shù)R和自認(rèn)證公鑰Q發(fā)送給另一方 Bob ; (C2)Bob將自己的身份ID'、公開(kāi)參數(shù)R'和自認(rèn)證公鑰Q'發(fā)送給Alice;
(C3)Alice計(jì)算I' = H(ID' ),KA=s(r' R' +IQ');
(C4)Bob計(jì)算I = H(ID) , KB = s' (rR+IQ);
(C5)取KA或KB作為共享會(huì)話密鑰K, 其中Ka二Kb二ss' P, s為Alice的秘密鑰,s'為Bob的秘密鑰,R二hY二h(aP) 是Alice預(yù)先計(jì)算的自己的公開(kāi)參數(shù),R' =h' Y = h' (aP)是Bob預(yù)先計(jì)算的自己的 公開(kāi)參數(shù),a是虛擬中心的秘密鑰,Y = aP是虛擬中心的公開(kāi)鑰,P是橢圓曲線上循環(huán)群 E(GF(q))的生成元,h'是Bob的隨機(jī)秘密整數(shù),r是Alice公開(kāi)鑰Q的x坐標(biāo)模q取整, r'是Bob公開(kāi)鑰Q'的x坐標(biāo)模q取整。
本發(fā)明具有如下優(yōu)點(diǎn) 1)本發(fā)明基于自認(rèn)證的公鑰密碼模式,因此沒(méi)有復(fù)雜的證書(shū)管理問(wèn)題,從而降低
了網(wǎng)絡(luò)的存儲(chǔ)、通信和計(jì)算開(kāi)銷,因此更適合資源受限的移動(dòng)自組織網(wǎng)絡(luò); 2)本發(fā)明由于申請(qǐng)和協(xié)商過(guò)程傳送的所有信息均為公開(kāi)信息,可以通過(guò)公開(kāi)信道
傳送,因此不需要安全信道,解決了應(yīng)用過(guò)程中一個(gè)非常棘手的問(wèn)題; 3)本發(fā)明由于以輕量級(jí)密碼體制ECC為理論基礎(chǔ),因此在計(jì)算量和通信量上都大 有改善,非常適合為資源受限的移動(dòng)自組織網(wǎng)絡(luò)建立安全和信任體系。 4)本發(fā)明的密鑰協(xié)商過(guò)程能夠抵抗中間人攻擊。 理論推導(dǎo)證明,本發(fā)明的安全性建立在橢圓曲線上求解離散對(duì)數(shù)的困難性之上。
圖1是本發(fā)明的兩方密鑰協(xié)商過(guò)程示意圖; 圖2是本發(fā)明的會(huì)話一方Alice自認(rèn)證公鑰申請(qǐng)過(guò)程示意圖; 圖3是本發(fā)明的另一方Bob自認(rèn)證公鑰申請(qǐng)過(guò)程示意圖。
具體實(shí)施例方式
—、本發(fā)明所應(yīng)用的數(shù)學(xué)理論
(1)橢圓曲線密碼體制ECC 設(shè)p和q為大素?cái)?shù),GF(q)為q階有限域,E為GF (q)上的橢圓曲線,E (GF (q))為 E上的點(diǎn)構(gòu)成的p階循環(huán)群,P G E(GF(q))是生成元。關(guān)于橢圓曲線的定義及其安全參數(shù) 的選取可以參閱文獻(xiàn)Don Johnson, AlfredMenezes and Scott Vanstone, The Elliptic
6Curve Digital SignatureAlgorithm(ECDSA) , IJLS, vol. 1 issuel (2001),36-63。
(2)Hash函數(shù) Hash函數(shù)就是把任意長(zhǎng)的輸入消息變換成固定長(zhǎng)的輸出消息的一種函數(shù),這個(gè)輸 出稱為該消息的Hash值。 一個(gè)安全的Hash函數(shù)應(yīng)該至少滿足以下幾個(gè)條件;①輸入長(zhǎng)度 是任意的;②輸出長(zhǎng)度是固定的,至少取128bits長(zhǎng),以便抵抗生日攻擊;③對(duì)每一個(gè)給定 的輸入,能夠很容易地計(jì)算其輸出,即Hash值;④給定Hash函數(shù)的描述,找到兩個(gè)不同的輸 入消息Hash到同一個(gè)值是計(jì)算上不可行的,或給定Hash函數(shù)的描述和一個(gè)隨機(jī)選擇的消 息,找到另一個(gè)與該消息不同的消息,使得它們Hash到同一個(gè)值是計(jì)算上不可行的。Hash 函數(shù)主要用于完整性校驗(yàn)和提高數(shù)字簽名的有效性。 本發(fā)明中Hash函數(shù)H : {0, 1}* — Zq,是從0和1組成的比特序列集合映射到加法
循環(huán)群Zq。 (3)有限域 有限域是一個(gè)包含有限個(gè)元素的集合,滿足對(duì)加法和乘法封閉等性質(zhì),有限域的 階是域中元素的個(gè)數(shù),階為素?cái)?shù)q的有限域一般記為GF (q)。在有限域中,有兩個(gè)群, 一個(gè)是 GF(q)對(duì)加法構(gòu)成的群,一個(gè)是GF(q)-O對(duì)乘法構(gòu)成的群。在乘法循環(huán)群中,生成元的所有 冪給出群中的所有元素。本發(fā)明中Z/表示群Zp中去掉零元構(gòu)成的群。 [OO38] (4)素?cái)?shù)和互素 所謂素?cái)?shù),是指任意一大于1的整數(shù)p,若它只能被±1和士P整除,就稱其為素 數(shù); 所謂互素,是指兩個(gè)整數(shù),若它們的最大公約數(shù)為1,則稱它們互素。
二.技術(shù)術(shù)語(yǔ)說(shuō)明
(1)虛擬中心 虛擬中心是指由n個(gè)普通網(wǎng)絡(luò)節(jié)點(diǎn)組成的節(jié)點(diǎn)集合,該節(jié)點(diǎn)集合中的任意且至少
t+1個(gè)節(jié)點(diǎn)協(xié)作能夠完成單個(gè)中心服務(wù)器生成自認(rèn)證公鑰的工作。虛擬中心的作用是能夠
在無(wú)中心的分布式網(wǎng)絡(luò)中實(shí)現(xiàn)中心集中式的安全技術(shù)。本發(fā)明的應(yīng)用環(huán)境是無(wú)中心、分布
式的移動(dòng)自組織網(wǎng)絡(luò),這種網(wǎng)絡(luò)沒(méi)有固定基礎(chǔ)設(shè)施,其拓?fù)浣Y(jié)構(gòu)也是動(dòng)態(tài)變化的,因此,本
發(fā)明利用虛擬中心代替單個(gè)中心服務(wù)器為用戶生成自認(rèn)證公鑰。這種虛擬中心還具有很強(qiáng)
的抗毀性,適合戰(zhàn)場(chǎng)等惡劣環(huán)境。
(2)中心處理節(jié)點(diǎn) 中心處理節(jié)點(diǎn)是指在離線初始化時(shí)負(fù)責(zé)組建虛擬中心并在虛擬中心中均分權(quán)利 和責(zé)任的網(wǎng)絡(luò)節(jié)點(diǎn),該節(jié)點(diǎn)在初始化之后退出網(wǎng)絡(luò),在本發(fā)明中用C表示。 [OO46] (3)虛擬中心節(jié)點(diǎn) 虛擬中心節(jié)點(diǎn)是指構(gòu)成虛擬中心的網(wǎng)絡(luò)節(jié)點(diǎn),在本發(fā)明中指的是節(jié)點(diǎn)Ai, i = 1, . . . , n,其中的任意且至少t+1個(gè)協(xié)作能夠?yàn)橛脩羯勺哉J(rèn)證公鑰。
(4)發(fā)布者 發(fā)布者在本發(fā)明中指的是具體為用戶生成自認(rèn)證公鑰的那t+1個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)。
三、技術(shù)方案 參照?qǐng)Dl,本發(fā)明的具體實(shí)現(xiàn)如下 設(shè)p和q為大素?cái)?shù),GF(q)為q階有限域,E為GF (q)上的橢圓曲線,E (GF (q))為E上的點(diǎn)構(gòu)成的p階循環(huán)群,P G E(GF(q))是生成元。
過(guò)程l,在網(wǎng)絡(luò)運(yùn)行之前進(jìn)行離線初始化。 (1. 1)中心處理節(jié)點(diǎn)C選擇虛擬中心節(jié)點(diǎn)共享的秘密鑰a G Z/和t次秘密多項(xiàng) 式f (x) = a+alX+a2x2+. &i G Zp, i = 1, , t,并計(jì)算Y = aP, Y G E(GF(q))是虛
擬中心的公開(kāi)鑰; (1. 2)中心處理節(jié)點(diǎn)C將秘密鑰a按照= f (i)拆成n個(gè)份額,i = 1, . . . , n,
并在離線狀態(tài)下,將秘密份額&分別分發(fā)給n個(gè)虛擬中心節(jié)點(diǎn)A" i = 1, . . . , n,分發(fā)完秘
密份額之后退出網(wǎng)絡(luò),銷毀秘密鑰a和秘密多項(xiàng)式f (x)。 過(guò)程2, Alice自認(rèn)證公鑰及對(duì)應(yīng)秘密鑰的生成和分發(fā)。 參照?qǐng)D2,本過(guò)程的具體實(shí)現(xiàn)如下 (2. 1) Alice選取自己的隨機(jī)秘密整數(shù),計(jì)算自己的公開(kāi)參數(shù),將該公開(kāi)參數(shù)及自 己的身份發(fā)送給離其最近的某虛擬中心節(jié)點(diǎn),該虛擬中心節(jié)點(diǎn)作為發(fā)起者聯(lián)系其它t個(gè)虛 擬中心節(jié)點(diǎn),并將用戶的公開(kāi)參數(shù)及身份發(fā)送給其它虛擬中心節(jié)點(diǎn)。 (2. la)Alice選取自己的隨機(jī)秘密整數(shù)h G Zp*,計(jì)算自己的公開(kāi)參數(shù)u = hP, R = hY,將U、R以及自己的身份ID發(fā)送給離其最近的某個(gè)虛擬中心節(jié)點(diǎn),設(shè)為A,其中P是循環(huán) 群E(GF(q))的生成元,U G E(GF(q)),R G E(GF(q)); (2. lb)節(jié)點(diǎn)Aj乍為發(fā)起者聯(lián)系其它t個(gè)虛擬中心節(jié)點(diǎn),并將用戶Alice的公開(kāi)參 數(shù)U、 R以及身份ID發(fā)送給這t個(gè)虛擬中心節(jié)點(diǎn),這t+1個(gè)節(jié)點(diǎn)A" i = 1, . . . , t+1稱為發(fā) 布者; (2. 2)每個(gè)發(fā)布者節(jié)點(diǎn)A" i = 1, . . . , t+1選取自己的隨機(jī)秘密整數(shù)b G Zp,根 據(jù)Alice的公開(kāi)參數(shù)U計(jì)算Alice自認(rèn)證公鑰子塊Qi = !^U,并廣播Qi給其它t個(gè)發(fā)布者, Qi G E(GF(q))。 (2. 3)每個(gè)發(fā)布者節(jié)點(diǎn)在收到其它t個(gè)發(fā)布者的消息后,根據(jù)自己的秘密份額分 別計(jì)算Alice的自認(rèn)證公鑰、子簽名和中間變量,并將所計(jì)算的自認(rèn)證公鑰、子簽名和中間 變量發(fā)送給合成者。 (2. 3a)收到其它t個(gè)發(fā)布者的消息后,每個(gè)發(fā)布者節(jié)點(diǎn)&, i = 1, . . . , t+l,計(jì)算 Alice自認(rèn)證公鑰8 = 2]2,.=^/,其中* = 2>,;
,=1 i=l (2. 3b)每個(gè)發(fā)布者節(jié)點(diǎn)A" i = 1, , t+l,計(jì)算子簽名Xi = (d' ir+kil)modp, 其中,rEx。(mod q)是Q的x坐標(biāo)模q取整,I = H(ID)是用戶Alice身份信息ID的Hash
值而且是模P不為0的整數(shù),《'=《I!/(y-0—、modp) , (i_j)-!是i_j模p的逆元; (2. 3c)每個(gè)發(fā)布者節(jié)點(diǎn)A" i = 1, . . . , t+1計(jì)算中間變量& = d' W ;
(2.3d)每個(gè)發(fā)布者節(jié)點(diǎn)Ai,i = l,... ,t+l,將r,ID,Xi,Ri發(fā)送給合成者A^如果 r = 0, &自己可以重新選擇隨機(jī)數(shù)計(jì)算Qi,并廣播給其它發(fā)布者,所有發(fā)布者重新計(jì)算Q、 r以及子簽名。 (2. 4)合成者A工在收到發(fā)布者&的子簽名Xi并驗(yàn)證其有效性后計(jì)算合成簽名 x = 2>,,將Q和x發(fā)送給用戶Alice,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,其中,驗(yàn)證是驗(yàn)證下列等式是否成立
Qi = XiI—"U-rl—^i, 若該等式成立,則合成者能夠確定所接收的來(lái)自發(fā)布者&的子簽名Xi是真實(shí)有效 的子簽名,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,惡意假冒者在這里被識(shí)破,式中I—1是 I模P的逆元,I = H(ID)是用戶Alice身份信息ID的Hash值而且是模p不為0的整數(shù);
(2. 5)用戶Alice根據(jù)合成者發(fā)給他的合成簽名x以及自己的秘密數(shù)h計(jì)算自己 的秘密鑰s = xh(modp),這里,x = Z \ = Z (《;+ 二 《+ 了S ^ = (rfl + W)(mod/>), 則用戶Alice的自認(rèn)證公鑰為Q,對(duì)應(yīng)的秘密鑰為s。
過(guò)程3, Bob自認(rèn)證公鑰及對(duì)應(yīng)秘密鑰的生成和分發(fā)。
參照?qǐng)D3,本過(guò)程的具體實(shí)現(xiàn)如下 (3. l)Bob選取自己的隨機(jī)秘密整數(shù),計(jì)算自己的公開(kāi)參數(shù),將該公開(kāi)參數(shù)及自己 的身份發(fā)送給離其最近的某虛擬中心節(jié)點(diǎn),該虛擬中心節(jié)點(diǎn)作為發(fā)起者聯(lián)系其它t個(gè)虛擬 中心節(jié)點(diǎn),并將用戶的公開(kāi)參數(shù)及身份發(fā)送給其它虛擬中心節(jié)點(diǎn)。 (3. la)Bob選取自己的隨機(jī)秘密整數(shù)/z'eZ;,計(jì)算自己的公開(kāi)參數(shù)U' =h' P,
R' =h' Y,并將U' 、R'以及自己的身份ID'發(fā)送給離其最近的某個(gè)虛擬中心節(jié)點(diǎn),設(shè)為
A,其中P是循環(huán)群E(GF(q))的生成元,U G E(GF(q)),R G E(GF(q)); (3. lb)節(jié)點(diǎn)&作為發(fā)起者聯(lián)系其它t個(gè)虛擬中心節(jié)點(diǎn),并將用戶Bob的公開(kāi)參數(shù)
U' 、R'以及身份ID'發(fā)送給這t個(gè)虛擬中心節(jié)點(diǎn),這t+l個(gè)節(jié)點(diǎn)Ai,i = l,... ,t+l稱為
發(fā)布者; (3. 2)每個(gè)發(fā)布者節(jié)點(diǎn)A" i = 1,. . . , t+1選取自己的隨機(jī)秘密整數(shù)ki G Zp,根據(jù) Bob的公開(kāi)參數(shù)U'計(jì)算Bob自認(rèn)證公鑰子塊Q' i = kiU',并廣播Q' i給其它t個(gè)發(fā)布 者。 (3. 3)每個(gè)發(fā)布者節(jié)點(diǎn)在收到其它t個(gè)發(fā)布者的消息后,根據(jù)自己的秘密份額分 別計(jì)算Bob的自認(rèn)證公鑰、子簽名和中間變量,并將所計(jì)算的自認(rèn)證公鑰、子簽名和中間變 量發(fā)送給合成者。 (3. 3a)收到其它t個(gè)發(fā)布者的消息后,每個(gè)發(fā)布者節(jié)點(diǎn)&, i = 1, . . . , t+l,計(jì)算 Bob自認(rèn)證公鑰^=2 /',其中"1^;
,=1 ,=1 (3.3b)每個(gè)發(fā)布者節(jié)點(diǎn)Ai,i = l,... ,t+l,計(jì)算子簽名x' i=(d' +kj')
modp,其中r' eXq, (modq)是Q'的x坐標(biāo)模q取整,I' = H(ID')是用戶Bob身份信
息ID'的Hash值而且是模p不為0的整數(shù),《、",EI/(/-'■)—'(mod/ ) , (i-j"是
風(fēng)...
i-j模P的逆元; (3. 3c)每個(gè)發(fā)布者節(jié)點(diǎn)A" i = 1, . . . , t+1計(jì)算中間變量R' i = d' W ;
(3. 3d)每個(gè)發(fā)布者節(jié)點(diǎn)Ai,i = l,... ,t+l,將r' , ID' ,x' i,R' i發(fā)送給合成 者A"如果r' =0,&自己重新選擇隨機(jī)數(shù)計(jì)算Q' i,并廣播給其它發(fā)布者,所有發(fā)布者重 新計(jì)算Q' 、r'以及子簽名。
(3. 4)合成者&在收到發(fā)布者&的子簽名x' i并驗(yàn)證其有效性后計(jì)算合成簽名 ^' = !>,',將0'和x'發(fā)送給用戶Bob,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,其中,驗(yàn)
,=1
證是驗(yàn)證下列等式是否成立 Q' i = x, J'—力'-r' I'—力'丄, 若該等式成立,則合成者能夠確定所接收的來(lái)自發(fā)布者&的子簽名x' i是真實(shí)有
效的子簽名,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,式中,r —工是r模p的逆元,i'
=H(ID')是用戶Bob身份信息ID'的Hash值而且是模p不為0的整數(shù); (3.5)用戶Bob根據(jù)合成者發(fā)給他的合成簽名x'以及自己的秘密數(shù)h'計(jì)算自己
的秘密鑰s' =x' h' (modp),這里, = Z《'=Z 'r' + V)二《'+ ,Z& = (ra + W')(niod, 則用戶Bob獲取自認(rèn)證公鑰為Q',對(duì)應(yīng)的秘密鑰為s'。
過(guò)程4,兩方密鑰協(xié)商。 會(huì)話密鑰協(xié)商為通信雙方提供安全可靠的共享會(huì)話密鑰,在會(huì)話雙方交換了公開(kāi) 鑰和身份等公開(kāi)信息之后,他們各自計(jì)算出共享的會(huì)話密鑰。 會(huì)話一方Alice的身份為ID,秘密鑰為s,公開(kāi)鑰為Q,另一方Bob的身份為ID',
秘密鑰為s',公開(kāi)鑰為Q',本過(guò)程的具體實(shí)現(xiàn)如下 (4. l)Alice將她的公開(kāi)鑰Q、身份ID以及R發(fā)送給Bob ; (4. 2)Bob將他的公開(kāi)鑰Q'、身份ID'以及R'發(fā)送給Alice; (4. 3)Alice計(jì)算I' = H(ID' ),KA=s(r' R' +1' Q'); (4. 4)Bob計(jì)算I = H(ID) , KB = s' (rR+IQ); (4. 5)取KA或KB作為共享會(huì)話密鑰K ; 其中Ka二Kb二ss' P,而R二hS二h(aP)是Alice預(yù)先計(jì)算的自己的公開(kāi)參數(shù), R' = h' s = h' (aP)是Bob預(yù)先計(jì)算的自己的公開(kāi)參數(shù),h是Alice的隨機(jī)秘密整數(shù), h'是Bob的隨機(jī)秘密整數(shù),r是Alice公開(kāi)鑰Q的x坐標(biāo)模q取整,r'是Bob公開(kāi)鑰Q' 的x坐標(biāo)模q取整。
10
權(quán)利要求
一種基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,包括A.離線初始化過(guò)程在網(wǎng)絡(luò)運(yùn)行之前,中心處理節(jié)點(diǎn)C選擇虛擬中心的秘密鑰a∈Zp*和t次秘密多項(xiàng)式f(x),并計(jì)算虛擬中心公開(kāi)鑰Y,再將秘密鑰a拆成n個(gè)份額di=f(i),i=1,...,n,分別分發(fā)給n個(gè)虛擬中心節(jié)點(diǎn)Ai,i=1,...,n;B.會(huì)話兩方分別向虛擬中心申請(qǐng)自認(rèn)證公鑰過(guò)程(B1)會(huì)話一方Alice選取自己的隨機(jī)秘密整數(shù)h∈Zq*,計(jì)算其公開(kāi)參數(shù)U和R,并將U、R以及自己的身份信息ID發(fā)送給某虛擬中心節(jié)點(diǎn)A1,獲取自己的自認(rèn)證公鑰Q,計(jì)算與該自認(rèn)證公鑰對(duì)應(yīng)秘密鑰s;(B2)另一方Bob選取自己的隨機(jī)秘密整數(shù)計(jì)算其公開(kāi)參數(shù)U′和R′,并將U′、R′以及自己的身份信息ID′發(fā)送給某虛擬中心節(jié)點(diǎn)A1,獲取自己的自認(rèn)證公鑰Q′,計(jì)算與該自認(rèn)證公鑰對(duì)應(yīng)秘密鑰s′;C.兩方會(huì)話密鑰協(xié)商過(guò)程(C1)會(huì)話一方Alice將自己的身份ID、公開(kāi)參數(shù)R和自認(rèn)證公鑰Q發(fā)送給另一方Bob;(C2)Bob將自己的身份ID′、公開(kāi)參數(shù)R′和自認(rèn)證公鑰Q′發(fā)送給Alice;(C3)Alice計(jì)算I′=H(ID′),KA=s(r′R′+I′Q′);(C4)Bob計(jì)算I=H(ID),KB=s′(rR+IQ);(C5)取KA或KB作為共享會(huì)話密鑰K,其中KA=KB=ss′P,s為Alice的秘密鑰,s′為Bob的秘密鑰,R=hY=h(aP)是Alice預(yù)先計(jì)算的自己的公開(kāi)參數(shù),R′=h′Y=h′(aP)是Bob預(yù)先計(jì)算的自己的公開(kāi)參數(shù),a是虛擬中心的秘密鑰,Y=aP是虛擬中心的公開(kāi)鑰,P是橢圓曲線上循環(huán)群E(GF(q))的生成元,h′是Bob的隨機(jī)秘密整數(shù),r是Alice公開(kāi)鑰Q的x坐標(biāo)模q取整,r′是Bob公開(kāi)鑰Q′的x坐標(biāo)模q取整。F2009102191089C0000011.tif
2. 根據(jù)權(quán)利要求1所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程A所述的t 次秘密多項(xiàng)式為f (x) = &+罕+&2又2+. a丄G Zp, i = 1, , t。
3. 根據(jù)權(quán)利要求1所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程A所述的計(jì) 算虛擬中心公開(kāi)鑰Y,是通過(guò)式子Y = aP計(jì)算,其中Y G E(GF(q))。
4. 根據(jù)權(quán)利要求l所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程(Bl)所述 的Alice計(jì)算其公開(kāi)參數(shù)U和R,通過(guò)下式計(jì)算U = hP, R = hY,其中P是循環(huán)群E(GF(q))的生成元,E(GF(q))是橢圓曲線E上的點(diǎn)構(gòu)成的p階循環(huán) 群,P和q為大素?cái)?shù),GF(q)為q階有限域。
5. 根據(jù)權(quán)利要求l所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程(Bl)所述的 Alice獲取自己的自認(rèn)證公鑰Q,是按照如下步驟進(jìn)行的(5. 1)節(jié)點(diǎn)A作為發(fā)起者聯(lián)系其它t個(gè)虛擬中心節(jié)點(diǎn),并將用戶Alice的公開(kāi)參數(shù)U、 R以及身份ID發(fā)送給這t個(gè)虛擬中心節(jié)點(diǎn),這t+l個(gè)節(jié)點(diǎn)&,i = l,... ,t+l稱為發(fā)布者;(5. 2)每個(gè)發(fā)布者節(jié)點(diǎn)Ai,i = l,. . . ,t+l選取自己的隨機(jī)秘密整數(shù)ki G Zp,計(jì)算Alice 自認(rèn)證公鑰子塊Qi = kiU,并廣播Qi給其它t個(gè)發(fā)布者;(5. 3)收到其它t個(gè)發(fā)布者的消息后,每個(gè)發(fā)布者節(jié)點(diǎn)Ai,i = 1,...,t+l根據(jù)自己的秘密份額分別計(jì)算Alice的自認(rèn)證公鑰Q、子簽名Xi和中間變量Ri,并將Q、Xi和&發(fā)送給合成者,其中<formula>formula see original document page 3</formula>式中,* = ^>, ,r三x。(mod q)是Q的x坐標(biāo)模q取整,I = H(ID)是用戶Alice身份信息ID的Hash值而且是模p不為0的整數(shù),< =《 EI —0—'(mod" , (i_jT丄是i-j模P的逆元;(5. 4)合成者&在收到發(fā)布者&的子簽名Xi并驗(yàn)證其有效性后計(jì)算合成簽名x = f x,,將自認(rèn)證公鑰Q和合成簽名x發(fā)送給用戶Alice,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,其中驗(yàn)證是驗(yàn)證下列等式是否成立若該等式成立,則合成者能夠確定所接收的來(lái)自發(fā)布者Ai的子簽名Xi是真實(shí)有效的子簽名,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,其中I—1是I模p的逆元,I = H(ID)是用戶Alice身份信息ID的Hash值而且是模p不為0的整數(shù)。
6. 根據(jù)權(quán)利要求l所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程(Bl)所述的計(jì)算與該自認(rèn)證公鑰對(duì)應(yīng)秘密鑰s,是由Alice根據(jù)合成者發(fā)給他的合成簽名x以及自己的秘密數(shù)h按照公式s = xh(modp)計(jì)算的,式中,<formula>formula see original document page 3</formula>則用戶Alice獲取自認(rèn)證公鑰為Q,對(duì)應(yīng)的秘密鑰為s。
7. 根據(jù)權(quán)利要求l所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程(B2)所述的Bob計(jì)算其公開(kāi)參數(shù)U'和R',通過(guò)下式計(jì)算<formula>formula see original document page 3</formula>其中P是循環(huán)群E(GF(q))的生成元,E(GF(q))是橢圓曲線E上的點(diǎn)構(gòu)成的p階循環(huán)群,P和q為大素?cái)?shù),GF(q)為q階有限域。
8. 根據(jù)權(quán)利要求l所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程(B2)所述的Bob獲取自己的自認(rèn)證公鑰Q',按照如下步驟進(jìn)行(8.1)節(jié)點(diǎn)Aj乍為發(fā)起者聯(lián)系其它t個(gè)虛擬中心節(jié)點(diǎn),并將用戶Bob的公開(kāi)參數(shù)U'、R'以及身份ID'發(fā)送給這t個(gè)虛擬中心節(jié)點(diǎn),這t+l個(gè)節(jié)點(diǎn)Ai,i = l,... ,t+l稱為發(fā)布者;(8. 2)每個(gè)發(fā)布者節(jié)點(diǎn)A" i = 1,. . . , t+l選取自己的隨機(jī)秘密整數(shù)b G Zp,計(jì)算Bob自認(rèn)證公鑰子塊Q' i = kiU',并廣播Q' i給其它t個(gè)發(fā)布者;(8. 3)收到其它t個(gè)發(fā)布者的消息后,每個(gè)發(fā)布者節(jié)點(diǎn)Ai,i = 1,...,t+l根據(jù)自己的秘密份額分別計(jì)算Bob的自認(rèn)證公鑰Q'、子簽名x' i和中間變量R' i,并將Q' 、x' i和R' i發(fā)送給合成者,其中,=1x' i = (d' +kil' )modp,R' i = d' W ,式中,& = |>, ,r' eXq, (modq)是Q'的x坐標(biāo)模q取整,I' =H(ID')是用戶Bob身份信息ID'的Hash值而且是模p不為0的整數(shù),",'-《Ft 0"(mod》),(i-j)—工是i-j模P的逆元;(8. 4)合成者&在收到發(fā)布者Ai的子簽名x ' i并驗(yàn)證其有效性后計(jì)算合成簽名^' = !>/,將9'和x'發(fā)送給用戶Bob,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,其中,驗(yàn)證是驗(yàn)證下列等式是否成立i = x, J'—力'-r' I' —V i,若該等式成立,則合成者能夠確定所接收的來(lái)自發(fā)布者Ai的子簽名x' i是真實(shí)有效的子簽名,如果驗(yàn)證不通過(guò),則拒絕該發(fā)布者的消息,式中,r —工是r模p的逆元,i' =h(id')是用戶Bob身份信息id'的Hash值而且是模p不為o的整數(shù)。
9.根據(jù)權(quán)利要求l所述的基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,其中過(guò)程(B2)所述的計(jì)算與該自認(rèn)證公鑰對(duì)應(yīng)秘密鑰s',是由Bob根據(jù)合成者發(fā)給他的合成簽名x'以及自己的秘密數(shù)h'按照公式s' =x' h' (modp)計(jì)算,式中,x'= = Z! +《,)=,X《+尸Z!A = + W)(mod; ),〖=1 ^=1 ,=1 ,=1則用戶Alice獲取自認(rèn)證公鑰為Q',對(duì)應(yīng)的秘密鑰為s'。
全文摘要
本發(fā)明公開(kāi)了一種基于自認(rèn)證公鑰的兩方密鑰協(xié)商方法,主要解決現(xiàn)有PKI技術(shù)中復(fù)雜的證書(shū)管理問(wèn)題,實(shí)現(xiàn)自認(rèn)證的兩方密鑰共享,降低網(wǎng)絡(luò)資源開(kāi)銷,其步驟是利用門限密碼學(xué)將共享密鑰分給n個(gè)虛擬中心節(jié)點(diǎn);會(huì)話一方選擇自己的秘密隨機(jī)數(shù),計(jì)算公開(kāi)參數(shù),將自己的身份及公開(kāi)參數(shù)發(fā)送給虛擬中心以申請(qǐng)自己的自認(rèn)證公鑰;會(huì)話另一方選擇自己的秘密隨機(jī)數(shù),計(jì)算公開(kāi)參數(shù),將自己的身份及公開(kāi)參數(shù)發(fā)送給虛擬中心以申請(qǐng)自己的自認(rèn)證公鑰;會(huì)話兩方在相互交換了自認(rèn)證公鑰、身份和公開(kāi)參數(shù)后各自計(jì)算出共享會(huì)話密鑰。本發(fā)明以輕量級(jí)密碼ECC為理論基礎(chǔ),無(wú)證書(shū)管理、無(wú)密鑰托管、無(wú)需安全信道,能夠抗中間人攻擊,適用于資源受限的移動(dòng)自組織網(wǎng)絡(luò)安全通信。
文檔編號(hào)H04L29/06GK101702804SQ200910219108
公開(kāi)日2010年5月5日 申請(qǐng)日期2009年11月23日 優(yōu)先權(quán)日2009年11月23日
發(fā)明者呂錫香, 張衛(wèi)東, 李暉 申請(qǐng)人:西安電子科技大學(xué)