问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

加密与安全:常见的分组密码ECB、CBC、CFB、OFB模式介绍

创作时间:
作者:
@小白创作中心

加密与安全:常见的分组密码ECB、CBC、CFB、OFB模式介绍

引用
1
来源
1.
https://developdoc.online/news/view/2024/07/08/6677.html

分组密码是现代加密技术中的重要组成部分,广泛应用于数据加密、通信安全等领域。本文详细介绍了四种常见的分组密码模式:ECB、CBC、CFB和OFB,包括它们的工作原理、优缺点及应用场景,帮助读者全面理解这些基础加密模式的特点和适用场景。

概述

  1. 介绍分组密码基本概念。
  2. 讲解ECB模式的工作原理、优缺点及应用场景。
  3. 详细介绍CBC模式的工作原理、优缺点及应用场景。
  4. 说明CFB模式的工作原理、优缺点及应用场景。
  5. 解释OFB模式的工作原理、优缺点及应用场景。
  6. 总结并给出模式选择的建议。

为什么需要分组密码模式

当需要加密任意长度明文时,就需要分组迭代进行加密。分组密码有很多模式,如果模式选择不当,就无法充分保证明文的机密性。

分组密码和流密码的基本概念

分组密码:将明文数据划分为固定长度的块(通常为128位或64位),然后逐块加密。每个块称为一个分组(block)。

流密码:对数据流进行连续处理的加密算法,逐位或逐字节加密,适用于数据流的加密。

什么是模式

模式是分组密码的迭代算法。比如我们常使用的DES算法中的ECB模式。ECB模式就是将明文分割成多个分组并逐个加密的方法。ECB算法计算量小,加解密速度快,但现在已经证实ECB是不可靠的模式了。所以正式场合中不要使用ECB模式。

分组密码的常见模式

1. ECB模式(电子密码本模式)

ECB将明文进行分组后直接加密产生密文分组

工作原理

  • 将明文分割成多个固定长度的分组。
  • 每个分组独立加密。

优点

  • 计算简单,速度快。
  • 支持并行处理。

缺点

  • 相同的明文分组会产生相同的密文分组,无法隐藏明文的模式和结构。
  • 容易受到统计分析攻击。

应用场景

  • 不适合用于敏感信息的加密,不推荐在正式场合使用。

ECB模式中,明文和密文是一一对应的。相同的明文一定可以得到相同的密文。所以虽然不能直接根据密文推导出明文,但可以根据密文的特点进行定向攻击。

例如:Bob向Alice发送了一个转账的报文:

分组1 = Bob的银行账号
分组2 = Alice的银行账号
分组3 = 转账金额

虽然Eve不能直接修改账号和金额(因为没有解密数据),但Eve可以通过交换分组1和分组2,造成攻击。

分组1 = Alice的银行账号
分组2 = Bob的银行账号
分组3 = 转账金额

这种攻击方式能成功就是因为ECB没有隐藏明文信息造成的。

2. CBC模式(密文分组链接模式)

密文分组链接模式

工作原理

  • 第一个明文分组与初始向量(IV)异或后进行加密,产生第一个密文分组。
  • 后续每个明文分组与前一个密文分组异或后进行加密,产生相应的密文分组。

优点

  • 能够隐藏明文的模式和结构,提高安全性。
  • 支持并行解密。

缺点

  • 加密时不支持并行处理,需串行进行。
  • 若某个密文分组损坏,会影响当前和下一个分组的解密。

CBC最核心的一个环节,是将前一个密文分组作为一个变量带入了下一个明文加密中。这样即便明文相同,但经过密文异或操作后,就会出现不同的结果。通过这样就实现了混淆明文信息的目的。

但不知道你有没有发现,第一个明文分组如何处理呢?在处理第一个明文分组时,异或为0.那么密文分组A就退化成了ECB模式。为了避免出现这种情况,我们就需要人为补充一个初始密文分组,这个初始的密文分组就称为IV分量。

应用场景

  • 在需要高安全性且可以容忍串行加密的场景中使用,如文件加密。

3. CFB模式(密文反馈模式)

对CBC模式的一种改进

在CFB模式中,明文分组和密文分组之间只做异或操作就可以了。在此时此刻,密码算法的输出有一些一次性密码本的意思了.

工作原理

  • 第一个明文分组与初始向量(IV)异或后进行加密,产生第一个密文分组。
  • 后续每个明文分组与前一个密文分组异或后进行加密,产生相应的密文分组。

优点

  • 支持并行解密。
  • 可以解密任意的密文分组。

缺点

  • 不能抵御重放攻击。

应用场景

  • 实时通信加密,如网络数据传输。

4. OFB模式(输出反馈模式)

输出反馈模式。密码算法的输出会反馈到密码算法的输入中

OFB并不是通过密码算法对明文进行加密的,而是通过将明文分组和密码算法的输出进行异或来产生密文的。所以OFB和CFB也有一些类似.

工作原理

  • 初始向量(IV)输入到加密算法中,产生一个伪随机输出。
  • 明文分组与该伪随机输出异或,产生密文分组。
  • 伪随机输出反馈给加密算法,继续生成下一个伪随机输出。

优点

  • 不需要填充(Padding)。
  • 若密文包含错误比特,仅对应的明文比特会出错。

缺点

  • 不支持并行解密。
  • 存在比特反转攻击风险。

应用场景

  • 对错误容忍性要求较高的场景,如视频流加密。

模式选择建议

  1. ECB模式:简单快速,但不安全,不推荐使用。
  2. CBC模式:适用于高安全性需求的场景,如文件加密,推荐使用。
  3. CFB模式:适用于实时通信,支持并行解密,但需防范重放攻击。
  4. OFB模式:适用于错误容忍性要求高的场景,但不支持并行解密。
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号