密码学中的归约证明过程
证明过程
归约证明(proof by reduction)是现代密码学中证明方案安全性的重要方法,甚至是一些教材中使用的唯一方法。它的思路是,假设某个问题难以解决,然后证明基于该问题的构造方法在该假设下是安全的。
想要证明某构造方案
- 指定概率多项式时间的敌手
攻击方案 ,成功的概率为 - 假设:问题
难以解决,即无法在概率多项式时间内以不可忽略的概率解决 - 归约:构造有效算法
,它将 当作子程序运行,从问题 的实例 模拟出一个 的实例,输入给 ,如果 成功攻破,则 成功解决实例 的概率至少为多项式的倒数 - 矛盾:那么
解决问题 的概率为 ,若 不可忽略,则 也不可忽略,这与假设相矛盾 - 结论:敌手
无法以不可忽略的概率攻破方案 ,或者说 是计算安全的
第3步归约中的概率
简单的证明例子
伪随机数发生器(pseudorandom generator, PRG)输入长度为
我们用归约方法证明:如果
- 指定概率多项式时间的区分器
, 成功区分 和 的概率 - 假设:问题
难以解决,即成功区分 和 的概率可忽略 - 归约:构造算法
区分 和 , 将 作为子程序运行,计算 成功区分的概率 - 矛盾:若
成功区分 和 的概率 不可忽略,则与假设矛盾 - 结论:
无法以不可忽略的概率区分 和 , 也是伪随机数发生器,得证
上面的例子中
经典算法对应的基础问题
通过归约可将要证明的结论等价为更基础的问题,上面的例子将