Page 267 - 《软件学报》2020年第10期
P. 267
张启慧 等:改进的三方口令验证元认证密钥交换协议 3243
通信信道,可以窃听、插入、修改消息,或是创建、重发、转发消息.其次,Yang-V3PAKE 协议中服务器发送了第
1 轮消息,用户在收到消息后就利用口令对其进行运算计算得到第 2 轮的回复消息,且该回复消息中包含一个可
用于验证的 MAC 值.
假设用户 A 和用户 B 想要在服务器 S 的协助下进行安全的密钥交换,用户 A 和 B 的真实口令分别为 π A 和
π B .攻击者 A 按照如下方式对用户 A 的口令进行离线字典攻击.
(1) 攻击者 A 选择随机数 r 1 和 r 2 ,计算 T = A * h 1 r ,H 1A = h 2 r , 然后攻击者 A 冒充服务器 S 向用户 A 发送消息
*
,
TH .
1A
A
*
,
(2) 用户 A 收到消息 (TH 1A ) 后,将利用其真实口令 π A 进行下述运算.首先,运行平滑投射哈希密钥生成算
A
μ
π
法 HashKG 生成哈希密钥 hk = (,η ηθ 然后利用口令 π A 计算 ω A h μ ,ω = * A = h H 1A A = h μ + r π 2 A , T = T A * /
, , , ),μ ν
A
1
2
π
H 1A A = h 1 r − r π 2 A ,ω AS = T = A h μ (r − 1 r π μ 2 A ) , 并利用 ω AS 计算 MAC 认证值 σ AS = MAC ω AS (||A B || ||S ω * A ), 然后选择随机数
π
*
A r
r ∈ Z 计算 e = h H 1A A 并向服务器 S 发送消息 (,e ωσ AS ).
,
p
A
R
A
(3) 攻击者 A 拦截得到上述消息,逐个地穷举所有可能的口令 π ,然后利用这个猜测的口令计算
A
ω AS = (ω * A h ⋅ − r π 2 A ) ( − 1 r r π 2 A ) ,σ AS = MAC ω AS (||A B || ||S ω * A ), 并检验 σ AS = σ AS 是否成立,如果等式成立,则输出 π 当作
A
用户 A 的口令.
若攻击者猜测正确π =π ,则可得 ω = (ω * h − r π 2 A ) (r − 1 r π 2 A ) =(h μ r 2 A rπ − 2 A π+ ) ( − 1 r r π 2 A ) =ω ⋅ ,从而恰好成立σ = σ ,
A A AS A AS AS AS
证实了上述离线字典攻击的合理性.类似地,攻击者也可以对用户 B 的口令 π B 实施离线字典攻击进行猜测.且对
于每个猜测的口令,攻击者实施上述攻击所需的计算量为 7 次模指数运算、2 次模多指数运算以及 2 次 MAC
计算,是一个固定的值.因此,攻击者可以针对 Yang-V3PAKE 协议进行有效的离线字典攻击.由于抵抗离线字典
攻击是口令认证协议的基本安全目标,也是语义安全性等定义的基础,因此,Yang-V3PAKE 协议并没有达到其
宣称的安全性.
4 改进的基于验证元的 3PAKE 协议
鉴于 Yang-V3PAKE 协议是首个在标准模型下设计的基于验证元的三方 PAKE 协议,但是该协议并没有满
足三方 PAKE 的安全需求,本节中我们提出一个新的改进的基于验证元的三方 PAKE 协议,并在标准模型下对
所构造的协议进行严格的安全性证明.
4.1 协议描述
本节给出我们改进的基于验证元的 3PAKE 协议的详细设计,记为 I-V3PAKE 协议,该协议用到了文献
[11,21]中的 PAKE 的设计技术以及文献[25]中针对验证元的验证技术.
I-V3PAKE 协议用到了 CPA 安全的 ElGamal 公钥加密体制 PKE′ = (KG Enc Dec′ , ′ ) 和一个 CCA 安全的带
, ′
标签的公钥加密体制 PKE = (KG Enc Dec 记 ElGamal 公钥加密体制 PKE′所对应的公钥为 pk′ = (, ),g h 明文 m
,
).
,
所对应的 ElGamal 密文为 c ← Enc′ (pk′ , ; )m r = (u = g r ,e = h m⋅ r ), 记公钥加密体制 PKE 所对应的公钥为 pk.尽管
协议设计使用了公钥加密体制,但是并没有依赖公钥基础设施(PKI),只需如同文献[11]一样,将这两种加密算法
的公钥 pk′和 pk 当作协议运行环境设置中的公共参考串(CRS).
协议采用了如下代数口令哈希机制 PHS,其中, s =⊥ P ,P = g F ()π ,s = s ∈ H R {0,1} ,H = s F ()π , ( )F ⋅ 是从口令空间
k
到指数集 Z q 上的变换.定义语言
r
L , sH = {( , ) :u e ∃ , r π∃ ,u = g r ,e = h g F ()π ,H = s F ()π } (1)
并记 L = A L A s ,H A ,L = B L B s ,H B . 我们还利用文献[25]的技术构造了适应语言 L s,H 的平滑投射哈希函数 SPHF,来实现
在用户和服务器之间临时密钥交换的同时,适应用户拥有口令而服务器拥有验证元的条件.其中,哈希密钥为
hk=(x,y,z),投射密钥为 hp = (hp hp 2 ),hp = 1 g h y ,hp = 2 g s , 利用哈希密钥和投射密钥计算哈希值的方式分别为
x
y z
,
1