唐祚波,繆祥華
(昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,昆明 650500)
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,網(wǎng)絡(luò)中的安全問題越來越突出,通過認(rèn)證密鑰協(xié)商協(xié)議來確認(rèn)網(wǎng)絡(luò)運(yùn)營(yíng)商和用戶的身份,并協(xié)商出用于通信加密的會(huì)話密鑰,已成為一個(gè)至關(guān)重要的問題。在目前開放式網(wǎng)絡(luò)中,認(rèn)證密鑰協(xié)商協(xié)議能夠使通信雙方相互認(rèn)證,并協(xié)商出一個(gè)只有本人知道的秘密會(huì)話密鑰[1]。
文獻(xiàn)[2]提出了一個(gè)基于橢圓曲線的三方認(rèn)證密鑰交換協(xié)議,該協(xié)議主要是通過應(yīng)用橢圓曲線技術(shù)提高協(xié)議的效率,但是存在安全性問題。文獻(xiàn)[3]發(fā)現(xiàn)該協(xié)議不能抵抗假冒攻擊和并行攻擊,提出了一個(gè)改進(jìn)協(xié)議(記為Tan-協(xié)議)。同時(shí),文獻(xiàn)[4]還提出了一個(gè)基于橢圓曲線的三方認(rèn)證密鑰協(xié)商協(xié)議的改進(jìn)協(xié)議(記為Tan-改進(jìn)協(xié)議),此協(xié)議可以抵抗假冒攻擊。文獻(xiàn)[5]分析了Tan-協(xié)議,發(fā)現(xiàn)此協(xié)議不能抵抗假冒攻擊和中間人攻擊。近年認(rèn)證密鑰協(xié)商協(xié)議的假冒攻擊和中間人攻擊受到高度關(guān)注,出現(xiàn)了很多的改進(jìn)協(xié)議,文獻(xiàn)[6]提出了一種強(qiáng)安全性的基于口令的三方認(rèn)證密鑰協(xié)商協(xié)議(記為Zhao-協(xié)議),可以抵抗上述攻擊,但不能抵抗延時(shí)重放攻擊,容易受到口令猜測(cè)攻擊,而且協(xié)議中存在大量求冪運(yùn)算,效率很低。
本文針對(duì)三方認(rèn)證密鑰協(xié)商協(xié)議容易遭受假冒攻擊和中間人攻擊問題,提出一種改進(jìn)的基于身份[7-8]三方認(rèn)證密鑰協(xié)商協(xié)議。
對(duì)于隨機(jī)給定的<P,aP,bP>,其中,P,aP,bP 屬于群G1的點(diǎn);a,b 屬于具有q 階的點(diǎn)群Z*q,計(jì)算abP 的值。
Tan-協(xié)議[3]受中間人攻擊的原因是任何用戶U 可以與S共享秘密密鑰KU=urUS=usrUP=sRU,S 不能檢查U 是否知道臨時(shí)密鑰rU和長(zhǎng)期私鑰u。為了解決此問題,在計(jì)算KU的過程中,使用了基于身份的公私鑰對(duì)、單向哈希函,來建立S 和U 之間認(rèn)證關(guān)系。改進(jìn)后的協(xié)議可以認(rèn)證用戶,能抵抗假冒攻擊和中間人攻擊。
在新協(xié)議中,參與協(xié)議的實(shí)體有3 個(gè),分別是發(fā)起者A、響應(yīng)者B、可信服務(wù)器S。新協(xié)議分為3 個(gè)階段:初始化階段,用戶密鑰提取階段和認(rèn)證密鑰協(xié)商階段。
在有限域Fq 上的橢圓曲線Eq(a,b): y2≡x3+ax+b(mod q)是用一個(gè)由P 點(diǎn)生產(chǎn)的大群,階為n。服務(wù)器S 選擇一對(duì)安全的對(duì)稱加解密算法Ek()、Dk(),選擇4 個(gè)哈希函數(shù),分別為H1()、H2()、H3()、H(),并公布給用戶。
可信服務(wù)器S 隨機(jī)選擇s∈Z*q作為主密鑰,計(jì)算公鑰Qi=H1(IDi)和相應(yīng)的私鑰Si=sQi,通過秘密通道把Si傳遞給用戶Ui,公布Qi,每一個(gè)用戶Ui都可獲得公鑰Qi和相應(yīng)的私鑰Si,S 安全保存s。
在服務(wù)器S 的幫助下,用戶A 和用戶B 相互認(rèn)證,并產(chǎn)生一個(gè)會(huì)話密鑰。該階段細(xì)分為3 輪:
第1 輪:
第2 輪:在B 收到來自A 的請(qǐng)求后,進(jìn)行如下認(rèn)證:
Request 表示一個(gè)請(qǐng)求,請(qǐng)求B 與A 共享一個(gè)會(huì)話密鑰。Response 表示一個(gè)響應(yīng),響應(yīng)與A 協(xié)議。
第3 輪:S 收到來自A 的消息(WA,RA,CAS,tA,IDA)和來自B 的消息(WB,RB,CBS,tB,IDB):
定理 在標(biāo)準(zhǔn)模型下,如果CDH 假設(shè)成立,那么新協(xié)議是安全的認(rèn)證密鑰協(xié)商協(xié)議。
輸入 (Ra,Rb)=(aP,bP),其中,a,b∈RZ*q;P 是階為q 的群G1的生成元
算法E 模仿回答攻擊者F 的所有詢問。因?yàn)镋 在初始化階段不知道主密鑰s,則隨機(jī)選擇x 作為主密鑰。
H1()詢問:當(dāng)F 用IDi詢問H1()時(shí),如果(*,IDi,Qi)已在H1鏈中,E 返回Qi,否則,E 隨機(jī)選擇ri∈Z*q,計(jì)算Qi=riP,E 返回Qi,然后增加(ri,IDi,Qi)到H1鏈。
H2()詢問:當(dāng)F 用(Si,ri)去詢問H2()時(shí),如果(Si,ri,wi)已在H2鏈中,E 返回wi,否則,E 隨機(jī)選擇wi∈Z*q,E 返回wi,然后增加(Si,ri,wi)到H2鏈。
H3()詢問:當(dāng)F 用(Ri,Wi,Si,ti,IDA,IDB)去詢問H3()時(shí),E 首先查詢H3鏈,如Ki已在H3鏈,E 返回Ki,否則E 隨機(jī)選擇Ki,E 返回Ki,然后增加(Ri,Wi,Si,ti,IDA,IDB,Ki)到H2鏈。當(dāng)F 用(Ki,tS,Rj,Wj,IDA,IDB,IDS)詢問H3(),E 首先查詢H3鏈,如Vi已在H3鏈,E 返回Vi,否則E 隨機(jī)選擇Vi,E 返回Vi,增加(Ki,tS,Rj,Wj,IDA,IDB,IDS,Vi)到H3鏈。
H()詢問:當(dāng)F 用(Zi,Zj,sid)去詢問H()時(shí),E 首先查詢H 鏈,如果(Zi,Zj,sid,SK)已在H 鏈中,則E 返回SK,否則,E 隨機(jī)選擇SK,E 返回SK,然后增加(Zi,Zj,sid,SK)到H 鏈。
Execution 查詢:這種查詢模仿被動(dòng)攻擊。當(dāng)A 與B 進(jìn)行協(xié)議時(shí),F(xiàn) 進(jìn)行Execution 查詢,返回(WA,RA,CAS,tA,IDA)和(WB,RB,CBS,tB,IDB)給F,還可以返回(WB,RB,VA,tS,IDS)和(WA,RA,VB,tS,IDS)給F。
Send 查詢:這種查詢模仿主動(dòng)攻擊。E 回答對(duì)用戶前階段的Send 查詢:E 任意選擇rA∈Z*q,計(jì)算RA=rARa,SA=rAxP,wA=H2(SA,rA),WA=wAP,tA=timestamp(),KA=H3(RA,WA,SA,tA,IDA,IDB),CAS=EkA(RA,WA,tA),E 返回(WA,RA,CAS,tA,IDA)給F。類似地,E 返回(WB,RB,CBS,tB,IDB)給F。E 回答對(duì)服務(wù)器的Send 查詢:verify(tA,tB),依次計(jì)算:SA=xQA=xrAP,SB=xQB=xrBP,K′A=H3(RA,WA,SA,tA,IDA,IDB),K′B=H3(RB,WB,SB,tB,IDA,IDB),(R′A,W′A,t′A)=DkA'(CAS),(R′B,W′B,t′B)=DkB'(CBS)。因?yàn)镽′A=RA,R′B=RB,W′A=WA,W′B=WB通過認(rèn)證,E 返回(WB,RB,VA,tS,IDS)和(WA,RA,VB,tS,IDS)給F。E 回答對(duì)用戶后階段的Send 查詢,E 計(jì)算出(Z1,Z2)和SK,并返回F。
假設(shè)攻擊者X 假冒A 與B 通信。X 隨機(jī)選擇rX∈RZ*q,并計(jì)算 RX=rXP,wX=H2(SX,rX),WX=wXP,tX=timestamp(),KX=H3(RX,WX,SX,tX,IDA,IDB),CXS=EkX(RX,WX,tX)。然后,X發(fā)送(IDA,Request)給B,發(fā)送(WX,RX,CXS,tX,IDA)給S。B 收到來自X 的(IDA,Request),運(yùn)行協(xié)議,發(fā)送(IDB,Response)至X,發(fā)送(WB,RB,CBS,tB,IDB)至S。S 收到信息后,首先驗(yàn)證(tX,tB)是否有效。接著,計(jì)算SA=sQA,K'A=H3(RX,WX,SA,tX,IDA,IDB),(R′X,W′X,t′X)=DkA′(CXS)。然后,判斷R′X?=RX,W′X?=WX,顯然2 個(gè)不相等,協(xié)議停止。原因是攻擊者X 不知道A 的私鑰SA,服務(wù)器S 計(jì)算出的K′X與攻擊者X 用來加密信息(RX,WX,tX)的KX不同,從而解密出的(RX′,W′X)與加密前不同。因此,新協(xié)議具有認(rèn)證功能,可以抵抗發(fā)起者假冒攻擊。類似地,新協(xié)議也可以抵抗響應(yīng)者假冒攻擊,原因是F 不知道響應(yīng)者的私鑰。由于新協(xié)議可以抵抗發(fā)起者和響應(yīng)者假冒攻擊,從而可以抵抗中間人攻擊。
許多三方認(rèn)證協(xié)議[2-3]不能提供認(rèn)證功能,Peter Nose在文獻(xiàn)[5]中分析了8 個(gè)協(xié)議,其中5 個(gè)不能提供認(rèn)證功能,容易受假冒攻擊。發(fā)現(xiàn)協(xié)議的缺陷后,出現(xiàn)了不少的改進(jìn)協(xié)議,其中有Tan-改進(jìn)協(xié)議[4]和Zhao-協(xié)議[6],這2 個(gè)協(xié)議與本文改進(jìn)協(xié)議都具有認(rèn)證功能,可以抵抗假冒攻擊,表1給出3 個(gè)協(xié)議的效率比較[9]。
表1 協(xié)議的效率比較
評(píng)價(jià)效率的2 個(gè)主要方面是計(jì)算量和通信量。計(jì)算量是每個(gè)參與者在一次協(xié)議運(yùn)行的所有運(yùn)算量的總和,主要計(jì)算花費(fèi)是數(shù)乘運(yùn)算、數(shù)加運(yùn)算、橢圓曲線上的點(diǎn)乘運(yùn)算、哈希運(yùn)算、加解密操作、求冪運(yùn)算、雙線性配對(duì)運(yùn)算。通信量是每個(gè)參與者在一次協(xié)議運(yùn)行的所有輪傳輸信息量的總和。為了簡(jiǎn)單期間,計(jì)算量用其在一次協(xié)議運(yùn)行中的操作符個(gè)數(shù)來表示,通信量用一次協(xié)議運(yùn)行所傳輸?shù)脑貍€(gè)數(shù)來表示。設(shè)計(jì)或改進(jìn)協(xié)議時(shí),是考慮兩者都盡可能少。
運(yùn)算符計(jì)算量比較大的是求冪運(yùn)算,配對(duì)運(yùn)算和加解密操作,其中一次配對(duì)運(yùn)算量約等于3 次點(diǎn)乘運(yùn)算量[10],易知一次哈希運(yùn)算的計(jì)算量比一次加解密少,從而可以得出本文改進(jìn)協(xié)議比Tan-改進(jìn)協(xié)議總計(jì)算量少。新協(xié)議與Zhao-協(xié)議的最大區(qū)別是,Zhao-協(xié)議有22 次求冪運(yùn)算,新協(xié)議卻用10 次點(diǎn)乘運(yùn)算代替,而一次求冪運(yùn)算量大于一次點(diǎn)乘,所以新協(xié)議比Zhao-協(xié)議的計(jì)算量少很多。在通信量方面,新協(xié)議處于適中。然而,對(duì)于協(xié)議效率的影響,通信量比計(jì)算量要少,而且現(xiàn)今網(wǎng)絡(luò)完全滿足協(xié)議通信要求。因此,效率高低主要在于計(jì)算量,新協(xié)議計(jì)算量大大減少,效率得到了很大的提高。
本文提出一種改進(jìn)的三方認(rèn)證密鑰協(xié)商協(xié)議,解決了Tan-協(xié)議遭受中間人攻擊及其改進(jìn)協(xié)議的低效率問題。該協(xié)議是基于身份的密碼學(xué)、橢圓曲線密碼學(xué)和單向哈希函數(shù)技術(shù)綜合應(yīng)用的結(jié)果,發(fā)揮了其各自的優(yōu)點(diǎn)。本文對(duì)改進(jìn)協(xié)議進(jìn)行了安全性證明與分析,結(jié)果表明新協(xié)議是安全的,可以抵抗假冒攻擊和中間人攻擊。另外,對(duì)新協(xié)議進(jìn)行了效率分析,與目前的其他類似協(xié)議相比,改進(jìn)協(xié)議具有更高的效率。如何進(jìn)一步減少協(xié)議中的通信量是今后需要研究的問題。
[1]邱衛(wèi)東,黃 征,李祥學(xué),等. 密碼協(xié)議基礎(chǔ)[M]. 北京:高等教育出版社,2009.
[2]Yang Jen-Ho,Chang Chin-Chen. An Efficient Three-party Authenticated Key Exchange Protocol Using Elliptic Curve Cryptography for Mobile-commerce Environments[J]. The Journal of Systems and Software,2009,82(1): 1497-1502.
[3]Tan Zuowen. An Enhanced Three-party Authentication Key Exchange Protocol for Mobile Commerce Environments[J].Journal of Communications,2010,5(5): 436-443.
[4]Tan Zuowen. An Improvement on A Three-party Authentication Key Exchange Protocol Using Elliptic Curve Cryptography[J]. Journal of Convergence Information Technology,2010,5(4): 120-129.
[5]Nose P. Security Weaknesses of Authenticated Key Agreement Protocols[J]. Information Processing Letters,2011,111(1): 687-696.
[6]Zhao Jianjie,Gu Dawu. Provably Secure Three-party Passwordbased Authenticated Key Exchange Protocol[J]. Information Sciences,2012,184(1): 310-323.
[7]Tan Zuowen. Efficient Identity-based Authenticated Multiple Key Exchange Protocol[J]. Computers and Electrical Engineering,2011,37(1): 191-198.
[8]Ni Liang,Chen Gongliang,Li Jianhua,et al. Strongly Secure Identity-based Authenticated Key Agreement Protocols[J].Computers and Electrical Engineering,2011,37(1): 205-217.
[9]丁 輝,殷新春. 一種新的基于身份的認(rèn)證密鑰協(xié)商協(xié)議[J]. 計(jì)算機(jī)工程,2010,36(23): 127-129.
[10] H?lbl M,Welzer T,Brumen B. An Improved Two-party Identity-based Authenticated Key Agreement Protocol Using Pairings[J]. Journal of Computer and System Sciences,2012,78(1): 142-150.