密码学归约证明——定长对称加密密钥的敌手不可区分性

1. 前言

       针对任伟译《现代密码学——原理与协议》这本书中,将reduction一词翻译成“规约”,根据笔者在网上查阅资料,最终认为翻译成“归约”更贴合实际。

       在密码学中,如果给予敌手足够的时间,那么一个计算安全的密码加密方案迟早会有被攻破的一天。而实际上,为了证明某方案是计算安全的,需要证明该密码方案被攻破的时间下界。一般来说,即证明该密码方案不能在多项式时间内被攻破。

       这又引出了另外一个更复杂的问题:如何证明一个密码加密方案无法在多项式时间内被攻破。而目前我们依然无法证明此类问题的下界。

       因此取而代之,采取另一个策略:假设某个低层次难题很难解决,证明在此难题基础上的加密方案是安全的。这就是“归约证明”的基本思想。

2. 归约证明简述

       上面提到,“归约证明”的基本思想即:假设某个低层次难题很难解决,证明在此难题基础上的加密方案是安全的。因此,针对“求证某加密方案的下界”问题被转化为“陈述一个显式规约,说明如何将任何概率不可忽略的且成功攻破该构造方案的有效敌手A,转化为成功解决该难题的有效算法A'”。

       在这里说明:反证法不是“归约证明”所必需的。

       《现代密码学——原理与协议》在3.1.3节中提到“归约证明”的解题概要是基于反证法实现的,这里简要叙述一遍:

待证:

       假设难题X不能通过任何多项式时间算法以不是可忽略的概率被解决(通俗地说,即X不能在有效时间内被有效地解决),证明密码构造方案\Pi是安全的。

过程:

  • 现有有效敌手A攻击\Pi,此敌手成功的概率是\varepsilon \left ( n \right )
  • 构造有效算法“归约”A',该算法将敌手A作为子程序来使用,试图解开难题X。指定难题X的一个实例输入,算法A'会对A模拟一个\Pi的实例,要求满足:A'模拟的实例足够逼真,A无法区分此实例是A'模拟的还是\Pi本身;如果A成功攻破A'模拟的\Pi的实例,则A'可以以大于多项式倒数的概率解决难题X的实例。
  • 因此,如果\varepsilon \left ( n \right )不可忽略,则A'解决难题的X的概率也不可忽略。这与题设中的假设矛盾。
  • 总结:给定此关于难题X的假设,不存在有效敌手以不可忽略的概率解决构造方案\Pi

图解:

3. 定长对称密钥加密的敌手不可区分性

3.1 定长对称密钥加密方案\Pi

       令G是带扩展因子l的伪随机数生成器。

3.2 伪随机数生成器G的伪随机性

       对所有概率多项式时间的区分器D,从\left \{ 0,1 \right \}^{l\left ( n \right )}中随机选取r,从\left \{ 0,1 \right \}^{n}中随机选择种子s,存在可忽略函数negl,满足

\left |Pr\left[D\left ( r \right )=1 \right ] -Pr\left [ D\left ( G\left ( s \right ) \right )=1 \right ]\right |\leqslant negl\left ( n \right )

3.3 定长对称密钥加密方案的敌手不可区分性

       若G是一个伪随机数生成器,则定长对称密钥加密方案\Pi在窃听者存在的情况下不可区分。

分析

       分别创建两个情景: 敌手D攻击G和敌手A攻击\Pi

  • 敌手D攻击G

       伪随机数生成器G生成字符串w有两种方式:真随机和伪随机。G随机地选择w交给敌手D来判断该w是随机的还是伪随机的。若D输出b'满足b'=b,则敌手D成功。

       因此有两种情况:

       如果GD的是w_{1},则

       Pr\left [ D\left ( w \right ) =1\right ]=\frac{1}{2}

       如果GD的是w_{0},则敌手D成功的概率表示为:

       Pr\left [ D\left ( G\left ( k \right ) \right ) =1\right ]

       且伪随机数生成器G满足

                 \left |Pr\left[D\left ( r \right )=1 \right ] -Pr\left [ D\left ( G\left ( s \right ) \right )=1 \right ]\right |\leqslant negl\left ( n \right )

       图解:

  • 敌手A攻击\Pi

       定义一个修改的加密方案\widetilde{\Pi },对应“一次一密”加密方案。

       敌手A生成两个长度为n的字符串m_{0}m_{1}\Pi随机选择m,计算密文c交给A来判断c来自m_{0}还是m_{1}。若敌手A判断正确,则成功。其中c:=w\oplus plaintextplaintext为明文。

       如果w随机获取,则类似于“一次一密”,有

Pr\left [ PrivK_{A,\widetilde{\Pi}}^{eav} \left ( n \right )=1\right ]=\frac{1}{2}

       如果w由伪随机数生成器生成,则有w=G\left ( k \right ),那么概率表示为:

 Pr\left [ PrivK_{A,\Pi }^{eav} \left ( n\right )=1\right ]

       如果下面不等式成立,就可以说明加密协议\Pi是安全的:

Pr\left [ PrivK_{A,\Pi }^{eav} \left ( n\right )=1\right ]\leqslant \frac{1}{2}+negl\left ( n \right )

      图解:

证明:记敌手D攻击G,敌手A攻击\Pi

       根据上面分析和“归约证明”的基本思想,正式说明逻辑命题等价式表示为:

       将上面所述合并,由敌手D来模拟敌手A的挑战者(过程2)。图解如下:

       如果w随机获取,则

       Pr[D(w)=1]=Pr[PrivK_{A,\Pi }^{eav} (n)=1]=\frac{1}{2}

       如果w由伪随机数生成器生成,则

       Pr[D(G(k))=1]=Pr[PrivK_{A,\Pi }^{eav} (n)=1]

       因为敌手A的挑战者由区分器D构造:当D收到w=G\left ( k \right )时,D构造密文c\leftarrow w\oplus m_{b},然后将c发送给A。所以此时DA挑战成功的概率是相等的。

       根据不等式

\left |Pr\left[D\left ( r \right )=1 \right ] -Pr\left [ D\left ( G\left ( s \right ) \right )=1 \right ]\right |\leqslant negl\left ( n \right )

       可得

Pr\left [ PrivK_{A,\Pi }^{eav} \left ( n\right )=1\right ]\leqslant \frac{1}{2}+negl\left ( n \right )

       即敌手A无法区分两个消息所对应的密文,得证。

4. 参考文献

       乔纳森.卡茨,耶胡达.林德尔著,任伟译,现代密码学——原理与协议,国防工业出版社,2017年第一版第4次印刷.

       能否通俗地解释下密码学中的归约证明? - 知乎.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值