密码攻击
根据攻击者对明文和密文的所拥有的情况,可分为:
- 已知明文攻击
- 选择明文攻击
- 选择密文攻击
- 唯密文攻击
下面转载一篇好文:https://blog.csdn.net/A33280000f/article/details/118304531
唯密文攻击
Ciphtext Only Attack,COA
定义:唯密文攻击(COA)是指仅仅知道密文的情况下进行分析,求解明文或密钥的密码分析方法。
假定密码分析者拥有密码算法及明文统计特性,并截获了一个或者多个用同一密钥加密的密文,通过对这些密文进行分析求出明文或密钥。COA已知条件最少,经不起唯密文攻击的密码是被认为不安全的。
简单理解:只知道密文,推出明文或密钥,一般用穷举攻击。
已知明文攻击
Known Plaintext Attack,KPA(也可称为KPA安全)
定义:已知明文攻击(KPA)是指攻击者掌握了部分的明文M和对应的密文C,从而求解或破解出对应的密钥和加密算法。
简单理解:知道部分的明文和密文对,推出密钥和加密算法。
选择明文攻击
Chosen Plaintext Attack,CPA(也可称为CPA安全)
定义:选择明文攻击(CPA)是指攻击者除了知道加密算法外,还可以选定明文消息,从而得到加密后的密文,即知道选择的明文和加密的密文,但是不能直接攻破密钥。【相当于有一个加密黑盒】
简单理解:知道明文就知道密文,目标为推出密钥。
选择密文攻击
Chosen Ciphertext Attack,CCA(也可称为CCA安全)
定义:选择密文攻击(CCA)是指攻击者可以选择密文进行解密,除了知道已知明文攻击的基础上,攻击者可以任意制造或选择一些密文,并得到解密的明文【相当于有一个解密黑盒】,是一种比已知明文攻击更强的攻击方式。
若一个密码系统能抵抗选择密文攻击,那必然能够抵抗COA和KPA攻击。密码分析者的目标是推出密钥,CCA主要应用于分析公钥密钥体制。
简单理解:知道密文就知道明文,目标为推出密钥。
比较分析
当密码系统只有承受住选择明文攻击(CPA)和选择密文攻击(CCA),才能算是安全的。
其中,四种攻击方式对应的攻击强度为:
攻击难度:选择密文攻击(CCA)>选择明文攻击(CPA)>已知明文攻击(KPA)>唯密文攻击(COA)
难易程度:选择密文攻击(CCA)<选择明文攻击(CPA)<已知明文攻击(KPA)<唯密文攻击(COA)