Page 266 - 《软件学报》2020年第10期
P. 266
3242 Journal of Software 软件学报 Vol.31, No.10, October 2020
1 i
2 i
● TestPair (U 1 1 i ,U 2 2 i ) : 如果 U 和 U 没有生成相同的会话密钥,则返回⊥;否则,抛掷一枚均匀的硬币 b∈
1
2
2 i
1 i
{0,1}.若 b=1,输出U 和U 共享的会话密钥;若 b=0,输出与会话密钥等长度的随机比特串.
2
1
最终,A输出一个比特 b′作为 TestPair 中的随机比特 b 的猜测,若 b′=b,则认为攻击者攻击成功,并记为
Succkp.相应地定义攻击者A的优势为 Adv kp () = A 2Pr[Succ ] 1.− 若对所有的 PPT 攻击者A,其优势是安全参数
, PD kp
的可忽略函数,则称协议 P 相对于诚实但好奇的服务器能够保证会话密钥的私密性.
3 一个基于验证元的 3PAKE 协议的安全缺陷
本节我们首先回顾杨等人 [29] 提出的基于验证元的三方 PAKE 协议(简记为 Yang-V3PAKE 协议)的详细步
骤,然后提出了针对 Yang-V3PAKE 协议的离线字典攻击.
3.1 杨等人提出的协议
Yang-V3PAKE 协议采用了文献[24]中给出的口令哈希机制的具体构造,其中,参数生成算法 PSetup 输出为
(p,G,g,h),G 是阶为素数 p 的循环群,g、h 是其中两个独立生成元.预哈希值生成算法 PPreHash 的输出为
P = g P s π⋅ , 哈希算法 PHash 的输出为 H = (H H 2 ) = (g P s ,P h⋅ s H ).
,
1
假设用户 A 和用户 B 想要在服务器 S 的协助下进行安全的密钥交换,其中,A 和 B 分别拥有口令 π A 和 π B ,
服务器 S 拥有相应验证元 (s H A ,H 1A ,H 2 A ) 和 (s H B ,H 1B ,H 2B ), 则 Yang-V3PAKE 协议的具体步骤如下.
*
(1) 服务器 S 选择两个 随机数 ss ∈ Z p , 分别 计算 T = A h A s ,T = A * T A (H h − s H A ) 和 T = h B s , T =
,
2 A
B
B
B
A
R
*
*
,
TH h − s H B ), 然后发送消息 (TH 1A ) 给用户 A,发送消息 (TH 1B ) 给用户 B;
(
,
2B
A
B
B
*
,
(2) 用户 A 收到消息 (TH 1A ) 后,运行平滑投射哈希密钥生成算法 HashKG,生成哈希密钥 hk = (,η η
,
1
2
A
π
π μ
μ
,, ), 计算 ω
θ μγ A h ,ω = * A = h H 1A A ,T = A T A * / H 1A A ,ω AS = T A μ , 并利用 ω AS 计算 MAC 认证值 σ AS = MAC ω AS (||A B || ||S
π
*
*
ω * A ), 然后选择随机数 r ∈ Z 计算 e = h H 1A A 并向服务器发送消息 (,e ωσ AS ); 类似地,用户 B 收到消息 (,T
A r
,
p
A
B
R
A
′′
,, ,)μ γ
H 1B ) 后,选择随机哈希密钥 hk′ = ( ,η ηθ ′ ′ ′ 和随机数 r ∈ Z p , 计算 ωω * B ,T B ,ω BS ,σ BS , ,e′ 并向服务器发送
,
2
1
B
B
R
′
消息 (,e ωσ BS ).
*
,
B
′
*
(3) 服务器 S 接收到消息 (,e ωσ AS ) 和 (,e ωσ BS ) 后,首先计算 ω A ω = * A /(Hh − s H A ), ω AS =ω A A s 和 ω = ω B * /
*
,
,
B
B
A
2 A
(Hh − s H B ),ω BS =ω B B s , 然后验证 σ AS ,σ BS 的有效性.当验证都通过时,服务器计算 e AS = [/ (e Hh − s H A )] ⋅ B s Hh − s H B ,
2A
2B
2B
e BS = [/ (e′ H h − s H B )] ⋅ A s H h − s H A ,生成 MAC 值 λ AS = MAC ω AS (|| || ||A B S e AS ), λ BS = MAC ω BS (||A B || ||S e BS ), 接着
2 A
2B
向用户 A 和 B 分别发送消息 (e AS ,e BS ,λ AS ) 和 (e BS ,e AS ,λ BS ).
θγ
1 η
(4) 用户 A 收到消息 (e AS ,e BS ,λ AS ) 后,首先验证 MAC 值 λ AS 是否有效.验证通过后,计算 hp = g g c ω AS ,
2
1
1
η
hp = g d γ , l = (, ,A B hp ),u = 1 g 1 A r ,u = 2 g 2 A r ,v = (cd ξ ) ,ξ = A r H k ( , ,l u e AS ), 然后,用户 A 给用户 B 发送消息 hp = (hp
,
2
1
2
1
hp ), C = (,u u ,e , )v ;类似地,用户 B 收到消息 (e ,e ,λ ) 且 λ 验证通过后,相应的计算并发送消息 hp′ =
2 AS 1 2 AS BS AS BS BS
′′
(hp hp′ , ′ ), C = (,u u ,e , )v′ 给用户 A.
1 2 BS 1 2 BS
A r
(5) 用户 A 和 B 收到对方发送的消息后,分别计算 sk = ()u′ 1 η ξ + ′ η 2 ( ) (u′ θ e / H π A μ ) ( ) (v′ γ hp hp′ ′ ξ ) ,sk =
A 1 2 BS 1A 1 2 B
B r
u 1 η ξ′ η 2 ′ +⋅ u θ (e / H π B μ ′ ) v γ ′ (hp hp ξ ′ ′ ) , 根据平滑投射哈希函数的性质可以保证 sk A =sk B .
1 2 AS 1B 1 2
文献[29]声称,Yang-V3PAKE 协议能够提供会话密钥的语义安全性、前向安全性、针对服务器的密钥私密
性,还能够抵抗不可测在线字典攻击和服务器泄露攻击.根据安全模型的定义,协议满足语义安全性是指攻击者
β
成功的优势至多为 (O q s / 2 ) negl+ ( ),k 其中,q s 为攻击者进行在线字典攻击的次数,这意味着攻击者不能针对协
议实施离线字典攻击.
3.2 对Yang-V3PAKE协议的攻击和分析
本小节首先给出对 Yang-V3PAKE 协议的离线字典攻击.我们注意到,文献[29]中假设攻击者 A 完全控制着