《A Graduate Course in Applied Cryptography》Chapter 12 Chosen ciphertext secure pkc(3)

原文教材 与 参考资料:

        Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].

        该书项目地址(可以免费获取):http://toc.cryptobook.us/

        博客为对该书的学习笔记,并非原创知识,帮助理解,整理思路。
 

12.5 CCA security from DDH without random oracles

本节将描述一个Cramer & Shoup 方案的变体方案,该方案是满足CCA安全性的。

12.5.1 Universal projective hash functions 通用投影函数

投影哈希函数,亦可以理解成为一种函数授权的形式。我们通过下面的图示来描述这个工具:

 

(1)Alice有一个秘密函数,她想要授权Bob也可以计算该函数,但是并不想要完全的授权,具体来说就是Alice希望Bob可以获取足够的信息计算一部分的函数f值,不是在任何输入下获得函数值。

(2)Bob掌握一个获取输入的函数,如上图所示,Bob只能掌握一个Alice想要让他知道的定义域y`。

(3)Alice给与Bob一个辅助输入信息h, 这个信息是由Alice自己计算得到的。

(4)Bob凭借h与输入y`, 可以计算出在y`下秘密函数f的值。

这个协议被成为投影哈希函数,其实也比较形象,Alice只给Bob一定的范围,那么Bob也只能根据获得的辅助h在Z上获得一个投影值。

同时要求h不能揭露任何除了给定y`以外的信息,属于y但是不属于y`的f(y) 与 h是独立的,如果满足这个要求该协议亦被称作通用投影哈希函数。

给出一个具体的协议实例,该协议建立在一个素数阶的循环群上,描述如下:

 最终Bob可以只根据自己的输入和辅助信息计算得到在y`上的f函数值,如果h和投影外的Z域上的值是均匀独立的,那么称之为通用投影哈希函数。

由上文定义:我们可得下述引理内容:

 这个引理的证明是简单的,如果上述事件成立,那么可以得到方程组:

已知,该元组不是DH元组,那么矩阵M一定是满秩的, r(M) = 2, 当该方程组有唯一解(满足此方程组有唯一解)时,必是唯一的,又因为这两个值是在Zq上任意选取的,所以选取每个的概率为1/q. 故上述引理成立。联想上文投影哈希函数,如果说Bob在某个非制定定义域上选值,那么能够计算满足该投影哈希函数的概率为(1/q)^2。换句话说,除非Bob能猜中Alice的选取的秘密函数的F的参数,不然Bob是不可能在非制定定义域上找到满足这个计算过程的值的一对输入元素。

由该引理,进一步,我们能够得到下述攻击游戏12.4:

敌手可以进行多次的计算询问,为了定义敌手的优势,我们需要对W1和W2事件进行分析,故有一下的引理:

从敌手的角度看Z={0,1}是不可区分的,前提是敌手不能从评估F的过程中获取额外的信息,此处没有进行元素是否在有域的检测,对于无限计算能力的敌手来说必要性不大。

12.5.2 Universal2 projective hash functions

 为了进一步得到加密方案,本书继续需要使用一种比上述投影哈希函数更强的哈希函数,称作通用2投影哈希函数,该协议的描述如下:

   

 接着有引理12.7,描述如下:

 证明方法和上述引理12.6类似,此处略。

进一步,我们根据这个引理得到攻击游戏12.5:

 因此得到下述引理12.8:

 如果敌手能够在计算Q组未指定定义域上函数f的像,那么其优势最多为Q/q。值得注意的是,如果敌手能够猜测正确挑战者的四个参数,那么也将可以计算任意的f函数值。正式因为敌手不知道这四个参数,多以从敌手角度看投影和投影之外的值应当是互相独立的(h1,h2,f(v,w))。除非,评估请求泄露了额外的投影哈希函数的参数。

 12.5.3 CCA协议

 基于投影哈希函数的加密方案:

密钥生成阶段:

加密阶段:

 

 解密阶段:

 安全性证明:

 由于方案中使用了DDH假设,1CCA 对称方案,KDF函数,抗碰撞函数,那么我们需要证明下式成立:

 如何得到该式?

        继续使用基于游戏跳跃+difference引理的证明方式构造上述证明结果:

Game 0: 游戏0是基于原始方案构造的游戏,描述如下:

 

 Game 1修改的动机是仅仅在初始阶段计算u,v,w时使用三个指数参数,这将帮助构造DDF假设,上述修改并不会影响最终的计算结果,所以:

                                                     Pr[W1] = Pr[W2]。

 此时,存在一个B-ddh敌手,其从C-DDH处获取一个DDH问题实例,然该敌手在Game1中扮演敌手A的挑战者,对于敌手A而言,如果获得的元组(u, v, w)为DH元组,那么A面对的就是Game 1,如果该元组是随机的,那么A面对的就是Game 2。在游戏结束后,B-ddh敌手输出猜测比特。如果敌手能够攻破DDH假设,那么敌手就能以极大的概率拒绝错误的密文(随机元组生成的密文)。所以:

                                | Pr[W1] - Pr[W2] | <= DDHadv[Bddh,G]。

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值