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
   262   263   264   265   266   267   268   269   270   271   272