2. 对称密码基础
对称密码(Symmetric Cryptography)是密码学中最古老、最基础的加密方式。其核心特征是:加密密钥与解密密钥完全相同。通信双方必须在加密前通过安全信道协商出同一个密钥,才能实现机密性保护。本章将系统讲解对称加密原理、主流算法、密钥长度与安全性的关系,以及分组密码的工作模式。
2.1 对称加密原理
对称加密系统由五个基本要素组成:明文(Plaintext)、加密算法(Encryption Algorithm)、密钥(Key)、密文(Ciphertext)、解密算法(Decryption Algorithm)。加密过程可表示为:
C = E(K, P) // 加密:使用密钥 K 加密明文 P 得到密文 C
P = D(K, C) // 解密:使用相同密钥 K 解密密文 C 恢复明文 P
对称加密的安全性完全依赖于密钥的保密性。算法本身可以公开,只要密钥不被泄露,即使攻击者知道加密算法和密文,也无法恢复明文。
核心安全假设: 对称密码的安全性建立在“密钥空间足够大 + 算法无已知有效攻击”两个前提之上。密钥一旦泄露,整个加密体系即刻失效。
2.2 常见对称加密算法
目前业界最广泛使用的对称加密算法是 AES(Advanced Encryption Standard),其前身是 DES(Data Encryption Standard)。下表对比了这两种算法的核心参数:
| 算法 | 密钥长度 | 分组大小 | 轮数 | 设计年份 | 当前状态 |
|---|---|---|---|---|---|
| DES | 56 位 | 64 位 | 16 | 1977 | 已淘汰(可被暴力破解) |
| 3DES | 112 或 168 位 | 64 位 | 48 | 1998 | 逐步淘汰(性能差、分组小) |
| AES-128 | 128 位 | 128 位 | 10 | 2001 | 广泛使用(安全) |
| AES-192 | 192 位 | 128 位 | 12 | 2001 | 广泛使用(安全) |
| AES-256 | 256 位 | 128 位 | 14 | 2001 | 广泛使用(最高安全级) |
实践建议: 新系统应默认使用 AES-256。AES 在硬件和软件上均有极高效率,且已被 NIST、ISO、IETF 等国际标准组织采纳为全球标准。
2.3 密钥长度与安全性
密钥长度直接决定暴力破解(Brute-Force Attack)的难度。每增加 1 位密钥,密钥空间扩大 2 倍,破解时间呈指数级增长。下表给出了不同密钥长度在当前计算能力下的安全评估:
| 密钥长度 | 密钥空间 | 暴力破解时间(假设 10⁹ 次/秒) | 安全等级 |
|---|---|---|---|
| 56 位(DES) | 2⁵⁶ ≈ 7.2 × 10¹⁶ | 约 2.3 年 | ❌ 不安全 |
| 64 位 | 2⁶⁴ ≈ 1.8 × 10¹⁹ | 约 585 年 | ⚠️ 短期安全 |
| 80 位 | 2⁸⁰ ≈ 1.2 × 10²⁴ | 约 3.8 × 10⁷ 年 | ✅ 安全 |
| 128 位(AES-128) | 2¹²⁸ ≈ 3.4 × 10³⁸ | 约 1.0 × 10²² 年 | ✅ 安全 |
| 256 位(AES-256) | 2²⁵⁶ ≈ 1.1 × 10⁷⁷ | 远超宇宙年龄 | ✅ 量子安全(对称) |
重要提醒: 密钥长度不是唯一安全指标。算法设计缺陷、侧信道攻击(如时序攻击、功耗分析)、随机数生成器弱点,都可能使长密钥形同虚设。密钥管理(生成、分发、存储、轮换)与算法选择同等重要。
2.4 分组密码模式
分组密码(Block Cipher)每次只能加密固定长度的数据块(如 AES 为 128 位)。为了加密任意长度的数据,需要定义工作模式(Mode of Operation)。不同的模式在安全性、性能、并行性、错误传播等方面差异显著。
下图展示了五种主流分组密码模式的核心流程对比:
2.5 模式对比总结
下表从六个关键维度对五种模式进行横向对比,帮助你在实际协议设计中做出正确选择:
| 模式 | 需要 IV | 加密并行 | 解密并行 | 错误传播 | 流密码特性 | 典型应用 |
|---|---|---|---|---|---|---|
| ECB | ❌ | ✅ | ✅ | 无(块独立) | ❌ | 单块密钥加密(如密钥包装) |
| CBC | ✅(随机) | ❌ | ✅ | 1 位错 → 当前块 + 下一块损坏 | ❌ | 文件加密、TLS 1.2 及之前 |
| CFB | ✅(随机) | ❌ | ✅ | 1 位错 → 影响后续块直到移位寄存器清空 | ✅ | 实时流数据 |
| OFB | ✅(随机) | ❌ | ❌ | 无错误传播 | ✅ | 噪声信道、卫星通信 |
| CTR | ✅(nonce + counter) | ✅ | ✅ | 无错误传播 | ✅ | 现代首选(GCM、CCM 的基础) |
现代协议设计黄金法则: 优先选择 认证加密模式(AEAD),如 AES-256-GCM 或 ChaCha20-Poly1305。它们将机密性、完整性、真实性合并在一个原子操作中,避免“加密 + 独立 MAC”组合可能引入的时序侧信道和实现错误。
2.6 对称密码在密钥交换协议中的角色
在《密码算法安全通信密钥交换协议》课程中,对称密码承担以下关键职责:
- 会话加密: 密钥交换完成后,使用协商出的对称密钥(Session Key)加密后续通信数据。
- 身份验证令牌保护: 对握手过程中的临时凭证、随机数、证书进行对称加密。
- 密钥派生输入: 对称密码常作为 PRF(伪随机函数)的组成部分,用于从共享秘密派生多个子密钥。
- 前向安全性保障: 结合临时 Diffie-Hellman 密钥交换,每次会话使用独立的对称密钥,即使长期私钥泄露,历史会话仍受保护。