3. 后量子密码算法族概览

后量子密码(PQC)并不是某一种单一算法,而是围绕五类主要数学困难问题形成的算法族。理解这些算法族的差异,是后续做混合部署选型的基础。NIST 在 2022—2024 年的标准化进程中,最终入选的算法几乎全部来自格、哈希和无编码(编码类)三大方向,而多变量和同源方案虽未进入通用加密标准,却在特定场景中仍有价值。本节按“困难问题—代表算法—密钥/密文特征—适用场景”四条线索逐一梳理。

一、基于格的方案(Lattice-based)

格是 n 维欧氏空间中的离散点集,其核心困难问题包括 SVP(最短向量问题)、CVP(最近向量问题)以及带误差学习 LWE / 环上带误差学习 RLWE。格方案的优势是同时支持加密、密钥封装(KEM)和数字签名,且运算以多项式乘法和模约减为主,硬件实现友好。

代表算法:ML-KEM(原 CRYSTALS-Kyber,FIPS 203)用于密钥封装,安全等级分为 ML-KEM-512/768/1024;ML-DSA(原 CRYSTALS-Dilithium,FIPS 204)用于数字签名;FN-DSA(原 FALCON,FIPS 206 草案)基于 NTRU 格,签名更短但实现更复杂;SLH-DSA虽属哈希族,但其底层也常借助格结构优化。Kyber 的公钥约 800–1568 字节,密文约 768–1568 字节,签名约 2.4–4.6 KB,是当前通用场景的首选。

二、基于编码的方案(Code-based)

编码类方案依赖纠错码的译码困难性,最经典的是 McEliece 体制和 Niederreiter 体制,其安全性基于“一般线性码译码问题”的 NP 困难性。优点是历史长、抗量子分析充分;缺点是公钥体积巨大。

代表算法:Classic McEliece,公钥可达 1 MB 以上,密文仅约 128–256 字节。NIST 将其选为第四轮候选,主要用于对公钥存储不敏感、但对密文长度敏感的场景,如某些嵌入式密钥分发。另一个代表是 BIKE 和 HQC,基于准循环码,公钥缩小到几 KB,但安全性分析仍在推进中。

三、基于多变量的方案(Multivariate)

多变量密码基于有限域上多变量二次方程组求解的困难性(MQ 问题)。签名验证只需代入求值,速度极快;但公钥和签名尺寸较大,且历史上多次被攻破(如 Rainbow 在 2022 年被彻底破解)。

代表算法:Rainbow(已淘汰)、GeMSS、LUOV。目前 NIST 未将多变量方案纳入标准,但在资源极度受限、只需签名验证的场合仍有研究价值。其公钥通常几十 KB 到几百 KB,签名几十到几百字节。

四、基于哈希的方案(Hash-based)

哈希签名(如 Merkle 树签名、XMSS、LMS)的安全性仅依赖哈希函数的抗碰撞性,是最保守、最易被信任的一类。缺点是签名尺寸大、有状态管理要求(一次性签名不能重复使用)。

代表算法:SLH-DSA(原 SPHINCS+,FIPS 205),无状态、签名约 7–30 KB,公钥仅 32–64 字节,适合固件签名、代码签名等低频签名场景。LMS/XMSS 已被 RFC 8391 标准化,适合有状态管理的物联网设备。

五、基于同源的方案(Isogeny-based)

同源密码基于椭圆曲线之间同源映射的计算困难性,最大特点是密钥和密文极短,但运算速度慢、参数选择敏感。SIKE 曾在 NIST 第三轮入选,但 2022 年被 Castryck-Decru 攻击彻底破解,目前同源方向仍在寻找更安全的构造。

代表算法:SIKE(已破解)、CSIDH。CSIDH 公钥仅 64 字节,但计算一次密钥交换需数百毫秒,适合对带宽极度敏感、对延迟不敏感的场景。

后量子密码五大算法族对比 困难问题 · 代表算法 · 密钥/密文尺寸 · 适用场景 算法族 核心困难问题 代表算法 密钥/密文/签名尺寸 典型适用场景 格 Lattice 通用性最强 SVP / CVP LWE / RLWE 多项式模运算 ML-KEM (Kyber) ML-DSA (Dilithium) FN-DSA (FALCON) 公钥 0.8–1.5 KB 密文 0.8–1.5 KB 签名 2.4–4.6 KB TLS 密钥交换 数字签名 / 证书 通用混合部署首选 编码 Code-based 历史最久 一般线性码译码 (NP 困难) 纠错码理论 Classic McEliece BIKE / HQC NIST 第四轮候选 公钥 1 MB+ 密文 128–256 B BIKE 公钥约 2 KB 嵌入式密钥分发 对密文长度敏感 长期归档加密 多变量 Multivariate 验证极快 MQ 问题 多变量二次方程组 有限域 GF(2^m) Rainbow(已破解) GeMSS / LUOV 未进入 NIST 标准 公钥 几十–几百 KB 签名 几十–几百 B 验证仅需代入求值 资源受限签名验证 研究性场景 安全性需谨慎评估 哈希 Hash-based 最保守可信 哈希抗碰撞性 Merkle 树结构 一次性签名 SLH-DSA (SPHINCS+) LMS / XMSS RFC 8391 已标准化 公钥 32–64 B 签名 7–30 KB 无状态 / 有状态两类 固件 / 代码签名 低频签名场景 IoT 设备身份认证 同源 Isogeny 密钥极短 椭圆曲线同源映射 计算困难性 参数敏感 SIKE(已破解) CSIDH 方向仍在探索 公钥 64 B(CSIDH) 密文 64 B 单次交换数百 ms 带宽极度敏感 延迟不敏感场景 暂不建议生产部署

六、选型对比与混合部署建议

把五类方案放在一起看,可以得出几条清晰的选型原则。第一,通用场景优先选格:ML-KEM 用于密钥封装,ML-DSA 用于签名,二者在 TLS 1.3、SSH、IPsec 中已有成熟实现,且 NIST 已发布正式标准。第二,对公钥体积不敏感、对密文长度敏感时选编码类,如 Classic McEliece 适合长期归档加密。第三,签名验证资源极度受限时考虑多变量,但必须接受其安全性尚未被充分验证的风险。第四,需要最保守信任模型时选哈希签名,SLH-DSA 适合固件签名,但签名体积大、不适合高频交互。第五,同源方案目前不建议生产部署,SIKE 被破解的教训说明其安全性分析仍需时间。

在混合部署中,常见的做法是“经典算法 + PQC 算法”双栈并行。例如 TLS 1.3 中同时协商 X25519 和 ML-KEM-768,两者密钥封装结果通过 KDF 合并,即使其中一方被攻破,另一方仍能提供保护。签名侧则可采用“ECDSA + ML-DSA”双证书链,逐步过渡。需要特别注意的是,PQC 算法的密钥和签名尺寸远大于经典算法,部署前必须评估 TLS 记录分片、证书链长度、MTU 分片等工程约束,避免因尺寸膨胀导致握手失败或性能骤降。

选型速查:通用加密/签名 → ML-KEM + ML-DSA;固件/代码签名 → SLH-DSA 或 LMS;长期归档 → Classic McEliece;带宽极敏感 → 关注 CSIDH 进展但暂不生产使用;多变量方案仅建议在研究或验证场景中评估。
注意:SIKE 已于 2022 年被 Castryck-Decru 攻击破解,Rainbow 于 2022 年被 Beullens 攻破。任何 PQC 算法在进入生产前,都应确认其最新安全性分析状态,并优先选择 NIST 已标准化的算法。