# ML-KEM是什么？定义、例子与常见误区

> ML-KEM 是 NIST 于 2024 年 8 月在 FIPS 203 中标准化的后量子密钥封装机制，源自 CRYSTALS-Kyber，用于抗量子的密钥建立。

Source: https://ssl.sh/zh/glossary/ml-kem/
Last updated: 2026-11-10

ML-KEM 是一种密钥封装机制（KEM），安全性基于模格上的带错误学习（Module-LWE）问题。KEM 包含三个操作：密钥生成，得到封装密钥和解封装密钥；封装，用对方的封装密钥生成一段密文和一个 32 字节的共享秘密；解封装，用解封装密钥从密文中还原出同一个秘密。FIPS 203 定义了 ML-KEM-512、ML-KEM-768 和 ML-KEM-1024 三组参数，强度依次递增。

## 为什么重要
ML-KEM 是 TLS 密钥建立中最主要的[后量子](https://ssl.sh/zh/glossary/post-quantum-cryptography/)算法，以混合群 [X25519MLKEM768](https://ssl.sh/zh/glossary/x25519mlkem768/) 的形式部署，Chrome 从 131 版起就在使用。它的计算速度很快，代价在于体积：ML-KEM-768 的封装密钥有 1,184 字节，而 X25519 公钥只有 32 字节，ClientHello 因此增大一千多字节。推广过程中，一些处理不了大 ClientHello 的中间设备和服务器不得不修复。企业内网的防火墙、上网行为管理设备如果导致新版浏览器访问异常，可以往这个方向排查。

## 例子
FIPS 203 中三组参数的尺寸：

```text
Parameter set   Encapsulation key   Ciphertext    Shared secret
ML-KEM-512      800 bytes           768 bytes     32 bytes
ML-KEM-768      1,184 bytes         1,088 bytes   32 bytes
ML-KEM-1024     1,568 bytes         1,568 bytes   32 bytes
```

## 常见误区
- **ML-KEM 只是 Kyber 改了个名字。** 最终的 FIPS 203 标准在细节上与早期 Kyber 不同，二者不能互通，所以 Chrome 才从 X25519Kyber768Draft00 换成了 X25519MLKEM768。
- **KEM 和 Diffie-Hellman 的工作方式完全一样。** KEM 是一方用另一方的公钥进行封装，而不是双方对称地各出一份；TLS 中客户端的 key_share 携带封装密钥，服务器的 key_share 携带密文。
- **用了 ML-KEM，证书也就抗量子了。** 它只保护密钥建立，身份认证仍依赖签名，后量子签名标准是 [ML-DSA](https://ssl.sh/zh/glossary/ml-dsa/)。

## 相关术语

- [后量子密码](https://ssl.sh/zh/glossary/post-quantum-cryptography/): 后量子密码（PQC）是专为抵御大规模量子计算机攻击而设计的公钥密码算法，用来替代可能被量子计算机破解的 RSA 和 ECC。
- [X25519MLKEM768](https://ssl.sh/zh/glossary/x25519mlkem768/): X25519MLKEM768 是把经典的 X25519 与后量子算法 ML-KEM-768 组合起来的 TLS 1.3 混合密钥交换群，Chrome 从 131 版起使用。
- [混合密钥交换](https://ssl.sh/zh/glossary/hybrid-key-exchange/): 混合密钥交换把 X25519 等经典算法与 ML-KEM 等后量子 KEM 组合使用，只要其中一个未被攻破，得到的会话密钥就仍然安全。
- [密钥交换](https://ssl.sh/zh/glossary/key-exchange/): 密钥交换是 TLS 握手中客户端与服务器建立共享秘密的步骤，保护连接的对称密钥都由这个共享秘密派生而来。
- [ML-DSA](https://ssl.sh/zh/glossary/ml-dsa/): ML-DSA 是 NIST 于 2024 年 8 月在 FIPS 204 中标准化的基于格的后量子数字签名算法，源自 CRYSTALS-Dilithium。
- [TLS 1.3](https://ssl.sh/zh/glossary/tls-1-3/): TLS 1.3 是当前最新的传输层安全协议版本（2018 年的 RFC 8446，现行规范为 RFC 9846），完整握手只需一个往返，且只保留 AEAD 加密算法。
