块密码模式

2025 年 5 月 29 日 | 阅读 6 分钟

块密码和流密码是根据输入类型区分的两种加密技术。块密码是一种加密技术,它在给定一个固定输入大小(例如 b 位)的情况下生成 b 位的密文。如果输入超出 b 位,则可以进一步分割。块密码可以以各种方式运行,以适应不同的目的和应用。

块密码模式包括以下五种操作类型:ECB(电子密码本)、CBC(密码块链接)、CFB(密文反馈)、OFB(输出反馈)和 CTR(计数器)。块密码在 ECB 和 CBC 模式下运行,而作为流密码运行的块密码则在 CFB 和 OFB 模式下运行。ECB 可用于不安全地传输单个值,CBC 可用于加密文本块的认证,CFB 可用于传输加密数据流,OFB 可用于传输加密数据流,CTR 可用于传输面向块的应用程序。

电子密码块 (ECB)

操作块密码最简单的方法是使用电子密码本。由于输入明文的每个块都直接加密,并且输出是加密密文块的形式,因此它更简单。大于 b 位的信息可以被分成多个块,然后重复该过程。

电子密码块模式,也称为 ECB 模式,是最基本的运行模式之一。此模式将明文分割成块,每个块的大小为 64 位。然后,使用相同的密钥独立加密每个块。密钥用于加密每个块,从而生成一个密文块。

在接收端,数据被分成 64 位块。使用与加密相同的密钥进行解密。它接收 64 位密文并通过密钥将其转换为明文。由于所有块都使用相同的密钥加密,因此如果明文块在原始消息中出现多次,则相应的密文块也会出现。由于所有块都使用相同的密钥,因此 ECB 模式用于较小的消息,在这些消息中明文块的重复较少,以防止块重复。

Block Cipher Modes of Operation

ECB 的优点

  • 由于位块可以并行加密,因此这种加密速度更快。
  • 块密码是最基本的形式。
  • 以简单的方式进行块密码操作。

ECB 的缺点

  • 容易受到密码分析,因为明文和密文直接相关。

密码块链接 (CBC)

尽管 ECB 违反了一些安全标准,但 CBC 是对 ECB 的改进。通过将前一个密文块与原始明文块进行 XOR 运算后,CBC 算法将密文块作为输入。发送方加密块模式,或称 CBC 模式,将明文分割成块。在此模式下使用了初始化向量 (IV),它可能是一个随机文本块。IV 使每个块的密文独一无二。

Block Cipher Modes of Operation

通过使用 XOR 函数组合第一个明文块和 IV,然后使用密钥加密结果消息,创建第一个密文块。第二个明文块使用第一个密文块作为其 IV。每个明文块都将经历相同的过程。

在接收端,密文块被分离。用于加密第一个密文块的密钥也用于解码它。第一个明文块将通过将解密结果与 IV 进行 XOR 运算来形成。第二个明文块通过将第一个密文块与第二个密文块进行 XOR 运算来创建,后者同样使用相同的密钥进行解码。每个块都经历相同的过程。CBC 模式确保为原始消息中重复的每个明文块生成独特的密文。

CBC 的优点

  1. 当输入大于 b 位时,CBC 表现良好。
  2. CBC 是一种合适的认证方法。
  3. 与 ECB 相比,抗密码分析能力更强。

CBC 的缺点

  1. 由于每次加密都需要前一个密码,因此无法进行并行加密。

密码反馈模式 (CFB)

密码反馈模式也称为 CFB 模式。在此模式下,数据以 8 位为单位进行加密。IV 的初始化方式类似于密码块链接模式。移位寄存器包含 IV。使用密钥对其进行加密并生成密文。

明文的初始 j 位现在与加密 IV 的最左边 j 位进行 XOR 运算。此过程创建密文的第一部分,然后将其发送给接收者。

Block Cipher Modes of Operation

现在,j 位将 IV 位向左移。结果,移位寄存器的最右边 j 位现在有不确定的数据。密文现在填充了这些最右边的 j 位。对于每个明文单位,将重复该过程。

CFB 的优点

  • 由于移位寄存器导致某些数据丢失,因此使用密码分析具有挑战性。

使用 CFB 的缺点

  • CBC 模式和 CFB 的缺点是相同的。加密不允许并行加密多个块或块丢失。但是,解密是容错的且可并行化的。

输出反馈模式 (OFB)

输出反馈模式的缩写是 OFB 模式。OFB 模式与 CFB 模式相似,主要区别在于 OFB 模式中,IV 加密的输出用于下一次加密步骤,而在 CFB 模式中,使用的是密文。

密钥和加密 IV 的形式用于加密 IV。通过使用 XOR 将明文与加密 IV 的最左边八位组合起来创建密文。

前一步的形式(密文)将用作下一次迭代的 IV。每个块都经历相同的过程。

Block Cipher Modes of Operation

OFB 的优点

  • 在 CFB 中,一个块中的单比特错误会传播到所有后续块。由于明文块中没有比特错误,OFB 解决了这个问题。

OFB 的缺点

  • OFB 的缺点是,由于其操作模式,它比 CFB 更容易受到消息流修改攻击。

计数器模式

计数器模式也称为 CTR 模式。顾名思义,该方法将数值序列作为输入。当块被加密时,下一个计数器值会填充下一个寄存器。

通过使用密钥加密第一个计数器后,将明文与加密结果进行 XOR 运算来创建密文。

在下一步中,计数器将增加 1,并且所有块都将经历相同的过程。相同的序列将用于解密。在这种情况下,每个密文都与加密的计数器进行 XOR 运算,将其转换为明文。在下一步中,计数器将为每个密文块增加相同的数量。

Block Cipher Modes of Operation

计数器的优点

  • 这避免了明文和密文之间的直接交互,因为每个块都有一个单独的计数器值。这意味着多个密文可以映射到同一个明文。
  • 由于输出不像 CBC 那样链接到早期阶段,因此可以并行执行加密。

计数器的缺点

  • CTR 模式的一个主要缺点是它需要在发送方和接收方都有同步的计数器。当同步中断时,明文恢复不正确。

块密码用例

  1. 数据加密:块密码通常用于加密敏感和机密信息,包括信用卡号、密码以及在通信过程中传输或存储的其他数据。通过加密过程,明文数据被转换为复杂、不可理解的格式。只有拥有私钥的授权人员才能解密加密数据。
  2. 文件和磁盘加密:块密码用于加密整个文件和驱动器,以保护其内容并防止未经授权的用户访问。BitLocker 和 TrueCrypt 等磁盘加密程序也使用块密码来加密和保护数据。
  3. 虚拟专用网络:虚拟专用网络 (VPN) 使用块密码来加密在两个通信设备之间通过 Internet 传输的数据。当数据发送给另一用户时,此过程可确保未经授权的人员无法访问该数据。
  4. 传输层安全 (TLS) 和安全套接字层 (SSL):SSL 和 TLS 协议使用块密码来加密在 Web 浏览器和服务器之间通过 Internet 传输的数据。此加密过程保护卡号、登录凭据和其他私人信息。
  5. 数字签名:为了确保数字文档的有效性和完整性,数字签名算法会使用块密码。此加密过程为每个文档提供唯一的签名,用于确认其合法性并识别欺诈活动。