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

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

         法才能满足 IND-CDA 安全性.Bellare 等人表示:IND-CDA 安全性本质上是对 PRIV 安全性的一种变形,两者的
         关系是适应性 IND-CDA 安全性比 PRIV 安全性强,而非适应性 IND-CDA 安全性等价于 PRIV 安全性.下面给出
         具体的 RtD=(RtD.P,RtD.K,RtD.E,RtD.D)构造.为方便起见,我们将随机性公钥密码算法记为 RPKE=(RPKE.P,
         RPKE.K,RPKE.E,RPKE.D),将确定性公钥密码算法记为 DPKE=(DPKE.P,DPKE.K,DPKE.E,DPKE.D).
                                   k
                                                                     k
             •   参数生成算法 RtD.P(1 ):输入安全参数 k,先运行算法 RPKE.P(1 )→Par r ,得到随机性公钥密码算法
                                                      k
                RPKE 的系统参数 Par r ;再运行算法 DPKE.P(1 )→Par d ,得到确定性公钥密码算法 DPKE 的系统参数
                Par d ,输出(Par r ,Par d );
                                   k
             •   密钥生成算法 RtD.K(1 ):输入安全参数 k,运行算法 RPKE.K(Par r )→(pk r ,sk r )和 DPKE.K(Par d )→(pk d ,
                sk d ),输入算法的公私钥对(pk=(pk r ,pk d ),sk=(sk r ,sk d ));
             •   加密算法 RtD.E((pk r ,pk d ),m,r):输入公钥 pk=(pk r ,pk d )、被 加密消息 m 和一个随机 数 r,先计算
                                                    l
                RPKE.E(pk r ,m,r)→c,再计算 DPKE.E(pk d ,c||10 )→C,输出密文 C.其中,l=n d −|c|−1,n d 表示 DPKE 算法的明
                       l
                文长度,0 表示有 l 个 0;
             •   解密算法 RtD.D(C,(sk r ,sk d )):输入私钥 sk=(sk r ,sk d )和密文 C,计算 DPKE.D(sk d ,C)→c,RPKE.D(sk r ,c)→m,
                输出 m.
             证明结果表明:若公钥加密算法 RPKE=(RPKE.P,RPKE.K,RPKE.E,RPKE.D)是 IND-CPA 安全的,则上述 RtD
         构造满足 IND-CDA 安全性.
         2.3   PtD算法
             PtD 也是 Bellare 等人在文献[18]中提出的一种构造对冲公钥加密算法的方法.所谓的 PtD 加密是指先对消
         息 m 进行填充,输出 m′,再用一个确定性加密算法对 m′进行加密,输出最终的密文 C.下面介绍具体的 PtD=
         (PtD.P,PtD.K,PtD.E,PtD.D)加密算法,我们 将确 定性公钥密码算法记为:DPKE=(DPKE.P,DPKE.K,DPKE.E,
         DPKE.D).
                                  k
                                                                                        k
             •   参数生成算法 PtD.P(1 ):输入安全参数 k,运行确定性加密算法的参数生成算法 DPKE.P(1 )→Par d ,输
                出确定性公钥加密算法的系统参数 Par d ;
             •   密钥生 成算法 PtD.K(Par d ): 输入系统参数 Par d , 运行确定性 公钥加密算 法的密钥生 成算法
                DPKE.K(Par d )→(pk d ,sk d ),输出公私钥对(pk d ,sk d );
             •   加密算法 PtD.E(pk d ,m,r):输入系统参数 Par d 、随机 数 r、明文 m,运行确定 性公钥加密 算法
                DPKE.E(pk d ,r||m)→C,输出密文 C;
             •   解密算法 PtD.D(C,sk d ):输入密文 C,私钥 sk d ,运行解密算法 DPKE.D(sk d ,C)→m,输出消息 m.
             证明结果表明,上述对冲加密算法 PtD=(PtD.P,PtD.K,PtD.E,PtD.D)满足 IND-CDA 安全性.
             在 2017 年的美密会上,Boldyreva 等人从实际出发,研究了在密码库 OpenSSL 中可实现的对冲加密算法以
                                 [2]
         及对冲加密算法的安全性质 .他们定义了两个新的对冲安全性质,即 MM-CCA(message-message security
         against chosen ciphertext attack)和 MMR-CCA(message-message-randomness  security against chosen ciphertext
         attack).作者指出,第 2.2 节、第 2.3 节中所述的 IND-CDA 安全性等价于 MMR-CPA 安全性(message-message-
         randomness security against chosen plaintext attack).文献[18]的研究结果已经表明:RtD算法和 PtD算法在满足一
         定约束条件时可达到 IND-CDA 安全性,即 MMR-CPA 安全性.所以在文献[2]中,Boldyreva 等人将该结果进行扩
         展,研究了 RtD 算法和 PtD 算法相应的 CCA 安全性.证明结果表明,对于 RtD 算法,当确定性算法选用
         RSA-DOAEP 时,算法可达到 MM-CPA 和 IND-CPA 安全;当概率性算法选用关联数据的单射加密算法,则算法
         可达到 MMR-CCA 和 IND-CCA 安全性.而对于 PtD 算法,当确定性算法选用 RSA-DOAEP 时,算法可满足
         MM-CCA 和 IND-CCA 安全性.同时,文献[2]中的作者还基于关联数据的可验证加密算法和陷门置换函数构造
         了一个混合加密算法,并给出安全性分析.结果表明,该混合加密算法可满足 MMR-CCA 和 IND-CCA 安全性.他
         们的另一研究结果表示, RSA-OAEP 算法在随机预言模型中可达到 MM-CCA 安全性.这在实际应用中非常有
         意义,因为 RSA-OAEP 包含在现有很多密码库中,可直接访问现有密码库的中的高级程序接口而易于实现.
   263   264   265   266   267   268   269   270   271   272   273