唯密文攻击(COA)、已知明文攻击(KPA)、选择明文攻击(CPA),选择密文攻击(CCA)
一、唯密文攻击(Ciphtext Only Attack,COA)
定义:唯密文攻击(COA)是指仅仅知道密文的情况下进行分析,求解明文或密钥的密码分析方法。
假定密码分析者拥有密码算法及明文统计特性,并截获了一个或者多个用同一密钥加密的密文,通过对这些密文进行分析求出明文或密钥。COA已知条件最少,经不起唯密文攻击的密码是被认为不安全的。
简单理解:只知道密文,推出明文或密钥,一般用穷举攻击。
密码分析者有一些消息的密文,这些消息都用加密算法加密。密码分析者的任务是恢复尽可能多的明文,或者最好能推算出密钥,,以便可采用相同的密钥破解其他被加密的消息,
已知:C1=Ek(P1), C2=Ek(P2),..., Ci=Ek(Pi)
推导出:P1,P2,..., Pi; K 或者找出一个算法从Ci+1=Ek(Pi+1)推导出Pi+1.
二、已知明文攻击(Known Plaintext Attack,KPA)
定义:已知明文攻击(KPA)是指攻击者掌握了部分的明文M和对应的密文C,从而求解或破解出对应的密钥和加密算法。
简单理解:知道部分的明文和密文对,推出密钥和加密算法。
密码分析者不仅可以得到一些消息的密文,而且也知道这些消息的明文。分析者的任务就是用加密信息推出用来加密的密钥或导出一个算法,可以对用相同密钥加密的任何新消息进行解密。
已知:P1,C1=Ek(P1), P2, C2=Ek(P2),..., Pi, Ci=Ek(Pi)
推导出:K 或者找出一个算法从Ci+1=Ek(Pi+1)推导出Pi+1.
三、选择明文攻击(Chosen Plaintext Attack,CPA)
定义:选择明文攻击(CPA)是指攻击者除了知道加密算法外,还可以选定明文消息,从而得到加密后的密文,即知道选择的明文和加密的密文,但是不能直接攻破密钥。
简单理解:知道明文就知道密文,目标为推出密钥。
密码分析者不仅可以得到一些消息的密文和这些消息的明文,而且他们也可选择被加密的明文。这比已知明文攻击更有效,因为密码分析者能选择特定的明文块进行加密,那些块可能产生更多关于密钥的信息。分析者的任务就是用加密信息推出用来加密的密钥或导出一个算法,可以对用相同密钥加密的任何新消息进行解密。
已知:P1,C1=Ek(P1), P2, C2=Ek(P2),..., Pi, Ci=Ek(Pi),其中P1,P2,...,Pi可由密码分析者选择。
推导出:K 或者找出一个算法从Ci+1=Ek(Pi+1)推导出Pi+1.
四、选择密文攻击(Chosen Ciphertext Attack,CCA)
定义:选择密文攻击(CCA)是指攻击者可以选择密文进行解密,除了知道已知明文攻击的基础上,攻击者可以任意制造或选择一些密文,并得到解密的明文,是一种比已知明文攻击更强的攻击方式。
若一个密码系统能抵抗选择密文攻击,那必然能够抵抗COA和KPA攻击。密码分析者的目标是推出密钥,CCA主要应用于分析公钥密钥体制。
简单理解:知道密文就知道明文,目标为推出密钥。
密码分析者能选择不同的被加密的密文,并可能到对应的解密的明文。密码分析的任务是推出密钥。
已知:C1,P1=Dk(C1), C2, P2=Dk(C2),..., Ci, Pi=Dk(Ci)。
推导出:K
比较分析
当密码系统只有承受住选择明文攻击(CPA)和选择密文攻击(CCA),才能算是安全的。
其中,四种攻击方式对应的攻击强度为:
攻击难度:选择密文攻击(CCA)>选择明文攻击(CPA)>已知明文攻击(KPA)>唯密文攻击(COA)
难易程度:选择密文攻击(CCA)<选择明文攻击(CPA)<已知明文攻击(KPA)<唯密文攻击(COA)
————————————————
版权声明:本文为CSDN博主「Brilliantzhu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/A33280000f/article/details/118304531