1. 前言
针对任伟译《现代密码学——原理与协议》这本书中,将reduction一词翻译成“规约”,根据笔者在网上查阅资料,最终认为翻译成“归约”更贴合实际。
在密码学中,如果给予敌手足够的时间,那么一个计算安全的密码加密方案迟早会有被攻破的一天。而实际上,为了证明某方案是计算安全的,需要证明该密码方案被攻破的时间下界。一般来说,即证明该密码方案不能在多项式时间内被攻破。
这又引出了另外一个更复杂的问题:如何证明一个密码加密方案无法在多项式时间内被攻破。而目前我们依然无法证明此类问题的下界。
因此取而代之,采取另一个策略:假设某个低层次难题很难解决,证明在此难题基础上的加密方案是安全的。这就是“归约证明”的基本思想。
2. 归约证明简述
上面提到,“归约证明”的基本思想即:假设某个低层次难题很难解决,证明在此难题基础上的加密方案是安全的。因此,针对“求证某加密方案的下界”问题被转化为“陈述一个显式规约,说明如何将任何概率不可忽略的且成功攻破该构造方案的有效敌手A,转化为成功解决该难题的有效算法A'”。
在这里说明:反证法不是“归约证明”所必需的。
《现代密码学——原理与协议》在3.1.3节中提到“归约证明”的解题概要是基于反证法实现的,这里简要叙述一遍:
待证:
假设难题X不能通过任何多项式时间算法以不是可忽略的概率被解决(通俗地说,即X不能在有效时间内被有效地解决),证明密码构造方案是安全的。
过程:
- 现有有效敌手A攻击,此敌手成功的概率是。
- 构造有效算法“归约”A',该算法将敌手A作为子程序来使用,试图解开难题X。指定难题X的一个实例输入,算法A'会对A模拟一个的实例,要求满足:A'模拟的实例足够逼真,A无法区分此实例是A'模拟的还是本身;如果A成功攻破A'模拟的的实例,则A'可以以大于多项式倒数的概率解决难题X的实例。
- 因此,如果不可忽略,则A'解决难题的X的概率也不可忽略。这与题设中的假设矛盾。
- 总结:给定此关于难题X的假设,不存在有效敌手以不可忽略的概率解决构造方案。
图解:
3. 定长对称密钥加密的敌手不可区分性
3.1 定长对称密钥加密方案
令是带扩展因子的伪随机数生成器。
3.2 伪随机数生成器的伪随机性
对所有概率多项式时间的区分器,从中随机选取,从中随机选择种子,存在可忽略函数,满足
。
3.3 定长对称密钥加密方案的敌手不可区分性
若是一个伪随机数生成器,则定长对称密钥加密方案在窃听者存在的情况下不可区分。
分析:
分别创建两个情景: 敌手攻击和敌手攻击。
- 敌手攻击:
伪随机数生成器生成字符串有两种方式:真随机和伪随机。随机地选择交给敌手来判断该是随机的还是伪随机的。若输出满足,则敌手成功。
因此有两种情况:
如果给的是,则
如果给的是,则敌手成功的概率表示为:
且伪随机数生成器满足
图解:
- 敌手攻击
定义一个修改的加密方案,对应“一次一密”加密方案。
敌手生成两个长度为的字符串和。随机选择,计算密文交给来判断来自还是。若敌手判断正确,则成功。其中,为明文。
如果随机获取,则类似于“一次一密”,有
如果由伪随机数生成器生成,则有,那么概率表示为:
如果下面不等式成立,就可以说明加密协议是安全的:
图解:
证明:记敌手攻击,敌手攻击。
根据上面分析和“归约证明”的基本思想,正式说明逻辑命题等价式表示为:
将上面所述合并,由敌手来模拟敌手的挑战者(过程2)。图解如下:
如果随机获取,则
如果由伪随机数生成器生成,则
因为敌手的挑战者由区分器构造:当收到时,构造密文,然后将发送给。所以此时和挑战成功的概率是相等的。
根据不等式
可得
即敌手无法区分两个消息所对应的密文,得证。
4. 参考文献
乔纳森.卡茨,耶胡达.林德尔著,任伟译,现代密码学——原理与协议,国防工业出版社,2017年第一版第4次印刷.