唐祚波,繆祥華
(昆明理工大學信息工程與自動化學院,昆明 650500)
隨著網絡技術的快速發展,網絡中的安全問題越來越突出,通過認證密鑰協商協議來確認網絡運營商和用戶的身份,并協商出用于通信加密的會話密鑰,已成為一個至關重要的問題。在目前開放式網絡中,認證密鑰協商協議能夠使通信雙方相互認證,并協商出一個只有本人知道的秘密會話密鑰[1]。
文獻[2]提出了一個基于橢圓曲線的三方認證密鑰交換協議,該協議主要是通過應用橢圓曲線技術提高協議的效率,但是存在安全性問題。文獻[3]發現該協議不能抵抗假冒攻擊和并行攻擊,提出了一個改進協議(記為Tan-協議)。同時,文獻[4]還提出了一個基于橢圓曲線的三方認證密鑰協商協議的改進協議(記為Tan-改進協議),此協議可以抵抗假冒攻擊。文獻[5]分析了Tan-協議,發現此協議不能抵抗假冒攻擊和中間人攻擊。近年認證密鑰協商協議的假冒攻擊和中間人攻擊受到高度關注,出現了很多的改進協議,文獻[6]提出了一種強安全性的基于口令的三方認證密鑰協商協議(記為Zhao-協議),可以抵抗上述攻擊,但不能抵抗延時重放攻擊,容易受到口令猜測攻擊,而且協議中存在大量求冪運算,效率很低。
本文針對三方認證密鑰協商協議容易遭受假冒攻擊和中間人攻擊問題,提出一種改進的基于身份[7-8]三方認證密鑰協商協議。
對于隨機給定的<P,aP,bP>,其中,P,aP,bP 屬于群G1的點;a,b 屬于具有q 階的點群Z*q,計算abP 的值。

Tan-協議[3]受中間人攻擊的原因是任何用戶U 可以與S共享秘密密鑰KU=urUS=usrUP=sRU,S 不能檢查U 是否知道臨時密鑰rU和長期私鑰u。為了解決此問題,在計算KU的過程中,使用了基于身份的公私鑰對、單向哈希函,來建立S 和U 之間認證關系。改進后的協議可以認證用戶,能抵抗假冒攻擊和中間人攻擊。
在新協議中,參與協議的實體有3 個,分別是發起者A、響應者B、可信服務器S。新協議分為3 個階段:初始化階段,用戶密鑰提取階段和認證密鑰協商階段。
在有限域Fq 上的橢圓曲線Eq(a,b): y2≡x3+ax+b(mod q)是用一個由P 點生產的大群,階為n。服務器S 選擇一對安全的對稱加解密算法Ek()、Dk(),選擇4 個哈希函數,分別為H1()、H2()、H3()、H(),并公布給用戶。
可信服務器S 隨機選擇s∈Z*q作為主密鑰,計算公鑰Qi=H1(IDi)和相應的私鑰Si=sQi,通過秘密通道把Si傳遞給用戶Ui,公布Qi,每一個用戶Ui都可獲得公鑰Qi和相應的私鑰Si,S 安全保存s。
在服務器S 的幫助下,用戶A 和用戶B 相互認證,并產生一個會話密鑰。該階段細分為3 輪:
第1 輪:

第2 輪:在B 收到來自A 的請求后,進行如下認證:

Request 表示一個請求,請求B 與A 共享一個會話密鑰。Response 表示一個響應,響應與A 協議。
第3 輪:S 收到來自A 的消息(WA,RA,CAS,tA,IDA)和來自B 的消息(WB,RB,CBS,tB,IDB):


定理 在標準模型下,如果CDH 假設成立,那么新協議是安全的認證密鑰協商協議。

