三重DES加密算法详解及其被淘汰的原因

本文深入解析三重DES加密技术的工作原理、发展历程和安全特性,详细说明其因安全漏洞和短块尺寸问题被NIST逐步淘汰的过程,并介绍替代方案AES加密标准。文章涵盖加密模式、密钥强度和量子计算影响等关键技术细节。

什么是三重DES及其被淘汰的原因?

三重DES通过三步加密过程提供112位安全性,但NIST在2018年将其弃用,并在2023年后禁止使用。

什么是三重DES?

三重DES基于的数据加密标准算法最早发布于1975年。DES是一种对称密钥分组密码。对称密钥分组密码使用相同密钥同时处理固定大小的数据块。密码的块大小指一起处理的位数。

原始DES算法指定使用56位密钥。随着计算技术的进步,这被证明无法有效防御某些攻击。该算法于2005年退役。

1998年,三重数据加密算法(通常称为Triple DES、TDEA和3DES)被引入。它对每个数据块应用三次DES密码算法以实现更有效的密钥长度。

DES和三重DES简史

在1970年代早期,国家标准局(现为NIST)确定需要制定政府范围内的加密未分类敏感信息标准。早期的新DES提案被认为不可接受。然后,IBM公司在1974年提交了一种名为Lucifer的分组密码。在与国家安全局协商后,修改版本于1976年被批准为联邦信息处理标准,并于1977年1月15日发布为FIPS PUB 46。它被授权用于所有未分类数据。

批准算法与原始Lucifer密码之间最显著的变化是减小的密钥大小(从128位减少到56位)和在保密条件下设计的替代盒。S盒是执行替换的算法组件。

许多专家认为较小的密钥大小使DES更容易受到暴力攻击,并且NSA以某种方式在算法中引入了后门,允许该机构在不需要知道加密密钥的情况下解密由DES加密的数据。13年后发现S盒对一种称为差分密码分析的攻击是安全的,这种攻击直到1990年才公开发现。这表明NSA在1977年就已经意识到这种攻击。

尽管存在这些批评,DES很快被采用,并引发加密算法研究和开发的急剧增长。它在1983年、1988年和1993年被重新确认为标准。

然而,由于计算机处理能力的不断提高,DES变得容易受到暴力攻击。尽管56位密钥空间相当于大约72千万亿种可能性,但这不再提供所需的安全级别。该算法于2005年退役。

为避免设计全新密码的需要并使替换DES相对简单,三重DES规范FIPS PUB 46-3于1999年发布。截至2024年1月1日,它遭遇了与前身相同的命运。

三重DES加密过程

三重DES以三个步骤运行:加密-解密-加密。它通过采用三个56位密钥(K1、K2、K3,称为密钥束)工作,首先使用K1加密,然后使用K2解密,最后使用K3再次加密。存在三重DES双密钥版本,其中相同算法运行三次,但K1用于第一步和最后一步。这种双密钥变体于2015年退役。

算法运行三次是因为不能使用双重加密。一类称为中间相遇攻击的攻击从一端加密,从另一端解密,并寻找碰撞——在任一方向产生相同答案的密钥。如果有足够的内存,双重DES(或任何其他运行两次的密码)的强度仅为基础密码的两倍。换句话说,双重密码的强度仅相当于运行一次但密钥长一位的相同密码。

但这还不是全部:如果密码形成一个群,那么用两个密钥加密两次相当于用某个其他密钥加密一次。知道那个其他密钥是什么并不简单,但这确实意味着暴力攻击在尝试所有可能的单个密钥时会找到第三个密钥。因此,如果密码是一个群,那么多次加密是浪费时间。

群是集合与运算符之间的关系。如果它们的行为大致类似于整数与加法的关系,它们就形成一个群。如果继续加密一个块,并且它在可能块的集合上形成一个完整的循环,那也形成一个群。

DES不是一个群。然而,DES具有已知的结构特征,使人们说它不是强烈不是一个群——换句话说,它可能是一个群。例如,DES中存在已知循环,如果继续使用相同密钥加密,会在一个长循环中运行。

三重DES加密模式

使用三重DES,三个轮次中的每一个都可以使用DES算法在任一方向运行——加密或解密。这导致三重DES有八种不同的可能模式。

这些结构特征就是为什么如果有更好的选择,就不想使用EEE或DDD模式,就像不想使用EED、DEE、DDE或EDD一样。由于DES的弱非群性,EDE或DED组合效果最好。此外,EDE更有意义。如果使用DED,必须解释为什么三重DES以解密开始。

三重DES的强度:为什么被淘汰

密码算法或系统的安全强度以位指定,是密码分析并破解它所需的预期工作量(即操作次数的以2为底的对数)。

如果需要算法的2N次执行操作来破解密码算法并揭示原始明文,则算法的安全强度为N位。NIST政策为对称密码分配特定的强度值,例如80、112、128、192和256。该值通常等于密码的密钥大小,相当于暴力攻击的复杂性。当发现攻击的安全级别低于其宣传水平时,密码算法被视为被破解,尽管并非所有攻击都必然实用。

当三重DES与三个独立密钥一起使用时,有时称为3TDEA,其密钥长度为168位(3 x 56位DES密钥 = 168个独立密钥位)。然而,由于中间相遇攻击,3TDEA提供的有效安全性仅为112位。此外,64位的小块大小使其在用于使用相同密钥加密大量数据(如HTTPS会话)时容易受到块碰撞攻击。

2016年,研究人员使用称为Sweet32的生日攻击在各种现实世界协议中成功利用了三重DES的短块大小。因此,NIST在2017年将三重DES的使用限制为使用单个密钥束加密8 MB数据。这意味着它不再能有效用于TLS、IPsec或大文件加密。

2018年,NIST发布指南,经过一段时间的公众咨询后,三重DES将被弃用于所有新应用程序——意味着可以使用,但必须接受风险——并在2023年后禁止使用——意味着不再允许用于指定用途。

什么取代了三重DES?

NIST在1997年开始寻找DES替代算法。2000年,高级加密标准从来自世界各地的15个参赛作品中选出。AES比三重DES数学上更高效且速度显著更快,因此非常适合需要低延迟或高吞吐量的应用程序、固件和硬件。

AES是NSA批准用于绝密信息的第一个公开可访问的开放密码。它很快成为事实上的世界加密标准。

AES包括三种分组密码——AES-128、AES-192和AES-256——软件和硬件实现都被认为是高效的。每种密码的块大小为128位,密钥大小分别为128、192和256位,使其比DES的56位密钥指数级更强。128位密钥有10轮,192位密钥有12轮,256位密钥有14轮。一轮包括几个处理步骤,将输入明文转换为最终的密文输出。

安全专家认为AES对暴力攻击是安全的,所有密钥长度都被认为足以保护机密信息直至秘密级别,绝密信息需要192或256位密钥长度。

AES于2001年作为FIPS 197标准发布,最初旨在作为三重DES的替代方案直到2030年,以便每个人都有足够时间过渡到AES。如前所述,NIST撤回了此指南并在2024年1月1日后禁止使用三重DES,尽管仍允许其用于解密、密钥包装和验证已保护数据的MAC。

量子计算与加密安全

虽然AES可以通过增加密钥大小来应对量子威胁,但三重DES缺乏这种适应性,使其成为量子计算密码影响的特别过时选择。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计