密码学 - 分组密码的工作模式



在本章中,我们将讨论分组密码的不同工作模式。这些是一般分组密码过程中的步骤。需要注意的是,各种模式会产生不同的特性,从而提高分组密码的整体安全性。

什么是分组密码的工作模式?

在密码学中,分组密码的工作模式是指一种使用分组密码来提供信息安全(例如机密性或真实性)的算法。一个实际的分组密码可以用来转换安全的加密位(用于加密或解密)或创建一个固定长度的单个块。工作模式描述了如何通过不断利用密码的单块操作来安全地转换大于一个块的数据量。

对于每次加密操作,大多数模式都需要一个不同的二进制序列,通常称为初始化向量 (IV)。除了不重复之外,IV 在某些模式中需要是随机的。初始化向量用于确保即使在不同场合使用相同的密钥多次加密相同的明文时,也会生成不同的密文。即使分组密码可以处理各种块大小,但在整个转换过程中,块大小始终是固定的。如果最后一个数据片段小于当前块大小,则必须将其填充到一个完整的块中,以便分组密码模式能够在整个块上工作。

但是,某些模式不需要填充,因为它们本质上是使用分组密码代替流密码。过去,人们对不同数据更改条件下加密模式的错误传播特性进行了大量研究。之后,完整性保护被认为是完全不同的密码学目标。经过身份验证的加密模式是一些现代操作模式,它们有效地结合了真实性和机密性。

工作模式

分组密码过程分为五类:CFB(密码反馈)、OFB(输出反馈)、CTR(计数器)、CBC(密码分组链接)和 ECB(电子密码本)。分组密码以 ECB 和 CBC 模式工作,而充当流密码的分组密码以 CFB 和 OFB 模式工作。ECB 可以不安全地传输单个值,CBC 可以加密一段文本,CFB 可以加密数据流,OFB 可以传输加密的数据流,CTR 可以传输面向块的应用程序。

  • ECB 模式 - ECB 是最简单的分组密码操作。因为每个输入明文块都被直接加密,并且输出以加密密文块的形式存在。

  • CBC 模式 - 由于 ECB 损害了某些安全要求,例如密文与明文之间的直接连接,这使得攻击者更容易解密编码信息,因此 CBC 是 ECB 的高级模式。

  • CFB 模式 - 在这种情况下,密码被发送作为后续加密块的反馈。

  • OFB 模式 - 除了发送加密的输出作为反馈而不是实际的密码(它是 XOR 输出)之外,OFB 的操作方式与 CFB 非常相似。

  • CTR 模式 - CTR 是基本基于计数器的分组密码的实现。

历史

“工作模式”是一种加密消息使用程序,大约在 1981 年开发。它们被称为 CFB、CBC、OFB 和 ECB。后来,在 2001 年实施了另一种称为 AES 的方法。然后,在 2010 年添加了另一种方法 XTS-AES。虽然还有其他方法,但这些是 NIST 接受的主要方法。

这些技术有助于保护私人信息的安全,但它们并不总是保证信息不会意外或故意更改。人们使用“数字签名”或“消息认证码”来验证是否有任何更改。HMAC、CMAC 和 GMAC 就是此类代码的一些示例。

人们意识到,创建用于保护信息安全和监控更改的系统很困难。因此,开发了结合这两项任务的新方法。我们称之为“authenc”或“经过身份验证的加密”。OCB、IAPM、CCM、GCM、CWC 和 EAX 就是此类方法的一些示例。

这意味着安全信息受不同规则集的约束。NIST、ISO、IEC、IEEE、ANSI 和 IETF 是一些主要的组织。

初始化向量 (IV)

一组称为初始化向量 (IV) 的比特,用于混合加密。它有助于确保每次的结果都不同,即使您多次加密相同的消息。与密钥不同,IV 不需要保密。

每次使用相同密钥加密某些内容时,使用不同的 IV 非常重要,这适用于各种加密技术。我们将此称为“加密随机数”。某些加密技术需要 IV 为随机数。

重复使用相同的 IV 会导致问题。例如,在某些加密技术中,使用相同的 IV 会泄露消息第一部分的信息。另一方面,它可能会削弱加密,使其更容易被解密。

一种确保每次 IV 唯一的方法是使用加密消息的一部分作为后续消息的 IV。但是,这种方法不安全,因为某人可以通过猜测 IV 来解密消息。

“合成初始化向量”(SIV)是在某些方法中可以创建的特殊 IV。它们通过使用特殊的数学过程确保 IV 正确混合。即使随机性不完美或试图被控制,这也保持了加密的安全性。

其他模式和密码基元

分组密码可以以多种方式用于保护数据。虽然其中一些方法有用且安全,但其他方法完全不安全。某些方法专门用于加密对象,如硬盘驱动器。

初始化向量 (IV) 是在其中一些方法中使用的东西。它的功能类似于一个独特的数字,用于混合加密过程。IV 可能需要保密或每次使用时都唯一。

在某些方法中,如果使用相同的 IV 和密钥,可能会导致严重问题,并使解密变得非常容易。因此,正确使用 IV 非常重要。

创建意外的随机数和确认消息未被篡改是分组密码的其他两种用途。

分组密码可用于创建消息认证码 (MAC),用于确认消息未被篡改。

以下是一些其他的模式和密码基元:

其他操作模式

  • 反馈模式

  • Davies-Meyer 哈希

  • LRW(可调整的窄分组加密模式)

  • XEX(可调整的窄分组加密模式)

  • XTS(可调整的窄分组加密模式)

  • CMC(宽分组加密模式)

  • EME(宽分组加密模式)

密码基元

  • 确定性认证加密(NIST 密钥包装算法)

  • SIV (RFC 5297) AEAD 模式

  • AES-GCM-SIV

  • 单向压缩函数(用于构建密码散列函数)

  • 密码安全伪随机数生成器 (CSPRNG)

  • 消息认证码 (MAC),如 CBC-MAC、OMAC 和 PMAC

广告