# 后量子密码是什么？定义、例子与常见误区

> 后量子密码（PQC）是专为抵御大规模量子计算机攻击而设计的公钥密码算法，用来替代可能被量子计算机破解的 RSA 和 ECC。

Source: https://ssl.sh/zh/glossary/post-quantum-cryptography/
Last updated: 2026-11-10

后量子密码指的是运行在普通计算机上、但基于量子计算机也难以求解的数学问题（如模格问题、哈希函数）的公钥算法。足够大的量子计算机运行 Shor 算法，可以解决大数分解和离散对数问题，从而破解 [RSA](https://ssl.sh/zh/glossary/rsa/)、Diffie-Hellman、ECDHE 和 ECDSA。2024 年 8 月，NIST 发布了首批标准：FIPS 203（[ML-KEM](https://ssl.sh/zh/glossary/ml-kem/)）用于密钥建立，FIPS 204（[ML-DSA](https://ssl.sh/zh/glossary/ml-dsa/)）和 FIPS 205（SLH-DSA）用于签名。AES、SHA-256 等对称算法最多只需加大参数。

## 为什么重要
最紧迫的威胁是"先收集、后解密"：今天被录下的流量，等量子计算机出现后就可能被解密。所以密钥交换最先迁移，采用把经典算法与 ML-KEM 组合起来的[混合密钥交换](https://ssl.sh/zh/glossary/hybrid-key-exchange/)。Chrome 从 131 版起把混合密钥交换切换为 X25519MLKEM768，基于 Chromium 的国内浏览器在跟进内核版本后也会具备同样能力。签名和证书的迁移则是另一项更慢的工作：ML-DSA 的密钥和签名比 ECDSA 大很多倍，而且伪造签名无法回头攻击已经结束的会话。

## 例子
使用 OpenSSL 3.5 及以上版本，测试服务器是否支持混合后量子密钥交换：

```bash
openssl s_client -connect example.com:443 -groups X25519MLKEM768
```

只有服务器支持 X25519MLKEM768 时握手才会成功。在 Chrome 中，开发者工具的 Security 面板也会显示当前页面使用的密钥交换算法。

## 常见误区
- **后量子密码需要量子硬件。** 它就是普通软件算法。量子密钥分发（QKD）是另一种依赖专用硬件的技术，不要混为一谈。
- **量子计算机会破解所有加密。** AES 和 SHA-256 仍然可用，需要更换的是公钥算法部分。
- **量子计算机出现之前什么都不用做。** 今天录下的数据，只受今天所用密钥交换的保护。

## 相关术语

- [ML-KEM](https://ssl.sh/zh/glossary/ml-kem/): ML-KEM 是 NIST 于 2024 年 8 月在 FIPS 203 中标准化的后量子密钥封装机制，源自 CRYSTALS-Kyber，用于抗量子的密钥建立。
- [ML-DSA](https://ssl.sh/zh/glossary/ml-dsa/): ML-DSA 是 NIST 于 2024 年 8 月在 FIPS 204 中标准化的基于格的后量子数字签名算法，源自 CRYSTALS-Dilithium。
- [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 组合使用，只要其中一个未被攻破，得到的会话密钥就仍然安全。
- [RSA](https://ssl.sh/zh/glossary/rsa/): RSA 是 1977 年提出的公钥算法，TLS 用它对证书和握手进行签名，在 TLS 1.3 之前还用它传输会话密钥。
- [ECC](https://ssl.sh/zh/glossary/ecc/): ECC 即椭圆曲线密码学，是基于有限域上椭圆曲线代数结构的公钥密码技术，能用较短的密钥提供很高的安全强度。
- [密钥交换](https://ssl.sh/zh/glossary/key-exchange/): 密钥交换是 TLS 握手中客户端与服务器建立共享秘密的步骤，保护连接的对称密钥都由这个共享秘密派生而来。
