- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优点与缺点
- 密码学 - 现代密码学
- 密码学 - 传统密码
- 密码学 - 加密的需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组成部分
- 密码系统攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力攻击
- 密码系统 - 密码分析技术
- 密码学类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学哈希函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥撤销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - Feistel 分组密码
- 分组密码的工作模式
- 分组密码的工作模式
- 电子密码本 (ECB) 模式
- 密码分组链接 (CBC) 模式
- 密码反馈 (CFB) 模式
- 输出反馈 (OFB) 模式
- 计数器 (CTR) 模式
- 古典密码
- 密码学 - 反向密码
- 密码学 - 凯撒密码
- 密码学 - ROT13 算法
- 密码学 - 置换密码
- 密码学 - 加密置换密码
- 密码学 - 解密置换密码
- 密码学 - 乘法密码
- 密码学 - 仿射密码
- 密码学 - 简单替换密码
- 密码学 - 简单替换密码的加密
- 密码学 - 简单替换密码的解密
- 密码学 - 维吉尼亚密码
- 密码学 - 维吉尼亚密码的实现
- 现代密码
- Base64 编码与解码
- 密码学 - XOR 加密
- 替换技术
- 密码学 - 单字母替换密码
- 密码学 - 单字母替换密码的破解
- 密码学 - 多字母替换密码
- 密码学 - Playfair 密码
- 密码学 - Hill 密码
- 多字母替换密码
- 密码学 - 一次性密码本
- 一次性密码本的实现
- 密码学 - 置换技术
- 密码学 - 栅栏密码
- 密码学 - 列置换密码
- 密码学 -隐写术
- 对称算法
- 密码学 - 数据加密
- 密码学 - 加密算法
- 密码学 - 数据加密标准 (DES)
- 密码学 - 三重 DES
- 密码学 - 双重 DES
- 高级加密标准 (AES)
- 密码学 - AES 结构
- 密码学 - AES 变换函数
- 密码学 - 字节替换变换
- 密码学 - 行移位变换
- 密码学 - 列混淆变换
- 密码学 - 轮密钥加变换
- 密码学 - AES 密钥扩展算法
- 密码学 - Blowfish 算法
- 密码学 - SHA 算法
- 密码学 - RC4 算法
- 密码学 - Camellia 加密算法
- 密码学 - ChaCha20 加密算法
- 密码学 - CAST5 加密算法
- 密码学 - SEED 加密算法
- 密码学 - SM4 加密算法
- IDEA - 国际数据加密算法
- 公钥(非对称)密码算法
- 密码学 - RSA 算法
- 密码学 - RSA 加密
- 密码学 - RSA 解密
- 密码学 - 创建 RSA 密钥
- 密码学 - 破解 RSA 密码
- 密码学 - ECDSA 算法
- 密码学 - DSA 算法
- 密码学 - Diffie-Hellman 算法
- 密码学中的数据完整性
- 密码学中的数据完整性
- 消息认证
- 密码学数字签名
- 公钥基础设施 (PKI)
- 哈希算法
- 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 密码的比较
- 密码学 - 对称加密与非对称加密的比较
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
密码学 - 计数器模式 (CTR)
计数器模式 (CTR) 与 OFB 模式类似,区别在于 CTR 模式使用计数器作为反馈。这种方法具有与 OFB 模式相同的优点(破坏模式并避免错误传播),但它也允许并行加密,因为反馈可以像递增数字一样简单。一个简单的例子是,第一个块与数字 1 进行异或运算,第二个块与数字 2 进行异或运算,依此类推。这种方法允许同时完成任意数量的轮次。
可以将其视为没有反馈的 CFB 模式的基于计数器的版本。在此模式下,发送方和接收方都必须访问一个可靠的计数器,该计数器每次传输密文块时都会生成一个新的共享值。这个共享计数器并不总是秘密值;但是,双方必须保持计数器的同步。
操作
下图显示了 CTR 模式下的加密和解密。操作步骤如下:
将顶部寄存器加载为初始计数器值,该值对发送方和接收方都相同。它与 CFB(和 CBC)模式中的 IV 具有相同的用途。
使用密钥加密计数器的数值并将结果保存在底部寄存器中。
取第一个明文块 (P1) 并将其与底部寄存器的数值进行异或运算。其结果为 C1。将 C1 发送给接收方,然后更新计数器。计数器的更新取代了 CFB 模式中的密文反馈。
以此方式继续,直到加密最后一个明文块。
解密是一个相反的过程。密文块与计数器值的加密数据进行异或运算。每个密文块计数器在解密后都会更新,与加密时完全相同。
CTR 模式的分析
它没有消息依赖性,因此密文块不依赖于之前的明文块。
与 CFB 模式一样,CTR 模式不包括分组密码解码。这是因为 CTR 模式使用分组密码生成密钥流,然后用 XOR 函数进行加密。换句话说,CTR 模式将分组密码转换为流密码。
CTR 模式的主要缺点是它需要在发送方和接收方都使用同步计数器。同步丢失会导致无法正确恢复明文。
但是,CTR 模式几乎提供与 CFB 模式相同的优点。此外,不会传播传输错误。
CTR 模式的公式
CTR 与 OFB 类似,因为它将一系列填充向量与明文和密文块进行异或运算。主要区别在于这些填充向量的创建方式。
在 CTR 模式中,我们从随机种子 s 开始,然后使用以下公式计算填充向量:
Vi = EK(s+i-1)
其中 EK 是密钥为 K 的分组加密技术,Vi 是填充向量,i 是向量相对于 1 的偏移量。
构建向量后,可以使用以下公式执行与 OFB 模式类似的加密:
Ci = Vi ⊕ Bi
解密的方式类似:
Bi = Vi ⊕ Ci
与 CFB 和 OFB 模式一样,CTR 使用相同的加密算法进行加密和解密。
CTR 模式的位宽
计数器 (CTR) 模式是一种典型使用分组密码算法的分组密码工作模式。在这个版本中,我们提供高级加密标准 (AES) 处理;AES 的密钥长度为 128/192/256 位。另一个限制是我们的工作模式以固定大小的单元(每个块 128 位)进行操作,但现实世界中的文本长度不一。因此,提供给此原语的最终文本块必须填充到 128 位,然后才能进行加密或解密。
下表显示了 CTR 模式提供的接口的位宽:
CTR 模式的优点
以下是计数器 (CTR) 模式的一些优点:
硬件效率 - 与三种链接模式不同,CTR 模式允许对许多明文或密文块并行执行加密(或解密)。对于链接模式,算法必须完成一个块的计算才能继续进行下一个块。这将算法的最大吞吐量限制为单次执行分组加密或解密所需时间的倒数。在 CTR 模式下,吞吐量仅受获得的并行化程度的限制。
软件效率 − 此外,虽然 CTR 模式支持并行执行,但具有并行处理能力的处理器(例如积极流水线、每个时钟周期多个指令调度、大量寄存器和 SIMD 指令)可以得到充分利用。
预处理 − 无论给出明文还是密文,底层加密技术都会执行。因此,在保证有足够的内存和安全性的前提下,可以利用预处理来准备加密盒的输出,这些输出会馈送到 XOR 函数。当给出明文或密文输入时,唯一执行的操作是一系列 XOR 运算。这种方法显著提高了吞吐量。
随机访问 − 可以使用随机访问处理明文或密文的第 i 个块。在链式模式下,必须先计算前 i-1 个块才能计算块 Ci。有些应用程序会保留密文,只需要解密一个块;在这些应用程序中,随机访问功能非常有用。
简洁性 − CTR 模式比 ECB 和 CBC 模式更简单,因为它只需要实现加密算法,而不需要实现解密算法。当解密算法与加密算法差异很大时(例如 AES),这一点尤其重要。此外,也不需要创建解密密钥调度。
CTR 模式的缺点
CTR 模式的主要缺点是接收端和发送端必须维护一个同步计数器。丢失此计数器可能会导致明文恢复错误。