📑 本页目录(点开跳转)
23 · 后量子密码
⏱ 24 分钟 | ⭐ 这是正在发生的迁移,不是未来学
🎯 一句话
量子计算机会彻底打死 RSA、DH、椭圆曲线(本教程第 14–17 章的全部公钥密码), 但几乎不影响 AES 和哈希。 所以这不是"密码学完蛋了",而是换掉公钥那一半 —— 而且现在就必须开始。
⚛️ 一、两个算法,两种命运
Shor 算法 —— 对公钥密码是灭顶之灾
关键信息
- 能在【多项式时间】内解决:
- 大整数分解 ⟹ RSA 死 💀
- 离散对数 ⟹ DH、DSA、ElGamal 死 💀
- 椭圆曲线离散对数 ⟹ ECDH、ECDSA、Ed25519 死 💀
- ⭐ 注意:不是"变慢一点",是【从指数时间降到多项式时间】
- 加密钥长度完全没用 —— 2048 位换 4096 位只是拖一点点
Grover 算法 —— 对对称密码只是"减半"
结果对照
| 算法 | 量子影响 | 对策 |
|---|---|---|
| RSA / DH / ECC | 💀 完全破解 | 必须换算法 |
| AES-128 | ⚠️ 强度减半 | 换 AES-256 |
| AES-256 | ✅ 基本无影响 | 不动 |
| SHA-256/3 | ✅ 基本无影响 | 不动 |
🔑 一句话记住:对称密码"加倍密钥长度"就行,公钥密码必须"换掉整个算法"。
⏰ 二、为什么"现在"就要做
「先存后解」攻击(Harvest Now, Decrypt Later)
对照
攻击者【今天】就把你的加密流量存下来
等【十年后】有了量子计算机再解密 💀
⭐ 所以真正的截止时间不是"量子计算机造出来那天",而是:
今天 + 数据需要保密的年限 < 量子计算机出现的时间
如果这个不等式不成立,你【已经晚了】
Mosca 定理:设
- $x$ = 你的数据需要保密多少年
- $y$ = 你完成迁移需要多少年
- $z$ = 距离量子计算机出现还有多少年
$$\boxed{x + y > z \;\Longrightarrow\; \text{你现在就有麻烦了}}$$
💡 代入现实:政府和医疗数据 $x$ 常常是 25–50 年; 大型机构的密码学迁移 $y$ 历史上要 5–15 年(想想 SHA-1 和 TLS 1.0 退役花了多久)。 即便 $z$ 是 20 年,$x+y$ 也早就超过它了。
⭐ 这就是为什么 NIST 把最后期限定在 2030(弃用)/ 2035(禁用)。
🏆 三、NIST 标准化的结果
2024 年 8 月正式发布的三个标准:
| 标准 | 原名 | 用途 | 数学基础 |
|---|---|---|---|
| FIPS 203 · ML-KEM | CRYSTALS-Kyber | 密钥封装(替代 DH/ECDH) | 格(Module-LWE) |
| FIPS 204 · ML-DSA | CRYSTALS-Dilithium | 签名(主力) | 格(Module-LWE) |
| FIPS 205 · SLH-DSA | SPHINCS+ | 签名(备份) | ⭐ 只依赖哈希 |
2025 年补充:HQC 被选为基于编码的备份 KEM —— 理由是不能把所有鸡蛋放在"格"这一个篮子里。
尺寸代价(这是迁移最现实的痛点)
| 方案 | 公钥 | 密文/签名 |
|---|---|---|
| X25519(经典) | 32 B | 32 B |
| ML-KEM-768 | 1184 B | 1088 B |
| Ed25519(经典) | 32 B | 64 B |
| ML-DSA-65 | 1952 B | 3309 B ⭐ |
| SLH-DSA(小参数) | 32 B | 7856 B 💀 |
⚠️ 为什么尺寸是大问题: TLS 握手要传证书链(多个签名 + 公钥)。 从 64 字节涨到 3309 字节,握手可能超过初始拥塞窗口,多一个 RTT —— 在移动网络上这是可感知的延迟。 PQC 迁移的主要工程挑战是带宽和延迟,不是 CPU。
🧮 四、格密码为什么可信(直觉版)
对照
格 = 空间里规则排列的点阵
⭐ 困难问题(SVP / LWE):
给你一组"歪斜的"基向量,
找出格中【离原点最近的非零点】—— 高维下极难
LWE(带错误的学习):
给你一堆 (aᵢ, bᵢ),其中 bᵢ = ⟨aᵢ, s⟩ + eᵢ(eᵢ 是小噪声)
求 s
💡 没有噪声就是解线性方程组(高斯消元,很简单)
⭐ 加了一点点噪声,就变成了公认的困难问题
🔑 格密码的两个额外优点: ① 有最坏情况到平均情况的归约 —— 随机实例和最难实例一样难,这个保证很罕见 ② 能支撑同态加密(第 22 章的 FHE 几乎都建在格上)
🔀 五、迁移怎么做:混合模式
结果对照
💡 这个设计非常值得学: 在对新算法还没有几十年信心时,不要单独依赖它。 Chrome/Firefox 从 2024 年起默认启用 X25519MLKEM768 混合组, Signal(PQXDH)、iMessage(PQ3)、Cloudflare 都已上线。 今天你访问大网站,很可能已经在用后量子密钥交换了。
一个真实的警示:不要自己上新算法
对照
💥 SIKE(基于同源):进入 NIST 决赛,被认为很有前途
2022 年被一台【普通笔记本】在【一小时内】用数学攻击彻底击破 💀
💥 Rainbow(多变量签名):同样进决赛,2022 年被击破
🔑 教训:后量子算法的分析历史比 RSA 短得多,缺陷仍在被发现。 这正是混合模式存在的理由,也是别自己实现、别抢跑用未标准化方案的理由。
🧭 六、你现在该做什么
操作步骤
- 【盘点】哪里用了公钥密码,用了什么算法、什么密钥长度
- —— ⭐ 这一步最容易被跳过,也最花时间
- 【识别长寿数据】哪些数据 10 年后还敏感(Mosca 的 x)
- 【建立密码学敏捷性】把算法做成可替换的配置,而不是硬编码
- —— ⭐ 这是最有长期价值的一步,无论下一次换什么算法
- 【优先换密钥交换】因为"先存后解"只威胁保密性;
- 签名可以晚一点(伪造签名需要【当下】就有量子计算机)⭐
- 【用混合模式】不要单独依赖 PQC
🔑 第 ④ 点的逻辑值得单独记: 保密性是"追溯性"风险(今天的流量十年后能被解密), 认证性是"实时性"风险(伪造签名必须在签名有效期内完成)。 所以密钥交换的迁移比签名的迁移更急。
🔗 和站内其他章的关系
| 相关的地方 | 和这一章的关系 |
|---|---|
| 第 14 章 RSA / 第 15 章 DH / 第 16 章 ECC | 全部被 Shor 打死 |
| 第 6 章 AES | Grover 只让强度减半 → 用 AES-256 |
| 第 9 章哈希 | 基本不受影响,SLH-DSA 全靠它 |
| 第 21 章 STARK | 只依赖哈希,天然抗量子 |
| 第 18 章 PKI | 证书链尺寸暴涨是最大工程挑战 |
| 第 19 章密码学敏捷性 | 迁移能否顺利的关键 |
| 大模型 · 合规与伦理 | 那边「数据保留期限」那一条就是你的迁移倒计时:你承诺留多久的密文,就得提前多久换算法(Harvest Now, Decrypt Later) ⭐ |
| 模型上线之后 · 灰度影子与回滚 | 混合模式本质就是灰度:新旧两条路同时跑、随时能退回——⚠️ 动手前先去那边把回滚触发条件要预先写死这一条学走 |
| 模型上线之后 · 成本与容量 | 签名从 64 字节涨到几 KB、握手包变大,这是一笔要重做的容量账,不是纯密码学问题 |
✅ 检查点
- Shor 和 Grover 分别影响什么?为什么说影响完全不同量级?
- 为什么"把 RSA 密钥加长"救不了?
- 什么是"先存后解"攻击?
- 写出 Mosca 定理并解释每个变量。代入现实数字说明为什么现在就晚了。
- NIST 2024 年发布的三个标准分别是什么、干什么用?
- 为什么 2025 年还要补一个 HQC?
- PQC 迁移最主要的工程挑战是什么?为什么?
- LWE 问题去掉噪声会变成什么?说明了什么?
- 什么是混合密钥交换?为什么必须这么做?举一个被击破的候选算法。
- 为什么密钥交换的迁移比签名更紧急?
👀 答案
- Shor 完全破解 RSA/DH/ECC(分解和离散对数降到多项式时间);Grover 只把对称密码强度减半(O(N)→O(√N))。量级不同:一个是"从指数降到多项式",一个只是开平方。
- 因为 Shor 是多项式时间算法,加长密钥只带来多项式级的成本增长,2048→4096 位只拖延一点点,改变不了它可解的事实。
- 攻击者今天就把加密流量存下来,等十年后有量子计算机再解密。所以截止时间不是"量子计算机出现那天"。
- x + y > z ⟹ 现在就有麻烦。x=数据保密年限,y=迁移所需年限,z=距量子计算机的年数。现实:政府/医疗数据 x 常为 25–50 年,大机构迁移 y 历史上 5–15 年,即便 z=20 年,x+y 也早已超过。
- FIPS 203 ML-KEM(Kyber,密钥封装,替代 DH/ECDH)、FIPS 204 ML-DSA(Dilithium,主力签名)、FIPS 205 SLH-DSA(SPHINCS+,只依赖哈希的备份签名)。
- 因为 ML-KEM 和 ML-DSA 都基于格,不能把所有鸡蛋放在一个篮子里。HQC 基于编码,提供数学基础上的多样性。
- 带宽和延迟,不是 CPU。签名从 64 B 涨到 3309 B,TLS 证书链可能超过初始拥塞窗口,多一个 RTT,移动网络上可感知。
- 变成解线性方程组(高斯消元,很简单)。说明加一点点噪声就把简单问题变成了公认的困难问题。
- 共享密钥 = KDF(经典算法结果 ‖ PQC 结果),只要两者之一还安全整体就安全。必须这么做是因为PQC 分析历史短、缺陷仍在被发现——SIKE 进了 NIST 决赛,2022 年被一台普通笔记本在一小时内击破;Rainbow 同样被破。
- 因为保密性是追溯性风险(今天的流量十年后能解密),而认证性是实时性风险(伪造签名必须在有效期内完成,需要当下就有量子计算机)。
🛑 可以停在这里
⚡ 走神救援
⭐ 量子算法对两类密码的杀伤完全不同:公钥那几套被从指数降到多项式,⭐ 所以加长密钥没用,必须换掉整个算法;而对称密码只是强度减半——🔑 一句话:对称加倍密钥长度就行,公钥必须换。
⏰ ⭐⭐ 「先存后解」决定了截止时间不是量子计算机出现那天:攻击者今天存下流量,十年后再解密。⭐ 那条判据的形状是「保密年限 + 迁移年限 > 距量子计算机的时间」就已经晚了——⚠️ 而政府和医疗的保密年限动辄几十年,大机构迁移要好些年,所以很多场景其实早就超了。 这也是监管把弃用和禁用时间点定得那么近的原因。
新标准里有一条选型逻辑值得记:⭐ 主力和备份刻意基于不同的数学难题——不能把鸡蛋都放在同一个篮子里。
⚠️⭐ 迁移的主要挑战是带宽和延迟,不是 CPU:签名大了几十倍,⭐ 证书链可能超过初始拥塞窗口,于是多一个往返。
⭐⭐ 必须用混合模式(把传统方案和新方案的结果一起派生密钥)——两者之一安全,整体就安全。⭐ 为什么必须:💥 有个进了决赛的方案在标准落地前被一台普通笔记本在一小时内击破,另一个也被破了。
现在该做的五步里,最有长期价值的是 ⭐ 建立密码学敏捷性——算法要可配置,而不是硬编码。
🔑⭐ 最后一句解释了优先级:密钥交换比签名急,因为保密性是追溯性风险(今天的流量十年后可解),而认证性是实时性风险(伪造签名要当下就有量子机)。
下一节 👉 24-实战与挑战项目.md