It's our wits that make us men.

2019/5/4 《图解密码技术》第四章

Posted on By LuLu

图解密码技术(第四章)

  • 填充 padding
  • 初始化向量 Initialization Vector
  • 填充提示攻击 Padding Oracle Attack

ECB模式

将明文分组直接加密的方式就是ECB模式。

什么是ECB模式

Electronic CodeBook模式:电子密码本模式

明文分组加密之后的结果直接成为密文分组。

党组后一个明文分组内容小于分组长度时,需要用一些特定的数据进行填充。

img

ECB特点

ECB是最简单的一种模式。相同的明文分组对应的密文分组是一样的,存在一定风险。

对ECB模式的攻击

对每个明文分组进行独立的加密解密,是一个很大的弱点。

一大弱点:可以在不破译密文的情况下操纵明文

主动攻击者可以做的,不仅仅是替换,还可以删除,复制。

消息验证码可以检测出对密文的篡改。

CBC模式

什么是CBC模式

Cipher Block Chaining模式:密文分组链接模式

首先将明文分组与前一个密文分组进行XOR运算,在进行加密。

img

ECB模式只进行了加密,而CBC模式在加密前进行了一次XOR。

初始化向量

加密第一个明文分组,由于没有前一个密文分组,要事先准备一个长度为一个分组长度的比特序列,被称为初始化向量,简记IV。

CBC模式的特点

损坏(密文分组长度没变):CBC模式中密文分组损坏时,会影响两个明文分组。

缺失(密文分组长度改变):即使只有1比特缺失,那此后的分组发生错位,全都无法解密。

对CBC模式的攻击

如果Mallory的目的是为了通过修改密文来操纵明文,则他可以通过对初始化向量进行比特反转(0变1,1变0)对明文分组进行比特反转攻击

img

可以对初始化向量进行攻击,但是对密文分组也进行同样攻击就很困难。如果密文分组1进行了反转,则明文分组1就不是简单发生反转变化了,无法达到期望的反转效果。

消息验证码,可以判断数据有没有被篡改。

填充提示攻击

填充提示攻击是一种利用分组密码中的填充部分来进行攻击的方法。该攻击适用于所有需要分组填充的模式。

在这个攻击中,攻击者回重复发送一段密文,每次发送都对填充的密文进行少许修改,通过无法解密时返回的一个错误消息,来获得一部分的明文相关信息。

防御这种攻击,需要对密文进行认证。

对初始化向量进行攻击

IV必须使用不可预测的随机数,但是SSL/TLS的TLS1.0的版本中,没有使用不可预测数,而是使用了上一次CBC加密的最后一个分组。容易被攻击。

CBC模式的应用实例

确保互联网安全的通信协议之一SSL/TLS就是使用CBC模式来确保通信的机密性。

如:使用CBC模式的三重DES的3DES_EDE_CBC

​ 使用CBC模式的256比特的AES的AES_256_CBC