3.5 选择明文攻击(CPA)的安全性
选择明文攻击背后的基本思想是,敌手可以适应性地选择多条消息请求加密。
注意这里的定义,如果加密方案是确定的话,则无法抵御选择明文攻击,因此任何CPA安全的加密方案必须是概率性的。
CPA安全的重要技术优势是,他足够证明一个方案对单次加密是CPA安全的,然后可以得到他对于多次加密也是CPA安全的。
3.6 CPA安全的加密方案创建
先引入伪随机函数的概念。
3.6.1 伪随机函数
同理于伪随机字符串,任何一个确定的函数是伪随机函数都是没有意义的。因此要说明这个函数分布的伪随机性。
3.6.2 基于伪随机函数的CPA安全加密
该构造方法,先均匀随机输出一个密钥k,在随机均匀选择r,通过这两个东西来制造密文,并且是Fk对r进行作用之后再与m进行异或操作,而不是直接用Fk作用m。
注:这个r是随机生成的,当攻击者访问预言机时,预言机生成的不一定是r。
以上的加密方案在选择明文攻击下,具有不可区分加密性。其证明思路为在理想的世界中分析方案的安全性,也就是说用一个真正的随机函数来代替伪随机函数,然后说明这种情况下是安全的。接下来反证如果Fk不安全,推出Fk可以被区分从而导出矛盾。以下的图片非常直观的描述了伪随机函数加密过程。
3.6.3 伪随机置换
3.6.4 加密模式
该模式在F为伪随机置换的时候,是CPA安全的。缺陷是必须依次执行。
该模式解决了无法并行操作的问题,因为其生成的流是独立于明文的,并且不需要F是一个置换,只需F是一个伪随机函数就可满足CPA安全。
随机计数模式(即每次消息被加密,当ctr是随机均匀选择的时候)是CPA安全的