密码学中的安全性定义


“规约”的概念:
规约是复杂性理论中的概念,如果存在一个多项式时间可计算的函数f:{0,1}->{0,1},使得x属于L1,当且仅当f(x)属于L2,则称语言L1可以多项式时间规约到预言L2.

  1. 如果语言L1可以多项式时间规约到预言L2,且L2属于NP,则L1属于NP。
  2. 一般的如果一个问题P1规约到问题P2,且已知解决问题P1的算法为M1,就能构造另外一个算法M2,M2可以用M1作为子程序,用来解决问题P2,把规约方法用在密码算法或者安全协议的安全性证明,可把敌手对密码算法或者安全协议(问题P1)的攻击规约到一些已经得到深入研究的困难问题(P2)。即如果敌手A能够对算法或者协议发起有效的攻击,就可以利用A构造一个算法B来攻破困难问题,从而得出矛盾。根据反证法,敌手能够对算法或者协议发起有效攻击的假设不成立。注意规约和反证法的区别,反证法是确定性的,而规约一般是概率性的。

    一般的,为了证明方案1的安全性,可将方案1规约到方案2,即如果敌手A能够攻击方案1,则敌手B能够攻击方案2,其中方案2是以证明安全的,或者是一个困难问题,或者是一个密码本原。
    证明过程还是通过思维实验来描述,首先由挑战者建立方案2,方案2中的敌手用B表示,方案1中的敌手用A表示,B为了攻击方案2,利用A作为子程序来攻击方案1。B为了利用A,必须模拟A的挑战者对A加以训练,因此B又成为模拟器。如下图:

对于加密算法,图1-7中的方案1取为加密算法,如果其安全目标是语义安全的,即敌手A攻击它的不可区分性,敌手B模拟A的挑战者,和A进行IND游戏,不可区分性游戏,称此时A对方案1的攻击为模拟攻击,在这各过程中A为了达到自己的目标而利用A,但是如果A不能判断是和自己的挑战者交互还是和模拟的挑战者交互的话,则称B的模拟是完备的。
对于其他的密码算法或者安全协议来说的话,首先要确定它要达到的安全目标,如签名方案的不可伪造性,然后构造一个形式化的敌手模型及思维实验,利用概率论和计算复杂性理论,把对密码算法或者密码协议的攻击规约到已知困哪问题的攻击。这种方法就是可证明安全性。
可证明安全是密码学和计算复杂性理论的天作之和。过去几十年,密码学的最大进展就是将密码学建立在复杂性理论之上。

参考文献:《密码学中的可证明安全性-杨波》


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM