Page 264 - 《软件学报》2020年第10期
P. 264

3240                                  Journal of Software  软件学报 Vol.31, No.10, October 2020

         出猜测 b′,则定义攻击者的优势 Adv        CCA ()A 以及相应的优势函数分别为
                                     PKE
                             Adv CCA () =  A  2Pr{b′ =  b } 1 , Adv−  CCA ( ,t q dec ) =  max {Adv CCA ()},A
                                                                  A
                                                     PKE
                                PKE
                                                                       PKE
         其中,最大值函数跑遍所有计算时间至多为 t,询问解密预言的次数至多为 q dec 的 CCA 攻击者.在上述定义中,如
         果不提供给攻击者访问解密预言的能力,而仅仅让其获得公钥 pk,则相应的攻击是选择明文攻击(CPA),此时安
         全的加密算法被称为 CPA 安全的.
             在 PAKE 协议设计中,我们需要用到公钥加密体制的一种变体,称为带标签(label)的公钥加密体制,其定义
         类似于传统的公钥加密体制,不过,要求加密算法和解密算法能够接受将标签 l 作为一个额外的公开输入(形如
          c ←  Enc ( pk , ; ; )m l r ),且仅当解密算法输入和加密算法完全一样的标签时才能解密得到正确的明文.关于带标签
         的公钥加密体制的 CCA 安全性,其定义与传统公钥加密算法类似,不同之处在于,攻击者询问解密预言时要同
                                                                             *
         时提供密文和标签,攻击者在选择挑战明文 m 0 、m 1 时也需要同时提供一个挑战标签 l .
         1.2   平滑投射哈希函数
             平滑投射哈希函数最初是由密码学家 Cramer 和 Shoup           [30] 提出的,随后被 Katz 等人  [31] 和 Benhamouda 等人 [13]
         加以改进用于通信高效的 PAKE 协议构造.粗略地说,它是一种双密钥的哈希函数,给定集合 X 以及语言 L ⊂                              X  ,
         对任意的词语 c∈      , L 其相应的哈希值可以用两种方式计算:利用哈希密钥 hk 和 c,或利用投射密钥 hp 和相应于
          cL∈ 的证据 w.具体而言,一个平滑投射哈希函数 SPHF =             (HashKG ProjKG Hash ProjH 由 4 个算法组成,其中
                                                                    ,
                                                              ,
                                                                              )
                                                                         ,
                                                                     k
         密钥生成算法 HashKG 在输入安全参数 k 时输出哈希密钥 hk ←                HashKG (1 ), 投射密钥生成算法 ProjKG 在输
         入哈希密钥 hk、语言 L 以及相应的元素 c∈           X 时输出相应的投射密钥 hp ←         ProjKG (hk , , ),L c 哈希函数 Hash 在
         输入哈希密钥 hk、语言 L 以及任意元素 c∈            X 时输出哈希值 h ←    Hash (hk , , ),L c 投射哈希函数 ProjH 在输入投
         射密钥 hp、语言 L、词语 c∈ 以及相应证据 w 时输出哈希值 h ←                 ProjH (hp , , , ).L c w
                                 L
             平滑投射哈希函数应该满足正确性和平滑性两个特性.正确性是指,对任意合法的词语 cL∈ 以及相应证据
         w, Hash (hk , , )=L c ProjH (hp , , , )L c w 成立;平滑性是指,对任意的不属于给定语言的元素 c∉  , L 即使在已知 hp 的条
         件下, Hash (hk , , )L c 也和完全随机选取的输出是统计不可区分的.当安全参数为 k 时,记ε SPHF (k)为这两个分布的
         统计距离的一个可忽略的上界.
         1.3   口令哈希机制
             Benhamouda 等人 [25] 形式化地给出了口令哈希机制的严格定义,用来描述基于验证元的口令协议中验证元
         的生成方式.一个口令哈希机制 PHS 通常由 5 个算法组成,其中参数生成算法 PSetup 在输入安全参数 k 以及口
                                                k
                                                  n
         令比特位数 n 时输出公开参数 param ←         PSetup (1 ,1 ), 预盐值生成算法 PPHSalt 在输入参数 param 时输出随机
         的预盐值 s ←    PPHSalt ( param 预哈希值生成算法 PPreHash 在输入参数 param、预盐值 s P 和口令 π 时输出预
                                 ),
                  P
         哈希值 P ←   PPreHash ( param s P , ),π 预盐值 s P 和预哈希值 P 主要是客户端使用;盐值生成算法 PSalt 在输入参
                                ,
         数 param 时输出随机的盐值 s ←        PSalt (param 验证元生成算法 PHash 在输入参数 param、盐值 s H 和口令 π
                                              ),
                                 H
         时输出哈希值 H ←      PHash (param s H  , ),π 盐值 s H 和哈希值 H 被服务器端用作验证元.
                                   ,
             为了保证服务器口令文件泄露后让攻击者尽可能难地获得用户的口令,需要保证加盐操作后攻击者只有
         对每个验证元进行独立的离线字典攻击才能获得相应的口令,为此,Benhamouda 等人                         [25] 给出了紧单向性(tight
         one-wayness)的定义.为了让口令哈希机制能够适配 PAKE 协议设计中的平滑投射哈希等操作,文献[25]还给出
         了一个基于代数运算的口令哈希机制.
         1.4   DDH假设
             设 q 是素数,G 是 q 阶乘法循环群, g G∈      是其中的一个生成元.判定型 Diffie-Hellman(DDH)假设是指,对所
                                                                      y
                                                                   x
                                                                      ,
                                                                    ,
                                                ,
                                               x
         有概率多项式时间的攻击者 A ,其成功区分 {(g gg               xy ) : ,x y ∈  Z  } 和 {(g gg  z  ) : , ,x y z ∈ Z  } 上的均匀分布的
                                                  y
                                                  ,
                                                            q                     q
         优势都是可忽略的.定义相应的优势函数为 Adv              G ddh ()t =  max {Adv G ddh ( )},A  则 DDH 假设成立意味着 Adv G ddh  ()t 是
                                                       A
         安全参数的可忽略函数.
   259   260   261   262   263   264   265   266   267   268   269