Cryptography/分组加密操作模式

分组加密操作模式是在对称密码学中使用的一种方式, 用于将明文分块加密为密文. 注意到可以通过在明文尾部添加一个 1, 然后使用足够的 0 填充, 可将任意长度的消息填充为总长度为分组大小的倍数.

下面是 ECB, CBC, OFB 和 CTR 这四种操作模式之间的区别:

  • 电子密码本模式(ECB): ECB 是最简单的操作模式, 它将明文分成固定大小的块, 然后对每个块进行独立加密. 每个块都使用相同的密钥进行加密, 因此如果明文中有相同的块, 它们会被加密成相同的密文块. 这使得 ECB 模式在一些情况下存在安全问题, 因为攻击者可以通过观察和比较重复的密文块来获得有关明文的信息.
  • 密码分组链接模式(CBC): CBC 模式通过使用前一个块的密文与当前块的明文进行异或运算, 增加了块之间的依赖性. 这意味着每个块的加密都依赖于前一个块的密文, 从而增加了密码的安全性. 在加密之前, 需要对第一个块进行初始化向量(IV)的设置. 由于依赖性的引入, CBC 模式是一种常见且相对安全的操作模式.
  • 输出反馈模式(OFB): OFB 模式使用一个初始向量(IV)和加密算法来生成一个伪随机的密钥流. 然后, 该密钥流与明文进行异或运算, 得到密文. 密钥流的生成不依赖于明文或密文, 因此 OFB 模式可以用于加密和解密. OFB 模式对于传输错误具有一定的容错性, 因为一个错误只会影响该块的解密, 不会影响后续的块.
  • 计数器模式(CTR): CTR 模式将一个计数器与密钥一起输入到加密算法中, 产生一个密钥流. 然后, 该密钥流与明文进行异或运算, 得到密文. CTR 模式与 OFB 模式类似, 但不同的是计数器的值是递增的, 而不是基于 IV. CTR 模式可以并行地进行加密和解密, 因此在某些情况下可以提供更高的性能.

总的来说, ECB 模式具有安全性问题, 因此在实际中较少使用. 而 CBC, OFB 和 CTR 模式更为常见, 它们引入了依赖性和伪随机性, 提高了加密的安全性. 选择适当的操作模式取决于具体的安全需求和性能要求.