一种改进的三方认证密钥协商协议
2013-06-10唐祚波缪祥华
唐祚波,缪祥华
(昆明理工大学信息工程与自动化学院,昆明 650500)
1 概述
随着网络技术的快速发展,网络中的安全问题越来越突出,通过认证密钥协商协议来确认网络运营商和用户的身份,并协商出用于通信加密的会话密钥,已成为一个至关重要的问题。在目前开放式网络中,认证密钥协商协议能够使通信双方相互认证,并协商出一个只有本人知道的秘密会话密钥[1]。
文献[2]提出了一个基于椭圆曲线的三方认证密钥交换协议,该协议主要是通过应用椭圆曲线技术提高协议的效率,但是存在安全性问题。文献[3]发现该协议不能抵抗假冒攻击和并行攻击,提出了一个改进协议(记为Tan-协议)。同时,文献[4]还提出了一个基于椭圆曲线的三方认证密钥协商协议的改进协议(记为Tan-改进协议),此协议可以抵抗假冒攻击。文献[5]分析了Tan-协议,发现此协议不能抵抗假冒攻击和中间人攻击。近年认证密钥协商协议的假冒攻击和中间人攻击受到高度关注,出现了很多的改进协议,文献[6]提出了一种强安全性的基于口令的三方认证密钥协商协议(记为Zhao-协议),可以抵抗上述攻击,但不能抵抗延时重放攻击,容易受到口令猜测攻击,而且协议中存在大量求幂运算,效率很低。
本文针对三方认证密钥协商协议容易遭受假冒攻击和中间人攻击问题,提出一种改进的基于身份[7-8]三方认证密钥协商协议。
2 数学基础
2.1 CDH 问题
对于随机给定的<P,aP,bP>,其中,P,aP,bP 属于群G1的点;a,b 属于具有q 阶的点群Z*q,计算abP 的值。
2.2 CDH 假设
3 改进的认证密钥协商协议
Tan-协议[3]受中间人攻击的原因是任何用户U 可以与S共享秘密密钥KU=urUS=usrUP=sRU,S 不能检查U 是否知道临时密钥rU和长期私钥u。为了解决此问题,在计算KU的过程中,使用了基于身份的公私钥对、单向哈希函,来建立S 和U 之间认证关系。改进后的协议可以认证用户,能抵抗假冒攻击和中间人攻击。
在新协议中,参与协议的实体有3 个,分别是发起者A、响应者B、可信服务器S。新协议分为3 个阶段:初始化阶段,用户密钥提取阶段和认证密钥协商阶段。
3.1 初始化阶段
在有限域Fq 上的椭圆曲线Eq(a,b): y2≡x3+ax+b(mod q)是用一个由P 点生产的大群,阶为n。服务器S 选择一对安全的对称加解密算法Ek()、Dk(),选择4 个哈希函数,分别为H1()、H2()、H3()、H(),并公布给用户。
3.2 用户密钥提取阶段
可信服务器S 随机选择s∈Z*q作为主密钥,计算公钥Qi=H1(IDi)和相应的私钥Si=sQi,通过秘密通道把Si传递给用户Ui,公布Qi,每一个用户Ui都可获得公钥Qi和相应的私钥Si,S 安全保存s。
3.3 认证密钥协商阶段
在服务器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):
4 安全性证明与分析
4.1 形式化证明
定理 在标准模型下,如果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。
4.2 中间人攻击
假设攻击者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 不知道响应者的私钥。由于新协议可以抵抗发起者和响应者假冒攻击,从而可以抵抗中间人攻击。
4.3 其他攻击
5 效率比较
许多三方认证协议[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-协议的计算量少很多。在通信量方面,新协议处于适中。然而,对于协议效率的影响,通信量比计算量要少,而且现今网络完全满足协议通信要求。因此,效率高低主要在于计算量,新协议计算量大大减少,效率得到了很大的提高。
6 结束语
本文提出一种改进的三方认证密钥协商协议,解决了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.