《A Graduate Course in Applied Cryptography》chapter 4 Block ciphers (2)

原文教材 与 参考资料:

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

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

        系列博客为对该教材的学习笔记(只包括我认为重要的东西)


4.4 伪随机数函数PRF:定义与属性

4.4.1 Definitions

       定义:伪随机函数是一个确定性函数,有两个输入和一个输出,如y = F(k,x),k是一个秘钥或者叫随机种子,x为输入块信息,y 为伪随机输出。

      PRF的安全模型:此处简单画一个图来说明,与之前的语义安全定义相类似,我们得到这个安全实验:

                

定义伪随机敌手的优势如下:

4.4.2 Efficient implementation of random functions :一种高效的随机函数实现方法:

       如之前提到的,每次挑选一个随机的函数进行计算是非常复杂的一种计算方式,因为函数取决于输入长度,当输入长度非常大时,并不利于实现这个随机函数功能。该书指出一种高效的计算方式“faithful gnome”方式。

       挑战者维护一个输入输出的表格,表格内容为(输入信息x,输出随机数y),当挑战者从敌手处接收到第i次请求时,首先查表,如果之前回复过一样的x, 则把当时的回复值y返回给敌手,否则在随机空间中随机选择一个结果返回。(这里并不能保证一一对应,因为模拟的是随机映射函数,随机映射函数可能并不是一一对应的。)

4.4.3 When is a secure block cipher a secure PRF ?什么情况下分组密码是一个安全伪随机数函数?

        在本节,讨论是否可以使用分组密码作为伪随机数函数的实现?

        由上文伪随机函数的安全模型定义可知,在实验b = 0时,我们使用一个分组密码作为伪随机数生成器,当实验b = 1时,我们使用一个在种子空间和输出空间上选取一个随机的函数映射为伪随机的输出。很明显,这样的安全是不一定安全的。在种子空间比较小的时候,在实验0中分组密码是一种置换,所以不会出现相同种子得到相同伪随机输出的情况。但是,在实验1中采用随机的函数映射可能会导致同样的种子得到同样的伪随机输出结果,这样敌手就能区分这两个实验,所以为了保证安全,种子空间N必须为超多项式的。

       对于N比较小时,敌手的这种攻击就是“生日攻击”,其概率大约为Q(Q-1)/4N,Q为询问的次数N为总的询问空间。

由上可得,使用分组密码作为伪随机数发生构造是安全的,条件至少为N是超多项式的,所有有下述定理4.4。

 当一个分组是BC安全的(黑盒安全)那么存在一个伪随机安全的构造,这里最多询问Q次,是对上文提到的生日攻击的放大,N是种子选取空间。

从上式我们看到,BC敌手一定是可以忽略的,因为N是超多项式的,所以不等式左边也是可以忽略的,所以如上式成立,则当且仅当PRFadv是可以忽略的。(推论4.5)

为了证明定理4.4 我们需要证明PRFadv是可以忽略的,所以设计一个新的攻击游戏4.3.

攻击游戏4.3实际上是将之前描述的分组函数构造方案进行抽象得到的,此处还是比较容易理解的,此时定义敌手为PFadv即为准确描述随机置换和随机函数的区别,那么这个敌手概率如何定义?得到下述定理4.6。

首先证明,定理4.4 蕴含 定理4.6。但是如何将4.6 和 4.4 联系起来?换句话说,如何把BC敌手和这个PF敌手联系起来?按照这个本书常用的一个技巧,构建多个游戏,联系两个不同的敌手,此处构建游戏Game0,1,2,如下所述:

  

可以看到Game0.1描述的是BC敌手,Game0.2描述的是PRF敌手。

所以直接可得:

 定理4.4已经证明完毕,最后只剩下证明定理4.6,此处需要一个新的引理,Difference Lemma 引理,描述如下:

 这似乎是一个概率论的定理,Z,W1,W0 是定义在某个概率空间上的事件(在同一事件上),假设W0 与 非Z发生时当且仅当W1与非Z发生,那么有Pr W0 -  Pr W1 小于等于PrZ。

证明:

        由定理的假设部分,我们知道在Z的补事件上W0 与 W1发生的概率是相同的,那么,我们得到如下推导过程:

 定义W0为给定敌手应对某个挑战者的游戏中输出1的概率,W1定义为同一敌手对应不同挑战者输出1的概率。通过应用这个定理,我们就可以将两个不同的游戏处理为统一概率空间中,这意味着我们视由挑战者和敌手的随机选择在同一个游戏中,唯一的不同是这两个游戏的不同挑战者定义回复敌手的规则不同,为了理解如何使用该定理,我们继续进行。

定理4.6 的证明

敌手A与挑战者组成攻击游戏系统,敌手最多可以发起Q次询问,挑战者为敌手的Q次询问默认选择Q个初始回复值,这Q个回复是均匀独立选择的。进一步构建Game0 和 Game1如下:

Game0:

 在Game0中保证了敌手绝对不可能输入同样的输入获得两个相同的输出。

Game1:

 在Game1中,敌手输入相同的输入,可能会获得同样的输出。

Game0 和 Game1 对应上文提到的攻击游戏,得到如下等式:

                

使用Difference  引理,将这个两个游戏处理为统一概率概率空间下,意味着Zi的选择在两个游戏Game0和Game1中也会是相同的,不仅选取时分布相同,并且其取值也是相同的。

定义Z是一个事件,,按照假设Z应该是对应相等的,现在假设运行两个游戏时Z是不会发生的,那么意味着Z的值都是不同的。那么敌手的请求在两个游戏中获得的回复都是相同的,事件Z是不会发生的,因此如果Z不发生,敌手在Game0输入1,也会在Game1输出1,反之亦然,敌手不可区分这两个游戏Game0和Game1。

那么,很明显满足Difference Lemma的假设条件,当且仅当W0^-Z 时 W1^-Z,我们获得如下不等式:

                                          

剩下的就是Pr[Z]的概率,对于每一对i,j 有,又因为这样的对少于二分之一Q平方个,所以得到,定理4.6证明完毕。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值