- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代
- 密码学 - 传统密码
- 密码学 - 加密的需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组件
- 密码系统攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力破解攻击
- 密码系统 - 密码分析技术
- 密码学类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学哈希函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥吊销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - Feistel 分组密码
- 分组密码操作模式
- 分组密码操作模式
- 电子密码本 (ECB) 模式
- 密码分组链接 (CBC) 模式
- 密码反馈 (CFB) 模式
- 输出反馈 (OFB) 模式
- 计数器 (CTR) 模式
- 经典密码
- 密码学 - 逆向密码
- 密码学 - 凯撒密码
- 密码学 - ROT13 算法
- 密码学 - 转置密码
- 密码学 - 加密转置密码
- 密码学 - 解密转置密码
- 密码学 - 乘法密码
- 密码学 - 仿射密码
- 密码学 - 简单替换密码
- 密码学 - 简单替换密码的加密
- 密码学 - 简单替换密码的解密
- 密码学 - 维吉尼亚密码
- 密码学 - 维吉尼亚密码的实现
- 现代密码
- Base64 编码与解码
- 密码学 - XOR 加密
- 替换技术
- 密码学 - 单表替换密码
- 密码学 - 单表替换密码的破解
- 密码学 - 多表替换密码
- 密码学 - Playfair 密码
- 密码学 - Hill 密码
- 多表替换密码
- 密码学 - 一次性密码本密码
- 一次性密码本密码的实现
- 密码学 - 转置技术
- 密码学 - 栅栏密码
- 密码学 - 列置换
- 密码学 - 隐写术
- 对称算法
- 密码学 - 数据加密
- 密码学 - 加密算法
- 密码学 - 数据加密标准
- 密码学 - 三重 DES
- 密码学 - 双重 DES
- 高级加密标准
- 密码学 - AES 结构
- 密码学 - AES 变换函数
- 密码学 - 字节替换变换
- 密码学 - 行移位变换
- 密码学 - 列混合变换
- 密码学 - 轮密钥加变换
- 密码学 - AES 密钥扩展算法
- 密码学 - Blowfish 算法
- 密码学 - SHA 算法
- 密码学 - RC4 算法
- 密码学 - Camellia 加密算法
- 密码学 - ChaCha20 加密算法
- 密码学 - CAST5 加密算法
- 密码学 - SEED 加密算法
- 密码学 - SM4 加密算法
- IDEA - 国际数据加密算法
- 公钥(非对称)密码学算法
- 密码学 - RSA 算法
- 密码学 - RSA 加密
- 密码学 - RSA 解密
- 密码学 - 创建 RSA 密钥
- 密码学 - 破解 RSA 密码
- 密码学 - ECDSA 算法
- 密码学 - DSA 算法
- 密码学 - Diffie-Hellman 算法
- 密码学中的数据完整性
- 密码学中的数据完整性
- 消息认证
- 密码学数字签名
- 公钥基础设施
- 哈希
- MD5(消息摘要算法 5)
- SHA-1(安全哈希算法 1)
- SHA-256(安全哈希算法 256 位)
- SHA-512(安全哈希算法 512 位)
- SHA-3(安全哈希算法 3)
- 哈希密码
- Bcrypt 哈希模块
- 现代密码学
- 量子密码学
- 后量子密码学
- 密码学协议
- 密码学 - SSL/TLS 协议
- 密码学 - SSH 协议
- 密码学 - IPsec 协议
- 密码学 - PGP 协议
- 图像和文件加密
- 密码学 - 图像
- 密码学 - 文件
- 隐写术 - 图像
- 文件加密和解密
- 密码学 - 文件加密
- 密码学 - 文件解密
- 物联网中的密码学
- 物联网安全挑战、威胁和攻击
- 物联网安全的加密技术
- 物联网设备的通信协议
- 常用的密码学技术
- 自定义构建密码学算法(混合密码学)
- 云密码学
- 量子密码学
- 密码学中的图像隐写术
- DNA 密码学
- 密码学中的一次性密码 (OTP) 算法
- 区别
- 密码学 - MD5 与 SHA1
- 密码学 - RSA 与 DSA
- 密码学 - RSA 与 Diffie-Hellman
- 密码学与密码学
- 密码学 - 密码学与密码分析
- 密码学 - 经典与量子
- 密码学与隐写术
- 密码学与加密
- 密码学与网络安全
- 密码学 - 流密码与分组密码
- 密码学 - AES 与 DES 密码
- 密码学 - 对称与非对称
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
密码学 - 输出反馈 (OFB) 模式
输出反馈 (OFB) 模式类似于密码反馈模式,但它提供加密输出而不是 XOR 输出。此输出反馈选项发送所有块位,而不仅仅是其中的一部分。分组密码的输出反馈模式极易受到比特传输错误的影响。这减少了密码对明文的依赖性。
它涉及将来自底层分组密码的连续输出块插入其中。在 CFB 模式中,反馈块将一系列比特发送到加密算法,然后加密算法生成密钥流。
OFB 模式需要 IV 作为第一个随机 n 位输入块。初始化向量不需要保密。OFB 模式的操作如下图所示:
操作
OFB 和 CFB 之间最根本的区别在于,OFB 模式使用 XOR 将明文和密文块与初始化向量的较大副本组合。
此操作可以视为一次性密码本,扩展向量作为填充向量。以下公式显示了如何创建一系列填充向量:
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 模式不会传播错误。虽然在某些情况下这可能是有益的,因为它可以防止错误影响后续块,但它也意味着密文中存在的问题可能无法被识别或修复,这可能导致数据损坏或安全漏洞。