輸入 (Ra,Rb)=(aP,bP),其中,a,b∈RZ*q;P 是階為q 的群G1的生成元
算法E 模仿回答攻擊者F 的所有詢問。因為E 在初始化階段不知道主密鑰s,則隨機選擇x 作為主密鑰。
H1()詢問:當F 用IDi詢問H1()時,如果(*,IDi,Qi)已在H1鏈中,E 返回Qi,否則,E 隨機選擇ri∈Z*q,計算Qi=riP,E 返回Qi,然后增加(ri,IDi,Qi)到H1鏈。
H2()詢問:當F 用(Si,ri)去詢問H2()時,如果(Si,ri,wi)已在H2鏈中,E 返回wi,否則,E 隨機選擇wi∈Z*q,E 返回wi,然后增加(Si,ri,wi)到H2鏈。
H3()詢問:當F 用(Ri,Wi,Si,ti,IDA,IDB)去詢問H3()時,E 首先查詢H3鏈,如Ki已在H3鏈,E 返回Ki,否則E 隨機選擇Ki,E 返回Ki,然后增加(Ri,Wi,Si,ti,IDA,IDB,Ki)到H2鏈。當F 用(Ki,tS,Rj,Wj,IDA,IDB,IDS)詢問H3(),E 首先查詢H3鏈,如Vi已在H3鏈,E 返回Vi,否則E 隨機選擇Vi,E 返回Vi,增加(Ki,tS,Rj,Wj,IDA,IDB,IDS,Vi)到H3鏈。
H()詢問:當F 用(Zi,Zj,sid)去詢問H()時,E 首先查詢H 鏈,如果(Zi,Zj,sid,SK)已在H 鏈中,則E 返回SK,否則,E 隨機選擇SK,E 返回SK,然后增加(Zi,Zj,sid,SK)到H 鏈。
Execution 查詢:這種查詢模仿被動攻擊。當A 與B 進行協議時,F 進行Execution 查詢,返回(WA,RA,CAS,tA,IDA)和(WB,RB,CBS,tB,IDB)給F,還可以返回(WB,RB,VA,tS,IDS)和(WA,RA,VB,tS,IDS)給F。
Send 查詢:這種查詢模仿主動攻擊。E 回答對用戶前階段的Send 查詢:E 任意選擇rA∈Z*q,計算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 回答對服務器的Send 查詢:verify(tA,tB),依次計算: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)。因為R′A=RA,R′B=RB,W′A=WA,W′B=WB通過認證,E 返回(WB,RB,VA,tS,IDS)和(WA,RA,VB,tS,IDS)給F。E 回答對用戶后階段的Send 查詢,E 計算出(Z1,Z2)和SK,并返回F。
假設攻擊者X 假冒A 與B 通信。X 隨機選擇rX∈RZ*q,并計算 RX=rXP,wX=H2(SX,rX),WX=wXP,tX=timestamp(),KX=H3(RX,WX,SX,tX,IDA,IDB),CXS=EkX(RX,WX,tX)。然后,X發送(IDA,Request)給B,發送(WX,RX,CXS,tX,IDA)給S。B 收到來自X 的(IDA,Request),運行協議,發送(IDB,Response)至X,發送(WB,RB,CBS,tB,IDB)至S。S 收到信息后,首先驗證(tX,tB)是否有效。接著,計算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 個不相等,協議停止。原因是攻擊者X 不知道A 的私鑰SA,服務器S 計算出的K′X與攻擊者X 用來加密信息(RX,WX,tX)的KX不同,從而解密出的(RX′,W′X)與加密前不同。因此,新協議具有認證功能,可以抵抗發起者假冒攻擊。類似地,新協議也可以抵抗響應者假冒攻擊,原因是F 不知道響應者的私鑰。由于新協議可以抵抗發起者和響應者假冒攻擊,從而可以抵抗中間人攻擊。

許多三方認證協議[2-3]不能提供認證功能,Peter Nose在文獻[5]中分析了8 個協議,其中5 個不能提供認證功能,容易受假冒攻擊。發現協議的缺陷后,出現了不少的改進協議,其中有Tan-改進協議[4]和Zhao-協議[6],這2 個協議與本文改進協議都具有認證功能,可以抵抗假冒攻擊,表1給出3 個協議的效率比較[9]。

表1 協議的效率比較
評價效率的2 個主要方面是計算量和通信量。計算量是每個參與者在一次協議運行的所有運算量的總和,主要計算花費是數乘運算、數加運算、橢圓曲線上的點乘運算、哈希運算、加解密操作、求冪運算、雙線性配對運算。通信量是每個參與者在一次協議運行的所有輪傳輸信息量的總和。為了簡單期間,計算量用其在一次協議運行中的操作符個數來表示,通信量用一次協議運行所傳輸的元素個數來表示。設計或改進協議時,是考慮兩者都盡可能少。
運算符計算量比較大的是求冪運算,配對運算和加解密操作,其中一次配對運算量約等于3 次點乘運算量[10],易知一次哈希運算的計算量比一次加解密少,從而可以得出本文改進協議比Tan-改進協議總計算量少。新協議與Zhao-協議的最大區別是,Zhao-協議有22 次求冪運算,新協議卻用10 次點乘運算代替,而一次求冪運算量大于一次點乘,所以新協議比Zhao-協議的計算量少很多。在通信量方面,新協議處于適中。然而,對于協議效率的影響,通信量比計算量要少,而且現今網絡完全滿足協議通信要求。因此,效率高低主要在于計算量,新協議計算量大大減少,效率得到了很大的提高。
本文提出一種改進的三方認證密鑰協商協議,解決了Tan-協議遭受中間人攻擊及其改進協議的低效率問題。該協議是基于身份的密碼學、橢圓曲線密碼學和單向哈希函數技術綜合應用的結果,發揮了其各自的優點。本文對改進協議進行了安全性證明與分析,結果表明新協議是安全的,可以抵抗假冒攻擊和中間人攻擊。另外,對新協議進行了效率分析,與目前的其他類似協議相比,改進協議具有更高的效率。如何進一步減少協議中的通信量是今后需要研究的問題。
[1]邱衛東,黃 征,李祥學,等. 密碼協議基礎[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]丁 輝,殷新春. 一種新的基于身份的認證密鑰協商協議[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.