3DES

密码学中，三重数据加密算法（，縮寫為TDEA，Triple DEA），或稱3DES（），是一種對稱密鑰加密块密码，相当于是对每个数据块应用三次資料加密標準（DES）算法。由于计算机运算能力的增强，原版DES由於密钥长度過低容易被暴力破解；3DES即是设计用来提供一种相对简单的方法，即通过增加DES的密钥长度来避免类似的攻击，而不是设计一种全新的块密码算法。

 标准中的定义 
TDEA算法在以下标准中被定义：
 ANS X9.52-1998 三重数据加密算法的工作模式 (已失效)
 FIPS PUB 46-3 数据加密标准 (DES) (PDF) (已失效Federal Register vol 70, number 96, 宣告联邦信息处理标准（FIPS）46-3，“数据加密标准”（DES）；FIPS 74，“实现和使用NBS数据加密标准指导”；FIPS 81，“DES的工作模式”的失效  (PDF))

 ISO/IEC 18033-3:2005 信息技术—安全技术—加密算法—第三部分：块密码

 算法的名称 
最早的定义了该算法的标准（ANS X9.52，1998年发布）将其描述为“三重数据加密算法（TDEA）” — 即ANSI X3.92中定义的数据加密算法（DEA）的三次重复操作 — 而完全没有使用术语“3DES”或“DES”。FIPS PUB 46-3（1999）定义了“三重数据加密算法”（TDEA），也使用了术语“Triple DES”和“DES”。该标准中互换的使用“数据加密算法”（DEA）和“DES”的概念，其中以此开始DES的定义：

NIST SP 800-67（2004，2008）主要使用术语TDEA，但也提到了“Triple DES（TDEA）”。ISO/IEC 18033-3（2005）使用“TDEA”，但其中提到：

没有一个定义了本算法的标准使用术语“3DES”。

算法
3DES使用“密钥包”，其包含3个DES密钥，K1，K2和K3，均为56位（除去奇偶校验位）。加密算法为：
密文 = EK3(DK2(EK1(明文)))
也就是说，使用K1为密钥进行DES加密，再用K2为密钥进行DES“解密”，最后以K3进行DES加密。

而解密则为其反过程：
明文 = DK1(EK2(DK3(密文)))
即以K3解密，以K2“加密”，最后以K1解密。

每次加密操作都只处理64位数据，称为一块。

无论是加密还是解密，中间一步都是前后两步的逆。这种做法提高了使用密钥选项2时的算法强度，并在使用密钥选项3时与DES兼容。

 密钥选项 
标准定义了三种密钥选项（Keying option），“密钥选项n”是标准中(X9.52, FIPS PUB 46-3, SP 800-67, ISO/IEC 18033-3)定义的TDEA的术语。然而，其它标准中，推荐和通用描述中也使用了其它术语。
密钥选项1：
三个密钥是独立的。常用名称为3TDEA或“三倍长度密钥”（triple-length keys）
密钥选项1的强度最高，拥有3 x 56 = 168个独立的密钥位。在NIST SP 800-57NIST Special Publication 800-57 密钥管理的建议&mdash；第一部分：综述 (修订版), 2007年3月  (PDF)与SP 800-78-2NIST Special Publication 800-78-2, 个人身份认证的密码学算法与密钥长度, 2010年2月  (PDF)中定义。
密钥选项2（已弃用）：
K1和K2是独立的，而K3=K1。常用名称为2TDEA，或“双倍长度密钥”（double-length keys）
密钥选项2的安全性稍低，拥有2 x 56 = 112个独立的密钥位。该选项比简单的应用DES两次的强度较高，即使用K1和K2，因为它可以防御中途相遇攻击。 这是对“双重DES”（double DES）的改进，双重DES仅需要256步即可进行攻击。 國家標準技術研究所（NIST）已弃用此选项。在NIST SP 800-57和SP 800-78-1中定义。
密钥选项3（已弃用）：
三个密钥均相等，即K1=K2=K3
密钥选项3等同与DES，只有56个密钥位。这个选项提供了与DES的兼容性，因为第1和第2次DES操作相互抵消了。该选项不再为NIST所建议NIST SP 800-67，亦不为ISO/IEC 18033-3所支持。

对多于一个块的加密
与其它的块密码一样，对多个数据块的加密和解密可以使用多种工作模式进行，而模式的定义可以与块密码算法相独立。然而，ANS X9.52和NIST SP 800-67（通过SP 800-38ANIST Special Publication 800-38A, 块密码工作模式的建议，方法和技术, 2001版  (PDF)）确定了某些模式只能在特定限制下应用，而无需普遍的应用。例如，ANS X9.52提出对于CBC模式，初始化向量每次应当不同，而ISO/IEC 10116没有类似规定。FIPS PUB 46-3和ISO/IEC 18033-3只定义了单块密码，而并没有对多块的工作模式做出限制。

安全性
普遍而言，有3个独立密钥的3DES（密钥选项1）的密钥长度为168位（三个56位的DES密钥），但由於中途相遇攻击，它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位，但该选项对特定的选择明文攻击和已知明文攻击的强度较弱Ralph Merkle, Martin Hellman: 关于多加密的安全性  (PDF), Communications of the ACM, Vol 24, No 7, pp 465–467, July 1981.Paul van Oorschot, Michael J. Wiener, 一种针对双密钥三次加密的已知明文攻击, EUROCRYPT'90, LNCS 473, 1990, pp 318–325.，因此NIST认定它只有80位的安全性。

对密钥选项1的已知最佳攻击需要约232组已知明文（又稱Sweet32攻击），2113部，290次DES加密以及288位内存Stefan Lucks: 攻击三次加密  (PDF), Fast Software Encryption 1998, pp 239–253.（该论文提到了时间和内存的其它分配方案）。这在现在是不现实的，因此NIST认为密钥选项1可以使用到2030年。若攻击者试图在一些可能的（而不是全部的）密钥中找到正确的，有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约284次加密操作找到228个目标密钥中的一个Eli Biham: 如何使用228步解密DES加密的消息  (PostScript), 1996.。

使用
电子货币业界和電子貨幣標準（如EMV）過往普遍使用3DES，但3DES已經逐漸被更安全的AES代替。

Microsoft OneNote和Microsoft Outlook 2007使用3DES以密码保护用户数据。

 注释 

 参考文献 

 参见 

 DES
 DES-X
 AES
 Horst Feistel
 Walter Tuchman

Category:已攻破的分组密码
Category:数据加密标准

de:Data Encryption Standard#Triple-DES