分组密码模式

1. 电码本 Electronic Codebook (ECB)

将消息划分为独立的块,并独立地进行加密。

1.1 优点:

  • 用于加密短消息

1.2 缺点:

  • 消息中的内容重复可能在密文中显示出来
  • Weakness :因为各组加密是独立的
  • 不会隐藏数据模式:
  • 易受到延迟攻击
  • 错误传播仅局限于同一组消息,不同组间没有错误传播

2. 密码分组链接 Cipher-Block Chaining (CBC)

  • 需要初始向量(IV)
  • 当前块的加密受前一个块的影响

2.1 优点

  • 每个组加密都依赖于其前面所有的组
  • 一个组的改变会影响到其后面所有的组

2.2 缺点

3. 密码反馈 Cipher Feedback (CFB)

  • 消息被看作为 bits 流
  • 允许返回任何数量的 bit 位
  • 用于数据流加密、认证

3.1 优点

  • 适用于消息以 bits/bytes 传输
  • 最公用的流模式
  • 分组密码在加密模式的两端都使用
  • 错误传输到多个块

3.2 缺点

  • 不支持并行运算

4. 输出反馈 Output Feedback (OFB)

  • 消息被看作为 bits 流
  • 每组输出的密文被加入到密文流中
  • 反馈是独立于加密的
  • 可以提前计算 IV
  • 用于有噪信道流数据加密

4.1 优点

  • 位错误不会传输(可用于有噪信道加密)

4.2 缺点

  • 发送者和接收者必须保持同步
  • 需要初始 IV
  • 只有 Full Block Feedback 应该被使用(否则不安全)
  • 容易受消息流修改攻击

5. 计数器 Counter (CTR)

  • 用于高速网络加密

5.1 优点

  • 高效
  • 随机
  • 可证明的安全性

5.2 缺点

  • 不能重复使用密钥/计算器的值,否则很容易被攻击