3DES

三重数据加密算法
概述
首次发布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),或稱3DESTriple DES),是一種對稱密鑰加密块密码,相当于是对每个数据块应用三次資料加密標準(DES)算法。由于计算机运算能力的增强,原版DES由於密钥长度過低容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。

标准中的定义

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的定义:

数据加密标准(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兼容

密钥选项

标准定义了三种密钥选项(Keying option),“密钥选项n”是标准中(X9.52, FIPS PUB 46-3, SP 800-67, ISO/IEC 18033-3)定义的TDEA的术语。然而,其它标准中,推荐和通用描述中也使用了其它术语。

  • 密钥选项1:
    • 三个密钥是独立的。常用名称为3TDEA或“三倍长度密钥”(triple-length keys)[2][3]
    • 密钥选项1的强度最高,拥有3 x 56 = 168个独立的密钥位。在NIST SP 800-57[4]与SP 800-78-2[5]中定义。
  • 密钥选项2(已弃用):
    • K1和K2是独立的,而K3=K1。常用名称为2TDEA,或“双倍长度密钥”(double-length keys)[2][3]
    • 密钥选项2的安全性稍低,拥有2 x 56 = 112个独立的密钥位。该选项比简单的应用DES两次的强度较高,即使用K1和K2,因为它可以防御中途相遇攻击。 这是对“双重DES”(double DES)的改进,双重DES仅需要256步即可进行攻击。 國家標準技術研究所(NIST)已弃用此选项。[6]在NIST SP 800-57[4]和SP 800-78-1[5]中定义。
  • 密钥选项3(已弃用):
    • 三个密钥均相等,即K1=K2=K3
    • 密钥选项3等同与DES,只有56个密钥位。这个选项提供了与DES的兼容性,因为第1和第2次DES操作相互抵消了。该选项不再为NIST所建议[7],亦不为ISO/IEC 18033-3所支持。

对多于一个块的加密

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

安全性

普遍而言,有3个独立密钥的3DES(密钥选项1)的密钥长度为168位(三个56位的DES密钥),但由於中途相遇攻击,它的有效安全性仅为112位。密钥选项2将密钥长度缩短到了112位,但该选项对特定的选择明文攻击已知明文攻击的强度较弱[10][11],因此NIST认定它只有80位的安全性[4]

对密钥选项1的已知最佳攻击需要约232组已知明文,2113部,290次DES加密以及288位内存[12](该论文提到了时间和内存的其它分配方案)。这在现在是不现实的,因此NIST认为密钥选项1可以使用到2030年[4]。若攻击者试图在一些可能的(而不是全部的)密钥中找到正确的,有一种在内存效率上较高的攻击方法可以用每个密钥对应的少数选择明文和约284次加密操作找到228个目标密钥中的一个[13]

使用

电子货币业界和電子貨幣標準(如EMV)過往普遍使用3DES[14][15],但3DES已經逐漸被更安全的AES代替。

Microsoft OneNoteMicrosoft Outlook 2007使用3DES以密码保护用户数据[16][17]

注释

  1. ^ X9.52有时被错误的写作ANSI X9.52,然而标准自身的名称为ANS X9.52.
  2. ^ X9.52将TDEA定义为DEA(定义于ANSI X3.92-1981中,数据加密算法)的一种复合操作,并没有包含DEA的算法内容。因此,X9.52必须与X3.92一起阅读。
  3. ^ 疑为笔误,数据加密算法应为DEA。
  4. ^ NIST SP 800-67第一版于2004年5月发布,并于2008年5月修订为1.1版,对弱密钥和半弱密钥的定义进行了修正和澄清。两个版本使用了相同的术语。

参考文献

  1. ^ Federal Register vol 70, number 96, 宣告联邦信息处理标准(FIPS)46-3,“数据加密标准”(DES);FIPS 74,“实现和使用NBS数据加密标准指导”;FIPS 81,“DES的工作模式”的失效 (页面存档备份,存于互联网档案馆) (PDF)
  2. ^ 2.0 2.1 密码学指导:3DES. Cryptography World. [2010-07-11]. (原始内容存档于2010-03-11). 
  3. ^ 3.0 3.1 Triple DES Encryption. IBM. [2010-07-11]. 
  4. ^ 4.0 4.1 4.2 4.3 NIST Special Publication 800-57 密钥管理的建议—第一部分:综述 (修订版), 2007年3月 (页面存档备份,存于互联网档案馆) (PDF)
  5. ^ 5.0 5.1 NIST Special Publication 800-78-2, 个人身份认证的密码学算法与密钥长度, 2010年2月 (页面存档备份,存于互联网档案馆) (PDF)
  6. ^ Barker, Elaine. NIST Special Publication 800-57: Recommendation for Key Management Part 1: General (PDF) 4. NIST. January 2016 [2017-09-05]. (原始内容存档 (PDF)于2020-12-10). 
  7. ^ NIST SP 800-67
  8. ^ NIST Special Publication 800-38A, 块密码工作模式的建议,方法和技术, 2001版 (页面存档备份,存于互联网档案馆) (PDF)
  9. ^ ISO/IEC 10116:2006 信息技术 — 安全技术 — n位块密码的工作模式. [2010-09-23]. (原始内容存档于2012-03-17). 
  10. ^ Ralph Merkle, Martin Hellman: 关于多加密的安全性 (页面存档备份,存于互联网档案馆) (PDF), Communications of the ACM, Vol 24, No 7, pp 465–467, July 1981.
  11. ^ Paul van Oorschot, Michael J. Wiener, 一种针对双密钥三次加密的已知明文攻击, EUROCRYPT'90, LNCS 473, 1990, pp 318–325.
  12. ^ Stefan Lucks: 攻击三次加密 (页面存档备份,存于互联网档案馆) (PDF), Fast Software Encryption 1998, pp 239–253.
  13. ^ Eli Biham: 如何使用228步解密DES加密的消息 (页面存档备份,存于互联网档案馆) (PostScript), 1996.
  14. ^ EMV 4.2 Specifications, 第二部 - 安全性和密钥管理, 4.2版, 2008年6月. [2010-09-23]. (原始内容存档于2017-07-18). 
  15. ^ VISA. [2010-09-23]. (原始内容存档于2019-07-09). 
  16. ^ Daniel Escapa's OneNote Blog - Encryption for Password Protected Sections, November 2006. [2010-09-23]. (原始内容存档于2007-02-23). 
  17. ^ Microsoft - Encrypt E-mail Messages, Outlook 2007. [2010-09-23]. (原始内容存档于2010-03-28). 

参见

  • icon密码学主题
  • DES
  • DES-X
  • AES
  • Horst Feistel
  • Walter Tuchman
 
常见加密算法
次常见加密算法
  • Camellia
  • CAST-128英语CAST-128
  • IDEA
  • RC2英语RC2
  • RC5
  • SEED英语SEED
  • Skipjack英语Skipjack
  • TEA
  • XTEA
其他加密算法
  • 3-Way英语3-Way
  • ABC英语ABC (cipher)
  • Akelarre英语Akelarre (cipher)
  • Anubis英语Anubis (cipher)
  • ARIA英语ARIA (cipher)
  • BaseKing英语BaseKing
  • BassOmatic英语BassOmatic
  • BATON英语BATON
  • BEAR and LION英语BEAR and LION ciphers
  • CAST-256英语CAST-256
  • CIKS-1英语CIKS-1
  • CIPHERUNICORN-A英语CIPHERUNICORN-A
  • CIPHERUNICORN-E英语CIPHERUNICORN-E
  • CLEFIA英语CLEFIA
  • CMEA英语Cellular Message Encryption Algorithm
  • Cobra英语Cobra ciphers
  • COCONUT98英语COCONUT98
  • Crab英语Crab (cipher)
  • Cryptomeria/C2英语Cryptomeria cipher
  • CRYPTON英语CRYPTON (cipher)
  • CS-Cipher英语CS-Cipher
  • DEAL英语DEAL
  • DES-X英语DES-X
  • DFC英语DFC (cipher)
  • E2英语E2 (cipher)
  • FEAL英语FEAL
  • FEA-M英语FEA-M
  • FROG英语FROG
  • G-DES英语GDES
  • GOST英语GOST (block cipher)
  • Grand Cru英语Grand Cru (cipher)
  • Hasty Pudding cipher英语Hasty Pudding cipher
  • Hierocrypt英语Hierocrypt
  • ICE英语ICE (cipher)
  • IDEA NXT英语Idea NXT
  • Intel Cascade Cipher英语Intel Cascade Cipher
  • Iraqi英语Iraqi block cipher
  • KASUMI英语KASUMI (block cipher)
  • KeeLoq英语KeeLoq
  • KHAZAD英语KHAZAD
  • Khufu and Khafre英语Khufu and Khafre
  • KN-Cipher英语KN-Cipher
  • Ladder-DES英语Ladder-DES
  • Libelle英语Libelle (cipher)
  • LOKI97英语LOKI97
  • LOKI89/91英语LOKI
  • Lucifer英语Lucifer (cipher)
  • M6英语M6 (cipher)
  • M8英语M8 (cipher)
  • MacGuffin英语MacGuffin (cipher)
  • Madryga英语Madryga
  • MAGENTA英语MAGENTA
  • MARS英语MARS (cipher)
  • Mercy英语Mercy (cipher)
  • MESH英语MESH (cipher)
  • MISTY1英语MISTY1
  • MMB英语MMB
  • MULTI2英语MULTI2
  • MultiSwap英语MultiSwap
  • New Data Seal英语New Data Seal
  • NewDES英语NewDES
  • Nimbus英语Nimbus (cipher)
  • NOEKEON英语NOEKEON
  • NUSH英语NUSH
  • Q英语Q (cipher)
  • RC6
  • REDOC英语REDOC
  • Red Pike英语Red Pike (cipher)
  • S-1英语S-1 block cipher
  • SAFER英语SAFER
  • SAVILLE英语SAVILLE
  • SC2000英语SC2000
  • SHACAL英语SHACAL
  • SHARK
  • SM4
  • Speck
  • Spectr-H64英语Spectr-H64
  • Square英语Square (cipher)
  • SXAL/MBAL英语SXAL/MBAL
  • Threefish英语Threefish
  • Treyfer英语Treyfer
  • UES英语UES (cipher)
  • Xenon英语Xenon (cipher)
  • xmx英语xmx
  • XXTEA
  • Zodiac英语Zodiac (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 attack
  • XSL攻击英语XSL attack
  • 插值攻擊
  • Partitioning英语Partitioning cryptanalysis
  • 戴维斯攻击英语Davies' attack
  • 回弹攻击英语Rebound attack
  • 弱密钥英语Weak key
  • 肯德尔等级相关系数英语Kendall tau rank correlation coefficient
  • 卡方检验
  • 时间、内存、数据取舍攻击英语Time/memory/data tradeoff attack
密码标准
工作方式
  • 分类 分类
  • 主题 主题
  • 专题 专题