范文一:Diffie-Hellman密钥交换协议
Diffie-Hellman Method
Diffie-Hellman :一种确保共享 KEY 安全穿越不安全网络的方法,它是 OAKLEY 的一个组成部分。
Whitefield 与 Martin Hellman在 1976年提出了一个奇妙的密钥交换协议,称 为 Diffie-Hellman 密钥交换协议 /算法 (Diffie-Hellman Key Exchange/Agreement Algorithm) 。这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称 密钥。然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议 /算 法只能用于密钥的交换, 而不能进行消息的加密和解密。 双方确定要用的密钥后, 要使用其他对称密钥操作加密算法实际加密和解密消息。
缺点
然而,该技术也存在许多不足:没有提供双方身份的任何信息。它是计算密 集性的, 因此容易遭受阻塞性攻击, 即对手请求大量的密钥。 受攻击者花费了相 对多的计算资源来求解无用的幂系数而不是在做真正的工作。 没办法防止重演攻 击。 容易遭受中间人的攻击。 第三方 C 在和 A 通信时扮演 B ; 和 B 通信时扮演 A 。 A 和 B 都与 C 协商了一个密钥, 然后 C 就可以监听和传递通信量。 中间人的攻击 按如下进行:B 在给 A 的报文中发送他的公开密钥。 C 截获并解析该报文。 C 将 B 的公开密钥保存下来并给 A 发送报文,该报文具有 B 的用户 ID 但使用 C 的 公开密钥 YC ,仍按照好像是来自 B 的样子被发送出去。 A 收到 C 的报文后,将 YC 和 B 的用户 ID 存储在一块。类似地, C 使用 YC 向 B 发送好像来自 A 的报文。 B 基于私有密钥 XB 和 YC 计算秘密密钥 K1。 A 基于私有密钥 XA 和 YC 计算秘密密 钥 K2。 C 使用私有密钥 XC 和 YB 计算 K1, 并使用 XC 和 YA 计算 K2。 从现在开始, C 就可以转发 A 发给 B 的报文或转发 B 发给 A 的报文, 在途中根据需要修改它们 的密文。使得 A 和 B 都不知道他们在和 C 共享通信。
中间人攻击描述:
(1) Alice 公开发送值 a 和 p 给 Bob, 攻击者 Carol 截获这些值,随即把自己 产生的公开值发给 Bob 。
(2) Bob 公开发送值 a 和 p 给 Alice, 又被 Carol 截获,随即把自己产生的公 开值发给 Alice 。
(3) Alice 和 Carol 计算出两人之间的共享密钥 k1。
(4) Bob 和 Carol 计算出两人之间另一个的共享密钥 k2。
受到中间人 Carol 攻击后, Alice 用密钥 k1给 Bob 发送消息, Carol 截获后用 k1解密就可读取消息,然后将获得的明文消息用 k2加密(加密前对消息可能做 某些修改,即主动攻击) ,然后发给 Bob 。对 Bob 发给 Alice 的消息, Carol 用同 样的手法读取和修改。
造成中间人攻击得逞的原因是:DH 密钥交换算法不进行认证对方。利用数 字签名可以解决中间人攻击的缺陷
范文二:下一代密钥交换协议分析
下一代密钥交换协议分析
摘 要:介绍了第一代密钥交换协议, 并分析了它的缺点。 同时介绍了第二代交换协议 IKEv2和 JFK ,并做了对比。关键词: IPSec 密钥交换协议 JFK 安全关联 拒绝服务
TCP/IP互联网的先天缺陷主要源自 IP 协议的无连接、完全开放、无任何安全措施等特 性上,所以必须对 IP 协议进行安全处理。在此背景下, 1992年年底, IETF 针对 Internet 的安全问题, 成立了 IP 安全小组, 着手对 IP 安全协议 (IPSec)和 Internet 密钥管理协议 (IKMP)进行标准化。 1998年 IETF 对 IPSec 进行了复审, 并将其纳入下一代 IP 即 IPv6中。 从此 IPSec 协议作为 IP 安全标准规范被确定下来。 IPSec 作为一种协议套件可以 “无缝 ”地 为 IP 引入安全特性,并提供数据源 /目的身份鉴别、数据完整性检查以及机密性保护机制, 保证协议和数据的安全。 由于 IPSec 提供的安全服务如源认证和完整性等都需要用到共 享密钥,所以协议还强制了一种机制,即能够为这些服务手工地添加密钥。同时,还定义了 一种添加密钥的标准方式,用来动态地鉴别 IPSec 通信参与方的身份和协商所需的安全服务 以及生成共享密钥。 这种密钥管理协议称为 IKE(Internet密钥交换协议 ) 。 1 第一代密钥交 换协议 现有的 IPsec 中采用的第一代密钥交换协议 IKE ,即 RFC2409-IKEv1。 ESP 、 AH 协 议根据 SA 规定的参数为 IP 数据报提供安全服务。 IKE 就是 IPsec 规定的用来自动管理 SA 的 协议,包括建立、协商、修改和删除 SA 等。 1.1 IKE的交换模式 IKE 使用了两个阶段的 ISAKMP 。第一阶段建立 IKE 安全关联,第二阶段利用这个安全关联,为 IPSec 协商具体的安 全关联。 有两种阶段 1交换、 一种阶段 2交换以及一个新组交换 (用于对安全关联的正确维护 ) 。 对阶段 1交换来说, IKE 采用的是身份保护交换, 以及根据基本 ISAKMP 文档制定的野蛮交换。 对此,分别叫做 “主模式 ”和 “野蛮模式 ”。对阶段 2来说, IKE 则 定义了一种快速交换模式, 其作用是为除 IKE 之外的其他协议协商安全服务 (特别是 IPSec) 。 为了最终建立 IKE SA,主模式有三个往返 (共使用六条消息 ) ,分别是模式协商、一次 Diffie-Hellman 交换和 nonce 交换以及对对方身份的鉴别。 主模式的特点包括身份保护和对 ISAKMP 协商能力的完全利用。由于在 Diffie-Hellman 交换之后,双方建立了一个共享的密 钥,只是没有通过验证,因此必须对共享的密钥进行认证。 IKE 规定了四种认证方式:基于 数字签名的认证、基于公开密钥的认证、基于修正过的公开密钥的认证以及预共享认证。所 以就有四种类型的主模式交换。 野蛮模式只需用到主模式一半的步骤。由于对消息的数 量进行了限制,野蛮模式同时也限制了它的协商能力,而且不提供身份保护功能。 当通 过阶段 1建立好 IKE SA 之后, 可以用快速模式为其他安全协议 (如 IPSec) 生成相应的 SA , 并 将其填入 SADB 。对一次快速模式交换来说,它是在以前建立好的 IKE SA的保护下完成的, 这些保护包括对快速模式交换的加密和对交换的鉴别。 1.2 IKEv1的缺点 IKEv1的主要缺 点是:(1)算法复杂。 (2)往返消息数目太多 (多达 9条消息 ) , 不安全。 (3)易受 DoS 攻击。 这是因为响应者具有有限的内存和计算能力。 攻击者可以通过随机 IP 地址发送虚假连接请求, 用尽响应者进程中用于连接的内存,以及用于加密的计算能力。这样响应者就无法为合法的 用户提供服务。 2 下一代 IKE 协议 IKE 协议用于交换和管理密钥,但是 IETF 安全专家 担心 IKEv1过于复杂,以至于难以证明它是安全的。因此推荐新的协议来代替 IKEv1,并将 其称为下一代 IKE(Son of IKE)。现在专家正在研究的有 IKEv2和 JFK(Just Fast Keying)。 2.1 IKEv2 IKEv2是在 IKEv1的基础之上进行改进的结果。它保留了版本 1中的大部分特 性, 如身份隐藏、 PFS 、 两个阶段协商, 同时重新设计了强壮性、 高效性、 安全性。 2.1.1 IKEv2的特点 IKEv2的特点包括:(1)简单性。基于 IKEv1的协议复杂度及安全性而提出。取消 了阶段 1中的野蛮模式。 (2)减少了潜伏期。 阶段 1交换只需要 2个往返的消息对, 。 建立 IPsec SA 不是通过阶段 2来协商,而是搭载阶段 1的消息而建立。 (3)允许无状态 cookie 。这样可 以预防 DoS 的攻击, 响应者在没有接收到合法的 cookie 之前, 将不保留 cookie 的任何状态,
也不做任何耗时的计算。 (4)增强了灵活性。增加了选择符 TS 和 “紧要 ”比特的 概念。
2.1.2 IKEv2协议 阶段 1交换是 4条消息的交换 (两个请求 /响应对 ) 。第一对消息,交换 协商加密算法、 (可选的 ) 指示信任的 CA 名字、交换的 nonce 和 Diffie-Hellman 交换。如果 响应者指示没有一个机密建议是可以接受的,或者发起者选择的 Diffie-Hellman 组不是响 应者选择的组,或者当响应者正在遭受攻击并且将用只包含一个合法的 cookie 值来响应 IKE-SA 请求时,这对消息可以重发。 第二对消息,认证先前的消息,交换鉴定符和证书 并且建立第一个 IPsec SA 。这对消息是通过第一对交换的密钥来加密,因此可隐藏身份以防 止偷听。 阶段 2是一个请求 /响应对, 。
消息 1很简单,假定发起者知道响应者可以接受的一个组。它包含了一个组信息 (Diffie-Hellman值 ) 和一个 nonce 。这里, nonce 有两个作用。一方面允许在不同会话间使 用同一个值,从而确保会话密钥是不同的,另一方面可以区分不同的并行会话。 消息 2对响应者的工作量要求很小。惟一的花费是单一的认证,同时响应者不需要产生任何状态, 因为此时不知道发起者是否为一个合法的通信者。 这样可以抵抗 DoS 攻击。 消息 3包含了发 起者的身份、服务请求以及在 nonce 和响应者身份上的签名。 JFK 中参与者使用共享密钥加 密身份,这样保证双方身份不被窃听。首先显示身份的是发起者,响应者在查证了发起者的 身份之后才显示身份,这样保护了响应者的身份不受主动的攻击。 消息 4包含应用设置 的信息 (例如响应者的 SPI) 、双方 nonce 和幂上的签名。与消息 3一样,消息 4也使用消息 认证代码保护。 2.3 三种密钥交换协议的对比 三种密钥交换协议的对比如表 1~表 3所 示。
IKEv2是在 IKEv1的基础上发展而来, 因此不可避免地具有了 IKEv1的一些固有的特征, 如两个阶段交换等。同时上边列出的数据还显示 IKEv1和 IKEv2在身份隐藏和参数协商上具 有相似性。惟一的区别在于对消息的控制, IKEv2减少了消息的往返次数。
IKEv2的阶段 2交换, 频繁地重新交换密钥将消耗掉 Diffie-Hellman 密钥的熵, 因此应 该限制阶段 2的次数。 另一个问题是它的安全性极大依赖于 Diffie-Hellman 幂的随机性。 所 以要保证它的安全性必须有一个很大的随机发生器或者合适的伪随机源。 而 JFK 是一个 新的协议, JFK 消除了协商机制。响应者提供了一种服务,有权利设置自己的服务需求,任 何由响应者提到的原始的机密是可以接受的。同样消除了响应者要保持的状态,发起者可以 接受响应者的请求或者重新启动协议。 JFK 抛弃了两个不同阶段的概念。由于快速模式 的作用是十分有限的,而且频繁的重新交换密钥是没有必要的,所以正确的方法应该是重新 替换密钥。 JFK 以上两点的特性,使其效率有很大程度的提高。另外,通过分析协议安 全性的方法分析,证明了 JFKi 和 JFKr 的安全性。 3 结束语 IKEv2具有 IKE 中的特征, 因此提供商开发时可以先使用 IKE 过渡到 IKEV2的实现。同时 JFK 核心小,并且改进了正式 的安全分析。 JFK 是如此简单以至于提供商能够相当快速地开发出来。 JFK 具有更强的抵制 DoS 攻击的能力。为了保护交换的消息, JFK 取消了 PFS ,一种方法确保一个密码破解的时候 不会危及到其他数据。 所以, JFK 要优于 IKEv2。 在我们的实验中, 采用 JFK 来替代 IKE 。 JFK 在安全路由器中已经实现, 其功能能够和 IPsec 无缝地协作, 实现了数据包的安全传输, 并且运行稳定可靠。
范文三:SM9标识密码算法--密钥交换协议
SM9标识密码算法 第 3部分:密钥交换协议
目 次
1术语 ............................................................................................................................................................... 2 2符号 ............................................................................................................................................................... 3 3算法参数与辅助函数 ...................................................................................................................................4 3.1总则 ....................................................................................................................................................... 4 3.2系统参数组 ........................................................................................................................................... 4 3.3系统加密主密钥和用户加密密钥的产生 .......................................................................................... 4 3.4辅助函数 ............................................................................................................................................... 4 3.4.1概述 ............................................................................................................................................... 4 3.4.2密码杂凑函数 ............................................................................................................................... 4 3.4.2.1密码杂凑函数 H
v
() ................................................................................................................. 5
3.4.2.2密码函数 H
1
() ......................................................................................................................... 5
3.4.2.3密码函数 H
2
() ......................................................................................................................... 5 3.4.3密钥派生函数 ............................................................................................................................... 5
3.4.4随机数发生器 ............................................................................................................................... 6
4密钥交换协议及流程 ...................................................................................................................................6 4.1密钥交换协议 ....................................................................................................................................... 6 4.2密钥交换协议流程 ............................................................................................................................... 7
1
SM9标识密码算法
第 3部分:密钥交换协议
本部分规定了用椭圆曲线对实现的基于标识的密钥交换协议, 并提供了相应的流程。 该协议可以使 通信双方通过对方的标识和自身的私钥经两次或可选三次信息传递过程, 计算获取一个由双方共同决定 的共享秘密密钥。该秘密密钥可作为对称密码算法的会话密钥。协议中选项可以实现密钥确认。
1术语
1.1
密钥交换 key exchange
在通信实体之间安全地交换密钥的方案, 可以使通信双方在非安全通信线路上为信息传送安全地交 换密钥。
1.2
密钥协商 key agreement
多个用户之间建立一个共享秘密密钥的过程,并且其中的任何一个用户都不能预先确定该密钥的 值。
1.3
从 A 到 B 的密钥确认 key confirmation from A to B
使用户 B 确信用户 A 拥有特定秘密密钥的保证。
1.4
密钥派生函数 key derivation function
通过作用于共享秘密和双方都知道的其它参数,产生一个或多个共享秘密密钥的函数。
1.5
发起方 initiator
在一个协议的操作过程中发送首轮交换信息的用户。
1.6
响应方 responder
在一个协议的操作过程中不是发送首轮交换信息的用户。
2
3
1.7
加密主密钥 encryption master key
处于标识密码密钥分层结构最顶层的密钥,包括加密主私钥和加密主公钥,其中加密主公钥公开, 加密主私钥由 KGC 秘密保存。 KGC 用加密主私钥和用户的标识生成用户的加密私钥。在标识密码中, 加密主私钥一般由 KGC 通过随机数发生器产生,加密主公钥由加密主私钥结合系统参数产生。
1.8
标识 identity
可唯一确定一个实体身份的信息。 标识应由实体无法否认的信息组成, 如实体的可识别名称、 电子 邮箱、身份证号、电话号码、街道地址等。
1.9
密钥生成中心 key generation center;KGC
在本部分中,负责选择系统参数、生成加密主密钥并产生用户加密私钥的可信机构。
2符号
下列符号适用于本部分。
A, B :使用公钥密码系统的两个用户。
cf :椭圆曲线阶相对于 N 的余因子。
cid :用一个字节表示的曲线的识别符, 其中 0x10表示 F p (素数 p>2191) 上常曲线 (即非超奇异曲线 ) ,
0x11表示 F p 上超奇异曲线, 0x12表示 F p 上常曲线及其扭曲线。
de A :用户 A 的加密私钥。
de B :用户 B 的加密私钥。
e :从 ×到 的双线性对。
eid :用一个字节表示的双线性对 e 的识别符,其中 0x01表示 Tate 对, 0x02表示 Weil 对, 0x03表
示 Ate 对 ,0x04表示 R-ate 对。
:阶为素数 N 的乘法循环群。
:阶为素数 N 的加法循环群。
:阶为素数 N 的加法循环群。
g u :乘法群 中元素 g 的 u 次幂,即 ... u u g g g g =??? 个
, u 是正整数。 H v (), Hash () :密码杂凑函数。
H 1() :由密码杂凑函数派生的密码函数。
hid :在本部分中,用一个字节表示的加密私钥生成函数识别符,由 KGC 选择并公开。
ID A :用户 A 的标识,可以唯一确定用户 A 的公钥。
ID B :用户 B 的标识,可以唯一确定用户 B 的公钥。
KDF () :密钥派生函数。
N :循环群 、 和 的阶,为大于 2191的素数。
P pub-e :加密主公钥。
P 1:群 的生成元。
P 2:群 的生成元。
r A :密钥交换中用户 A 产生的临时密钥值。
4r B :密钥交换中用户 B 产生的临时密钥值。
SK A , SK B :密钥交换协议商定的共享秘密密钥。
ke :加密主私钥。
:由元素 P 生成的循环群。
[u ]P :加法群 、 中元素 P 的 u 倍。
??x :顶函数,不小于 x 的最小整数。例如, ????93. 8 , 77==。
??x :底函数,不大于 x 的最大整数。例如, ????83. 8 , 77==。
x ||y :x 与 y 的拼接, x 和 y 是比特串或字节串。
[x , y ]:不小于 x 且不大于 y 的整数的集合。
β:扭曲线参数。
3算法参数与辅助函数
3.1
总则 本部分规定了一个用椭圆曲线对实现的基于标识的密钥交换协议。 参与密钥交换的发起方用户 A 和 响应方用户 B 各自持有一个标识和一个相应的加密私钥, 加密私钥均由密钥生成中心通过加密主私钥和 用户的标识结合产生。用户 A 和 B 通过交互的信息传递,用标识和各自的加密私钥来商定一个只有他们 知道的秘密密钥, 用户双方可以通过可选项实现密钥确认。 这个共享的秘密密钥通常用在某个对称密码 算法中。该密钥交换协议能够用于密钥管理和协商。
3.2系统参数组
系统参数组包括曲线识别符 cid ;椭圆曲线基域 F q 的参数;椭圆曲线方程参数 a 和 b ;扭曲线参数 β(若 cid 的低 4位为 2) ; 曲线阶的素因子 N 和相对于 N 的余因子 cf ; 曲线 E (F q ) 相对于 N 的嵌入次数 k ; E (F q d 1)(d 1整除 k ) 的 N 阶循环子群 的生成元 P 1; E (F q d 2) (d 2整除 k ) 的 N 阶循环子群
的生成元 P 2;
双线性对 e 的识别符 eid ;(选项) 到 的同态映射 ψ。
双线性对 e 的值域为 N 阶乘法循环群 。
3.3系统加密主密钥和用户加密密钥的产生 KGC 产生随机数 ke ∈[1,N -1]作为加密主私钥,计算 中的元素 P pub-e =[ke ]P 1作为加密主公钥,则加 密主密钥对为 (ke , P pub-e ) 。 KGC 秘密保存 ke ,公开 P pub-e 。
KGC 选择并公开用一个字节表示的加密私钥生成函数识别符 hid 。
用户 A 和 B 的标识分别为 ID A 和 ID B 。为产生用户 A 的加密私钥 de A , KGC 首先在有限域 F N 上计算 t 1=H 1(ID A ||hid , N )+ke ,若 t 1=0则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用户的加 密私钥;否则计算 t 2=ke ? t 1-1,然后计算 de A =[t 2]P 2。为产生用户 B 的加密私钥 de B , KGC 首先在有限域 F N 上计算 t 3=H 1(ID B ||hid , N )+ke ,若 t 3=0则需重新产生加密主私钥,计算和公开加密主公钥,并更新已有用 户的加密私钥;否则计算 t 4=ke ? t 3-1,然后计算 de B =[t 4]P 2。
3.4
辅助函数 3.4.1概述
在本部分规定的基于标识的密钥交换协议中, 涉及到三类辅助函数:密码杂凑函数、 密钥派生函数 与随机数发生器。这三类辅助函数的强弱直接影响密钥交换协议的安全性。
3.4.2
密码杂凑函数
3.4.2.1密码杂凑函数 H v ()
密码杂凑函数 H v () 的输出是长度恰为 v 比特的杂凑值。本部分规定使用国家密码管理主管部门批准 的密码杂凑函数,如 SM3密码杂凑算法。
3.4.2.2密码函数 H 1()
密码函数 H 1(Z , n ) 的输入为比特串 Z 和整数 n , 输出为一个整数 h 1∈[1,n -1]。 H 1(Z , n ) 需要调用密码杂 凑函数 H v () 。关于密码杂凑函数 H v () ,应符合本部分 5.4.2.1的规定。
密码函数 H 1(Z , n ) :
输入:比特串 Z ,整数 n 。
输出:整数 h 1∈[1,n -1]。
步骤 1:初始化一个 32比特构成的计数器 ct =0x00000001;
步骤 2:计算 hlen =8??(5?(log2n ))/32?;
步骤 3:对 i 从 1到 ?hlen /v ?执行:
步骤 3.1:计算 Ha i =H v (0x01||Z ||ct ) ;
步骤 3.2:ct ++;
步骤 4:若 hlen /v 是整数,令 Ha ! ?hlen /v ?=Ha ?hlen /v ?,
否则令 Ha ! ?hlen /v ?为 Ha ?hlen /v ?最左边的 (hlen –(v ??hlen /v ?)) 比特;
步骤 5:令 Ha =Ha 1||Ha 2||???||Ha ?hlen /v ?-1||Ha ! ?hlen /v ?,将 Ha 的数据类型转换为整数;
步骤6:计算 h 1=(Ha mod (n -1))+1。
3.4.2.3密码函数 H 2()
密码函数 H 2(Z , n ) 的输入为比特串 Z 和整数 n ,输出为一个整数 h 2∈[1,n -1]。 H 2(Z , n ) 需要调用密码杂 凑函数 H v () 。关于密码杂凑函数 H v () ,应符合本部分 5.4.2.1的规定。
密码函数 H 2(Z , n ) :
输入:比特串 Z ,整数 n 。
输出:整数 h 2∈[1,n -1]。
步骤 1:初始化一个 32比特构成的计数器 ct =0x00000001;
步骤 2:计算 hlen =8??(5?(log2n ))/32?;
步骤 3:对 i 从 1到 ?hlen /v ?执行:
步骤 3.1:计算 Ha i =H v (0x02||Z ||ct ) ;
步骤 3.2:ct ++;
步骤 4:若 hlen /v 是整数,令 Ha ! ?hlen /v ?=Ha ?hlen /v ?,
否则令 Ha ! ?hlen /v ?为 Ha ?hlen /v ?最左边的 (hlen –(v ??hlen /v ?)) 比特;
步骤 5:令 Ha =Ha 1||Ha 2||???||Ha ?hlen /v ?-1||Ha ! ?hlen /v ?,将 Ha 的数据类型转换为整数;
步骤6:计算 h 2=(Ha mod (n -1))+1。
3.4.3密钥派生函数
密钥派生函数的作用是从一个共享的秘密比特串中派生出密钥数据。 在密钥协商过程中, 密钥派生 函数作用在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数 据。
密钥派生函数需要调用密码杂凑函数。
设密码杂凑函数为 H v () ,其输出是长度恰为 v 比特的杂凑值。
密钥派生函数 KDF (Z,klen ) :
5
6
输入:比特串 Z(双方共享的数据 ) ,整数 klen (表示要获得的密钥数据的比特长度,要求该值小于 (232-1) v ) 。
输出:长度为 klen 的密钥数据比特串 K 。
步骤 1:初始化一个 32比特构成的计数器 ct =0x00000001;
步骤 2:对 i 从 1到 ?klen /v ?执行:
步骤 2.1:计算 Ha i =H v (Z||ct ) ;
步骤 2.2:ct ++;
步骤 3:若 klen /v 是整数,令 Ha ! ?klen /v ?=Ha ?klen /v ?,
否则令 Ha ! ?klen /v ?为 Ha ?klen /v ?最左边的 (klen -(v ??klen /v ?)) 比特;
步骤4:令 K =Ha 1||Ha 2||???||Ha ?klen /v ?-1||Ha ! ?klen /v ?。
3.4.4随机数发生器
本部分规定使用国家密码管理主管部门批准的随机数发生器。
4密钥交换协议及流程
4.1密钥交换协议
设用户 A 和 B 协商获得密钥数据的长度为 klen 比特,用户 A 为发起方,用户 B 为响应方。 用户 A 和 B 双方为了获得相同的密钥,应实现如下运算步骤:
用户 A :
A1:计算群 1中的元素 Q B =[H 1(ID B ||hid , N )]P 1+P pub-e ;
A2:产生随机数 r A ∈[1,N -1];
A3:计算群 中的元素 R A =[r A ]Q B ;
A4:将 R A 发送给用户 B ;
用户 B :
B1:计算群 中的元素 Q A =[H 1(ID A ||hid , N )]P 1+P pub-e ;
B2:产生随机数 r B ∈[1,N -1];
B3:计算群 中的元素 R B =[r B ]Q A ;
B4:验证 R A ∈是否成立,若不成立则协商失败;否则计算群 中的元素 g 1=e (R A , de B ) , g 2
=2(, ) B r pub e e P P -, g 3=1B r g ,将 g 1, g 2, g 3的数据类型转换为比特串;
B5:把 R A 和 R B 的数据类型转换为比特串,计算 SK B =KDF (ID A ||ID B ||R A ||R B ||g 1||g 2||g 3, klen ) ; B6:(选项 ) 计算 S B =Hash (0x82||g 1||Hash (g 2||g 3||ID A ||ID B ||R A ||R B )) ;
B7:将 R B 、 (选项 S B ) 发送给用户 A ;
用户 A :
A5:验证 R B ∈是否成立,若不成立则协商失败;否则计算群 中的元素 g 1’ =2(, ) A r pub e e P P -,
g 2’ =e (R B , de A ) , g 3’ =(g 2’ ) A r ,将 g 1’ , g 2’ , g 3’ 的数据类型转换为比特串;
A6:把 R A 和 R B 的数据类型转换为比特串, (选项 ) 计算 S 1=Hash (0x82||g 1’ ||Hash (g 2’ ||g 3’ ||ID A ||ID B ||
R A ||R B )) ,并检验 S 1=S B 是否成立,若等式不成立则从 B 到 A 的密钥确认失败;
A7:计算 SK A =KDF (ID A ||ID B ||R A ||R B ||g 1’ ||g 2’ ||g 3’ , klen ) ;
A8:(选项 ) 计算 S A =Hash (0x83||g 1’ ||Hash (g 2’ ||g 3’ ||ID A ||ID B ||R A ||R B )) ,并将 S A 发送给用户 B 。 用户 B :
B8:(选项 ) 计算 S 2=Hash (0x83||g 1||Hash (g 2||g 3||ID A ||ID B ||R A ||R B )) ,并检验 S 2=S A 是否成立,若等 式不成立则从 A 到 B 的密钥确认失败。
4.2密钥交换协议流程
密钥交换协议流程如图1。
图 1密钥交换协议流程
7
范文四:一个简便的三方密钥交换协议
一个简便的三方密钥交换协议
【摘要】 基于口令认证的三方密钥交换协议 (3PAKE ) 是使通信双方在认证 服务器的帮助下能相互进行认证并建立一个会话密钥。 在本论文中, 我们提出了 一个通过增强口令而不需服务器中间加密的简单的基于口令认证的三方密钥交 换协议。 通过这种方式, 每个客户端只共享一个值得信赖的服务器通用密码, 任 何两个客户端通过服务器的介入可以验证彼此并交换会话密钥。相比以前的协 议,我们所提出的协议无需加密密码且更有效率、更方便。
【关键词】口令攻击;口令;第三方协议;认证;密钥交换
1. 引言
密码验证协定(PAKE 关键交换)协议,是指用户和服务器之间共享口令或 口令的验证值, 服务器借此对用户进行身份的认证, 并协助用户完成会话密钥的 生成。 目的是通过各通信方的交互, 建立共同的会话密钥, 从而能够实现在不安 全信道上的安全通信。 设计一个安全的 PAKE 面临这样一个问题, 由密码是从一 个比较小的范围中选取的,这样的协议很容易受到字典攻击。 Bellovin and Merritt[1]在此基础上, 首次提出了两方的基于口令的密钥交换协议 (2PAKE ) 解 决了通信双方如何在不预先共享秘密的情况下协商会话密钥的问题, 开辟了公钥 密钥学的新方向。 加密的关键是通讯双方共同协商一个共享会话密钥, 然后使用 该会话密钥来加密所传送的消息。 自此, 基于口令的认证方式成为使用最普遍也 最方便的加密方式。 [9-11][2-3]但是 2PAKE 协议也存在弊端,由于 2PAKE 使用 的是 “ 用户一服务器 ” 模型, 用户所需要记忆的口令数会随着与它通信的用户数的 增加而增加, 这限制了协议在实际中的应用。 例如在大型通信环境中采用 2PAKE 将导致 “ 用户 — 用户 ” 之间的密钥管理非常的复杂。 为了解决这个问题, 一些第三 方密钥验证协议(3PAKE ) [4-7]随即被提出。在一个 3PAKE ,每个用户只需要 与一个可信的服务器(TS )共享一个简单口令,可信服务器认证通信双方并帮 助持有不同口令的通信方生成会话密钥。 1995年, Steiner 等 [1]开发出一种基于 Diffie-Hellman (DH )密匙交换概念的 3PAKE 协议,与 Bellovin 和 Merrit 的协 议相比,其交互轮数与验证元数目都有效的减少,系统的运算效率更高。之后, Ding 和 Horster[5]等。 指出 Steiner 等的协议无法检测出在线猜测密码攻击, 并提 出了一种改进的方案来解决这个安全漏洞。 Lin 等在文献 [6]证明 Steiner 等的协 议无法抵御连续的恶意程序调用离线猜测密码攻击。为解决这个的缺陷, Lin 等 使用公共密钥加密技术来构建他们的补救措施, 以提高密钥协议的安全性。 然而, 公共密钥技术无论是通信开销或是计算开销都很大。 为了提高协议性能, 文献 [7]中,作者提出了不使用公钥加密的 3PAKE 协议,但也需要使用到一个密码作为 验证密码。
在本文中,我们提出了一个简便的 3PAKE[8]。与以前的 3PAKE 协议相比, 我们的协议是更加高效、便捷的自协议且不需要加密密码。
2. 预备知识
范文五:一种强安全性的多密钥交换协议
一种强安全性的多密钥交换协议
程庆丰 程庆丰, , 王向宇 王向宇, , 张世武
(解放军外国语学院基础部,河南 洛阳 471003)
摘 要 :当前的两方多密钥交换协议都不能抵抗临时密钥泄露攻击。针对该问题,基于双线性对提出一种新的两方认证密钥交换协议。协 议中参与会话的 2个用户通过一次会话可以生成 4个不同的会话密钥。分析结果表明,该协议可以抵抗临时密钥泄露攻击,与已有同类协 议相比,具有更强的安全性,能实现双向认证功能。
关键词 关键词::密钥交换;双向认证;临时密钥泄露攻击;长期密钥泄露伪装攻击
Multiple Key Exchange Protocol with Strong Security
CHENG Qing-feng, WANG Xiang-yu, ZHANG Shi-wu
(Department of Basic Courses, PLA University of Foreign Languages, Luoyang 471003, China)
【 Abstract 】 All existing two party multiple key exchange protocols cannot resist ephemeral key compromise attack. To solve this problem, a new two party authenticated key exchange protocol based bilinear map is proposed for enhancing the security and efficiency of two party key exchange protocols. Four different session keys can be computed through one session of the proposed protocol. Compared with existing protocols, the new protocol with stronger security can resist ephemeral key compromise attack and provide mutual authentication.
【 Key words】 key exchange; mutual authentication; ephemeral key leakage attack; long-term key leakage impersonation attack DOI: 10.3969/j.issn.1000-3428.2011.22.034
计 算 机 工 程 Computer Engineering 第 37卷 第 22期
V ol.37 No.22 2011年 11月
November 2011
·安全技术 安全技术·· 文章编号 文章编号::1000— 3428(2011)22— 0110— 02 文献标识码 文献标识码::A
中图分类号 中图分类号::TP309.7
1 概述
2001年,文献 [1]提出了一种新型两方密钥交换协议 (简称
HL 协议 ) ,该协议中通信双方通过一次会话可以同时生成 4个不同的会话密钥。 2003年,文献 [2]指出 HL 协议不能抵 抗未知密钥共享攻击,并且建议在通信的签名消息中增加通 信双方的用户身份用以抵抗未知密钥共享攻击。然而,文 献 [3]提出 Shim 的攻击是不可行的,并指出 HL 协议不能抵 抗基本的假冒攻击,即攻击者可以成功地冒充合法用户欺骗 其他合法用户与之生成共享的会话密钥。
文献 [4]基于双线性对提出一种与 HL 协议类似的两方认 证多密钥交换协议。文献 [5]证明了 Lee 等设计的协议不能抵 抗假冒攻击,并且没有实现真正的双向认证,同时,提出了 改进的协议。但是,实际上通过分析可以发现,改进协议仍 然无法实现真正的双向认证。除此之外,目前存在的两方多 密钥交换协议都没有考虑临时密钥泄露对协议安全性的影 响。虽然文献 [6]中的协议具有强安全性且可以抵抗临时密钥 泄露攻击,但是该协议不能满足一次会话生成多个会话密钥 的需求。
本文基于双线性对提出一种新的两方多密钥交换协议, 新协议可以实现双向认证, 并且能够抵抗临时密钥泄露攻击。
2 预备知识
设 p 和 q 是 2个大的素数,满足 |1q p ?, 1G 表示阶为素 数 q 的加法交换群,元素 1P G ∈表示群 1G 的一个生成元, 2
G 表示阶为素数 q 的乘法交换群, *
q Z 表示集合 {1,2, , 1}q ?L 。
定义 1 如果 112?:e
G G G ×→满足下列条件: (1)双线性性, 对任意 1, Q W G ∈和 *
, q
a b Z ∈, 有 ?(, ) e aQ bW = ?(, ) ab e
Q W ; (2)非退化性, 存在 2个元素 1, Q W G ∈, 使得 ?(, ) 1e Q W ≠;
(3)可计算性,对所有的 1, Q W G ∈,存在有效的算法计算
?(, ) e
Q W ; 则称 112?:e
G G G ×→为群 1G 到群 2G 的双线性对。 定义 2(Computational Diffie-Hellman Assumption, CDH
假设 ) 对于任意 *
, q a b Z ∈,给定 , , P aP bP ,计算 1abP G ∈是困 难的。
定义 3(Bilinear Diffie-Hellman Assumption, BDH 假设 )
对于任意 *
, , q a b c Z ∈,给定 , , , P aP bP cP ,计算 ?(, ) abc W e
P P =∈ 2G 是困难的。
3 本文协议
设 τ是系统的安全参数, 一般可取 (2) q
O τ=。 123, , , H H H
4H 是 4个独立的随机预言,其中, **
14, :{0,1}q H H Z →;
*231, :{0,1}H H G →。参与会话的用户 A 具有身份标识 A ID 和
长期私钥 A sk 以及长期公钥 A A pk sk P =。用户 B 具有身份标 识 B ID 和长期私钥 B sk 以及长期公钥 B B pk sk P =。
新协议步骤如下:
步骤 1 用户 A 首先随机选择 2个临时密钥值 1, A esk
*
2A q esk Z ∈,然后计算 111(, ) A A a H esk sk =, 212(, ) A A a H esk sk =,
再计算临时 (1,2) i i X a P i ==以及 1212(, , , ) A B A H X X ID ID =,并 生成签名消息 11A Auth sk A =, 最后发送消息 121(, , , , ) A B X X Auth 给用户 B 。
步骤 2 用户 B 收到用户 A 发送的消息后,首先计算值
1212(, , , ) A B B H X X ID ID =,然后判断 1?(, ) A e
pk B 与 1?(, ) e P Auth 是 基金项目 基金项目::国家“ 863”计划基金资助项目 (2009AA01Z417) 作者简介 作者简介::程庆丰 (1979-) , 男, 讲师、 博士, 主研方向:信息安全, 密码学;王向宇,助教、硕士;张世武,教授
收稿日期 收稿日期::2011-04-28 E-mail :qingfengc2008@sina.com
第 37卷 第 22期 111
程庆丰,王向宇,张世武:一种强安全性的多密钥交换协议 否相等。如果 2个对 1?(, ) A e
pk B 与 1?(, ) e P Auth 不相等,则放弃 本次会话的运行;否则,用户 B 随机选择 2个临时密钥值
*
12, B B q
esk esk Z ∈, 然后计算 111(, ) B B b H esk sk =, 212(, B b H esk = ) B sk , 再 计 算 (1,2) i i Y b P i ==以 及 231212(, , , , , B B H Y Y X X ID = ) A ID ,并生成签名消息 22B Auth sk B =,计算并保存本次会话
的 4个会话密钥如下:
1411241234214422(()(), ) (()(), )
(()(), ) (()(), )
BA
B A BA
B A BA
B A BA
B A SK H b sk X pk sid SK H b sk X pk sid SK H b sk X pk sid SK H b sk X pk sid =++=++=++=++
其中, 1212(, , , , , ) A B sid ID ID X X Y Y =为本次会话的会话标识, 最 后发送消息 122(, , , , ) B A Y Y Auth 给用户 A ,并结束本次会话。
步骤 3 用户 A 收到用户 B 发送的消息后, 首先计算 2A =
31212(, , , , , ) B A H Y Y X X ID ID ,
然后判断 2?(, ) B e pk A 与 2?(, ) e P Auth 是 否相等。如果 2个对 2?(, ) B e
pk A 与 2?(, ) e P Auth 不相等,则放弃 本次会话的运行;否则,计算并保存本次会话的 4个会话密 钥如下:
1411242134124422(()(), ) (()(), )
(()(), ) (()(), )
AB
A B AB
A B AB
A B AB
A B SK H a sk Y pk sid SK H a sk Y pk sid SK H a sk Y pk sid SK H a sk Y pk sid =++=++=++=++
其中, 1212(, , , , , ) A B sid ID ID X X Y Y =为本次会话的会话标识, 最 后结束本次会话。
定理 (协议正确性 ) 如果协议被诚实执行,则参与协议运 行的用户 A 和用户 B 生成相同的 4个会话密钥。
证明:以第 1个会话密钥为例,证明用户 A 和用户 B 生 成的会话密钥是相同的。由双线性对性质,有:
14114114111
411 (()(), ) (()() , ) (()() , ) (()(), ) AB
A B A B B A B A BA
SK H a sk Y pk sid H a sk b sk P sid H b sk a sk P sid H b sk X pk sid SK =++=++=
++=
++=
因此,若本文协议被诚实执行,则参与会话的用户 A 和 用户 B 生成的第 1个会话密钥是相等的。可类似证明用户 A 和用户 B 共享的其余 3个会话密钥也是对应相等的。
4 安全性分析
安全性存在如下性质:
(1)未知密钥共享安全性 (UKSR)。 本文协议中实现了双向 认证的功能,因此,参与协议会话运行的用户可以确定进行 密钥交换的用户就是想要通信的意定方,并且在 4个会话密 钥的生成中都加入了参与会话运行的用户的身份。这表示本 文协议可以抵抗未知密钥共享攻击。
(2)已知会话密钥安全性 (KKSR)。 本文协议中参与会话的 用户计算会话密钥需要加入 12, a a 或者 12, b b 进行相应的计算, 而用户每次会话计算的 12, a a 和 12, b b 都是由随机选取的临时 私钥与长期私钥进行哈希绑定计算得来的。又由于协议中 4个会话密钥是由随机预言机生成的,而由随机预言机的性 质可知会话密钥发生碰撞的概率是可忽略的,因此本文协议 中不同会话生成的会话密钥以及相同会话生成的 4个会话密 钥相同的概率也是可忽略的,即本文协议可以抵抗已知会话 密钥攻击。
(3)临时密钥泄露安全性 (EKCR)。 本文协议中即使参与会 话的 2个用户的临时私钥同时泄露,也不会影响所生成的 4个 会 话 密 钥 的 安 全 性。 这 是 因 为 会 话 密 钥 计 算 中 包 含 i A a sk +或者 (1,2) i B b sk i +=,而用户每次计算 12, a a 和 12, b b 都
是由临时私钥与长期私钥进行哈希绑定计算得来的,因此, 即 使 攻 击 者 知 道 临 时 私 钥 而 不 知 道 长 期 私 钥 是 无 法 计 算
i A a sk +或者 (1,2) i B b sk i +=的,
也就是本文协议可以抵抗临时 密钥泄露攻击。
(4)长期私钥泄露伪装攻击安全性 (KCIR)。本文协议中会 话密钥计算需要同时具有某一方的 , i A a sk 或者 , (1,2) i B b sk i =才能进行,因此,攻击者即使知道某一方的长期私钥或者同 时知道两方的长期私钥仍然无法计算对应会话的会话密钥。 这表示本文协议具有长期私钥泄露伪装安全性。
(5)完 善 前 向安全 性 (PFS)。本文 协议 中加 入认证 消息 1Auth , 2Auth 实现了参与会话的 2个用户的显式认证, 并由性 质 (4)可知攻击者知道 2个用户的长期私钥仍然无法计算会话 密钥。因此,本文协议具有完善前向安全性。
(6)抗密钥控制 (KCR)。本文协议中会话密钥的计算加入 了参与会话的 2个用户随机选取的临时密钥与长期密钥的哈 希值, 没有哪个用户在会话开始前可以预先确定会话密钥值。
(7)双向认证 (MA)。 本文协议中加入认证消息 12, Auth Auth 实现了参与会话的 2个用户的显式认证,参与会话的 2个用 户通过验证认证消息,可以确定参与此次会话的用户是否是 意定通信方。因此,本文协议具有双向认证性。
表 1给出了本文协议与文献 [4-5]中所给类似协议的安全 性能方面的比较。 “ Y ”表示具有该项安全性, “ N ”表示不具 有该项安全性。
表 1 安全性能比较
协议 UKSR MA EKCR KCIR PFS 文献 [4]协议 Y N N Y N 文献 [5]协议 Y N N Y N 本文协议
Y
Y
Y
Y
Y
5 结束语
本文提出一种新的两方多密钥交换协议。参与会话的用 户通过一次会话可以同时生成 4个不同的共享会话密钥。本 文协议可以抵抗已知会话密钥攻击、未知密钥共享攻击、临 时密钥泄露攻击、长期密钥泄露伪装攻击并具有完善前向安 全性。与已有同类协议相比,本文协议具有更强的安全性。
参考文献
[1] Harn L, Lin H Y . Authenticated Key Agreement Without Using
One-way Hash Functions[J]. Electronic Letters, 2001, 37(10): 629-630.
[2] Shim K. Unknown Key-share Attack on Authenticated Multiple-
key Agreement Protocol[J]. Electronic Letters, 2003, 39(1): 38-39. [3] Zhou Hongsheng, Fan Lei, Li Jianhua. Remarks on Unknown
Key-share Attack on Authenticated Multiple-key Agreement Protocol[J]. Electronics Letters, 2003, 39(17): 1248-1249. [4] Lee Narn-Yih, Wu Chien-Nan, Wang Chien-Chih. Authenticated
Multiple Key Exchange Protocols Based on Elliptic Curves and Bilinear Pairings[J]. Computers and Electrical Engineering, 2008, 34(1): 12-20.
[5] V o D L, Lee H, Yeun C Y , et al. Enhancements of Authenticated
Multiple Key Exchange Protocol Based on Bilinear Pairings[J]. Computers and Electrical Engineering, 2010, 36(1): 155-159. [6] 卞仕柱 , 王建东 , 任勇军 , 等 . 强安全高效的认证密钥交换协
议 [J]. 计算机工程 , 2010, 36(7): 136-138.
编辑 顾逸斐
转载请注明出处范文大全网 » Diffie-Hellman