什么是后量子密码学?理解它的本质与历史背景
后量子密码学(Post-Quantum Cryptography,简称 PQC)是一类专门设计用于抵御量子计算机攻击的加密算法。它与传统加密算法的核心区别在于:PQC 的安全性基于经典计算机与量子计算机都难以解决的数学问题。
传统非对称加密依赖三类数学难题:大整数分解(RSA)、离散对数问题(DSA、ElGamal)、椭圆曲线离散对数问题(ECDSA、ECDH)。这三类问题在经典计算机上需要指数时间,但在量子计算机上可通过 Shor 算法以多项式时间求解。
相比之下,后量子密码学主要基于格密码(Lattice-based cryptography),其安全性依赖于 最短向量问题(SVP)、最近向量问题(CVP) 以及 带误差学习问题(LWE/Module-LWE)。目前已知的经典与量子算法都无法在合理时间内攻破这些问题,因此格密码被视为量子时代最有前途的加密方案。
NIST PQC 标准化进程的时间线值得关注:
- 2016 年:NIST 公开征集后量子密码算法,启动标准化进程。
- 2017–2018 年:第一轮候选方案公布,共收到 69 个算法提交,涵盖公钥加密、数字签名与密钥交换。
- 2019 年:第二轮筛选,保留 26 个候选算法,包括 Kyber、Dilithium、NTRU、Saber 等。
- 2020 年:第三轮入围,7 个算法进入最终候选阶段(Finalists)。
- 2024 年:NIST 正式发布 FIPS 203(ML-KEM / Kyber)、FIPS 204(ML-DSA / Dilithium)、FIPS 205(SLH-DSA / SPHINCS+) 三项标准。
- 2025 年及以后:主流协议栈(TLS 1.3、IPsec、SSH、X.509、OpenSSL、liboqs)逐步引入 PQC 支持,企业与政府机构启动抗量子迁移计划。
除了格密码之外,NIST 还评估了基于哈希的签名(如 SPHINCS+)、基于多变量二次方程的方案、基于编码理论的方案、基于同源的方案(如 SIKE,后被淘汰) 等多种路线。格密码在性能、安全性与密钥长度之间取得了最佳平衡,因此成为本次标准化的最大赢家。
我们的在线 PQC 工具目前支持 ML-KEM 与 ML-DSA 两大核心算法,方便开发者直接体验后量子密钥封装与数字签名的完整流程。
量子计算如何威胁 RSA、ECDSA 与 Diffie-Hellman?
要理解后量子密码学的必要性,首先需要明白量子计算机为什么能威胁传统加密。传统加密的基石是"某些数学问题在经典计算机上难以高效求解"。量子计算机以截然不同的计算方式打破了这一前提。
Shor 算法是核心威胁。1994 年,数学家 Peter Shor 证明量子计算机能以多项式时间求解大整数分解和离散对数问题——这正是 RSA、ECDSA、Diffie-Hellman 的安全根基。更重要的是:Shor 算法不仅能在理论上证明可行性,而且它的量子资源需求并非遥不可及。
以 RSA-2048 为例,攻破它大约需要 约 4,000 万逻辑量子比特(含纠错)和 数千次量子门运算。而对于 ECDSA-P256,所需资源更少。当前全球最先进的量子计算机仍无法实现可容错的大规模量子计算,但研究机构普遍估计,在 2030 年代中期到后期,具备实用能力的量子计算机可能出现。
更紧迫的威胁来自"现在截获,未来解密"(Harvest Now, Decrypt Later)。攻击者可以:
- 大规模抓取今天正在传输的加密流量(HTTPS、VPN、TLS 握手数据包);
- 存储这些密文;
- 等待量子计算机成熟后,离线破解截获到的 RSA/ECDH 会话密钥,进而恢复原始明文。
这意味着,即便量子计算机还需若干年才能成熟,今天的敏感数据可能在未来被追溯解密。对于生命周期较长的数据(医疗记录、政府机密、金融合同、知识产权)而言,这个威胁已经足够真实。
Grover 算法是另一个量子优势:它能以 O(√N) 的时间搜索 N 项,相当于将对称加密的密钥长度减半。AES-128 等效于 64 位经典安全,AES-256 等效于 128 位经典安全。不过 Grover 算法并不能多项式加速对称加密,只需将密钥长度加倍即可防御。因此 AES-256、SHA-3、ChaCha20 等对称原语在量子时代仍然是安全的——真正需要替换的是非对称加密。
简言之,PQC 要解决的核心问题就是:找到量子计算机无法高效求解、同时在经典计算机上又足够高效的新数学难题,以替换 RSA、ECDSA、ECDH 等即将失效的非对称加密。
ML-KEM 算法原理:基于格密码的密钥封装机制
ML-KEM(Module-Lattice-Based Key Encapsulation Mechanism,原名 Kyber)是 NIST FIPS 203 标准中唯一入选的密钥封装机制(KEM)。它用于代替 RSA/ECDH 完成密钥协商。
核心思想:ML-KEM 基于 Module-LWE(Module Learning With Errors,模带误差学习) 问题。我们可以把它理解为:在一个由多项式构成的格空间中,寻找一个"近格点"是容易的,但还原原始"格点坐标"在经典与量子计算机上都被证明是困难的。
算法流程包含三个函数:
- ML-KEM.KeyGen():生成公私钥对(pk, sk)。私钥包含一个小系数的秘密多项式向量;公钥包含一个公开的多项式矩阵 A 以及一个"带扰动的乘积" t = A·s + e(其中 s 是秘密向量,e 是误差向量)。
- ML-KEM.Encaps(pk):接收方使用对方公钥,生成一个随机的小系数向量 r,计算一个"近似乘积" u = A^T·r + e1 和 v = t^T·r + e2 + 编码(共享秘密),最终输出一个 密文 (u, v) 和一个 共享密钥 K(通过哈希从共享秘密派生)。
- ML-KEM.Decaps(sk, ct):持有私钥的一方使用秘密多项式 s 从 u 中恢复一个近似值,再用 v 减去该近似值以得到共享秘密;最后通过哈希生成与封装方完全相同的共享密钥 K。
通俗理解:你可以把密钥封装想象成"给消息套一个只有对方私钥能打开的信封"。封装方随机选择一个"写在信封上的坐标",将共享密钥编码为一个小偏移量放在信封内;接收方用自己的私钥先计算出正确的坐标位置,再减去偏移量就能恢复共享密钥。由于误差的干扰,没有私钥的人无法精确推断共享密钥。
ML-KEM 提供了三个参数级别:
- ML-KEM-512:对应 NIST 安全级别 1,公钥约 800 字节,密文约 768 字节。适合性能敏感、安全性要求与 AES-128 相当的场景。
- ML-KEM-768:对应 NIST 安全级别 3,公钥约 1,184 字节,密文约 1,088 字节。默认推荐级别,与 AES-192 安全强度相当,已被 Cloudflare、Google Chrome、OpenSSL 用于实际部署。
- ML-KEM-1024:对应 NIST 安全级别 5,公钥约 1,568 字节,密文约 1,568 字节。最高安全级别,与 AES-256 相当,适合高度敏感的政府与金融系统。
与 RSA-2048 相比,ML-KEM-768 的公钥更小(1.2 KB vs 256 字节,但 RSA 公钥还要附带大指数),密钥生成速度更快,封装/解封运算更高效,且具备量子抗性。唯一的"代价"是密文较大(约 1 KB vs RSA 的 256 字节),但在现代网络中这通常是可接受的。
我们的工具在本地浏览器中完整实现了 ML-KEM 的 KeyGen / Encaps / Decaps 流程,您可以实时观察密钥对生成、封装、解封以及共享密钥的一致性校验。
ML-DSA 算法原理:基于格密码的数字签名方案
ML-DSA(Module-Lattice-Based Digital Signature Algorithm,原名 Dilithium)是 NIST FIPS 204 标准中唯一入选的通用数字签名方案。它用于代替 RSA、ECDSA、EdDSA 完成消息签名与身份认证。
核心思想:ML-DSA 同样基于 Module-LWE 问题,采用 "拒绝采样" 技术来确保签名不泄露私钥信息。其设计遵循了经典的 Fiat-Shamir 变换 + 零知识证明 思路,但针对格密码的结构进行了精心优化。
算法流程包含三个函数:
- ML-DSA.KeyGen():生成公私钥对(pk, sk)。私钥包含两个小系数多项式向量(s1, s2)以及一个用于拒绝采样的随机数种子。公钥包含一个公开的多项式矩阵 A、一个公开多项式向量 t = A·s1 + s2,以及一组哈希参数。
- ML-DSA.Sign(sk, m):对消息 m 进行签名。算法使用私钥生成一个随机"掩蔽向量" y,计算承诺 w = A·y;再通过哈希消息与承诺得到 挑战多项式 c;随后计算 z = y + c·s1 与 h = w - c·s2 - 噪声项。最后通过 拒绝采样 检查 z 的系数范围是否满足约束(不满足则重新生成 y 并重试),以保证签名不泄露私钥结构。最终签名为 (z, h, c)。
- ML-DSA.Verify(pk, m, sig):验证方使用公钥重构承诺 w' = A·z - c·t + h,然后对消息与 w' 重新计算哈希,验证是否与挑战 c 一致。如果匹配,则签名合法。
拒绝采样是 ML-DSA 的关键创新:如果直接输出 z = y + c·s1,y 太小的话,攻击者可能通过观察大量签名反推出 s1 的分布。拒绝采样通过"当 z 的系数过大时拒绝并重新生成 y",使得最终签名的 z 分布不依赖 s1——所有合法签名的 z 都服从几乎相同的均匀分布,从而有效防御签名泄露攻击。
ML-DSA 提供了三个参数级别:
- ML-DSA-44:对应 NIST 安全级别 1,公钥约 1,312 字节,签名约 2,420 字节。轻量级部署场景。
- ML-DSA-65:对应 NIST 安全级别 3,公钥约 1,952 字节,签名约 3,309 字节。默认推荐级别,已被 Chrome、Cloudflare、OpenSSL 用于 X.509 证书签名试验。
- ML-DSA-87:对应 NIST 安全级别 5,公钥约 2,592 字节,签名约 4,627 字节。最高安全级别,适合证书机构、根证书、固件签名等长期使用场景。
与 ECDSA-P256 相比,ML-DSA-65 的签名长度较大(约 3.3 KB vs 64 字节),公钥也较大(约 2 KB vs 64 字节),但签名与验证速度都非常快,且具备量子抗性。在 TLS 证书链中,较大的签名会增加证书大小约 2~3 KB,通常可以通过 TLS 扩展与压缩机制抵消。
我们的工具完整实现了 ML-DSA 的签名与验证流程。您可以输入任意消息,观察私钥签名与公钥验证的完整过程,并能实时验证"被篡改的消息无法通过验证"。
参数级别选择:512 vs 768 vs 1024 与 44 vs 65 vs 87
在实际部署后量子密码学算法时,一个核心决策是选择合适的参数级别。不同级别在密钥长度、签名/密文大小、运算性能、安全强度之间各有取舍。以下是一份实用的对比与建议。
安全级别体系
NIST 定义了五个安全级别(Category 1~5),其中 Category 1、3、5 被广泛引用:
- Category 1:至少需 2^128 次经典计算或 2^64 次量子查询才能攻破,相当于 AES-128 的安全强度。
- Category 3:至少需 2^192 次经典计算,相当于 AES-192。
- Category 5:至少需 2^256 次经典计算,相当于 AES-256。
注意:这三个级别都已经考虑了量子攻击者。因此 Category 1 已经能够提供"抗量子"能力。
ML-KEM 参数对比
- ML-KEM-512:Category 1。公钥 800 字节、密文 768 字节。性能最快。适合嵌入式设备、轻量级协议、资源受限场景。
- ML-KEM-768:Category 3。公钥 1,184 字节、密文 1,088 字节。性能均衡。默认推荐选择,被 Cloudflare、Google、OpenSSL 用于 TLS 混合密钥协商(如 X25519+ML-KEM-768)。
- ML-KEM-1024:Category 5。公钥 1,568 字节、密文 1,568 字节。提供最高安全级别,适合处理高度敏感的长期数据(政府、金融、军事)。
ML-DSA 参数对比
- ML-DSA-44:Category 1。公钥 1,312 字节、签名 2,420 字节。适合轻量级证书、会话认证。
- ML-DSA-65:Category 3。公钥 1,952 字节、签名 3,309 字节。默认推荐选择,已被部分根证书机构(DigiCert、Sectigo、ISRG Root X2)试验部署。
- ML-DSA-87:Category 5。公钥 2,592 字节、签名 4,627 字节。最高安全级别,适合根证书、固件签名、代码签名等长期使用场景。
与传统算法的性能对比(参考公开 benchmark,约值)
- 密钥生成:ML-KEM-768 约 10–50 微秒(取决于实现),远快于 RSA-2048(数毫秒)。ML-DSA-65 同样优于 RSA-2048。
- 签名 / 封装:ML-KEM-768 封装约数十微秒,ML-DSA-65 签名约数百微秒。与 ECDSA-P256 相当或更快。
- 验证 / 解封:ML-KEM-768 解封约数十微秒,ML-DSA-65 验证约数百微秒。ECDSA 验证相对较慢。
- 密钥 / 签名长度:这是 PQC 唯一的"劣势"。与 32 字节的 ECDSA 公钥和 64 字节签名相比,ML-DSA-65 的公钥(~2 KB)和签名(~3.3 KB)大约大 50 倍。在证书链中,这会使 TLS Certificate 消息增加数 KB。
实际选择建议
- 如果不确定选哪个,默认选择 ML-KEM-768 + ML-DSA-65,这是业界广泛推荐的组合。
- 如果部署在嵌入式设备或带宽受限的场景,可以优先选择 ML-KEM-512 + ML-DSA-44。
- 如果处理高度敏感的长期数据或高价值交易,可选择 ML-KEM-1024 + ML-DSA-87。
- 在任何情况下都应使用混合加密方案(例如 X25519 + ML-KEM-768、ECDSA-P256 + ML-DSA-65),在 PQC 被发现潜在漏洞时由传统算法保底。
混合加密与抗量子迁移:7 个实用技巧
从传统加密迁移到后量子加密并不是一次性替换,而是一个渐进的、多层次的过程。以下是 7 个经过验证的实用技巧,帮助您的系统安全地转向抗量子时代。
① 使用混合密钥协商(Hybrid KEM)
目前业界主流做法是将传统密钥交换算法与后量子密钥封装组合使用:例如 X25519 + ML-KEM-768。双方各自生成一对传统密钥和一对 PQC 密钥,最终的会话密钥由双方协商出的两个秘密值共同派生。这样即使其中任一路线被攻破,只要另一路线仍安全,整个会话仍然安全。Google Chrome、Cloudflare、Mozilla Firefox、OpenSSL 1.3.2+、BoringSSL 已经在生产环境中部署了混合 KEM。
② 使用混合数字签名(Hybrid Signature)
证书、固件、代码签名等场景中,推荐同时使用传统签名与 PQC 签名:例如 ECDSA-P256 + ML-DSA-65。这允许不支持 PQC 的旧客户端继续验证传统签名,同时让新客户端获得额外的抗量子保护。DigiCert、Sectigo 等证书机构已在颁发支持混合签名的试验性证书。
③ 关注"长期数据"场景,优先迁移
不是所有系统都需要立即迁移。应根据数据的预期保护生命周期来确定优先级:
- 高优先级(保护期 > 10 年):根证书、固件签名、政府机密、医疗记录、知识产权、加密数据库备份、VPN 长期密钥。
- 中优先级(保护期 3–10 年):TLS 会话、API 令牌、应用层加密密钥。
- 低优先级(保护期 < 3 年):短期会话密钥、临时加密通道。
④ 不要自己实现密码学——使用标准库
PQC 算法的正确实现远比传统算法更复杂。强烈推荐使用经过审计的开源实现:OpenSSL 3.2+ 的 ML-KEM / ML-DSA 支持、liboqs(Open Quantum Safe 项目)、BoringSSL、rustls、Circl(Cloudflare Go 实现)、以及我们工具中使用的 WebAssembly 实现。
⑤ 密钥管理与轮换
PQC 密钥对的生成速度极快(ML-KEM-768 密钥生成在现代 CPU 上仅需数十微秒),因此密钥频繁轮换是可行且推荐的策略。建议:每个会话使用独立的临时 PQC 密钥(类似 TLS 的 Ephemeral Diffie-Hellman),并对长期密钥设置合理的生命周期(例如 1~2 年)。
⑥ 评估密文/签名大小对协议的影响
PQC 的密文和签名比传统方案大 10~100 倍。这可能影响:TLS 证书消息大小、DNSSEC 响应大小、IPsec 数据包大小、固件更新包大小。在迁移前,应验证现有网络基础设施是否能容纳增大的消息,以及 MTU 是否需要调整。
⑦ 保留向后兼容——不要急于移除传统算法
后量子密码学虽然已经成为标准,但仍在持续接受全球密码学界的公开审查。在未来 5~10 年内,推荐使用混合模式(传统 + PQC),而不是完全移除传统加密。这样即使某一天 PQC 算法被发现理论漏洞,传统加密仍然可以提供底线保护。同理,建议关注 NIST 的后续标准化工作,准备好算法切换的预案。
我们的在线工具可以帮助您体验 ML-KEM 与 ML-DSA 的完整流程,方便您在实际迁移前进行学习与验证。
数据安全与隐私:为什么选择本地处理的在线工具?
🔒 本地浏览器运算:我们的 PQC 工具完全在您的浏览器中运行。所有 ML-KEM 密钥封装/解封、ML-DSA 签名/验签以及密钥对生成都在本地 JavaScript 引擎与 WebAssembly 模块中完成。您的公钥、私钥、密文、签名、消息等信息不会上传到任何服务器,也不会被记录在任何日志中。即使在无网络连接的情况下,工具也能正常运行。
🛡️ 安全使用建议:使用本工具处理敏感数据时,建议在关闭浏览器扩展/插件的隐私模式下操作,并确保您的设备未被植入恶意软件。请勿在公共电脑或不可信设备上处理高度敏感信息。处理完毕后,请及时清除浏览器缓存,并关闭页面。
⚡ 高性能运算:我们的工具使用基于 WebAssembly 的高效实现。在普通笔记本电脑上,ML-KEM-768 密钥生成约数十毫秒,封装/解封约数毫秒;ML-DSA-65 签名约数十毫秒。完全可以满足日常开发、学习与测试的需求。
🌐 开源与透明:我们使用业界标准的后量子密码学实现,算法逻辑对所有用户公开透明,确保没有任何隐藏的行为。数据安全与隐私是我们最核心的承诺。
⚠️ 法律合规提示:请确保您在使用本工具时遵守所在国家和地区的法律法规。本工具仅用于合法的数据保护、开发测试与学习研究用途,严禁用于任何非法目的。
💡 最后提醒:后量子密码学是一门持续发展的学科。本文提供的是概念性的介绍与实用建议,不能替代专业的安全审计。在生产系统中部署后量子加密方案时,强烈建议咨询专业密码学家或安全工程师。我们的在线 PQC 工具可以作为您日常开发与学习的辅助工具,但生产环境的安全需要系统性的保障。