專利名稱:一種基于身份的認(rèn)證密鑰協(xié)商方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全與通信技術(shù)領(lǐng)域,特別涉及一種基于身份公鑰密碼體制和使用橢圓曲線雙線性映射、針對兩方實(shí)體、分布式環(huán)境的認(rèn)證密鑰協(xié)商方法。
背景技術(shù):
認(rèn)證密鑰協(xié)商是密碼學(xué)中的基本原語,通過協(xié)商會(huì)話密鑰可實(shí)現(xiàn)多種功能,如身份認(rèn)證、密鑰確認(rèn)、數(shù)據(jù)加密等,研究高效可行的安全認(rèn)證密鑰協(xié)商協(xié)議也是分布式網(wǎng)絡(luò)安全重要成分?;诠€基礎(chǔ)設(shè)施(PKI)的密碼系統(tǒng)存在計(jì)算成本高、存儲開銷大的缺點(diǎn),為了簡化PKI,Shamir提出了基于身份(ID)密碼系統(tǒng)的概念,用戶使用自己的ID信息如電子郵件、電話號碼、辦公室地址、IP地址等生成公鑰?;跈E圓曲線的密碼系統(tǒng)使用小密鑰,就能得到與RSA加密算法和ELGamal加密算法相同的安全級別。目前,基于身份的認(rèn)證密鑰協(xié)商協(xié)議(IBAKA)都具有隱式認(rèn)證性,即參與方能確保除了另一個(gè)參與方以外其它實(shí)體無法計(jì)算出會(huì)話密鑰,滿足已知會(huì)話密鑰安全、前向安全、未知密鑰共享等安全屬性。但協(xié)議的設(shè)計(jì)者通常不考慮拒絕服務(wù)的問題,即任何遵守協(xié)議的非法實(shí)體都能向合法實(shí)體發(fā)起會(huì)話,雖然非法實(shí)體無法計(jì)算出會(huì)話密鑰,但合法實(shí)體卻無法拒絕會(huì)話請求。由于合法實(shí)體不具有拒絕非法實(shí)體的能力,有可能存在拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。合法實(shí)體雖然可以通過協(xié)商后的會(huì)話密鑰進(jìn)行身份驗(yàn)證或密鑰確認(rèn),以拒絕非法實(shí)體,但通信參與方需要至少三次的消息交互,通信開銷較大,所以研究需要兩次消息交互并具有拒絕非法用戶功能的IBAKA協(xié)議對于安全通信具有重要的理論價(jià)值和實(shí)際意義。2007年,Chen等改進(jìn)了 CK協(xié)議(Chen,Kudla等提出的認(rèn)證密鑰協(xié)商協(xié)議),并提出了一種增強(qiáng)型的CK協(xié)議(簡稱eCK),該協(xié)議不僅滿足密鑰協(xié)商協(xié)議所有的安全屬性,而且可以拒絕不遵守協(xié)議的非法實(shí)體,但對了解協(xié)議的攻擊者卻無能為力。2008年,孫紀(jì)敏等在Zheng等簽密方案的基礎(chǔ)上設(shè)計(jì)了一個(gè)基于身份的認(rèn)證及密鑰協(xié)商協(xié)議(簡稱為IBAKA-S),該協(xié)議不僅具有完美前向保密性,還節(jié)省了建立和管理公鑰基礎(chǔ)設(shè)施的代價(jià)。然而該方案存在遭受密鑰泄露偽裝攻擊和臨時(shí)密鑰泄露攻擊的風(fēng)險(xiǎn)。2009年,曹天杰等基于保護(hù)用戶隱私的考慮,提出了一個(gè)增強(qiáng)用戶隱私的認(rèn)證密鑰協(xié)商協(xié)議,該協(xié)議滿足雙向身份認(rèn)證、用戶身份前向匿名、不可關(guān)聯(lián)和否認(rèn)性等安全屬性,但該協(xié)議需要三次消息的交互,通信成本較高。2011年,Holbl等基于Hess的簽名方案設(shè)計(jì)了一個(gè)更安全的認(rèn)證密鑰協(xié)商方案,該協(xié)議滿足基本的安全屬性,能抵抗密鑰泄露偽裝攻擊,但該方案也存在著臨時(shí)密鑰泄露攻擊的威脅。IBAKA-S協(xié)議是在Zheng簽密方案的基礎(chǔ)上,基于ID公鑰密碼體制提出的認(rèn)證及密鑰協(xié)商協(xié)議。IBAKA-S協(xié)議需要一個(gè)可信的密鑰生成中心(KGC),通信實(shí)體A和通信實(shí)體B。協(xié)議過程由系統(tǒng)參數(shù)初始化階段、認(rèn)證與密鑰協(xié)商階段組成。系統(tǒng)參數(shù)初始化具體為KGC構(gòu)建階為q,且滿足以下映射關(guān)系^G1XG1 46,的加法群G1和乘法群Gt,其中,q是一個(gè)預(yù)先設(shè)置的大素?cái)?shù),G1的生成元是P。隨機(jī)選取私鑰%口:7,其中,口:7={1,2,...4-1},是非零的整數(shù)群。KGC生成不帶密鑰的單向哈希函數(shù)Htl: {O,1}* —G1和盡{0,1廣4^,{0,1}*是指非零的字符串。Hk(·)是一個(gè)帶密鑰k的單向哈希函數(shù),計(jì)算公鑰Ppub = sP。實(shí)體A的公鑰Qa = H0 (IDa),其中,IDa是實(shí)體A的身份信息,實(shí)體A的私鑰Sa = sQa。實(shí)體B的公鑰Qb = H0 (IDb),其中,IDb是實(shí)體B的身份信息,實(shí)體B的私鑰Sb = sQb圖I是現(xiàn)有技術(shù)提供的認(rèn)證與密鑰協(xié)商階段的流程圖,如圖I所示,該流程包括以下步驟步驟SlOl :實(shí)體A生成簽名信息、臨時(shí)公鑰并發(fā)送給實(shí)體B。實(shí)體A隨機(jī)選取臨時(shí)私鑰計(jì)算哈希密鑰A =盡( 低,i^)a),其中Qb e G1,Ppub e G1, : G1 XG1 4 Gr,a是臨時(shí)密鑰,用臨時(shí)私鑰a對Gt群的元素進(jìn)行指數(shù)運(yùn)算,再進(jìn)行哈希運(yùn)算。臨時(shí)公鑰Ta = aP,字符串簽名信息Ssig_A = aPpub-SA e G1,點(diǎn)值簽名信息Ia =Hk(TA Il Ssig_A),并將臨時(shí)公鑰、字符串簽名信息、點(diǎn)值簽名信息<TA,Ssig_A,IA>發(fā)送給實(shí)體B。步驟S102,實(shí)體B根據(jù)收到的消息計(jì)算點(diǎn)值簽名信息/二。實(shí)體B收到消息后,根據(jù)消息中攜帶的字符串簽名信息Ssig_A計(jì)算實(shí)體B的哈希密鑰V =盡( 低(仏, )),并根據(jù)消息中攜帶的臨時(shí)公鑰Ta及字符串簽名信息Ssig_A計(jì)算點(diǎn)值簽名信息< =Hk(TA ||&—J。其中,Qa是實(shí)體A的公鑰,KGC下所有用戶都知道其他用戶的公鑰,這是基于身份的密碼體制的優(yōu)點(diǎn),即不需要PKI中的證書傳輸用戶的公鑰,任何用戶都可以利用已知算法計(jì)算出其他用戶的公鑰。步驟S103,實(shí)體B驗(yàn)證實(shí)體A身份是否合法。實(shí)體B根據(jù)公式/』=/〗是否成立驗(yàn)證實(shí)體A的身份是否合法,如果成立則實(shí)體A身份合法,執(zhí)行步驟S104,否則終止協(xié)議。步驟S104,實(shí)體B生成實(shí)體B的臨時(shí)公鑰、簽名信息并發(fā)送給實(shí)體A。實(shí)體B隨機(jī)選取臨時(shí)私鑰k □;,并根據(jù)臨時(shí)私鑰計(jì)算哈希密鑰l = H](e(QB,Ppub)b)、臨時(shí)公鑰Tb = bP、字符串簽名信息Ssig_B = bPpub_SB e G”點(diǎn)值簽名信息Ib = H1 (TB Il Ssig_B),并將實(shí)體B的臨時(shí)公鑰、字符串簽名信息、點(diǎn)值簽名信息<TB,Ssig_B,IB>發(fā)送給實(shí)體A。步驟S105,實(shí)體A根據(jù)收到的消息計(jì)算簽名信息。實(shí)體A收到消息后,根據(jù)消息中攜帶的實(shí)體B的信息計(jì)算實(shí)體A的哈希密鑰i = H\(e(QA,SMg_B)-e(QB,SA)),并根據(jù)消息中攜帶的實(shí)體B的臨時(shí)公鑰Tb及字符串簽名信息Ssig-B計(jì)算實(shí)體B的點(diǎn)值簽名彳目息A = Hr(TB I) Ssig_B)。步驟S106,實(shí)體A驗(yàn)證實(shí)體B身份是否合法。實(shí)體A驗(yàn)證& = /〗是否成立,如果成立則實(shí)體B身份合法,執(zhí)行步驟S107,否則終止協(xié)議。步驟S107,實(shí)體A計(jì)算會(huì)話密鑰。由于Β)· 低, )= 低,所以當(dāng)交換完信息后,實(shí)體A可以計(jì)算出會(huì)話密鑰K = aTB = abPo
步驟S108,實(shí)體B計(jì)算會(huì)話密鑰。實(shí)體B計(jì)算會(huì)話密鑰K = bTA = abPo 0028]IBAKA-S協(xié)議在會(huì)話密鑰計(jì)算中使用臨時(shí)密鑰與對方臨時(shí)公鑰進(jìn)行點(diǎn)乘,所以能夠滿足會(huì)話密鑰完美前向安全性;然而,Hou等2010年提出了臨時(shí)密鑰泄露攻擊的安全屬性通信雙方的臨時(shí)密鑰的泄露不能泄露會(huì)話密鑰,而IBAKA-S協(xié)議的會(huì)話密鑰決定于臨時(shí)密鑰,因此無法抵抗這種攻擊。除此之外,經(jīng)分析還可以發(fā)現(xiàn),如果攻擊者擁有了一個(gè)實(shí)體的長期私鑰,便可以偽裝成其它用戶與此用戶通信,即IBAKA-S不具有密鑰泄露偽裝攻擊安全屬性。圖2是IBAKA-S密鑰泄露偽裝攻擊的流程圖。密鑰泄露偽裝攻擊是假定攻擊者C知道實(shí)體A的私鑰,那么攻擊者C就可以偽裝成任何一個(gè)可信實(shí)體主動(dòng)與A建立會(huì)話,或被動(dòng)接受A建立的會(huì)話。但無論哪種情況,A都能成功認(rèn)證C,C也會(huì)計(jì)算出會(huì)話密鑰。例如,C想偽裝成B被動(dòng)的與A建立通信,當(dāng)A向B發(fā)出消息,C就截取消息進(jìn)行攻擊,如圖2所示,偽裝攻擊的流程為步驟S201 :攻擊者C計(jì)算臨時(shí)公鑰、簽名信息并發(fā)送給實(shí)體A。 攻擊者C隨機(jī)選擇臨時(shí)私鑰 e □:,和隨機(jī)數(shù)V e □:,計(jì)算哈希密鑰/ =,計(jì)算臨時(shí)公鑰Tb = bP,字符串簽名信息Ssig_B = vQa e G1,點(diǎn)值
簽名信息Ib = H1 (TB Il Ssig_B),并將臨時(shí)公鑰、字符串簽名信息、點(diǎn)值簽名信息<TB,Ssig_B,IB>發(fā)送給實(shí)體A并執(zhí)行步驟S205。步驟S202 :實(shí)體A計(jì)算點(diǎn)值簽名信息。實(shí)體A收到消息后,計(jì)算實(shí)體A的哈希密鑰=&)),并進(jìn)一步計(jì)算4=^(7; Il J。步驟S203,實(shí)體A驗(yàn)證攻擊者C的身份信息。實(shí)體A根據(jù)公式是否成立驗(yàn)證攻擊者C的身份信息,由于/'=丑間=低A)) = /,4 =A,因此,實(shí)體 A 驗(yàn)證攻擊者C的身份通過,執(zhí)行步驟S204。步驟S204 :實(shí)體A計(jì)算會(huì)話密鑰K = aTB = abP。步驟S205 :攻擊者C計(jì)算會(huì)話密鑰K = bTA = abP。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于身份的認(rèn)證密鑰協(xié)商方法,能更好地解決IBAKA協(xié)議存在的拒絕服務(wù)攻擊、密鑰泄露偽裝攻擊或臨時(shí)密鑰泄露攻擊風(fēng)險(xiǎn)問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于身份的認(rèn)證密鑰協(xié)商方法,所述方法包括發(fā)送端用戶生成用于驗(yàn)證發(fā)送端用戶身份的第一驗(yàn)證數(shù)據(jù),并將所述第一驗(yàn)證數(shù)據(jù)發(fā)送給所述接收端用戶;所述接收端用戶根據(jù)所接收到的第一驗(yàn)證數(shù)據(jù)對發(fā)送端用戶身份進(jìn)行合法性驗(yàn)證;如果接收端用戶驗(yàn)證發(fā)送端用戶身份合法,則生成不包含發(fā)送端用戶私鑰信息的第二驗(yàn)證數(shù)據(jù),并將所述第二驗(yàn)證數(shù)據(jù)發(fā)送給所述發(fā)送端用戶,同時(shí)生成接收端的會(huì)話密鑰;所述發(fā)送端用戶根據(jù)所接收到的第二驗(yàn)證數(shù)據(jù)對接收端用戶身份進(jìn)行合法性驗(yàn)證,如果發(fā)送端用戶驗(yàn)證接收端用戶身份合法,則生成發(fā)送端的會(huì)話密鑰。其中,生成第一驗(yàn)證數(shù)據(jù)的步驟之前還包括密鑰中心KGC生成公共參數(shù),其中,所述公共參數(shù)包括計(jì)算用戶公鑰的哈希函數(shù)Hl {O, I}*-G1、計(jì)算會(huì)話密鑰的哈希函數(shù)^ =RirXG1XG1XGr 、計(jì)算簽名信息的哈希函數(shù)I3: G1XG1 ;、KGC的公鑰Ppub、雙線性對 : G1XG1 Gr、階數(shù)為q的加法群G1、階數(shù)為q的乘法群GpG1的生成元P,其中,{1,2,3,...,g}是非零的整數(shù)群;發(fā)送端用戶向KGC發(fā)送詢問公共參數(shù)和申請私鑰的請求; KGC接收到所述發(fā)送端用戶的請求后生成發(fā)送端用戶的私鑰Sa并將所述公共參數(shù)和發(fā)送端用戶私鑰Sa發(fā)送給發(fā)送端用戶。其中,生成并發(fā)送第一驗(yàn)證數(shù)據(jù)的步驟包括發(fā)送端用戶選取隨機(jī)數(shù)X,并根據(jù)所述隨機(jī)數(shù)X、所接收到的公共參數(shù)和發(fā)送端用戶私鑰Sa計(jì)算第一臨時(shí)公鑰Ta = xP、第二臨時(shí)公鑰Ua = XH1 (IDa)、發(fā)送端用戶的簽名信息Va = xPpub+SAH3(TA, UA),其中IDa是發(fā)送端用戶的身份ID ;發(fā)送端用戶將所述第一臨時(shí)公鑰Ta、第二臨時(shí)公鑰Ua、發(fā)送端用戶的簽名信息Va發(fā)送給接收端用戶。其中,接收端用戶驗(yàn)證發(fā)送端用戶身份的步驟包括接收端用戶接收到發(fā)送端用戶發(fā)送的第一臨時(shí)公鑰Ta、第二臨時(shí)公鑰Ua、發(fā)送端用戶的簽名信息Va;接收端用戶根據(jù)興5,巧=漢2^+0#3(2^凡),/^)驗(yàn)證發(fā)送端用戶的身份是否合法,其中Qa = H1(IDa)是發(fā)送端用戶的公鑰。其中,生成第二驗(yàn)證數(shù)據(jù)的步驟之前還包括接收端用戶向KGC發(fā)送詢問公共參數(shù)和申請私鑰的請求;KGC接收到所述接收端的請求后生成接收端用戶的私鑰Sb并將所述公共參數(shù)和接收端用戶私鑰Sb發(fā)送給接收端用戶。其中,接收端用戶驗(yàn)證發(fā)送端用戶身份合法后生成并發(fā)送第二驗(yàn)證數(shù)據(jù)的步驟包括接收端用戶選取接收端的隨機(jī)數(shù)y,并根據(jù)所述接收端隨機(jī)數(shù)y、所接收到的公共參數(shù)和接收端用戶私鑰Sb計(jì)算第三臨時(shí)公鑰Tb = yP、第四臨時(shí)公鑰Ub = YH1 (IDb)、接收端用戶的簽名信息Vb = yPpub+SBH3(TB, UB),其中IDb是接收端用戶的身份ID ;接收端用戶將所述第三臨時(shí)公鑰TB、第四臨時(shí)公鑰Ub、接收端用戶的簽名信息Vb發(fā)送給發(fā)送端用戶。其中,發(fā)送端用戶驗(yàn)證接收端用戶身份是否合法的步驟包括發(fā)送端用戶接收到接收端用戶發(fā)送的第三臨時(shí)公鑰TB、第四臨時(shí)公鑰Ub、接收端用戶的簽名信息Vb;發(fā)送端用戶根據(jù)公式漢匕,巧=漢2;+込年(7;,173),/^)驗(yàn)證接收端用戶的身份是否合法,其中Qb = H1(IDb)是接收端用戶的公鑰。其中,發(fā)送端用戶驗(yàn)證接收端用戶身份合法后還包括發(fā)送端用戶根據(jù)公式=H2H Dj,IDb,Uj,Ub,e(SA, xt/B))計(jì)算會(huì)話密鑰;接收端用戶根據(jù)公式SKba = H1 (IDa , IDb ,Ua,Ub, e(yUA, Se ))計(jì)算會(huì)話密鑰。其中,所述第一驗(yàn)證數(shù)據(jù)根據(jù)KGC的公鑰、發(fā)送端用戶的私鑰、發(fā)送端用戶的臨時(shí)私鑰、發(fā)送端用戶的公鑰生成;所述第二驗(yàn)證數(shù)據(jù)根據(jù)KGC的公鑰、接收端用戶的私鑰、接收端用戶的臨時(shí)私鑰、接收端用戶的公鑰生成。其中,所述接收端用戶根據(jù)所接收到的第一驗(yàn)證數(shù)據(jù)及所述發(fā)送端用戶的公鑰對發(fā)送端用戶身份進(jìn)行合法性驗(yàn)證;所述發(fā)送端用戶根據(jù)所接收到的第二驗(yàn)證數(shù)據(jù)及所述接收端用戶的公鑰對接收端用戶身份進(jìn)行合法性驗(yàn)證。與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于具有已知密鑰安全、完美密鑰前向安全、抗未知密鑰共享、抗密鑰泄露偽裝攻擊、抗中間人攻擊、抗被動(dòng)攻擊、抗臨時(shí)密鑰泄露攻擊、抗拒絕服務(wù)攻擊的有益效果。
圖I是現(xiàn)有技術(shù)提供的認(rèn)證與密鑰協(xié)商階段的流程圖;圖2是IBAKA-S密鑰泄露偽裝攻擊的流程圖;圖3是本發(fā)明實(shí)施例提供的認(rèn)證密鑰協(xié)商階段的流程圖。
具體實(shí)施例方式以下結(jié)合附圖對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說明,應(yīng)當(dāng)理解,以下所說明的優(yōu)選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例提供的一種基于身份的認(rèn)證密鑰協(xié)商過程包括三個(gè)階段,系統(tǒng)初始化階段、密鑰提取階段、認(rèn)證密鑰協(xié)商階段。系統(tǒng)初始化階段具體為KGC產(chǎn)生簽名方案的公共參數(shù)和私鑰,然后公開公共參數(shù)并保留私鑰。KGC構(gòu)建階為q,且滿足雙線性對 : G1 XG1 4 67的加法群G1和乘法群GT,其中,q是一個(gè)預(yù)先設(shè)置的大素?cái)?shù),G1的生成元是P。隨機(jī)選取私鑰其中,0:=(1,2,
是非零的整數(shù)群,根據(jù)私鑰s和生成元P計(jì)算公鑰Ppub = sP。KGC選擇用于計(jì)算用戶公鑰的哈希函數(shù)H1 : {0,1}* — G1、用于計(jì)算會(huì)話密鑰的哈希函數(shù)^XG1 XGr;和
用于計(jì)算簽名信息的哈希函數(shù)I3 =G1XG1 其中H2( ·)是一個(gè)單向的密鑰生成函數(shù)。KGC 公開公共參數(shù)< P,,G1,Gr,S,i^,ii2,ii3 >,保留私鑰 S。密鑰提取階段具體為當(dāng)用戶i入網(wǎng)時(shí),向KGC提交身份標(biāo)識IDit5 KGC計(jì)算用戶i的公鑰Qi =H1 (IDi),私鑰Si = SQi,并將生成的公共參數(shù)和用戶的私鑰通過安全信道發(fā)送給用戶i。具體到發(fā)送端用戶A,在入網(wǎng)時(shí)向KGC發(fā)送詢問公共參數(shù)和申請私鑰的請求,KGC接收到所述發(fā)送端用戶A的請求后生成發(fā)送端用戶的私鑰Sa = sQa并將所述公共參數(shù)和發(fā)送端用戶私鑰Sa發(fā)送給發(fā)送端用戶,其中Qa是發(fā)送端用戶A的公鑰,Qa = H1 (IDa),IDa是發(fā)送端用戶A的身份ID。具體到接收端用戶B,在入網(wǎng)時(shí)向KGC發(fā)送詢問公共參數(shù)和申請私鑰的請求,KGC接收到所述接收端的請求后生成接收端用戶的私鑰Sb = sQb并將所述公共參數(shù)和接收端用戶私鑰Sb發(fā)送給接收端用戶。其中Qb是接收端用戶B的公鑰,Qb =H2(IDb),IDb是接收端用戶B的身份信息。 圖3是本發(fā)明實(shí)施例提供的認(rèn)證密鑰協(xié)商階段的流程圖,如圖3所示,所述流程包括步驟S301,發(fā)送端用戶A生成第一臨時(shí)公鑰、第二臨時(shí)公鑰、簽名信息并發(fā)送給接收端用戶B。發(fā)送端用戶A獲得公共參數(shù)和發(fā)送端用戶A的私鑰Sa后,隨機(jī)選取隨機(jī)數(shù)xe □;作為臨時(shí)私鑰,然后,根據(jù)所選取的臨時(shí)私鑰X、發(fā)送端用戶A的私鑰Sa和公鑰Qa以及公共參數(shù)計(jì)算第一臨時(shí)公鑰、第二臨時(shí)公鑰及發(fā)送端用戶A的簽名信息。具體地說,根據(jù)臨時(shí)私鑰X、公共參數(shù)中的生成元P計(jì)算第一臨時(shí)公鑰Ta = xP,根據(jù)臨時(shí)私鑰X、公共參數(shù)中的H1以及接收端用戶A的身份ID計(jì)算第二臨時(shí)公鑰Ua = xQa = XH1 (IDa),根據(jù)公共參數(shù)中的H3以及第一臨時(shí)公鑰Ta、第二臨時(shí)公鑰Ua計(jì)算哈希值h = H3 (TA, Ua),根據(jù)公共參數(shù)中的公鑰Ppub、臨時(shí)密鑰X、發(fā)送端用戶A的私鑰Sa以及哈希值h計(jì)算簽名信息Va = xPpub+hSA。最后,將包括第一臨時(shí)公鑰Ta、第二臨時(shí)公鑰Ua、發(fā)送端用戶A的簽名信息Va的第一驗(yàn)證數(shù)據(jù)<TA,UA, Va>發(fā)送給接收端用戶B。步驟S302,接收端用戶B驗(yàn)證發(fā)送端用戶A的身份是否合法。接收端用戶B接收到發(fā)送端用戶A的第一驗(yàn)證數(shù)據(jù)后,根據(jù)該數(shù)據(jù)中的Ta和Ua計(jì)算哈希值h = H3 (TA, Ua),^eD;。接收端用戶B根據(jù)是否成立驗(yàn)證發(fā)送端用戶A的身份是否合法,如果上述公式成立則發(fā)送端用戶A的身份合法,執(zhí)行步驟S303,否則結(jié)束流程。步驟S303 :接收端用戶B生成第三臨時(shí)公鑰、第四臨時(shí)公鑰、接收端用戶B的簽名信息并發(fā)送給發(fā)送端用戶Α。接收端用戶B隨機(jī)選取隨機(jī)數(shù)Je □;作為臨時(shí)私鑰,計(jì)算第三臨時(shí)公鑰Tb = yP,第四臨時(shí)公鑰Ub = yQB,哈希值h = H3 (TB, Ub),接收端用戶B的簽名信息Vb = yPpub+hSB,并將包括第三臨時(shí)公鑰TB、第四臨時(shí)公鑰Ub、接收端用戶B的簽名信息Vb的第二驗(yàn)證數(shù)據(jù)<TB,UB, Vb>發(fā)送給發(fā)送端用戶A。接收端用戶B執(zhí)行步驟S306。步驟S304 :發(fā)送端用戶A驗(yàn)證接收端用戶B的身份。發(fā)送端用戶A接收到接收端用戶B的消息后,根據(jù)消息中攜帶的第三臨時(shí)公鑰TB、第四臨時(shí)公鑰Ub計(jì)算哈希值h = H3 (TA,Ua)。發(fā)送端用戶A根據(jù)公式興匕巧=是否成立驗(yàn)證接收端用戶B的身份是否合法,如果上述公式成立則接收端用戶B的身份合法,執(zhí)行步驟S305,否則終止流程。步驟S305 :發(fā)送端用戶A生成會(huì)話密鑰。發(fā)送端用戶A 計(jì)算& =e(SA,xUB),生成會(huì)話密鑰 SKab = H2 (IDa, IDb, Ua, Ub, Kab)。
步驟S306 :接收端用戶B生成會(huì)話密鑰。接收端用戶B 計(jì)算,生成會(huì)話密鑰SKBA = H2(IDa, IDb, Ua, Ub,Kba)。 綜上所述,本發(fā)明通過生成不包含對端私鑰的身份驗(yàn)證數(shù)據(jù)和利用本端私鑰、臨時(shí)密鑰、對端公鑰使用雙線性映射的會(huì)話密鑰協(xié)商算法,解決了 IBAKA協(xié)議存在的拒絕服務(wù)攻擊、密鑰泄露偽裝攻擊或臨時(shí)密鑰泄露攻擊風(fēng)險(xiǎn)問題,具有已知密鑰安全、完美密鑰前向安全、抗未知密鑰共享、抗密鑰泄露偽裝攻擊、抗中間人攻擊、抗被動(dòng)攻擊、抗臨時(shí)密鑰泄露攻擊、抗拒絕服務(wù)攻擊的有益效果。盡管上文對本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于身份的認(rèn)證密鑰協(xié)商方法,其特征在于,所述方法包括發(fā)送端用戶生成用于驗(yàn)證發(fā)送端用戶身份的第一驗(yàn)證數(shù)據(jù),并將所述第一驗(yàn)證數(shù)據(jù)發(fā)送給所述接收端用戶;所述接收端用戶根據(jù)所接收到的第一驗(yàn)證數(shù)據(jù)對發(fā)送端用戶身份進(jìn)行合法性驗(yàn)證;如果接收端用戶驗(yàn)證發(fā)送端用戶身份合法,則生成不包含發(fā)送端用戶私鑰信息的第二驗(yàn)證數(shù)據(jù),并將所述第二驗(yàn)證數(shù)據(jù)發(fā)送給所述發(fā)送端用戶,同時(shí)生成接收端的會(huì)話密鑰;所述發(fā)送端用戶根據(jù)所接收到的第二驗(yàn)證數(shù)據(jù)對接收端用戶身份進(jìn)行合法性驗(yàn)證,如果發(fā)送端用戶驗(yàn)證接收端用戶身份合法,則生成發(fā)送端的會(huì)話密鑰。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,生成第一驗(yàn)證數(shù)據(jù)的步驟之前還包括密鑰中心KGC生成公共參數(shù),其中,所述公共參數(shù)包括計(jì)算用戶公鑰的哈希函數(shù)H1 {0,1}* —G1、計(jì)算會(huì)話密鑰的哈希函數(shù)足{O,If計(jì)算簽名信息的哈希函數(shù)巧.-G1XG1Wl、KGC的公鑰Ppub、雙線性對 : G1XG1 ^Gr、階數(shù)為q的加法群G1、階數(shù)為q的乘法群GpG1的生成元P,其中,={U,3,…,的是非零的整數(shù)群;發(fā)送端用戶向KGC發(fā)送詢問公共參數(shù)和申請私鑰的請求;KGC接收到所述發(fā)送端用戶的請求后生成發(fā)送端用戶的私鑰Sa并將所述公共參數(shù)和發(fā)送端用戶私鑰Sa發(fā)送給發(fā)送端用戶。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,生成并發(fā)送第一驗(yàn)證數(shù)據(jù)的步驟包括發(fā)送端用戶選取隨機(jī)數(shù)X,并根據(jù)所述隨機(jī)數(shù)X、所接收到的公共參數(shù)和發(fā)送端用戶私鑰Sa計(jì)算第一臨時(shí)公鑰Ta = xP、第二臨時(shí)公鑰Ua = XH1 (IDa)、發(fā)送端用戶的簽名信息Va =xPpub+SAH3 (TA,UA),其中IDa是發(fā)送端用戶的身份ID ;發(fā)送端用戶將所述第一臨時(shí)公鑰Ta、第二臨時(shí)公鑰Ua、發(fā)送端用戶的簽名信息Va發(fā)送給接收端用戶。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,接收端用戶驗(yàn)證發(fā)送端用戶身份的步驟包括接收端用戶接收到發(fā)送端用戶發(fā)送的第一臨時(shí)公鑰Ta、第二臨時(shí)公鑰Ua、發(fā)送端用戶的簽名信息Va ;接收端用戶根據(jù)汾= +0^3(2^,驗(yàn)證發(fā)送端用戶的身份是否合法,其中Qa = H1(IDa)是發(fā)送端用戶的公鑰。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,生成第二驗(yàn)證數(shù)據(jù)的步驟之前還包括接收端用戶向KGC發(fā)送詢問公共參數(shù)和申請私鑰的請求;KGC接收到所述接收端的請求后生成接收端用戶的私鑰Sb并將所述公共參數(shù)和接收端用戶私鑰Sb發(fā)送給接收端用戶。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,接收端用戶驗(yàn)證發(fā)送端用戶身份合法后生成并發(fā)送第二驗(yàn)證數(shù)據(jù)的步驟包括接收端用戶選取接收端的隨機(jī)數(shù)1,并根據(jù)所述接收端隨機(jī)數(shù)y、所接收到的公共參數(shù)和接收端用戶私鑰Sb計(jì)算第三臨時(shí)公鑰Tb = yP、第四臨時(shí)公鑰Ub = YH1 (IDb)、接收端用戶的簽名信息Vb = yPpub+SBH3(TB, UB),其中IDb是接收端用戶的身份ID ;接收端用戶將所述第三臨時(shí)公鑰TB、第四臨時(shí)公鑰Ub、接收端用戶的簽名信息Vb發(fā)送給發(fā)送端用戶。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,發(fā)送端用戶驗(yàn)證接收端用戶身份是否合法的步驟包括發(fā)送端用戶接收到接收端用戶發(fā)送的第三臨時(shí)公鑰Tb、第四臨時(shí)公鑰Ub、接收端用戶的簽名信息Vb ;發(fā)送端用戶根據(jù)公式^;,Ρ) = (ΓΒ+ρ#3(ΓΒ,Ι7Β),/^)驗(yàn)證接收端用戶的身份是否合法,其中Qb = H1(IDb)是接收端用戶的公鑰。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,發(fā)送端用戶驗(yàn)證接收端用戶身份合法后還包括發(fā)送端用戶根據(jù)公式1#=馬XCZb))計(jì)算會(huì)話密鑰;接收端用戶根據(jù)公式SKm = H2 (IDa,IDb ,Ua,Ub, e(yUA,Se ))計(jì)算會(huì)話密鑰。
9.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述第一驗(yàn)證數(shù)據(jù)根據(jù)KGC的公鑰、發(fā)送端用戶的私鑰、發(fā)送端用戶的臨時(shí)私鑰、發(fā)送端用戶的公鑰生成;所述第二驗(yàn)證數(shù)據(jù)根據(jù)KGC的公鑰、接收端用戶的私鑰、接收端用戶的臨時(shí)私鑰、接收端用戶的公鑰生成。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述接收端用戶根據(jù)所接收到的第一驗(yàn)證數(shù)據(jù)及所述發(fā)送端用戶的公鑰對發(fā)送端用戶身份進(jìn)行合法性驗(yàn)證;所述發(fā)送端用戶根據(jù)所接收到的第二驗(yàn)證數(shù)據(jù)及所述接收端用戶的公鑰對接收端用戶身份進(jìn)行合法性驗(yàn)證。
全文摘要
本發(fā)明公開了一種基于身份的認(rèn)證密鑰協(xié)商方法,該方法包括發(fā)送端用戶生成用于驗(yàn)證發(fā)送端用戶身份的第一驗(yàn)證數(shù)據(jù),并將第一驗(yàn)證數(shù)據(jù)發(fā)送給接收端用戶;接收端用戶根據(jù)所接收到的第一驗(yàn)證數(shù)據(jù)對發(fā)送端用戶身份進(jìn)行合法性驗(yàn)證;如果接收端用戶驗(yàn)證發(fā)送端用戶身份合法,則生成不包含發(fā)送端用戶私鑰信息的第二驗(yàn)證數(shù)據(jù),并將第二驗(yàn)證數(shù)據(jù)發(fā)送給發(fā)送端用戶,同時(shí)生成接收端的會(huì)話密鑰;發(fā)送端用戶根據(jù)所接收到的第二驗(yàn)證數(shù)據(jù)對接收端用戶身份進(jìn)行合法性驗(yàn)證,如果發(fā)送端用戶驗(yàn)證接收端用戶身份合法,則生成發(fā)送端的會(huì)話密鑰。本發(fā)明解決了IBAKA協(xié)議存在的拒絕服務(wù)攻擊、密鑰泄露偽裝攻擊或臨時(shí)密鑰泄露攻擊的風(fēng)險(xiǎn)問題。
文檔編號H04L9/32GK102624528SQ20121005426
公開日2012年8月1日 申請日期2012年3月2日 優(yōu)先權(quán)日2012年3月2日
發(fā)明者倪評福, 吳作順, 張建中, 徐啟建 申請人:中國人民解放軍總參謀部第六十一研究所