代码说明
CBC模式的全称是Cipher Block Chaining模式,即密文分组链接模式,之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行异或运算,然后再进行加密。
填充提示攻击是一种利用分组密码中填充部分来进行攻击的方法。在分组密码中,当明文长度不为分组长度的整数倍时,需要在最后一个分组中填充一些数据使其凑满一个分组长度。在填充提示攻击中,攻击者会反复发送一段密文,每次发送时都对填充数据进行少许改变。由于接收者(或者说服务器)在无法正确解密时会返回一个错误信息,攻击者通过这一错误消息就可以获得与明文相关的信息。(这一攻击并不仅限于CBC模式,还适用于所有需要进行分组填充的模式)。
填充提示攻击成立有两个重要前提:
1.攻击者能够获得密文,以及附带在密文前面的iv(初始化向量);
2.攻击者能够出发密文的解密过程,且能够知道密文的解密结果。
运行指导
将源码clone到本地运行Padding_Oracle_Attack.py程序即可。
软件环境:Visual Studio 2019
硬件环境:PC机
1