2. 密码学基础(一):对称加密算法(AES、DES、3DES)的原理、特点与应用场景
对称加密是密码学中最基础、应用最广泛的加密方式。其核心特征是:加密和解密使用同一个密钥。通信双方必须在安全通道上预先共享这个密钥,才能进行后续的保密通信。本章将深入剖析 DES、3DES 和 AES 三种主流对称加密算法的原理、安全强度及适用场景。
2.1 对称加密的核心模型
对称加密的工作流程可以用一个简洁的模型概括:发送方使用密钥 K 将明文 M 加密为密文 C,接收方使用相同的密钥 K 将密文 C 解密还原为明文 M。
加密:C = E(K, M)
解密:M = D(K, C)
其中 E 为加密算法,D 为解密算法,K 为共享密钥。
2.2 DES(数据加密标准)
2.2.1 算法原理
DES 是 1977 年由美国国家标准局(NIST)发布的对称加密算法,采用 Feistel 网络结构,分组长度为 64 位,密钥长度为 56 位(实际密钥为 64 位,其中 8 位用于奇偶校验)。
- 分组密码:将明文分成 64 位的数据块,逐块加密。
- 16 轮迭代:每轮使用不同的子密钥,通过扩展置换、S 盒替换、P 盒置换等操作混淆和扩散数据。
- 初始置换与逆初始置换:在首尾对数据块进行位重排。
2.2.2 安全性与局限性
| 维度 | 说明 |
|---|---|
| 密钥长度 | 56 位,有效密钥空间约 7.2×10¹⁶,现代硬件可在数小时内暴力破解 |
| 分组大小 | 64 位,在高速网络中易受生日攻击 |
| 已知攻击 | 差分密码分析、线性密码分析、暴力破解(2012 年已被实际演示) |
| 当前状态 | 已废弃,不推荐用于任何新系统 |
2.3 3DES(三重数据加密算法)
2.3.1 算法原理
3DES 是为了延长 DES 使用寿命而设计的过渡方案,本质上是 对 DES 进行三次加密。最常用的模式是 EDE(Encrypt-Decrypt-Encrypt),使用两个或三个独立密钥。
- 双密钥 3DES(K1=K3):有效密钥长度 112 位,加密过程为 C = E(K1, D(K2, E(K1, M)))。
- 三密钥 3DES(K1≠K2≠K3):有效密钥长度 168 位,加密过程为 C = E(K3, D(K2, E(K1, M)))。
- 解密过程:反向操作,即 D(K1, E(K2, D(K3, C)))。
2.3.2 性能与现状
| 指标 | 3DES(三密钥) | 对比 DES |
|---|---|---|
| 有效密钥长度 | 168 位 | 56 位 |
| 加密速度 | 约为 DES 的 1/3 | 基准 |
| 分组大小 | 64 位(未改进) | 64 位 |
| NIST 状态 | 2023 年后已正式废弃 | 已废弃 |
2.4 AES(高级加密标准)
2.4.1 算法原理
AES 是 2001 年由 NIST 发布的现代对称加密标准,采用 Rijndael 算法,基于 Substitution-Permutation Network(SPN)结构,而非 Feistel 网络。AES 的分组长度固定为 128 位,支持三种密钥长度。
- AES-128:10 轮迭代,密钥长度 128 位
- AES-192:12 轮迭代,密钥长度 192 位
- AES-256:14 轮迭代,密钥长度 256 位
每轮操作包括:SubBytes(字节代换,通过 S 盒非线性变换)、ShiftRows(行移位,扩散行数据)、MixColumns(列混合,扩散列数据)、AddRoundKey(轮密钥加,与子密钥异或)。
2.4.2 安全强度与性能优势
| 特性 | AES-128 | AES-256 |
|---|---|---|
| 密钥长度 | 128 位 | 256 位 |
| 轮数 | 10 | 14 |
| 暴力破解时间(估计) | ~1×10¹⁸ 年(当前算力) | ~1×10³⁶ 年(当前算力) |
| 已知最佳攻击 | 仅比暴力破解快约 2 倍(理论) | 仅比暴力破解快约 2 倍(理论) |
| 硬件加速 | Intel AES-NI 指令集,纳秒级加解密 | Intel AES-NI 指令集,纳秒级加解密 |
2.5 三种算法对比总结
| 对比维度 | DES | 3DES | AES |
|---|---|---|---|
| 发布年份 | 1977 | 1998(标准) | 2001 |
| 分组长度 | 64 位 | 64 位 | 128 位 |
| 密钥长度 | 56 位 | 112 / 168 位 | 128 / 192 / 256 位 |
| 结构 | Feistel 网络 | Feistel 网络(三次 DES) | SPN 结构 |
| 软件速度 | 慢 | 极慢(DES 的 1/3) | 快(硬件加速下极快) |
| 安全状态 | 已破解,不可用 | 已废弃,不推荐 | 当前标准,强烈推荐 |
| 典型应用 | 历史遗留系统 | 旧版金融系统(迁移中) | HTTPS/TLS、WiFi、磁盘加密、VPN |
2.6 对称加密在 HTTPS 中的应用场景
在 HTTPS 的 TLS 协议中,对称加密用于 实际数据传输阶段的加密。非对称加密(如 RSA、ECDHE)仅在握手阶段用于安全交换对称密钥,后续所有 HTTP 请求/响应内容均由对称加密保护。
- TLS 1.2:常用 AES-128-GCM 或 AES-256-GCM,配合 Galois/Counter Mode 提供认证加密。
- TLS 1.3:仅支持 AEAD 类对称加密,推荐 AES-128-GCM 和 ChaCha20-Poly1305。
- 性能考量:AES-128 在安全强度上已足够应对绝大多数场景,且比 AES-256 快约 20-30%。
2.7 对称加密的局限性
尽管对称加密高效且安全,但在实际部署中存在两个关键问题:
- 密钥分发问题:通信双方必须通过安全通道预先共享密钥。在互联网环境下,无法事先与每个网站建立安全通道——这正是 HTTPS 引入非对称加密和证书体系的原因。
- 密钥管理复杂度:n 个通信方两两通信需要 n(n-1)/2 个独立密钥,管理成本随规模平方增长。