【密码学】分组密码的工作模式

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 | 并行处理;随机访问;不受错误传播影响。 | 计数器必须唯一;密钥流和明文相关性较弱 | 面向分组的通用传输;用于高速需求 |

相关推荐
Python私教7 分钟前
Rust:重新定义系统编程的安全与效率边界
开发语言·安全·rust
酷爱码9 分钟前
Nginx的核心功能--正向代理、反向代理、缓存和Rewrite
运维·nginx·缓存
兴达易控33 分钟前
Profibus DP主站转Modbus TCP网关接E+H流量计通讯案例
网络
熙曦Sakura39 分钟前
【Linux网络】TCP全连接队列
linux·网络·tcp/ip
菜鸟康2 小时前
Linux——CMake的快速入门上手和保姆级使用介绍、一键执行shell脚本
linux·运维·服务器
iSee8572 小时前
DocsGPT 远程命令执行漏洞复现(CVE-2025-0868)
安全·web安全
卷卷的小趴菜学编程2 小时前
Linux系统之----基础IO
linux·运维·服务器·文件·fopen·文件操作符·位图传递标志位
码上飞扬3 小时前
Java大师成长计划之第22天:Spring Cloud微服务架构
java·运维·云计算
国产化创客3 小时前
OpenHarmony轻量系统--BearPi-Nano开发板网络程序测试
网络·物联网·harmonyos·国产化
重启就好3 小时前
【Ansible】之inventory主机清单
运维·ansible