3DES 目录 标准中的定义 算法的名称 算法 密钥选项 对多于一个块的加密 安全性 使用 注释 参考文献 参见 导航菜单FIPS PUB 46-3 数据加密标准 (DES)NIST Special Publication 800-67 使用三重数据加密算法(TDEA)块密码的建议ISO/IEC 18033-3:2005 信息技术—安全技术—加密算法—第三部分:块密码宣告联邦信息处理标准(FIPS)46-3,“数据加密标准”(DES);FIPS 74,“实现和使用NBS数据加密标准指导”;FIPS 81,“DES的工作模式”的失效存檔NIST Special Publication 800-57 密钥管理的建议—第一部分:综述 (修订版), 2007年3月存檔NIST Special Publication 800-78-2, 个人身份认证的密码学算法与密钥长度, 2010年2月存檔密码学指导:3DES原始内容Triple DES EncryptionNIST Special Publication 800-38A, 块密码工作模式的建议,方法和技术, 2001版ISO/IEC 10116:2006 信息技术 — 安全技术 — n位块密码的工作模式关于多加密的安全性存檔攻击三次加密存檔如何使用228步解密DES加密的消息存檔EMV 4.2 Specifications, 第二部 - 安全性和密钥管理, 4.2版, 2008年6月VISADaniel Escapa's OneNote Blog - Encryption for Password Protected Sections, November 2006Microsoft - Encrypt E-mail Messages, Outlook 2007存檔编编
AESBlowfishDES内部细节3DESSerpentTwofish3-Way3-WayABCABC (cipher)AkelarreAkelarre (cipher)AnubisAnubis (cipher)ARIAARIA (cipher)BaseKingBaseKingBassOmaticBassOmaticBATONBATONBEAR and LIONBEAR and LION ciphersCAST-256CAST-256CIKS-1CIKS-1CIPHERUNICORN-ACIPHERUNICORN-ACIPHERUNICORN-ECIPHERUNICORN-ECLEFIACLEFIACMEACellular Message Encryption AlgorithmCobraCobra ciphersCOCONUT98COCONUT98CrabCrab (cipher)Cryptomeria/C2Cryptomeria cipherCRYPTONCRYPTON (cipher)CS-CipherCS-CipherDEALDEALDES-XDES-XDFCDFC (cipher)E2E2 (cipher)FEALFEALFEA-MFEA-MFROGFROGG-DESGDESGOSTGOST (block cipher)Grand CruGrand Cru (cipher)Hasty Pudding cipherHasty Pudding cipherHierocryptHierocryptICEICE (cipher)IDEA NXTIdea NXTIntel Cascade CipherIntel Cascade CipherIraqiIraqi block cipherKASUMIKASUMI (block cipher)KeeLoqKeeLoqKHAZADKHAZADKhufu and KhafreKhufu and KhafreKN-CipherKN-CipherLadder-DESLadder-DESLibelleLibelle (cipher)LOKI97LOKI97LOKI89/91LOKILuciferLucifer (cipher)M6M6 (cipher)M8M8 (cipher)MacGuffinMacGuffin (cipher)MadrygaMadrygaMAGENTAMAGENTAMARSMARS (cipher)MercyMercy (cipher)MESHMESH (cipher)MISTY1MISTY1MMBMMBMULTI2MULTI2MultiSwapMultiSwapNew Data SealNew Data SealNewDESNewDESNimbusNimbus (cipher)NOEKEONNOEKEONNUSHNUSHQQ (cipher)RC6REDOCREDOCRed PikeRed Pike (cipher)S-1S-1 block cipherSAFERSAFERSAVILLESAVILLESC2000SC2000SHACALSHACALSHARKSM4SpeckSpectr-H64Spectr-H64SquareSquare (cipher)SXAL/MBALSXAL/MBALThreefishThreefishTreyferTreyferUESUES (cipher)XenonXenon (cipher)xmxxmxXXTEAZodiacZodiac (cipher)穷举攻击/蛮力攻击EFF DES破解机中途相遇攻击Biclique攻击Biclique attack三子集中途相遇攻击Biclique attack线性密码分析Linear cryptanalysis堆积引理Piling-up lemma差分密码分析不可能差分密码分析Impossible differential cryptanalysis截断差分分析Truncated differential cryptanalysis高阶差分分析Higher-order differential cryptanalysis差分-线性攻击Differential-linear区分攻击Distinguishing attack已知密钥区分攻击Known-key distinguishing attack积分密码分析Integral cryptanalysis回力镖攻击Boomerang attack模n密码分析Mod n cryptanalysis相关密钥攻击Related-key attack滑动攻击Slide attack回旋密码分析Rotational cryptanalysis时序攻击Timing attackXSL攻击XSL attack插值攻擊PartitioningPartitioning cryptanalysis戴维斯攻击Davies' attack回弹攻击Rebound attack弱密钥Weak key肯德尔等级相关系数Kendall tau rank correlation coefficient卡方检验时间、内存、数据取舍攻击Time/memory/data tradeoff attack初始向量工作模式填充
分组密码已攻破的分组密码数据加密标准
密码学對稱密鑰加密块密码資料加密標準密钥长度暴力破解DEA密钥奇偶校验位密钥选项兼容中途相遇攻击国家标准科技协会工作模式CBC初始化向量密钥选项中途相遇攻击选择明文攻击已知明文攻击电子货币EMVMicrosoft OneNoteMicrosoft Outlook
body.skin-minerva .mw-parser-output table.infobox captiontext-align:center
概述 | |
---|---|
首次发布 | 1998 (ANS X9.52) |
衍生自 | DES |
密码细节 | |
密钥长度 | 168,112或56 位 (对应密钥选项 1, 2, 3) |
分组长度 | 64位 |
结构 | Feistel网络 |
重复回数 | 相当于DES的48 |
最佳公开破解 | |
Lucks:232组已知明文,2113次操作,包括290次DES加密,288位内存; Biham:以每个密钥对应的少数选择平文和284次加密操作找到228个目标密钥中的一个 |
密码学中,三重数据加密算法(英语:Triple Data Encryption Algorithm,縮寫為TDEA,Triple DEA),或稱3DES(Triple DES),是一種對稱密鑰加密块密码,相当于是对每个数据块应用三次資料加密標準(DES)算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。
目录
1 标准中的定义
2 算法的名称
3 算法
4 密钥选项
4.1 其它用于指代密钥选项的术语
5 对多于一个块的加密
6 安全性
7 使用
8 注释
9 参考文献
10 参见
标准中的定义
TDEA算法在以下标准中被定义:
- ANS[註 1] X9.52-1998 三重数据加密算法的工作模式[註 2] (已失效)
FIPS PUB 46-3 数据加密标准 (DES) (PDF) (已失效[1])
NIST Special Publication 800-67 使用三重数据加密算法(TDEA)块密码的建议PDF (483 KB)- 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的定义:
.mw-parser-output .templatequotemargin-top:0;overflow:hidden.mw-parser-output .templatequote .templatequoteciteline-height:1em;text-align:left;padding-left:2em;margin-top:0.mw-parser-output .templatequote .templatequotecite citefont-size:small
数据加密标准(DES)应当包括下文中的数据加密算法(DES[註 3])与三重数据加密算法(TDEA,如ANSI X9.52中所描述的)
NIST SP 800-67(2004,2008[註 4])主要使用术语TDEA,但也提到了“Triple DES(TDEA)”。ISO/IEC 18033-3(2005)使用“TDEA”,但其中提到:
TDEA通称Triple DES(数据加密标准)。
没有一个定义了本算法的标准使用术语“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兼容。
密钥选项
标准定义了三种密钥选项:
- 密钥选项1:三个密钥是独立的。
- 密钥选项2:K1和K2是独立的,而K3=K1
- 密钥选项3:三个密钥均相等,即K1=K2=K3
密钥选项1的强度最高,拥有3 x 56 = 168个独立的密钥位。
密钥选项2的安全性稍低,拥有2 x 56 = 112个独立的密钥位。该选项比简单的应用DES两次的强度较高,即使用K1和K2,因为它可以防御中途相遇攻击。
密钥选项3等同与DES,只有56个密钥位。这个选项提供了与DES的兼容性,因为第1和第2次DES操作相互抵消了。该选项不再为国家标准科技协会(NIST)所建议[2],亦不为ISO/IEC 18033-3所支持。
其它用于指代密钥选项的术语
“密钥选项n”是标准中(X9.52, FIPS PUB 46-3, SP 800-67, ISO/IEC 18033-3)定义的TDEA的术语。然而,其它标准中,推荐和通用描述中也使用了其它术语。
- 密钥选项1:
- 3TDEA, NIST SP 800-57[3]与SP 800-78-2[4]中
- 三倍长度密钥,常用名称[5][6]
- 密钥选项2:
- 2TDEA,NIST SP 800-57[3]和SP 800-78-1[4]中
- 双倍长度密钥,常用名称[5][6]
对多于一个块的加密
与其它的块密码一样,对多个数据块的加密和解密可以使用多种工作模式进行,而模式的定义可以与块密码算法相独立。然而,ANS X9.52和NIST SP 800-67(通过SP 800-38A[7])确定了某些模式只能在特定限制下应用,而无需普遍的应用。例如,ANS X9.52提出对于CBC模式,初始化向量每次应当不同,而ISO/IEC 10116没有类似规定[8]。FIPS PUB 46-3和ISO/IEC 18033-3只定义了单块密码,而并没有对多块的工作模式做出限制。
安全性
普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由於中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击和已知明文攻击的强度较弱[9][10],因此NIST认定它只有80位的安全性[3]。
对密钥选项1的已知最佳攻击需要约232组已知明文,2113部,290次DES加密以及288位内存[11](该论文提到了时间和内存的其它分配方案)。这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年[3]。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约284次加密操作找到228个目标密钥中的一个[12]。
使用
电子货币业界普遍使用3DES,并持续开发和宣传基于其的标准(例如EMV)[13][14]。
Microsoft OneNote和Microsoft Outlook 2007使用3DES以密码保护用户数据[15][16]。
注释
^ X9.52有时被错误的写作ANSI X9.52,然而标准自身的名称为ANS X9.52.
^ X9.52将TDEA定义为DEA(定义于ANSI X3.92-1981中,数据加密算法)的一种复合操作,并没有包含DEA的算法内容。因此,X9.52必须与X3.92一起阅读。
^ 疑为笔误,数据加密算法应为DEA。
^ NIST SP 800-67第一版于2004年5月发布,并于2008年5月修订为1.1版,对弱密钥和半弱密钥的定义进行了修正和澄清。两个版本使用了相同的术语。
参考文献
^ Federal Register vol 70, number 96, 宣告联邦信息处理标准(FIPS)46-3,“数据加密标准”(DES);FIPS 74,“实现和使用NBS数据加密标准指导”;FIPS 81,“DES的工作模式”的失效 互联网档案馆的存檔,存档日期2008-06-25. (PDF)
^ NIST SP 800-67
^ 3.03.13.23.3 NIST Special Publication 800-57 密钥管理的建议—第一部分:综述 (修订版), 2007年3月 互联网档案馆的存檔,存档日期2014-06-06. (PDF)
^ 4.04.1 NIST Special Publication 800-78-2, 个人身份认证的密码学算法与密钥长度, 2010年2月 互联网档案馆的存檔,存档日期2010-10-08. (PDF)
^ 5.05.1 密码学指导:3DES. Cryptography World. [2010-07-11]. (原始内容存档于2010-03-11).
^ 6.06.1 Triple DES Encryption. IBM. [2010-07-11].
^ NIST Special Publication 800-38A, 块密码工作模式的建议,方法和技术, 2001版 (PDF)
^ ISO/IEC 10116:2006 信息技术 — 安全技术 — n位块密码的工作模式
^ Ralph Merkle, Martin Hellman: 关于多加密的安全性 互联网档案馆的存檔,存档日期2011-09-27. (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.
^ Stefan Lucks: 攻击三次加密 互联网档案馆的存檔,存档日期2005-11-09. (PDF), Fast Software Encryption 1998, pp 239–253.
^ Eli Biham: 如何使用228步解密DES加密的消息 互联网档案馆的存檔,存档日期2005-12-10. (PostScript), 1996.
^ EMV 4.2 Specifications, 第二部 - 安全性和密钥管理, 4.2版, 2008年6月
^ VISA
^ Daniel Escapa's OneNote Blog - Encryption for Password Protected Sections, November 2006
^ Microsoft - Encrypt E-mail Messages, Outlook 2007 互联网档案馆的存檔,存档日期2010-03-28.
参见
- DES
- DES-X
- AES
- Horst Feistel
- Walter Tuchman
|