在密码学中,分组密码工作模式可以提供诸如机密性或真实性的信息服务。 基于分组的对称加密算法(DES 、AES等)只是描述如何根据加密密钥对一段固 定长度(块)的数据进行加密,对于比较长的数据,分组密码工作模式描述了如 何重复应用某种算法加密分组操作来安全地转换大于固定长度的数据量。常见的 分组密码工作模式有ECB 、CBC 、CFB 、OFB 、CTR 5种,下面将对这5种工作模 式的分组密码进行简单介绍。
1.ECB
ECB(Electronic Codebook ,电子密码本)模式是最简单的加密模式,明文消 息被分成固定大小的块(分组),并且每个块被单独加密。每个块的加密和解密 都是独立的,且使用相同的方法进行加密,所以可以进行并行计算,但是一旦有 一个块被破解,使用相同的方法就可以解密所有的数据,安全性比较差。ECB模 式适用于数据较少的情形,加密前需要把明文数据填充到块大小的整倍数,如图 6-3所示为ECB模式示意图。
2.CBC
CBC(Cipher Block Chaining ,密码块链)模式中每一个分组要先和前一个分 组加密后的数据进行XOR(异或)操作,然后再进行加密。这样每个密文块依赖 该块之前的所有明文块,为了保持每条消息都具有唯一性,第一个数据块进行加 密之前需要用初始化向量IV进行异或操作。CBC模式是一种最常用的加密模式,
主要缺点为加密是连续的,不能并行处理,并且与ECB一样,消息块必须填充到 块大小的整倍数。如图6-4所示为CBC模式示意图。
图6-3 ECB模式示意图
图6-4 CBC模式示意图
3.CFB
CFB(Cipher Feedback ,密码反馈)模式和CBC模式比较相似,前一个分组 的密文加密后和当前分组的明文进行XOR(异或)操作,生成当前分组的密文。 CFB模式的解密和CFB加密在流程上也是非常相似的,如图6-5所示为CFB模式示 意图。
图6-5 CFB模式示意图
4.OFB
OFB(Output Feedback ,输出反馈)模式将分组密码转换为同步流密码,也 就是说可以根据明文长度先独立生成相应长度的流密码。在加密流程中可以看
出,OFB和CFB非常相似,CFB是前一个分组的密文加密后与当前分组明文进行 XOR操作,OFB是将前一个分组异或之前的流密码与当前分组明文进行XOR处
理。由于异或操作的对称性,OFB模式的解密与加密的流程完全相同,如图6-6所 示为OFB模式示意图。
图6-6 OFB模式示意图
5.CTR
CTR(Counter ,计数器)模式与OFB模式相同,计数器模式将分组密码转换 为流密码。加密“计数器” 的连续值用来产生下一个密钥流块,原理如图6-7所示。
图6-7 CTR模式示意图