密码学 - 输出反馈 (OFB) 模式



输出反馈 (OFB) 模式类似于密码反馈模式,但它提供加密输出而不是 XOR 输出。此输出反馈选项发送所有块位,而不仅仅是其中的一部分。分组密码的输出反馈模式极易受到比特传输错误的影响。这减少了密码对明文的依赖性。

它涉及将来自底层分组密码的连续输出块插入其中。在 CFB 模式中,反馈块将一系列比特发送到加密算法,然后加密算法生成密钥流。

OFB 模式需要 IV 作为第一个随机 n 位输入块。初始化向量不需要保密。OFB 模式的操作如下图所示:

Output Feedback (OFB) Mode encryption

操作

OFB 和 CFB 之间最根本的区别在于,OFB 模式使用 XOR 将明文和密文块与初始化向量的较大副本组合。

Output Feedback (OFB) Mode

此操作可以视为一次性密码本,扩展向量作为填充向量。以下公式显示了如何创建一系列填充向量:

Vi = EK(Vi-1)

其中 EK 表示使用密钥 K 的分组加密技术,Vi 和 Vi-1 是相邻向量。

请注意,以上计算假设 V0 为初始化向量。

创建一系列填充向量后,可以使用以下公式在 OFB 模式下执行加密:

Ci = Vi ⊕ Bi

解密以类似的方式工作:

Bi = Vi ⊕ Ci

请注意,与 CFB 模式一样,OFB 对加密和解密都使用相同的加密算法。

OFB 模式的分析

OFB 模式提供高安全性、成功的并行处理和对块丢失的容忍度。为了避免任何安全问题,必须注意确保初始化向量是随机且唯一的。此外,错误传播的缺乏可能需要采取更多预防措施来保护传输问题发生时的数据完整性。

OFB 模式的位宽

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

明文 密文 密码密钥 IV
OFB-DES 64 64 64 64
OFB-AES128 128 128 128 128
OFB-AES192 128 128 192 128
OFB-AES256 128 128 256 128

CFB 模式的优点

  • 创建填充向量(也称为密钥流)后,OFB(输出反馈)模式能够同时进行块加密和解密。这可以在处理速度很重要的场景中提高性能,因为可以同时处理多个块。

  • 由于每个块都独立于其他块进行加密,因此 OFB 模式可以承受传输过程中加密块的丢失。这意味着如果一个块丢失或损坏,后续块的解密将不受影响,从而实现更好的错误恢复。

OFB 模式的缺点

  • 在 OFB 模式下重复加密初始化向量 (IV) 会生成相同的状态,这可能会暴露出安全漏洞。如果 IV 不是真正随机的或以可预测的方式更改,则加密过程可能会重复使用相同的密钥流,从而使攻击者获得有关明文的信息。

  • 与其他模式(如 CBC(密码分组链接))不同,OFB 模式不会传播错误。虽然在某些情况下这可能是有益的,因为它可以防止错误影响后续块,但它也意味着密文中存在的问题可能无法被识别或修复,这可能导致数据损坏或安全漏洞。

广告