可证明安全的随机密钥协商协议

张小梅+吴福生+彭长根



摘 要: 主要研究随机密钥协商问题,针对Diffie?Hellman协议、SAKA协议和改进Lin协议、E?SAKA协议等存在的不具有认证功能和不能抵抗中间人攻击等缺陷,应用动态双向认证因子认证方法和非时间同步技术提出一种随机密钥协商协议,该协议适用于OTP动态口令系统设计,同时解决密钥协商过程中的动态认证和时间同步问题。最后,在标准模型下证明了方案的安全性。
关键词: 随机密钥协商; Diffie?Hellman密钥协商; DDH问题; 可证明安全
中图分类号: TN918?34; TP309 文献标识码: A 文章编号: 1004?373X(2017)13?0087?04
Abstract: The random key agreement issue is studied. Since the Diffie?Hellman protocol, SAKA protocol, improved Lin protocol and E?SAKA protocol don′t have the authentication function, and can′t resist the man?in?the?middle attack, a random key agreement protocol is proposed on the basis of the factor authentication method of dynamic bidirectional authentication and non?time synchronization technology, which is suitable for the design of OTP dynamic password system, and can solve the problems of dynamic authentication and time synchronization in the key agreement process. The security of the proposed scheme is proved with the standard model.
Keywords: random key agreement; Diffie?Hellman key agreement; DDH problem; provable security
0 引 言
密钥协商协议是通信双方建立安全会话链接的主要工具之一,能有效保障通信参与方间的安全通信。早在1976年,Diffie和Hellman在“密码学的新方向”一文中提出的公玥密码思想为密钥协商提供了新的解决途径[1]。后续有大量学者在密钥协商方面做了重要的工作[2?4]。文献[4]在标准模型下提出了一种可证明安全的基于身份的认证密钥协商协议;最近,文献[5]提出一种面向无线传感器网络的双因子用户认证协议。可见,密钥协商协议一如既往地受到广大研究人员的重视。
Diffie?Hellman[1]算法是一个著名的双方生成共享密钥的经典协议算法,但是该协议不具有认证功能,不能抵抗中间人攻击。针对Diffie?Hellman协议的不足,文献[2]提出简单密钥交换协议(SAKA),但其存在如下三个缺陷:攻击者虽然不能获得会话密钥,但是可以模仿Bob与Alice建立连接;协议不能抵抗密钥猜测攻击; 协议不能保证前向的安全性。另外一些学者还提出了针对SAKA协议的一些改进协议,如文献[6?9]。但是这些研究未能解决安全认证问题和中间人攻击问题。针对这一不足,本文提出一种改进的新SAKA协议,该协议应用动态双向认证因子认证方法实现密钥协商的动态认证,并利用非时间同步技术解决密钥协商双方的时间同步问题,最后在标准模型下给出协议的安全性证明。
1 基础知识和协议原理
1.1 基本知识
Diffie?Hellman的DDH难解问题[11](又称Diffie?Hellman的判断问题):如果对任何概率多项式时间算法D,都不能区分和其中是一个随机数。
定义1 伪随机函数:设是伪随机函数,如果对于每个概率多项式算法和有足够大的,满足:。
其中:是一个均匀分布的函数;是一个可忽略函数。表示对所有攻击者可能取到的最大值。
定义2 单向函数:设是一个单向函数,则满足:
任意给一个,求出很容易,即一定存在一个概率多项式算法,在多项式时间内有:。
已知求出不可能的,即:如果对于任意的任何概率多项式算法都不能从得出即:其中是一个可忽略函数。
定理1 如果存在单向函数,则存在加密方案具有选择密文攻击下不可区分加密,以及存在消息鉴别码具有选择消息攻击下不可伪造。
引理1 如果存在离散对数的伪随机单向函数,那么满足DDH难解问题。
1.2 密钥交换原理及分析
Lin提出的增强算法是为了克服原始SAKA算法的不足。而根据文献[10]的分析,Lin的算法仍然会受到密码猜测攻击。
通信双方为A与B预先共享一个密码系统参数是一个大素数,是有限域的一个本原元,和是公开的,通信双方用指定方法从密码得到和具体方法不做规定,要求与互质,并且由不同的生成具有抗碰撞性。协议过程如下:
Step1: A选择一个随机整数并且发送给B:;
Step2: B选择一个随机整数并且發送给A:;
Step3:A计算共享密钥,并计算
Step4:B计算共享密钥并计算发给
Hsieh攻击分析中,攻击者可以在第(1)步中得到第(4)步中得到,然后进行如下的离线猜测攻击:攻击者首先猜测密码并且得到和,然后通过验证等式是否成立来离线猜测出和的正确性,使攻击成功。
文献[7]提出了E?SAKA协议,但存在离线猜测等弱点;文献[8]提出了另一种改进协议,虽然能抵抗Hsieh分析,但不能抵抗E的假冒而进行猜测攻击。
2 改进的SAKA协议算法
基于Diffie?Hellman算法、SAKA协议思想,通过两次Diffie?Hellman算法生成一个临时共享密钥和一个双方之间的会话密钥,并进行双向认证。生成的第一个共享密钥称为临时辅助共享密钥,产生的第二个共享密钥称为A与B之间的会话密钥。
本协议共分为三个阶段:
(1) 雙向认证因子注册阶段,其中双向认证因子是实体A与B双方共同具有的某一特性标识,或者双方都认可的某一特性标识;
(2) 临时辅助共享密钥生成阶段;
(3) 会话密钥生成以及双向认证与验证阶段。
2.1 双向认证因子注册阶段
通过安全信道注册一个双方认可的双向认证因子,用表示双向认证因子,此因子是静态的,且具有惟一性和认可性。注册的双向认证因子明文本身不参与认证与验证,而是经过一个单向函数[8]转换成一个随机数值参与认证与验证。
2.2 临时辅助共享密钥生成阶段
基于第一次用Diffie?Hellman协议生成本次临时辅助共享密钥,生成过程如下:
Step1: A选择两个随机整数并且发送给;
Step2: B收到A发送的消息后,选择两个随机整数,并且发送给A:
Step3: A收到B发送的消息后,判断收到的与自己原有的是否相等,相等则计算和发送{}给否则,协议终止;
Step4: B收到Step2中A发来的{},判断收到的与自己原有的是否相等,相等则计算和。否则,协议终止。
说明:当协议完成时,本阶段临时辅助共享密钥生成成功,这时系统消除由于整数都是随机选取,具有很好的随机性,因此也具有很好的随机性,而只是作为一个随机数值参与到认证与验证。而协议中的与只是作为保证A与B之间生成的临时辅助共享密钥相同而已,不会参与到后续协议的任何阶段中。
2.3 会话密钥生成以及双向认证与验证阶段
由注册与临时辅助共享密钥生成阶段可知,与都已知,且是静态,是动态随机。在本阶段还要求有一个单向函数,用表示。的主要作用是把静态的双向认证因子通过加入动态随机的转换为动态随机的双向认证因子,用表示动态随机双向认证因子,函数输入值相同时输出值也相同,输入值不同时,具有抗碰撞性。这样保证了A与B的双向认证因子同步进行。分别表示实体A与B的身份。
协议系统参数是一个大素数,是有限域的一个本原元,和是公开的。具体实施协议过程如下:
Step1: A计算再计算同时计算生成且与互质,并发送,给B;
Step2: B计算再计算同时计算生成且与互质,并发送给
Step3: A计算和并发送给B;
Step4: B计算和并发送给A;
Step5: A计算相等,则A确认对方通信的是B,即A认证B成功,否则失败;
Step6: B计算相等,则B确认对方通信的是A,即B认证A成功,否则失败。
当且仅当Step5和Step6同时成立时,则密钥为双方共享会话密钥。
2.4 攻击分析
由Hsieh分析可知,攻击者(E)可能在第(1)与第(4)步可以得到与第(2)步与第(3)步得到与不可能得到。所以能抵抗由Hsieh方法分析。
E假冒B与A通信,进行猜测攻击:
Step1: E得到。
Step2: E选择自己的一个数计算 发给A。
Step3: A收到E发来的消息后,计算,由于是E自己选取,很容易计算得到然后计算比较等式,这样E可以进行离线或在线猜测。一旦等式成立,则E攻击成功。但是由函数动态得到的是一个随机动态值,E不可能在线猜测成功,即使E能够攻击通信A或B得到静态的但是得不到临时辅助共享密钥生成阶段生成的(要得到就必须解离散对数),所以E不可能猜测得到故该协议能抵抗在线或离线猜测。
2.5 全安性分析
本文提出改进的SAKA算法的安全性主要依赖于离散对数困难问题,同时还充分利用了随机性以及单向函数的安全性。其安全性具体分析如下:
(1) 无论是生成的临时辅助共享密钥还是后面生成的双方共享会话密钥都依赖于离散对数困难问题,攻击者不可能得到这两次密钥。
(2) 虽然攻击者在临时辅助共享密钥生成阶段可以冒充A或B,生成一个替换临时辅助共享密钥但是攻击者没有双向认证因子以及转换后的动态随机双向认证因子则无法生成与从而有效地防止攻击者的冒充攻击和中间人攻击。
(3) 如果攻击者攻击静态的双向认证因子即使得到了但也无法得到创新性分析说明了E无法猜测得到。
(4) 由于是动态随机的,所以生成的都是动态随机的,这就有效阻止了对在线或离线猜测攻击。
(5) 由于是动态随机新鲜的,则都具有动态随机新鲜性,所以本协议能够保证前向的安全性。
3 安全性证明
本节给出所提协议的安全性证明,主要从协议的后两个阶段(临时辅助共享密钥生成阶段、会话密钥生成及双向认证与验证阶段)证明其安全性。
首先证明第二阶段的安全性:
第二阶段:由改进协议第二阶段可知,其安全性主要是基于Diffie?Hellman算法的安全,而对于实体A与B所选取的随机数在此阶段中只是判断A与B在本阶段协议完成之后,是否共享密钥的临时作用。对协议安全没有决定性作用。所以,本阶段的改进协议满足Diffie?Hellman的难解问题DDH,故攻击者要想得到是不可能的。
然后证明第三阶段的安全性:
第三阶段:由改进协议的第三阶段可知,协议的安全也是基于Diffie?Hellman难解问题,只要满足了Diffie?Hellman协议算法的要求即可,所以主要是证明双向认证动态因子是否满足真正伪随机,且已知是伪随机的,是单向函数。
不妨设事件分别为:表示是伪随机的,由定义1得:
表示是单向函数,由定义2得:
由于可知,事件是由事件同时发生才发生的,如果令表示事件则事件可表示为:。由此可知:
由于与是两个独立事件,因为是伪随机与是单向函数是相互独立的,所以由式(3)得到:
由式(1)~式(4)得到:即由此可见,对于每个概率多项式算法和有足够大的存在一个单向函数使得事件
满足:所以是一个真正伪随机数。由定理1可知具有抗选择密文攻击下不可区分,不可伪造等安全性。同理可证也是真正伪随机数,满足定理1。
由此可以得到是真正伪随机数。从改进协议第三阶段得到,通信实体A与B相互之间在网上传输与。由引理1可知,这些网上传输的消息满足DDH难解问题。
由两阶段的安全性证明可知,本文提出的协议安全性是基于DDH困难性假设的,也就是说如果DDH是困难的,则该协议在标准模型下是安全的。
4 结 论
本文研究随机密钥协商协议的可证明安全问题。首先分析密钥协商协议的相关算法,基于Diffie?Hellman协议提出随机密钥协商协议。该协议解决了SAKA及其改进协议的一些缺陷, 继承了SAKA及其改进协议的优点,并能抵抗猜测攻击;在协议中,应用动态双向认证因子认证方法和非时间同步技术,使得该协议适合OTP动态口令系统设计,从而解决了Diffie?Hellman协议算法以及它的改进协议SAKA,E?SAKA等算法的动态认证问题,解决了协商双方的时间非一致性问题。
参考文献
[1] DIFFIE W, HELLMAN M E. New directions in cryptography [J]. IEEE transactions on information theory, 1976, 22(6): 644?654.
[2] SEO D, SWEENEY P. Simple authenticated key agreement algorithm [J]. Electronics, 1999, 35(13): 1073?1074.
[3] 王圣宝,曹珍富,董晓蕾.标准模型下可证安全的身份基认证密钥协商协议[J].计算机学报,2007,30(10):1842?1852.
[4] 任勇军,王建东,王箭,等.标准模型下基于身份的认证密钥协商协议[J].计算机研究与发展,2010(9):1604?1610.
[5] JIANG Qi, MA Jianfeng, LU Xiang, et al. An efficient two?factor user authentication scheme with unlinkability for wireless sensor networks [J]. Peer?to?peer networking and applications, 2015, 8(6): 1070?1081.
[6] 任艳丽,谷大武.公钥密码方案的可证明安全性注记[J].计算机应用研究,2008,25(4):1130?1133.
[7] 杨炤璐,范磊,李建华.E?SAKA密钥协商算法[J].通信技术,2003(3):85?86.
[8] 李亚敏,李小鹏,吴果.身份认证的密钥交换算法[J].计算机工程,2006,32(12):171?172.
[9] BONEH D. The decision Diffie?Hellman problem [C]// Proceedings of 1998 the Third Algorithmic Number Theory Symposium. Berlin: Springer, 1998: 48?63.
[10] HSIEH B T, SUN H M, HWANG T. Cryptanalysis of enhancement for simple authentication key agreememt algorithm [J]. Electronics letters, 2002, 38(1): 20?21.
[11] 德尔夫斯,克内贝尔.密码学导引:原理与应用[M].肖国镇,张宁,译.北京:清华大学出版社,2008.