攻击行为
加密算法设计中,安全性受到广泛关注,而可证明安全性理论作为其相关研究领域,是构造密码方案的基本理论,也是目前公钥密码学研究领域的热点。可证明安全性理论的核心是将加密方案的安全性规约到某个算法的困难性上,利用该算法的困难性求解特定的实例问题,该方法被称为加密方案的安全规约证明。
在可证明安全理论中,语义安全一般可由不可区分性游戏来给出。游戏模型主要包括敌手和挑战者,挑战者建立加密方案,敌手对该加密方案进行攻击,同时挑战者应对敌手的攻击。在可证明安全过程中,通常根据游戏模型中攻击者的攻击能力不同,将不可区分性游戏分为选择明文攻击的不可区分性(Indistinguishability Chosen Plaintext Attack,IND-CPA)和选择密文攻击的不可区分性(Indistinguishability Chosen Ciphertext Attack,IND-CCA)。常用的攻击方法可分为以下三类:
选择明文攻击
选择明文攻击(Chosen Plaintext Atack, CPA)。在选择明文攻击中,敌手拥有所需要的明文,敌手可访问一个黑盒,黑盒仅能执行加密,不能执行解密。除目标明文外,任何人均可产生明文密文对,并利用得到的明文密文对完成对加密方案的攻击。在密码方案实际使用的过程中,CPA模拟了一种较弱的攻击行为。
选择密文攻击
选择密文攻击(Chosen Cipertext Accack, CCA1)。选择密文攻击也被称为午餐攻击,敌手可访问一个黑盒,黑盒进行解密,午餐时间敌手可选择除目标密文外的特定密文,询问并通过访问解密预言机进行解密,访问解密预言机要在午餐时间完成。因为能够访问解密预言机,CCA1使得敌手拥有比CPA攻击更强的能力。
自适应选择密文攻击
自适应选择密文攻击(Adaptive Chosen Cipertext Accack,CCA2)。自适应性选择密文攻击除目标密文外,敌手可选择任何密文对解密盒进行询问,目前一般要求公钥加密算法要在自适应选择密文攻击达到多项式安全。CCA2攻击行为下的敌手的攻击能力与CCA1相比更强大。
安全目标
安全目标分为两类:
不可区分性(IND)
给定一个挑战密文,敌手无法获取对应明文的任何信息泄露。对于基于比特的明文加密方案,敌手在得到挑战密文的条件下,也无法正确得到对应的比特明文,也就是说敌手攻击成功的概率为1/2。
非延展性(NM)
一个可延展的加密体制在适应性选择密文攻击下是不安全的。因此要求方案具有非延展性,非延展性指的是给定一个挑战密文c ,对应的明文为$mu $,敌手无法获取到另外一个密文c',该密文对应的明文为 $mu '$,且两个明文$mu $ 和 $mu '$是相互独立的。
依据攻击行为和安全目标的区别,可分别得到IND-CPA,IND-CCA1,INDCCA2,NM-CPA,NM-CCA1,NM-CCA2等多个安全模型。我们称加密方案是安全的,如果加密方案在某种安全模型下是可证安全的。一般情况下可证明IND-CPA安全和语义安全是等价的。
下面对可证明安全涉及到的几个重要定义进行介绍: