← [ BACK_TO_NOTES ]

Data Encryption Standard(DES)

DES 是 64-bit block、56-bit effective key 的 16-round Feistel block cipher;FIPS 46-3 已于 2005-05-19 撤回,今天主要作为理解 Feistel、3DES 与历史 block-cipher mode 的教学和兼容知识。

#evergreen #concept #crypto #algorithm

[!info] related notes

Data Encryption Standard(DES)

一句话定义

DES 是一个历史性的 symmetric block cipher:

  • block size:64 bit;
  • nominal key input:64 bit;
  • effective key material:56 bit;
  • round:16;
  • structure:Feistel network。

它对现代安全保护已经过时。

标准状态

DES 曾是美国联邦标准 FIPS 46 系列的核心算法。

最终版本 FIPS 46-3 已于:

2005-05-19

正式撤回。

NIST 的原因非常明确:DES 已不能提供保护联邦信息所需的安全强度。

因此:

DES 今天主要用于理解历史协议、兼容旧数据和学习分组密码设计,不应作为新系统的保护算法。

为什么 64-bit Key 只有 56-bit Effective Key

DES key 通常表示为 64 bit。

但每个 byte 中有 1 bit 历史上用于 parity。

所以:

8 × 8 bit
→ 64-bit representation

其中只有:

8 × 7 bit
→ 56-bit effective key material

真正决定 brute-force key space 的是这 56 bit。

Block Size

DES 每次处理:

64-bit plaintext block
→ 64-bit ciphertext block

block size 与 key size 是不同概念。

DES 的 64-bit block 在现代大数据量场景也过小,会更早遇到 birthday-bound 类重复/碰撞风险。

Feistel Structure

DES 把一个 64-bit block 分成:

L_i
R_i

每轮大致执行:

L_(i+1) = R_i
R_(i+1) = L_i XOR F(R_i, K_i)

Feistel 结构的重要性质是:

round function F 本身不需要可逆,整体网络仍可逆。

这让 encryption/decryption 可以复用相同结构,只需反转 round-key 顺序。

Round Function

DES 的 F 大致包含:

  1. Expansion:32 bit → 48 bit;
  2. XOR round key;
  3. S-box substitution:48 bit → 32 bit;
  4. P permutation。

其中 S-box 提供关键非线性。

DES 的 S-box 设计后来被发现具有抵抗差分密码分析的结构特征,这也是 DES 历史中非常重要的一部分。

Key Schedule

56-bit effective key 经过:

  • permutation;
  • split;
  • round-dependent left rotation;
  • compression/permutation;

生成 16 个 48-bit round keys。

每轮使用不同子密钥。

Initial / Final Permutation

DES 还定义:

  • Initial Permutation(IP);
  • inverse Final Permutation(IP^-1)。

它们属于算法标准结构,但不是 DES 现代安全性的核心来源。

学习时不需要把整张 permutation table 背下来。

为什么 DES 失效

最核心原因是:

56-bit key space 对现代攻击者太小。

这意味着 exhaustive search 已经不再具有足够成本。

DES 的退出不是因为 Feistel 网络本身“不安全”,而是具体参数尤其 key size 不再满足安全需求。

DES 与 3DES

3DES/TDEA 试图通过多次 DES operation 扩大安全强度:

DES
→ EDE composition
→ TDEA

但它仍继承:

  • 64-bit block size;
  • legacy structure;
  • 较差性能。

因此 TDEA 后来也进入 legacy-only 状态。

详见 3DES / TDEA。

DES 与 AES

AES 并不是“把 DES key 加长”。

两者内部结构完全不同:

DES
→ Feistel network
→ 64-bit block
→ 56-bit effective key

AES
→ substitution-permutation network
→ 128-bit block
→ 128/192/256-bit key

AES 是现代标准替代方向。

DES 与工作模式

DES 本体只定义单个 block transform。

要处理多 block message,需要 mode of operation,例如历史上常见:

  • ECB;
  • CBC;
  • CFB;
  • OFB。

Mode 与 DES 算法本体是两个层级。

详见 Block Cipher Modes of Operation。

常见误区

DES 是 64-bit 安全算法

错误。64 bit 是 key representation/block size 相关数字;effective key security 只有 56-bit key space。

DES 在 2023 年才被禁止

错误。FIPS 46-3 在 2005 年就已正式撤回。

DES 被淘汰说明 Feistel 结构不安全

错误。Feistel 是通用密码结构,DES 的具体参数才是关键问题。

CBC/CFB 是 DES 的内部算法

错误。它们是可配合 block cipher 使用的 mode of operation。

学习检查

  1. DES 的 block size、nominal key size、effective key size 分别是多少?
  2. 为什么 64-bit key representation 只有 56-bit effective key material?
  3. Feistel network 为什么允许 round function 本身不可逆?
  4. DES 真正退出历史舞台的核心原因是什么?
  5. DES 与 3DES 是什么关系?
  6. DES 与 AES 为什么不能理解成“同一算法把 key 加长”?
  7. DES 本体与 ECB/CBC/CFB 处于什么不同层级?
创建于 2026/1/3 更新于 2026/9/30
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本