- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代时代
- 密码学 - 传统密码
- 密码学 - 加密的需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组成部分
- 密码系统的攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力破解攻击
- 密码系统 - 密码分析技术
- 密码学的类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学哈希函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥撤销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - 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 密码
- 密码学 - 对称与非对称
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
密码学 - 分组密码的工作模式
在本章中,我们将讨论分组密码的不同工作模式。这些是一般分组密码过程中的步骤。需要注意的是,各种模式会产生不同的特性,从而提高分组密码的整体安全性。
什么是分组密码的工作模式?
在密码学中,分组密码的工作模式是指一种使用分组密码来提供信息安全(例如机密性或真实性)的算法。一个实际的分组密码可以用来转换安全的加密位(用于加密或解密)或创建一个固定长度的单个块。工作模式描述了如何通过不断利用密码的单块操作来安全地转换大于一个块的数据量。
对于每次加密操作,大多数模式都需要一个不同的二进制序列,通常称为初始化向量 (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