量子计算的快速发展对现代密码学构成了前所未有的威胁。当前广泛使用的 RSA、ECDSA 等公钥密码算法依赖于大整数分解或离散对数问题的计算难度,但量子计算机的 Shor 算法可以在多项式时间内解决这些问题。这意味着当大规模量子计算机成熟时,现有的 SSL/TLS 证书、SSH 密钥、数字签名都将面临被破解的风险。
什么是后量子密码学
后量子密码学(Post-Quantum Cryptography,PQC)是指能够在经典计算机上运行,但能够抵御量子计算机攻击的密码学算法。这些算法不依赖量子力学原理,而是基于量子计算机也难以高效求解的数学问题,如格密码(Lattice-Based)、编码密码(Code-Based)、多变量密码(Multivariate)等。
与量子密钥分发(QKD)不同,PQC 是软件层面的解决方案,可以在现有硬件和网络上部署,无需专门的量子通信设备。
NIST PQC 标准化进程
美国国家标准与技术研究院(NIST)自 2016 年启动后量子密码学标准化项目,经过多轮筛选,于 2024 年 8 月发布了首批三个最终标准。
首批发布的三个标准
| 标准名称 | 类型 | 底层技术 | 用途 |
|---|---|---|---|
| ML-KEM | 密钥封装机制 | 模块格(Module-Lattice) | 密钥交换、TLS 握手 |
| ML-DSA | 数字签名 | 模块格(Module-Lattice) | 证书签名、代码签名 |
| SLH-DSA | 数字签名 | 哈希(Hash-Based) | 替代签名方案 |
ML-KEM(原 Kyber)是基于格理论的密钥封装机制,将取代传统的 Diffie-Hellman 密钥交换,用于 TLS 1.3 握手阶段的密钥协商。
ML-DSA(原 Dilithium)是基于格理论的数字签名算法,将作为主要的签名方案,用于 SSL/TLS 证书、代码签名等场景。
SLH-DSA(原 SPHINCS+)是基于哈希的签名算法,作为备份方案,安全性基于哈希函数的抗碰撞性。
正在标准化的候选算法
除了首批三个标准,NIST 还在评估以下算法:
- Falcon:基于格的高效签名算法,签名更短,适用于带宽受限场景
- HQC:基于编码的密钥封装机制,提供额外的安全保障
实际影响与迁移时间线
对 TLS/SSL 的影响
当前的 TLS 协议使用 RSA 或 ECDSA 进行身份验证,使用 ECDHE 进行密钥交换。迁移到 PQC 后:
- 密钥交换:从 ECDHE 迁移到 ML-KEM
- 数字签名:从 ECDSA/RSA 迁移到 ML-DSA
混合方案(Classical + PQC)将在过渡期共存,确保即使 PQC 算法出现问题,传统算法仍能提供安全保障。
关键时间节点
- 2035 年:NIST 计划在此之前淘汰易受量子攻击的算法
- 高风险系统:应在 2030 年前完成迁移
- 现在开始:企业应盘点现有系统中的易受攻击算法,制定迁移计划
OpenSSL PQC 支持现状
截至本文写作时,OpenSSL 3.0.x 系列尚未内置 PQC 算法支持。预计在 OpenSSL 3.2+ 版本中会添加 ML-KEM 和 ML-DSA 的原生支持。
|
|
如果使用支持 PQC 的 OpenSSL 版本,可以使用以下命令生成 ML-KEM 密钥:
|
|
如何准备 PQC 迁移
1. 盘点现有系统
识别所有使用 RSA、ECDSA、DH 算法的系统和服务,包括:
- SSL/TLS 证书
- SSH 密钥
- 代码签名证书
- VPN 密钥交换
- API 签名密钥
2. 建立清单
记录以下信息:
- 证书类型(RSA/ECDSA)
- 密钥长度
- 所属系统
- 到期时间
- 业务重要性
3. 选择混合方案
在过渡期,优先采用传统算法与 PQC 的混合方案:
- TLS 1.3 握手可以使用混合密钥交换
- 证书链可以同时包含传统签名和 PQC 签名
4. 测试与验证
在测试环境中验证 PQC 算法的兼容性,确保:
- 客户端和服务器都支持新算法
- 性能影响在可接受范围内
- 与现有系统的互操作性
总结
后量子密码学不是遥远的未来技术,而是正在发生的现实。NIST 首批 PQC 标准的发布标志着密码学新时代的开始。虽然大规模量子计算机可能还需数年才能实现,但"现在收集,以后解密"(Harvest Now, Decrypt Later)攻击已经存在——攻击者现在开始收集加密数据,等待量子计算机成熟后解密。
对于安全从业者,现在正是开始规划 PQC 迁移的最佳时机。关注 OpenSSL、Nginx、Go 等关键组件的 PQC 支持进度,在过渡期采用混合方案确保平滑迁移。