0%

浅谈Block Cipher分组密码的分组模式

本文介绍Block Cipher分组密码的分组模式

abstract.png

楔子

由于分组密码算法一次只能对固定长度的明文进行加密。为此对于较长的明文而言,我们需要先按分组长度对明文进行分组处理。然后根据分组模式决定如何对这些分组进行加密、解密

ECB模式

ECB模式(Electronic CodeBook mode,电子密码本模式)下,其会对各明文分组直接进行加密。同时,由于分组密码的需要,故当最后一个明文分组的长度不足分组长度时,需要进行填充。对于两个相同内容的明文分组来说,其对应的密文分组内容也是完全一样的,显然这样暴露明文内容的特征。其次,由于该模式下各密文分组间无任何关联,攻击者可以在不破译密文的前提下,仅仅通过删除密文分组、替换密文分组、调整各密文分组间的顺序就可以实现对明文的修改,故无法抵御重放攻击。所以,该模式的安全性非常低,不应使用

figure 1.png

CBC模式

CBC模式(Cipher Block Chaining mode,密文分组链接模式)下,其会将明文分组与前一个密文分组先进行XOR异或运算,然后再进行加密。特别地,在对第一个明文分组加密时,会生成一个随机的长度与分组长度一致的比特序列,通常称其为初始化向量Initialization Vector(IV)。同时,由于分组密码的需要,故当最后一个明文分组的长度不足分组长度时,需要进行填充

figure 2.png

CFB模式

CFB模式(Cipher FeedBack mode,密文反馈模式)下,其会先将前一个密文分组送回到加密算法的输入端,然后将加密结果与明文分组进行XOR异或运算,进而得到密文分组。由于密文会作为加密算法的输入,故该模式得名密文反馈。同时,由于该模式下密文分组最终是通过XOR运算得到的,故当最后一个明文分组的长度不足分组长度时,不需要进行填充

figure 3.png

OFB模式

OFB模式(Output FeedBack mode,输出反馈模式)下,其每次会将对初始化向量IV的上次加密结果进行再次加密,然后和明文分组进行XOR异或运算,进而得到密文分组。由于加密算法的输出会作为下次加密算法的输入,故该模式得名输出反馈。同时,由于该模式下密文分组最终是通过XOR运算得到的,故当最后一个明文分组的长度不足分组长度时,不需要进行填充

figure 4.png

CTR模式

CTR模式(CounTeR mode,计数器模式)下,会首先生成一个唯一的长度与分组长度一致的随机值作为计数器CTR的初值,后续迭代加密时,计数器的值会依次递增1。加密算法在对计数器的值加密后,再与明文分组进行XOR异或运算,进而得到密文分组。同时,由于该模式下密文分组最终是通过XOR运算得到的,故当最后一个明文分组的长度不足分组长度时,不需要进行填充

figure 5.png

参考文献

  1. 图解密码技术·第3版 [日]结城浩著
请我喝杯咖啡捏~

欢迎关注我的微信公众号:青灯抽丝