根据攻击者(敌手)的能力和拥有的资源对加密密码方案的安全性分为:唯密文攻击、已知明文攻击、选择明文攻击和选择密文攻击。
唯密文攻击COA(Ciphtext Only Attack)
攻击者只有一些密文,依靠统计特性和猜测去破解,属于被动攻击的类型。这种类型的敌手对一般的计算安全的现代密码体制没有威胁。古典密码体制由于其设计简单,在此类攻击下可能是不安全的,比如Casear移位密码体制,可以通过密文中字母出现的频率猜测其移动的位数或暴力破解得到对应密文的明文。
已知明文攻击KPA(Known Plaintext Attack)
攻击者除了拥有一些密文之外,还拥有这些密文对应的明文,属于被动攻击的类型。比如AES-CTR中如果IV这种攻击针对确定性的加密方案是有效的,类似彩虹攻击。
选择明文攻击CPA(Chosen Plaintext Attack)
攻击者具有访问加密机的能力,可以选定明文消息,从而得到加密后的密文。可以替换一些密文中的密文进行篡改破坏攻击,或者创建密码本。 但是不能直接攻破密钥。
选择密文攻击CCA(Chosen Cipertext Attack)
攻击者具有访问解密机的能力,通过需要破解密文C1来构造新的密文C2,然后访问解密机后,得到构造密文C2对应的明文m2,然后得到明文消息m1,从而得攻击成功。