- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代
- 密码学 - 传统密码
- 密码学 - 加密的需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组件
- 密码系统的攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力破解攻击
- 密码系统 - 密码分析技术
- 密码学类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学散列函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥吊销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - Feistel 分组密码
- 分组密码的操作模式
- 分组密码的操作模式
- 电子密码本 (ECB) 模式
- 密码分组链接 (CBC) 模式
- 密码反馈 (CFB) 模式
- 输出反馈 (OFB) 模式
- 计数器 (CTR) 模式
- 经典密码
- 密码学 - 反向密码
- 密码学 - 凯撒密码
- 密码学 - ROT13 算法
- 密码学 - 换位密码
- 密码学 - 加密换位密码
- 密码学 - 解密换位密码
- 密码学 - 乘法密码
- 密码学 - 仿射密码
- 密码学 - 简单替换密码
- 密码学 - 简单替换密码的加密
- 密码学 - 简单替换密码的解密
- 密码学 - 维吉尼亚密码
- 密码学 - 维吉尼亚密码的实现
- 现代密码
- Base64 编码与解码
- 密码学 - XOR 加密
- 替换技术
- 密码学 - 单字母替换密码
- 密码学 - 单字母替换密码的破解
- 密码学 - 多字母替换密码
- 密码学 - Playfair 密码
- 密码学 - 希尔密码
- 多字母替换密码
- 密码学 - 一次性密码本密码
- 一次性密码本密码的实现
- 密码学 - 换位技术
- 密码学 - 栅栏密码
- 密码学 - 列置换
- 密码学 -隐写术
- 对称算法
- 密码学 - 数据加密
- 密码学 - 加密算法
- 密码学 - 数据加密标准
- 密码学 - 三重 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 密码
- 密码学 - 对称与非对称
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
密码学 - 密码分组链接 (CBC) 模式
密码分组链接 (CBC) 模式是一种分组密码,它将一系列比特作为一个整体或一个块进行加密,并将密文或加密密钥应用于整个密码学块。密码分组链接使用特定字符长度的初始化向量 (IV)。其主要特征之一是它使用链接,这是一种工作技术,使密文块的解密依赖于其之前的每个块。因此,紧接在密文之前的块的密码学具有其之前所有块的所有有效性。
密文的一个块中的单个比特密码学错误会影响所有后续块的解密。密文块的顺序可以更改,这会破坏解密过程。在密码分组链接中,每个明文块基本上是在与紧接其之前的密文块进行异或 (参见 XOR) 后,使用密码学进行加密的。
只有当使用相同的加密密钥和初始化向量 (IV) 对相同的明文或原始文本块进行加密,并且密文块顺序保持不变时,相同的密文块才会产生预期的结果。由于 XOR 过程掩盖了明文模式,因此它优于电子密码本模式。
当使用相同的加密密钥加密两条通信时,初始化向量 (IV) 应该有所不同。虽然某些应用程序可能发现它有用且唯一,但初始化向量不一定需要存储或保密。
由于 ECB 损害了一些安全或隐私标准,因此密码分组链接或 CBC 是 ECB 的改进或更复杂的版本。在与密码学的初始明文块进行异或后,CBC 中的前一个密文块被发送作为输入到后续加密过程。简单来说,前一个密文块和当前明文或原始文本块的 XOR 输出被加密以创建密文块。
过程如下所示:
操作
上图显示了 CBC 模式的工作原理。步骤如下:
顶部寄存器应加载 n 位初始化向量 (IV)。
将顶部寄存器中的数据值与 n 位明文块进行异或。
使用密钥 K 使用底层分组密码加密 XOR 操作的输出。
继续此过程,直到所有明文块都通过将密文块馈送到顶部寄存器进行处理。
为了解密它,IV 数据与第一个解密的密文块进行异或。为了解密下一个密文块,前一个密文块也被添加到替换 IV 的寄存器中。
CBC 模式的分析
在 CBC 模式下,前一个密文块和当前明文块被组合,然后使用密钥对结果进行加密。然后,解密是相反的过程,其中在当前密文被解密后,将前一个密文块添加到结果中。
CBC 相对于 ECB 的优点是,当 IV 更改时,相同的消息可以使用不同的密文。不利的一面是,链接效应导致传输错误在解密期间传播到一些后续块。
需要注意的是,CBC 模式为众所周知的原始数据身份验证系统提供了基础。因此,它有利于需要对称加密和数据原始身份验证的应用程序。
CBC 模式的位宽
下表显示了 CBC 模式提供的接口的位宽:
明文 | 密文 | 密码密钥 | IV | |
---|---|---|---|---|
CBC-DES | 64 | 64 | 64 | 64 |
CBC-AES128 | 128 | 128 | 128 | 128 |
CBC-AES192 | 128 | 128 | 192 | 128 |
CBC-AES256 | 128 | 128 | 128 | 128 |
密码分组链接 (CBC) 模式是利用分组密码算法的常见分组密码操作模式。在此版本中,它能够处理高级加密标准 (AES) 和数据加密标准 (DES)。AES 的密码密钥长度应为 128/192/256 位,DES 的密码密钥长度应为 64 位。另一个缺点是,尽管现实世界中的文本具有各种长度,但我们的工作模式仅支持固定大小的单位(单个块为 64 或 128 位)。因此,在加密或解密之前,需要将提供给此原语的最终文本块填充到 128 位。
CBC 模式的公式
如果将其写成公式,则此方法可以表示为:
Ci = EK(Bi ⊕ Ci-1)
其中 Ci-1 是对应于 Bi-1 的密码,EK 是使用密钥 K 的块加密技术。
注意:在上面的公式中,假设 C0 是初始化向量。
同样,CBC 可以通过使用以下方法进行解密:
Bi = DK(Ci)⊕(Ci-1)
其中 DK 代表使用密钥 K 的块解密技术。
对于解密,将使用相同的初始化向量 (C0)。
安全挑战
此方案的主要属性如下:
如果传递的消息的哪怕一个比特发生更改或丢失,则将损坏一个额外的特定块。这种损害不会影响其他块。
如果密文中丢失或添加了一个比特,则比特和块边界将移动,从而导致所有后续密码学密文块的解码不正确。
该因素能够将块附加到解密消息的末尾,从而使用原始文本或明文对其进行增强。
优点
密码分组链接 (CBC) 模式具有以下几个优点:
当输入数据的大小超过一个块(通常对于 AES 来说是 128 位或 16 字节)时,CBC 模式运行良好。任何长度的消息都可以通过将其分割成块并连接起来进行加密和解密。
尽管 CBC 本身无法提供身份验证,但它可以与数字签名或 HMAC(基于散列的消息身份验证代码)结合使用,以确保加密数据的完整性和有效性。CBC 通过结合身份验证和加密,可以提供完整的安全解决方案。
在密码分析方面,CBC 通常比 ECB(电子密码本)模式更安全。当使用 CBC 时,攻击者更难以识别加密数据中的模式,因为每个密文块都依赖于其前面的块。因此,CBC 在保护私有数据免受攻击或解密尝试方面更有效。
缺点
密码块链接 (CBC) 模式无法进行并发加密是其缺点之一。在 CBC 模式下,每个明文块在加密前都会与前一个密文块进行异或运算。这使得当前块的加密依赖于前一个密文块。由于每个块的加密都依赖于前一个块的加密完成,因此无法并发或并行加密后续块。与可以同时对多个块进行并发加密的模式(如电子密码本 (ECB) 或计数器 (CTR) 模式)相比,CBC 模式中加密的顺序性会导致加密性能下降。但是,由于其安全优势和对各种加密场景的兼容性,CBC 模式尽管存在此限制,但仍然被广泛使用。