公钥加密体制的安全性有这样三种概念:
1、完美安全性:如果一个具有无限计算能力的敌手从给定的密文中不能获取明文的任何有用信息,我们就说这个加密体制具有完美安全性或信息论安全性。
能达到这个安全条件的加密算法为“一次一密”,要求加密使用的密钥长度至少要跟消息一样长才🆗。
根据Shannon理论知道,要达到完美安全性,密钥必须和明文一样长并且相同的密钥不能使用两次。然而,在公钥密码体制中,加密密钥可以用来加密很多消息并且通常是很短的。因此**,完美安全性对于公钥密码体制来说是不现实的。**
2、语义安全(Semantic Security,SS)性: 语义安全性是完美安全的多项式版本,我们只允许敌手具有多项式有界的计算能力。
以下的4种说法都是等价,不考虑明文长度:
(1)从形式上说,无论敌手在多项式时间内能从密文中计算出关于明文的什么信息,他也可以在没有密文的条件下计算出这些信息。
(2)拥有密文并不能帮助敌手找到关于明文的任何有用信息。
(3)敌手在知道密文的情况下计算出明文的信息量,不比在不知道密文的情况下多。
(4)密文不会向任何计算能力为多项式有界的敌手泄露有关相应的任何有用信息
【(当然,这里不考虑明文长度,即明文的长度不是有用信息)。】
理论证明也表明,密文不可区分等价于语义安全(IND<==>ss)
语义安全是GoldWasser和Micali在1984年提出的,并首次使用了IND-CPA的概念。语义安全的定义非常直观,但是很难从计算的角度去描述,IND 安全的定义则非常容易通过一系列过程来描述。
【 在很多的应用中,消息可能含有某些对攻击者非常有利的【先验信息】,比如说,密文只是对“买”和“卖”进行加密,或者是对参与选举的已知候选人的身份之一进行加密,攻击者其实可以直接大概猜测。如果敌手能够轻易得到一些非常“有利”的消息,使得敌手赢得游戏的优势不可忽略,则方案就没有安全性可言。
再则单向性对公钥加密方案是最基本的安全需求,加密算法和加密密钥是公开的,任何人都可以加密,所有我们所学的教科书式的RSA这种确定性单向陷门函数就无安全可言,因为敌手可以将所有的明文一一加密,与密文对比,便可以知道密文对应的明文。所以,GoldWasser和Micali在1984年提出了概率加密,引入更强的安全目标:语义安全。
概率加密方案(主流做法):加密算法是一个概率算法。在公钥和明文之外,输入一个随机数,这样,【同一个明文可以使用不同的随机数加密成不同的明文】
多项式有界:问题在多项式时间内可以得到解决,我们说多项式时间是问题“可解”与“不可解”的分水岭。为什么限制在多项式时间内呢?
理论上,目前的计算机处理问题的能力只能在可接受的多项式时间找到问题的最优解;实际上,当指数系数 k很大时最优解的寻找也会很困难,但无论如何理论上是可行的。
3、多项式安全性:我们很难显示一个加密体制具有语义安全性,然而,我们却可以比较容易显示一个加密体制具有多项式安全性。多项式安全性也称为密文不可区分性。幸运的是,如果一个加密体制具有多项式安全性,那么我们可以显示该体制也具有语义安全性。因此,为了显示一个加密体制是语义安全的,我们只需要显示该体制是多项式安全的。
【参考文献】:
[1] 任伟.可证明安全公钥密码学探究[J].信息网络安全,2011(11):1-4+13.
[2] (英)毛文波,王继林(密码学),伍前红.现代密码学理论与实践[M].电子工业出版社,2004.