2. 后量子密码算法家族概览

后量子密码(PQC)并不是某一种算法的名字,而是若干条数学路线并行发展的算法集合。NIST 在 2022—2024 年间完成的首轮标准化,把基于格的密码(ML-KEM、ML-DSA、FN-DSA/SLH-DSA 等)推到了主力位置,同时保留了基于编码、基于哈希、多变量等作为补充与备选。理解这些家族,关键不在于记住每个算法的名字,而在于看清它们各自"难在哪里"——困难问题的结构决定了密钥长度、密文/签名大小、运算开销,也决定了密钥生命周期管理中的存储、轮换与迁移策略。

四条主要技术路线的基本原理

基于格的密码(Lattice-based)。其安全性建立在格上困难问题之上,最典型的是带误差学习(LWE)及其环/模变体(RLWE、MLWE)和短整数解(SIS)问题。直观地说,给定一组线性方程加上小噪声,求解原始秘密在计算上是困难的;而掌握陷门信息的一方可以高效构造或求解。ML-KEM(FIPS 203,源自 Kyber)用 MLWE 做密钥封装,ML-DSA(FIPS 204,源自 Dilithium)用 MLWE+SIS 做签名。格密码的优点是密钥与密文相对紧凑、运算快,且能提供 KEM 这一现代协议最需要的原语;缺点是参数选择敏感,需关注解密失败率与侧信道防护。

基于编码的密码(Code-based)。以纠错码译码难题为核心,经典代表是 McEliece 体制:公钥是一个经过混淆的线性码生成矩阵,攻击者要从矩阵中恢复出隐藏的 Goppa 码结构,或直接译出带大量错误的码字,均极其困难。其历史可追溯到 1978 年,抗量子分析最为充分,安全性口碑好;代价是公钥极大(Classic McEliece 公钥可达数百 KB 至 MB 级),更适合对带宽不敏感、对长期信任要求高的场景,如固件签名根、长期归档加密。

基于哈希的签名(Hash-based)。安全性只依赖哈希函数的抗碰撞/抗原像性,假设最弱、最保守。以 Merkle 树把一次性签名(如 WOTS+)的公钥组织起来,用认证路径证明某叶子公钥属于该树。SLH-DSA(FIPS 205,源自 SPHINCS+)通过超树结构与少量次性签名实现无状态签名,私钥极小、签名较大(约 8—50 KB 量级,随参数集变化)。它几乎不依赖复杂数学结构,是"兜底型"签名方案,但签名生成与验证的计算量明显高于格签名。

多变量密码(Multivariate)。基于有限域上多变量二次方程组求解的困难性(MQ 问题)。公钥是一组二次多项式,私钥是隐藏的仿射变换与中心映射,签名即求一组解。其特点是公钥较小、签名短、验证快,但历史上多次被攻破(如 Rainbow 的崩溃),参数设计风险较高,目前更多处于研究与备选状态,工程部署需格外谨慎。

后量子密码四大算法家族:困难问题 → 密钥特征 → 适用位置 家族 核心困难问题 密钥 / 密文 / 签名规模特征 典型用途 基于格 ML-KEM / ML-DSA FN-DSA(Falcon) MLWE / SIS 带噪声线性方程 短向量求解 公钥约 0.8–1.6 KB,密文约 0.8–1.6 KB 签名约 2.4–4.6 KB 紧凑、运算快,适合高频协议 TLS / SSH 密钥交换 数字签名与证书 固件与代码签名 基于编码 Classic McEliece (KEM 备选) 纠错码译码难题 隐藏 Goppa 码结构 大量随机错误译码 公钥极大:数百 KB 至 MB 级 密文仅数百字节 抗量子分析最充分,信任度高 长期归档加密 信任根 / 根证书 带宽不敏感场景 基于哈希 SLH-DSA(SPHINCS+) LMS / XMSS 哈希函数安全性 Merkle 树 + 一次性签名 假设最弱、最保守 私钥极小(数十字节) 签名约 8–50 KB,公钥约 32–64 B 签名/验签计算量偏高 兜底签名方案 固件 / 引导链签名 低信任假设场景 多变量 Rainbow(已攻破) UOV / 研究备选 MQ 问题 有限域上二次方程组 求解困难 公钥较小、签名短、验证快 参数设计风险高 历史上多次被结构攻击 暂不推荐生产部署 跟踪研究进展 谨慎评估

密钥特征对比:为什么"规模"决定了生命周期策略

把上图中的数字落到密钥管理上,会得到几条很实际的结论。第一,格密码的密钥与密文尺寸接近传统 ECC/RSA 的可用范围,因此 TLS 握手、证书链、SSH 认证等协议可以在较小改动下完成迁移,密钥轮换周期可以沿用现有节奏,但要注意 ML-KEM 密文与公钥在握手包中的叠加会推高单次握手字节数,需评估 MTU 与分片。第二,编码密码的公钥极大,若用于根证书或信任锚,必须提前规划存储与分发通道,且不适合频繁轮换——它的生命周期设计应偏向"长期固定 + 严格离线保护"。第三,哈希签名的私钥极小但签名很大,私钥便于放入安全元件或离线介质,签名体积则要求固件包、证书字段预留足够空间;同时其签名计算耗时较高,签名操作应放在低并发、可容忍延迟的环节。第四,多变量方案目前不宜进入生产密钥体系,只应作为研究跟踪对象。

一个可操作的迁移判断示例

假设某企业要为内部 TLS 服务选择 PQC 密钥封装,并同时为固件签名选择签名算法。可以按如下方式做初步判断(以下参数为示例性假设,用于说明判断逻辑,非实测数据):

  • 密钥封装:优先选 ML-KEM-768,公钥约 1184 B、密文约 1088 B,握手增量在可接受范围;若对长期信任要求极高且带宽充裕,可评估 Classic McEliece 作为备选,但需接受公钥达数百 KB 的存储与分发成本。
  • 固件签名:若设备验签算力有限、签名包体积受限,选 ML-DSA-65(签名约 3.3 KB);若要求最低信任假设、可接受较大签名与较慢签名速度,选 SLH-DSA-SHA2-128s(签名约 7.8 KB 量级)。
  • 密钥轮换:格密码密钥可按 1—2 年周期轮换;编码密码根密钥按 5 年以上规划并离线保管;哈希签名私钥因体积极小,适合放入 HSM 并配合严格的签发审计。
判断算法家族时,先问三个问题:该位置是"加密/封装"还是"签名"?带宽与存储预算多大?可接受的信任假设有多保守?答案基本能锁定 1—2 个候选家族,再在家族内按参数集细化。

需要强调的是,上述规模数字随参数集不同而变化,工程中应以 FIPS 203/204/205 及各候选方案的最新规范为准,并在真实协议栈中测量握手包、证书链与固件包的实际增量,而不是仅凭经验估算。密钥生命周期管理的迁移计划,应当把这些尺寸与性能数据作为输入,反向决定轮换周期、存储介质与备份策略。