DES / 3DES

DES / 3DES
Data Encryption Standard
设计者
IBM (基于 Lucifer)
首次发布
DES: 1977
3DES: 1999
类别
对称分组密码
分组大小
64 bit
密钥长度
DES: 56 bit
3DES: 168 bit (有效112)
轮数
16 (Feistel)
结构
Feistel 网络
标准
FIPS 46-3 / FIPS 81
安全状态
已弃用 / 逐步淘汰

DES(Data Encryption Standard)是 IBM 基于 Horst Feistel 的 Lucifer 算法设计、1977 年被 NBS(现 NIST)采纳为联邦标准的分组密码。DES 使用 56 位密钥(实际输入 64 位,其中 8 位为校验位),64 位分组,16 轮 Feistel 结构。

⚠ 安全警告:DES 的 56 位密钥在 1998 年被 EFF 的"Deep Crack"机器在 56 小时内暴力破解。3DES 的有效安全强度为 112 位,但速度极慢且分组仅 64 位。PCI DSS 4.0 (2023) 已正式淘汰 3DES。新系统应使用 AES。
Feistel 结构

DES 使用经典 Feistel 网络,将每个 64 位分组分为左右两半:

Feistel 轮函数 (i = 0..15): L[i] = R[i-1] R[i] = L[i-1] ⊕ F(R[i-1], K[i]) F 函数: 1. 扩展置换 E: 32 bit → 48 bit 2. 与轮密钥 K[i] (48 bit) 异或 3. 分为 8 组,每组通过一个 S-box (6→4 bit) 4. S-box 输出经过置换 P 解密:使用相同算法,但轮密钥逆序 (K[15]→K[0])
3DES (Triple DES)

3DES 通过三次 DES 运算增强安全性。有两种主要模式:

  • EDE 模式(推荐):C = EK3(DK2(EK1(P)))
  • 使用三个独立密钥(168 位,有效 112 位安全)
  • 或两个密钥(K1=K3,112 位,有效 80 位安全)
DES vs AES
特性DES3DESAES
分组大小64 bit64 bit128 bit
密钥长度56 bit168 bit128/192/256 bit
有效安全已破解112 bit128/192/256 bit
结构FeistelFeistelSPN
轮数164810/12/14
速度极慢(1/3 DES)快(AES-NI 更快)
状态弃用逐步淘汰当前标准
参考文献
  1. NIST (1999). "Data Encryption Standard (DES)". FIPS PUB 46-3 (withdrawn 2005).
  2. Electronic Frontier Foundation (1998). "Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design". O'Reilly.
  3. Barker, E., Roginsky, A. (2019). "Transitioning the Use of Cryptographic Algorithms and Key Lengths". NIST SP 800-131A Rev. 2.