密码学 - 密码反馈 (CFB) 模式



密码反馈 (CFB) 模式与 CBC 模式非常相似;主要区别在于 CFB 是一种流模式。它通过使用反馈(在流模式中也称为链接)来消除模式。CFB 与 CBC 一样,使用初始化向量来破坏模式,同时传播错误。

CFB 模式是一种典型的工作模式,它使用分组密码算法。在这个版本中,我们支持数据加密标准 (DES) 和高级加密标准 (AES) 处理;DES 的密钥长度应为 64 位,AES 的密钥长度应为 128/192/256 位。另一个限制是我们的工作模式处理固定大小的单元(每块 64 或 128 位),而现实世界中的文本长度可变。

因此,提供给此原语的最终文本块必须填充到 128 位才能进行加密或解密。虽然 CFB1 和 CFB8 模式使用与 CFB128 模式相同的接口,但 CFB1 和 CFB8 模式逐位或逐字节处理明文和密文,而不是逐块处理。

Cipher Feedback (CFB) Mode

操作

上图显示了 CFB 模式的操作。在当前系统中,消息块的大小为 's' 位,其中 1 < s < n。CFB 模式中的初始随机 n 位输入块需要一个初始化向量 (IV)。初始化向量不需要保密。操作步骤如下:

  • 将 IV 加载到顶部寄存器。

  • 使用底层分组密码和密钥 K 加密顶部寄存器中的数据值。

  • 要构造密文块,只需从加密过程的输出中取 's' 个最重要的位(左位),并将其与 's' 位明文消息块进行 XOR 运算。

  • 通过将现有数据向左移动,将密文块送入顶部寄存器,并重复此操作,直到处理完所有明文块。

  • 基本上,前一个密文块在密钥的帮助下被加密,结果与当前明文块进行 XOR 运算。

  • 解密遵循类似的方法。在解密开始时加载预定的 IV。

CFB 模式的分析

CFB 模式与 ECB 模式的显著区别在于,与给定明文块相关的密文不仅取决于该明文块和密钥,还取决于前一个密文块。换句话说,密文块取决于消息。

CFB 具有非常不寻常的特性。在此模式下,用户使用分组密码的加密方法解密密文。从不使用底层分组密码的解密算法。

显然,CFB 模式将分组密码转换为流密码。加密算法充当密钥流生成器,生成存储在底部寄存器中的密钥流。然后,此密钥流与明文进行 XOR 运算,就像流密码一样。

CFB 模式将分组密码转换为流密码,使其具有一些流密码的优点,同时保留分组密码的优点。

另一方面,由于块更改,传输错误会扩散。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

CFB 模式的公式

CFB(密码反馈)是一种 AES 分组密码模式,与 CBC 类似,它需要前一个块的密文 Ci-1 来加密一个块 Bi。与 CBC 类似,CFB 使用初始化向量。主要区别在于,在 CFB 中,在与关注的块进行 XOR 运算之前,首先加密前一个块的密文块。

为了更好地理解这一点,请考虑以公式的形式表示 CFB:

Ci = EK(Ci-1) ⊕ Bi

其中 EK 表示具有密钥 K 的分组加密算法,Ci-1 是 Bi-1 的密文。

请注意,上面的计算假设 C0 为初始化向量。

类似地,使用 CFB 的解密可以表示如下:

Bi = EK(Ci-1)(Ci)

重要的是要理解这里没有使用解密算法。

CFB 模式的位宽

下表显示了 CFB 模式提供的接口的位宽:

明文 密文 密钥 IV
CFB1-DES 64 64 64 64
CFB1-AES128 128 128 128 128
CFB1-AES192 128 128 192 128
CFB1-AES256 128 128 256 128
CFB8-DES 64 64 64 64
CFB8-AES128 128 128 128 128
CFB8-AES192 128 128 192 128
CFB8-AES256 128 128 256 128
CFB128-DES 64 64 64 64
CFB128-AES128 128 128 128 128
CFB128-AES192 128 128 192 128
CFB128-AES256 128 128 256 128

CFB模式的优点

  • CFB(密文反馈)模式有时比CBC(密码分组链接)模式更快,因为它不需要额外的解密技术。这可以提高性能,尤其是在加密速度至关重要的场合。

  • CFB模式使用非确定性加密,这意味着它无法识别明文中的模式。这通过使攻击者更难以从密文中确定有关明文的信息来提供额外的安全层。

CFB模式的缺点

  • 与CBC模式一样,CFB模式无法处理加密块的丢失。如果在传输过程中即使只有一个块丢失或损坏,也可能导致解密过程失败,并使整个消息无法访问。

  • 与CBC模式一样,CFB模式不允许同时加密多个块。每个块的加密都依赖于之前的密文块,这限制了并行加密技术的效率,并可能影响整体加密速度。

  • 虽然CFB模式在速度和不可预测的加密方面可以提供优势,但它比ECB(电子密码本)模式等更简单的模式更难设置和理解。如果实施不当,这种额外的复杂性可能会导致潜在的漏洞。

广告