DES / 3DES
DES / 3DES
Data Encryption Standard
Data Encryption Standard
设计者
IBM (基于 Lucifer)
首次发布
DES: 1977
3DES: 1999
3DES: 1999
类别
对称分组密码
分组大小
64 bit
密钥长度
DES: 56 bit
3DES: 168 bit (有效112)
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
| 特性 | DES | 3DES | AES |
|---|---|---|---|
| 分组大小 | 64 bit | 64 bit | 128 bit |
| 密钥长度 | 56 bit | 168 bit | 128/192/256 bit |
| 有效安全 | 已破解 | 112 bit | 128/192/256 bit |
| 结构 | Feistel | Feistel | SPN |
| 轮数 | 16 | 48 | 10/12/14 |
| 速度 | 慢 | 极慢(1/3 DES) | 快(AES-NI 更快) |
| 状态 | 弃用 | 逐步淘汰 | 当前标准 |
参考文献
- NIST (1999). "Data Encryption Standard (DES)". FIPS PUB 46-3 (withdrawn 2005).
- Electronic Frontier Foundation (1998). "Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design". O'Reilly.
- Barker, E., Roginsky, A. (2019). "Transitioning the Use of Cryptographic Algorithms and Key Lengths". NIST SP 800-131A Rev. 2.