量子计算机目前还不会威胁到你的加密。一台能够破解 RSA-2048 的量子计算机需要数百万个纠错逻辑量子比特——而我们现在只有数百个带噪声的物理量子比特。但问题在于:对手可能现在就在收集加密数据,意图在未来量子硬件成熟后再解密它。而迁移密码学基础设施需要数年时间。
这就是为什么 2024 年 NIST 的后量子密码学标准对开发者来说,在今天就很重要,而不是等到 2035 年。
真正的威胁:Shor 算法
1994 年,Peter Shor 证明了量子计算机能够以多项式时间 O((log N)³) 分解大整数。这破解了 RSA,因为 RSA 的安全性依赖于分解质因数的困难性。同样的算法——只需稍作修改——就能破解椭圆曲线密码学(ECC),而 ECC 是 ECDSA 和 ECDH 的基础。
会被破解的:
- RSA(加密、签名)
- ECDSA(签名——用于 TLS、SSH、代码签名、比特币)
- ECDH(密钥交换——用于 TLS、Signal、WhatsApp、iMessage)
- Diffie-Hellman(密钥交换)
不会被破解的:
- AES-256(对称加密)——Grover 算法只提供二次方加速,将有效密钥强度从 256 位降低到 128 位。这是可以承受的。
- SHA-256、SHA-3(哈希函数)——同样:Grover 提供的加速有限,安全性减半,在当前密钥长度下仍然足够强。
- HMAC——安全
- Argon2、bcrypt(密码哈希)——安全
底线是:非对称密码学需要替换;对称密码学需要提升密钥长度(AES-128 → AES-256)。
现在收集,以后解密
威胁并不是"量子计算机明年就会破解加密"。威胁在于:
- 对手在今天捕获并存储你加密的 TLS 流量
- 在 2032–2040 年,他们对这些流量运行 Shor 算法
- 他们追溯性地解密一切
这种攻击——称为**"现在收集,以后解密"(harvest now, decrypt later)**或 HNDL——已经在发生。NSA 和其他情报机构几乎可以肯定正在存储大量加密流量。2022 年 NSA 的公告明确警告了这一点。
今天就需要针对 HNDL 加以保护的数据:
- 国家机密、机密政府数据
- 长期有效的个人数据(医疗记录、身份证件)
- 有长期监管保留要求的金融数据
- 商业秘密和知识产权
- 密码数据库(尽管 bcrypt/Argon2 是安全的)
不需要立即担心的数据:
- 会话令牌(短期有效,10 年后毫无价值)
- 临时聊天消息(除非你是高价值目标)
- 公开信息
NIST 的后量子标准(2024)
经过 8 年的竞赛,NIST 于 2024 年 8 月确定了三种后量子密码学算法:
ML-KEM(CRYSTALS-Kyber)——密钥封装
- 替代: RSA 密钥交换、ECDH
- 安全基础: 模容错学习(MLWE)问题——被认为对经典计算机和量子计算机都很难
- 性能: 快速,密钥小(KEM-768 约 800 字节),运算迅速
- 用于: TLS 密钥交换、加密密钥封装、混合加密方案
# Python example using pqcrypto library
from pqcrypto.kem.kyber768 import generate_keypair, encapsulate, decapsulate
public_key, secret_key = generate_keypair()
# Sender encapsulates a shared secret
ciphertext, shared_secret_sender = encapsulate(public_key)
# Receiver decapsulates
shared_secret_receiver = decapsulate(secret_key, ciphertext)
assert shared_secret_sender == shared_secret_receiver
# Now use shared_secret as AES key
ML-DSA(CRYSTALS-Dilithium)——数字签名
- 替代: ECDSA、用于签名的 RSA-PSS
- 安全基础: MLWE + MSIS 问题
- 性能: 中等密钥长度(公钥约 1,312 字节),签名快速
- 用于: 代码签名、TLS 证书、文档签名、JWT 签名
from pqcrypto.sign.dilithium3 import generate_keypair, sign, verify
public_key, secret_key = generate_keypair()
message = b"Deploy to production"
signature = sign(message, secret_key)
# Verify
assert verify(message, signature, public_key)
SLH-DSA(SPHINCS+)——基于哈希的签名
- 替代: 作为保守备选方案替代 ECDSA
- 安全基础: 仅依赖哈希函数——最保守的选择
- 性能: 签名较大(约 8–50 KB),签名较慢
- 用于: 关注密钥重用的高保障签名、长期文档签名
NIST 还标准化了 FALCON(FN-DSA)——一种签名紧凑的格签名方案,适用于像 IoT 这样的受限环境。
现在该做什么:分级行动计划
第一级——今天就做(低投入、高影响)
审计你的密码学清单。 你无法迁移尚未编目的东西。记录:
- 你的应用在哪里使用 TLS?(大多数框架会处理这个)
- 你在哪里生成或验证签名?(JWT、代码签名、PDF 签名)
- 你在哪里使用非对称密钥交换?(RSA 封装的 AES 密钥、SSH)
- 你正在使用哪些库?(OpenSSL、BouncyCastle、AWS KMS 等)
将 AES-128 升级到 AES-256。 这是低风险且立竿见影的。AES-256 面对 Grover 时安全性减半至 128 位——仍然十分安全。
在所有地方启用 TLS 1.3。 TLS 1.3 默认使用前向保密(ECDHE),这意味着即使长期密钥被泄露,过去的会话也无法被解密。这为 TLS 流量部分缓解了 HNDL。
第二级——为未来 6–18 个月做规划
在 TLS 中采用混合密钥交换。 TLS 工作组已经标准化了 X25519Kyber768——一种同时使用经典 ECDH 和 ML-KEM 的混合方案。Google Chrome、Cloudflare 和 AWS 已经支持它。这在防范 HNDL 的同时保持了经典安全性:
# Nginx with OpenSSL 3.x + oqs-provider (Open Quantum Safe)
ssl_ecdh_curve X25519Kyber768; # hybrid classical + PQC
在新系统中用 ML-DSA 替换 RSA/ECDSA。 对于任何全新构建的项目——新的微服务、新的 JWT 实现、新的 SSH 部署——使用 ML-DSA(Dilithium3 或 Dilithium5)而不是 ECDSA-256。
更新你的 TLS 证书流水线。 大多数公共 CA 尚未签发 PQC 证书,但你今天就可以将 ML-DSA 用于内部签名的证书和服务网格证书。
第三级——长期迁移(1–5 年)
完整的 PKI 迁移。 用基于 PQC 的 CA 基础设施替换你的 RSA/ECC 证书层次结构。这是最困难的部分——硬件安全模块(HSM)、自动化证书轮换和证书链都需要更新。
硬件和嵌入式设备。 IoT 和嵌入式设备往往无法远程打补丁,且有 10 年以上的使用寿命。审计任何依赖 RSA 或 ECDSA 进行身份验证的此类设备。
密钥管理系统。 AWS KMS、Azure Key Vault、HashiCorp Vault——核实它们的 PQC 路线图和迁移时间表。
库和框架支持
| 平台 | PQC 状态 |
|---|---|
| OpenSSL 3.x + oqs-provider | 通过插件支持 ML-KEM、ML-DSA、FALCON |
| AWS KMS | ML-KEM 混合 TLS 处于预览阶段 |
| Cloudflare | X25519Kyber768 TLS(自 2023 年起上线) |
| Chrome 124+ | X25519Kyber768 TLS |
| Java(BouncyCastle) | CRYSTALS-Kyber、Dilithium |
| Python(pqcrypto) | 完整的 NIST 套件 |
| Go | golang.org/x/crypto PQC 开发中 |
| Node.js | 通过原生模块(OpenSSL 3.x 绑定) |
| Rust(pqcrypto crate) | 完整的 NIST 套件 |
一页速览
What breaks: RSA, ECDSA, ECDH, classical DH
What's safe: AES-256, SHA-256, SHA-3, bcrypt, Argon2
New standards: ML-KEM (Kyber) for key exchange
ML-DSA (Dilithium) for signatures
SLH-DSA (SPHINCS+) for conservative signing
Do today: Upgrade AES-128 → AES-256
Enable TLS 1.3 (forward secrecy)
Audit crypto inventory
Do soon: Hybrid TLS key exchange (X25519Kyber768)
ML-DSA for new signature systems
Do in 1-5 yrs: Full PKI migration to PQC
Firmware updates for IoT devices
量子计算对密码学的威胁是真实存在的,而时间线尚不确定——这恰恰是为什么现在、在量子计算机具备能力之前就采取行动,才是正确的选择。
延伸阅读: 量子计算术语表 — Shor 算法 · 量子计算机今天能做什么