1. 课程导入与工程全景
在传统公钥密码体系中,RSA 与椭圆曲线 Diffie-Hellman(ECDH)的安全性分别建立在“大整数分解”和“椭圆曲线离散对数”的困难性之上。这两类问题在经典计算机模型下尚无多项式时间解法,但 Shor 算法证明:一旦拥有足够规模、足够容错的量子计算机,二者都可以在多项式时间内被攻破。这意味着今天被广泛部署的 TLS、SSH、IPSec、代码签名、固件升级链路,其密钥协商环节都面临“先存储、后解密”(Harvest Now, Decrypt Later)的长期威胁——攻击者可以现在抓取密文,等量子算力成熟后再解密。后量子密码(Post-Quantum Cryptography, PQC)因此从学术议题变成工程迁移任务。
ML-KEM(Module-Lattice-Based Key-Encapsulation Mechanism)是美国 NIST 后量子密码标准化项目在 2024 年正式发布的首个密钥封装标准,标准编号 FIPS 203,其算法基础来自 CRYSTALS-Kyber。它解决的核心问题是:通信双方如何在不安全信道上,基于格上模误差学习问题(MLWE)的困难性,协商出一个只有双方知道的共享密钥。与 RSA/ECDH 不同,ML-KEM 不是“加密一段数据”,而是“封装一个对称密钥”——这正是它被称为 KEM(密钥封装机制)的原因。
KEM 在协议栈中的位置
理解 ML-KEM 的工程价值,关键是看清它在协议中的位置。以 TLS 1.3 为例,握手阶段原本使用 ECDHE 完成密钥协商,得到共享密钥后再用 HKDF 派生出握手密钥与应用流量密钥。引入 ML-KEM 后,握手消息中增加一个 KEM 公钥(封装密钥),客户端用它封装出一个共享秘密,服务端用私钥解封装得到同一秘密,再与 ECDHE 的结果一起送入密钥派生函数。也就是说,ML-KEM 并不替代对称加密,也不替代证书签名,它替换的是“密钥协商”这一环。这种“混合模式”(Hybrid)是当前迁移的主流工程选择:只要 ECDHE 或 ML-KEM 任一安全,会话就安全。
后量子迁移的驱动力
推动 ML-KEM 落地的力量来自三个方向。第一是标准与合规:NIST 在 2024 年 8 月发布 FIPS 203/204/205,其中 FIPS 203 即 ML-KEM;美国国家安全局 CNSA 2.0 时间表要求 2030 年前完成关键系统迁移,2033 年前全面禁用 RSA/ECDH。第二是协议生态:OpenSSL 3.5、BoringSSL、Go 1.24、Chrome 131、Cloudflare 等已支持 X25519MLKEM768 混合组,TLS 握手层已具备可部署条件。第三是数据生命周期:长期保密数据(医疗、政务、金融归档)的保密期往往超过 10 年,而量子算力成熟的时间窗与之重叠,因此“现在不迁移”本身就是一种风险决策。
但迁移不是简单替换算法。ML-KEM 的工程挑战集中在几个具体维度:公钥与密文尺寸显著增大(ML-KEM-768 封装密钥 1184 字节、密文 1088 字节,而 X25519 公钥仅 32 字节),这会直接影响 TLS 握手包大小、分片行为与首字节延迟;密钥生成与解封装的 CPU 开销、内存占用与侧信道防护要求,与 ECDH 的实现假设不同;此外还有密钥格式编码(ASN.1/OIDC)、证书链兼容、硬件加速与随机数质量等工程细节。本课程的目标,就是把这些“看起来只是换个算法”的问题,拆解成可执行、可验证的工程步骤。
课程最终交付物与学习路径
完成本课程后,你将交付一套可运行的 ML-KEM 工程实践包,包含:基于 FIPS 203 的密钥生成、封装、解封装参考实现与测试向量;TLS 1.3 混合密钥协商的集成示例与抓包分析;密钥尺寸、握手延迟、CPU 占用的基准测试数据;以及一份面向现有系统的后量子迁移检查清单。学习路径按“原理—实现—集成—验证—迁移”推进:先理解 MLWE 问题与 KEM 的 IND-CCA2 安全模型,再动手实现 NTT 与多项式运算,接着完成密钥编码与解封装失败处理,最后进入协议集成与性能调优。