三重 DES
1990 年后,针对 DES 的详尽密钥搜索速度开始引起 DES 用户的不适。然而,用户并不想取代 DES,因为更改广泛采用并嵌入大型安全架构中的加密算法需要花费大量时间和金钱。
务实的做法并不是完全放弃 DES,而是改变 DES 的使用方式。这导致了 Triple DES(有时称为 3DES)的修改方案。
顺便说一句,三重 DES 有两种变体,称为 3 密钥三重 DES (3TDES) 和 2 密钥三重 DES (2TDES)。
3-KEY 三重 DES
在使用3TDES之前,用户首先生成并分发3TDES密钥K,其由三个不同的DES密钥K 1、K 2和K 3组成。这意味着实际的 3TDES 密钥的长度为 3×56 = 168 位。加密方案如下所示 -
加密解密过程如下 -
使用带有密钥 K 1的单个 DES 加密明文块。
现在使用带有密钥 K 2的单个 DES 来解密步骤 1 的输出。
最后,使用密钥 K 3使用单个 DES 对步骤 2 的输出进行加密。
步骤3的输出是密文。
密文的解密是一个逆过程。用户首先使用K 3 解密,然后使用K 2加密,最后使用K 1解密。
由于将三重 DES 设计为加密-解密-加密过程,因此可以通过将 K 1、K 2 和 K 3设置为相同的值来使用单 DES 的 3TDES(硬件)实现。这提供了与 DES 的向后兼容性。
三重 DES (2TDES) 的第二个变体与 3TDES 相同,只是 K 3被 K 1替换。换句话说,用户用密钥K 1 加密明文块,然后用密钥K 2解密,最后再次用K 1加密。因此,2TDES 的密钥长度为 112 位。
三重 DES 系统比单 DES 安全得多,但这些过程显然比使用单 DES 的加密慢得多。