1.电码本模式(ECB)
优点: 每个数据块独立加密,可并行加密,实现简单。
缺点: 相同明文会产生相同密文,不具备数据完整保护性。
适用于短消息的加密传输 (如一个加密密钥)。
工作流程:用相同的密钥分别对应明文分组单独加密。
2.密文分组链接模式(CBC)
优点:每个密文块的加密依赖前一个密文块,具备数据完整性保护。
缺点: 错误传播、不适合并行处理
适用于常规文件加密、非实时加密等场景
工作流程:将前一个密文块与当前明文块进行异或运算后再加密,初始向量(IV)用于第一个块的加密。
3.密文反馈模式(CFB)
优点:可变长度的加密操作,实时性,可以部分解密数据。
缺点:密文分组的错误传播敏感,不适合并行处理的场景,需要保证初始向量的唯一性和完整性。适用于流加密和对特定部分数据进行随机访问的场景。
适用于流加密和对特定部分数据进行随机访问的场景
工作流程:将前一个密文块作为输入进行加密,生成一个密钥流,再与当前明文块进行异或运算得到密文块。
4.输出反馈模式(OFB)
优点:可变长度的加密操作,实时性,对密文分组的错误不敏感。
缺点:传输错误不可恢复,无法提供数据完整性保护,不支持并行加密。
适用于实时数据流加密和随机访问的场景
工作流程:将前一个加密算法的输出作为输入进行加密,生成一个密钥流,再与当前明文块进行异或运算得到密文块。
5.计数器模式(CTR)
优点:并行处理,随机访问,不受错误传播影响。
缺点:计数器必须唯一,密钥流和明文相关性较弱。
适用于并行加密、随机访问和实时加密的场景。
工作流程:每一个明文分组都与一个经过加密的计数器异或。对每个后续的分组,计数器增1。
6.总结:
工作模式 | 描述 | 优点 | 缺点 | 典型应用 |
电码本模式(Electronic Codebook,ECB) | 用相同的密钥分别对明文分组单独加密 | 简单直观的加密模式;可以进行并行加密操作;可以随机访问任意块 | 相同的明文块会生成相同的密文块;缺乏混淆和扩散 | 单个数据的安全传输 |
密文分组链接模式(Cipher Block Chaining,CBC) | 加密算法的输入是上一个密文分组和下一个明文分组的异或 | 密文之间的依赖性增加了安全性;可处理任意长度的数据;可抵抗明文和密文的修改 | 不适合并行处理;需要处理初始向量;算法之间可能存在差异 | 面向分组的通用传输;认证 |
密文反馈模式(Cipher Feedback,CFB) | 一次处理输入的s位,上一个密文分组作为加密算法的输入,产生的伪随机数输出与明文异或后作为下一个单元的密文 | 可变长度的加密操作;实时性;可以部分解密数据 | 错误传播敏感;不适合并行处理;保证初始向量的唯一性和完整性 | 面向数据流的通用传输;认证 |
输出反馈模式(Output Feedback,OFB) | 与CFB类似,只是加密算法的输入是上一次加密的输出,并且使用整个分组 | 可变长度的加密操作;实时性;对密文分组的错误不敏感 | 传输错误不可恢复;无法提供数据完整性保护;不支持并行加密 | 噪声信道上的数据传输(如卫星通信) |
计数器模式(Counter,CTR) | 每个明文分组都与一个经过加密的计数器异或。对每个后续的分组,计数器增1 | 并行处理;随机访问;不受错误传播影响。 | 计数器必须唯一;密钥流和明文相关性较弱 | 面向分组的通用传输;用于高速需求 |