Page 270 - 《软件学报》2021年第9期
P. 270

2894                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

                                      k
                                                    k
             •   种子密钥生成算法 NSKg(1 ):输入安全参数 1 ,输出种子密钥 xk;
             •   加密算法 NEnc(pk,M,xk):输入公钥 pk、消息 M、种子密钥 xk,先运行 NG 算法生成 nonce 值 n,即(n,St′)←
                NG(η,St),其中,nonce selector η和 NG 的当前状态值 St 是加密者自己选取的,St′表示 NG 的下一个状态
                                                     RO
                值;再运行 HE 算法生成随机数 r,即 r←HE (xk,M,n);再运行算法 PE.Enc 进行加密操作,即 C←
                PE.Enc(pk,M,r);最后输出密文 C;
             •   解密算法 NDec(sk,C):输入私钥 sk 和密文 C,运行算法 M←PE.Dec(sk,pk,C),输出消息 M.
                                                                                             [1]
             对于 nonce-based 公钥加密算法,若一个攻击者想攻破该算法,他需要同时获得 nonce 和种子密钥的值 .文
         献[1]中,Bellare 和 Tackmann 定义了两个 nonce-based 公钥加密算法的安全性质,即 NBP1(nonce-based privacy 1)
         和 NBP2(nonce-based privacy 2).
             •   NBP1 是指攻击者未知用户的种子密钥时,只要消息和 nonce 不重复,攻击者就不能攻破 nonce-based
                公钥加密算法;
             •   NBP2 是指攻击者已知用户种子密钥时,只要 nonce 不可预测,攻击者就不能攻破密码算法.
             Bellare 和 Tackmann 指出:对于上述 NPKE 算法,若其采用标准模型下的 HE 和标准模型下可证明安全的
         PE 算法,则 NPKE 算法在标准模型下满足 NBP1 和 NBP2 安全性;否则,只要 NPKE 中采用了随机预言模型下的
                                                              [1]
         HE 或 PE,则 NPKE 在随机预言模型下满足 NBP1 和 NBP2 安全性 .
                                                                                   [1]
             另外,Bellare 和 Tackmann 还研究了 nonce-based 签名方案,并对其安全性进行分析和证明 .Nonce-based 签
         名方案的设计基于一个传统的数字签名算法.下面介绍具体的 nonce-based 签名算法,为方便起见,我们将其记
         做 NDS=(NDS.Kg,NDS.Sig,NDS.Vrf),将所用的传统签名算法记为 DS=(DS.Kg,DS.Sig,DS.Vrf).一个 nonce-based 公
         钥加密算法包括如下 3 个基本算法.
                                    k
                                                                        k
                                                  k
             •   密钥生成算法 NDS.Kg(1 ):输入安全参数 1 ,运行算法(sk,vk)←DS.Kg(1 ),输出签名密钥 sk,验证密钥 vk
                以及种子密钥 xk;
                                k
             •   签名算法 NDS.Sig(1 ):输入签名密钥 sk、种子密钥 xk、消息 M,先运行 NG 算法生成 nonce 值 n,即
                (n,St′)←NG(η,St),其中,nonce selector η和 NG 的当前状态值 St 是加密者自己选取的,St′表示 NG 的下一
                                                       RO
                个状态值;再运行 HE 算法生成随机数 r,即 r←HE (xk,M,n);再运行算法 DS.Sig 进行签名操作,运行算
                法 s←DS.Sig(sk,M,r),输出签名 s;
                                k
             •   验证算法 NDS.Vrf(1 ):输入验证密钥 vk、消息 M 和签名 s,若等式 NDS.Vrf(vk,M,NDS.Sig(sk,xk,M,n))=1,
                则表示签名认证成功;否则,输出错误符号⊥.
             文献[1]中定义了 nonce-based 签名算法的两个安全性质,即 NBUF1(nonce-based unforgeability 1)和 NBUF2
         (nonce-based unforgeability 2).
             •   NBUF1 是指:只要种子密钥保密的情况下,不论 nonce 值是否可预测,则 nonce-based 签名算法都能满足
                不可伪造性;
             •   NBUF2 是指:种子密钥泄露的情况下,只有 nonce 值不可预测时,nonce-based 签名算法才能满足不可伪
                造性.
             Bellare 和 Tackmann 指出:对于上述 NDS 算法,若其采用标准模型下的 HE 和标准模型下可证明安全的 DS
         算法,则 NDS 算法在标准模型下满足 NBUF1 和 NBUF2 安全性;否则,只要 NDS 中采用了随机预言模型下的
                                                               [1]
         HE 或 DS,则 NDS 在随机预言模型下满足 NBUF1 和 NBUF2 安全性 .
         3.2   HN-PKE算法
             2018 年,Huang 等人在文献[3]中首次将对冲公钥加密和 nonce-based 公钥加密相结合,提出了对冲的 nonce-
         based 公钥加密算法.从本质上讲,对冲的 nonce-based 公钥加密着眼于研究 nonce-based 公钥加密算法(详见第
         3.1 节)的对冲安全性质,即:当 nonce-based 公钥加密算法中所用的随机数存在后门时,算法不是直接被攻破,而
         是仍然可以满足某些弱的安全性.文献[3]中,作者将第 2.2 节介绍的对冲安全性质 IND-CDA 进行了扩展,在其基
         础上定义了一个新的适用于 nonce-based 公钥加密算法的安全性质 IND-CDA2(chosen-ciphertext security
   265   266   267   268   269   270   271   272   273   274   275