对给定的随机密钥,每一块明文对应固定的密文块,即相同的明文组蕴含着相同的密文组,类似电码本的码字,又称为电码本(Electronic Code,ECB)模式,ECB模式是分组密码最简单的工作模式。
ECB模式的优点是可并行运算、速度快和易于标准化。缺点是分组加密不能隐藏数据格式;不能抵抗组的重放、嵌入、删除等攻击;加密长度只能是分组的倍数。因此ECB模式仅适用于短数据加密,如果需要安全地传递DES密钥,ECB是最合适的模式。
为了解决ECB的安全缺陷,可以让重复的明文分组产生不同的密文分组,密码分组链接(Cipher Block Chaining,CBC)模式就可满足这一要求。CBC模式主要基于两种思想,第一,所有分组的加密都链接在一起,其中各分组所用的密钥相同。加密时输入的是当前的明文分组和上一个密文分组的异或,这样使得密文分组不仅依赖当前明文分组,而且还依赖前面所有的明文分组。因此,加密算法的输入不会显示出与这次的明文分组之间的固定关系,所以重复的明文分组不会再密文中暴露出这种重复关系。第二,加密过程使用初始量进行了随机化。
CBC模式的优点是引入了收发双方相互可公开的随机初始量,为使安全性最高,初始量应像密钥一样被保护,可使用ECB加密模式来发送初始量。保护初始量的原因;如果敌手篡改初始量中的某些比特,则接受方收到的明文中相应的比特也发生了变化。
如果加密算法是伪随机的,则输出具有一定的随机性,避免了ECB模式的缺点,隐藏了明文的数据格式,在一定程度上能防止数据窜改。缺点是会出现错误传播,密文在传输中发生错误不仅影响密文的正确译文,还会影响其后密文的正确解密。CBC模式不能纠正传输中同步差错,即传输中增加或丢失一个或多个比特所引起的密文组边缘的错乱。CBC模式是应用最广。影响也最大的一个工作模式,适合加密长度大于64位的消息,但消息长度只能是分组长度的倍数,不能是任意长度的消息;此外,CBC模式还可以用来实现报文的完整性认证和用户的身份认证。