Triple DES:延长 DES 的生命周期
了解 3DES 如何通过多次加密扩展 DES 的安全性,以及它如今仍在哪里使用
Triple DES:延长 DES 的生命周期 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
双重 DES 的中间相遇攻击
解决 DES 密钥长度过短问题的直接方法,是将其应用两次(双重 DES):C = DES_K2(DES_K1(P))。使用两个 56 位密钥时,名义上的密钥空间为 2^112。
然而,中间相遇攻击彻底击垮了这一方案:使用全部 2^56 个 K1 值加密所有明文,使用全部 2^56 个 K2 值解密所有密文,然后寻找匹配的中间值。这种攻击只需要 2^56 的工作量和 2^56 的存储空间,因此双重 DES 并未比单重 DES 提供更高的安全性。
双密钥三重 DES 的安全性
双密钥三重 DES 使用三次 DES 运算,但只有两个密钥:C = DES_K1(DES^-1_K2(DES_K1(P)))。采用 EDE(加密-解密-加密)顺序是为了向后兼容。
针对已知攻击,双密钥 3DES 的安全性约为 112 位,但中间相遇攻击会使其安全性有所降低。双密钥 3DES 仍用于许多传统银行和支付系统。
三密钥三重 DES
三密钥 3DES 使用三个相互独立的密钥 K1、K2、K3:C = DES_K3(DES^-1_K2(DES_K1(P)))。名义密钥长度为 3 x 56 = 168 位,但针对已知最佳攻击的有效安全强度约为 112 位。
三密钥 3DES 比双密钥 3DES 提供更高的安全性。在 3DES 本身被弃用之前,NIST SP 800-131A 等标准曾建议将其用于新应用。
EDE 模式说明
三重 DES 的加密-解密-加密(EDE)结构并非任意设计。当 K1 = K2 = K3 时,中间的解密会抵消第一次加密,最后一次加密产生的结果就与单重 DES 相同。
这种与单重 DES 的向后兼容性对于逐步迁移至关重要。现有的 DES 硬件和软件可以在过渡期间与 3DES 系统互操作,而不会造成数据丢失。
与单重 DES 的向后兼容性
将三个密钥设为相同值后,三重 DES 可以退化为单重 DES。这意味着 3DES 硬件可以使用同一套电路处理 DES 加密数据和 3DES 加密数据。
对于拥有数十亿美元规模 DES 基础设施的银行和支付系统而言,这一点尤其重要。3DES 支持逐步且向后兼容的迁移,无需同时更换所有设备。
银行业和 EMV 中的 3DES
尽管 3DES 已不再推荐用于新应用,但它仍广泛用于银行基础设施。EMV 芯片支付卡使用 3DES 进行卡片身份验证和交易密码运算。
SWIFT 银行间消息传递也使用 3DES 生成传统消息认证码。由于已部署的金融基础设施规模极其庞大,尽管 3DES 已被弃用,它仍将在实际系统中持续使用许多年。
NIST 对 3DES 的弃用(2023)
NIST 于 2023 年通过 SP 800-131A 第 2 次修订正式弃用 3DES。现在所有 3DES 的使用都已被弃用,这意味着新系统不应使用 3DES,传统系统也应迁移 away from it。
推荐的替代方案是 AES。AES 速度更快,使用更大的分组(128 位,而不是 64 位),提供 128 位、192 位或 256 位密钥长度,并且目前没有已知的实际弱点。
Sweet32 生日攻击
2016 年发表的 Sweet32 演示了针对 HTTPS 中 3DES 的实际攻击。由于分组大小为 64 位,在处理 2^32 个分组(约 32GB 数据)后,CBC 模式中由生日悖论导致的碰撞会开始泄露有关明文的信息。
针对 HTTPS 会话时,Sweet32 在同一密钥下需要约 785GB 的流量;通过长时间运行的已认证会话即可实现这一条件。这种攻击促使浏览器优先采用 AES-GCM,并从默认密码套件中移除 3DES。
3DES 的性能劣势
三重 DES 每个分组需要执行三次 DES 运算。DES 本身在现代硬件上速度较慢,因为它是为 20 世纪 70 年代的硬件设计的,其位运算模式不同于现代 CPU。
AES 专为软件效率而设计,并利用现代硬件提供的 AES-NI 指令,在软件中的速度是 3DES 的 10 到 100 倍。现代 Intel/AMD CPU 中的 AES-NI 每秒可以加密数 GB 数据,而 3DES 很难达到 100MB/s。
分组长度仍为 64 位
尽管使用了三次 DES 操作和更长的密钥,3DES 仍保留了 DES 的 64 位分组长度。分组长度是 Feistel 结构的基本参数;如果不重新设计算法,就无法更改它。
这个 64 位分组长度是 Sweet32 漏洞的根本原因。AES 的 128 位分组长度使生日攻击需要处理 2^64 个分组(约 18 EB),这在实践中从计算上不可行。
NIST 从 3DES 迁移到 AES 的路径
NIST SP 800-131A 提供了从 3DES 迁移到 AES 的详细指南。该指南建议使用 128 位、192 位或 256 位密钥的 AES,替代所有 3DES 使用场景,从 TLS 密码套件到存储数据加密。
这项迁移得到了良好支持:每个现代密码库和硬件平台都支持 AES,而且通常提供硬件加速。建议组织将这次迁移视为软件配置更新,而不是硬件更换项目。
3DES 密钥选项测验
请测试您对三重 DES 配置的了解。
要点:三重 DES
三重 DES 旨在借助 EDE 结构延长 DES 的使用寿命。中间相遇攻击阻止了双重 DES 提供双倍安全性。使用相同密钥的 3DES 会退化为单 DES,从而实现向后兼容。
NIST 已于 2023 年弃用 3DES,原因是其存在 64 位分组长度漏洞(Sweet32),且与 AES 相比性能较差。作为遗留系统,它仍存在于银行业务和 EMV 基础设施中。
用 AI 导师学习 Cryptology Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 67
- 课程
- 261
常见问题解答
「Triple DES:延长 DES 的生命周期」课时是免费的吗?
是的 — 「Triple DES:延长 DES 的生命周期」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「Triple DES:延长 DES 的生命周期」这节课中我会学到什么?
了解 3DES 如何通过多次加密扩展 DES 的安全性,以及它如今仍在哪里使用 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Triple DES:延长 DES 的生命周期」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- DES 的设计与 Lucifer 密码
- DES 是如何被破解的
- Triple DES:延长 DES 的生命周期
- DES 带来的教训:我们学到了什么