QianHeng乾珩 PQC Docs Hub量子文档 ✦ Ask AI✦ 问问文档 ⚐ Scan⚐ 扫一扫

FIPS 205 — SLH-DSA

FIPS 205 specifies the Stateless Hash-Based Digital Signature Algorithm (SLH-DSA), derived from SPHINCS+ and finalized on 13 August 2024. It is the most conservative post-quantum signature standard: its security rests only on the properties of hash functions.

Why SLH-DSA matters

ML-DSA and FN-DSA depend on the conjectured hardness of lattice problems. SLH-DSA makes no such assumption — its security rests primarily on the underlying hash function and the choice of security parameters, not on structural assumptions such as lattice problems. If a future cryptanalytic breakthrough weakened lattices, SLH-DSA would be unaffected. This makes it the natural choice for long-lived roots of trust where a decades-long security guarantee outweighs performance concerns. SLH-DSA has small public and private keys but very large signatures, which makes it better suited to low-frequency signing, long-term roots of trust, and firmware signing.

Building blocks

  • WOTS+ (Winternitz One-Time Signature Plus) — a one-time signature scheme. Each WOTS+ key can sign exactly one message safely; signing involves hashing secret values a controlled number of times.
  • FORS (Forest Of Random Subsets) — a few-time signature scheme used to sign the actual message digest, tolerating limited reuse so the hypertree need not be impractically deep.
  • Hypertree — a tree of XMSS layers (themselves Merkle trees of WOTS+ keys). The hypertree authenticates the FORS keys up to a single small public key, while keeping the scheme stateless: a pseudorandom index selects which leaves to use, so no per-signature state must be tracked.

This is the key distinction from SP 800-208's stateful schemes: SLH-DSA is stateless, eliminating the catastrophic one-time-key-reuse hazard at the cost of larger signatures.

The 12 parameter sets

SLH-DSA offers 12 combinations: two hash families {SHA2, SHAKE} × three security levels {128, 192, 256} × two tradeoff variants {s = small signature, slower; f = fast signing, larger signature}.

Parameter setNIST levelPublic keySignature (approx)Tradeoff
SLH-DSA-SHA2/SHAKE-128s1327856small sig
SLH-DSA-SHA2/SHAKE-128f13217088fast
SLH-DSA-SHA2/SHAKE-192s34816224small sig
SLH-DSA-SHA2/SHAKE-192f34835664fast
SLH-DSA-SHA2/SHAKE-256s56429792small sig
SLH-DSA-SHA2/SHAKE-256f56449856fast

Public keys are tiny (32/48/64 bytes), but signatures are large — from roughly 7.8 KB up to nearly 50 KB. The s/f tradeoff balances signature size against signing speed: "s" variants have a deeper, slower-to-sign hypertree producing smaller signatures, while "f" variants sign faster but emit larger signatures.

When to choose SLH-DSA

  • Root certificates and trust anchors that must remain valid for 20+ years.
  • Firmware and secure-boot signing where a tiny public key is embedded in hardware and signatures are infrequent.
  • Any context where you want a security guarantee that does not rely on lattice assumptions — defense in diversity alongside ML-DSA.
Warning
SLH-DSA signatures are large and signing is comparatively slow. Do not use it for high-throughput protocols like per-connection TLS authentication, where ML-DSA's smaller, faster signatures are far more practical.
Note
SLH-DSA is stateless — there is no key index to track and no risk of state corruption causing a security failure, unlike the stateful LMS/XMSS schemes in SP 800-208. That operational simplicity is a major reason to prefer it when its size cost is acceptable.

Standards & references

FIPS 205 SLH-DSA

FIPS 205 规范了无状态哈希数字签名算法 SLH-DSA,源自 SPHINCS+,于 2024 年 8 月 13 日正式发布。它是最保守的后量子签名标准,其安全性仅依赖哈希函数的性质。

SLH-DSA 的意义

ML-DSA 与 FN-DSA 依赖格问题的猜想困难性。SLH-DSA 不作此类假设,其安全性主要依赖底层哈希函数和安全参数选择,不依赖格问题等结构性假设。即便未来出现削弱格的密码分析突破,SLH-DSA 也不受影响。这使它成为长生命周期信任根的天然之选——在这类场景中,数十年的安全保证比性能更重要。SLH-DSA 的公钥和私钥都较小,但签名尺寸很大,因此更适合低频签名、长期信任根、固件签名等场景。

构件

  • WOTS+——Winternitz 一次性签名增强版,一种一次性签名方案。每个 WOTS+ 密钥只能安全地签一条消息,签名过程涉及对秘密值进行受控次数的哈希。
  • FORS——随机子集森林,一种少次性签名方案,用于对实际消息摘要签名,容许有限复用,从而无需让超树深得不切实际。
  • 超树——由 XMSS 层构成的树,各层本身是 WOTS+ 密钥的 Merkle 树。超树将 FORS 密钥逐层认证至单一小公钥,同时保持方案无状态:由伪随机索引选择使用哪些叶节点,因而无需跟踪单次签名状态。

这正是它与 SP 800-208 有状态方案的关键区别:SLH-DSA 是无状态的,以更大的签名为代价,消除了灾难性的一次性密钥复用隐患。

12 个参数集

SLH-DSA 提供 12 种组合:两个哈希家族 {SHA2, SHAKE} × 三个安全等级 {128, 192, 256} × 两种权衡变体 {s(小签名、较慢), f(快速、较大签名)}。

参数集NIST 等级公钥签名 近似权衡
SLH-DSA-SHA2/SHAKE-128s1327856小签名
SLH-DSA-SHA2/SHAKE-128f13217088快速
SLH-DSA-SHA2/SHAKE-192s34816224小签名
SLH-DSA-SHA2/SHAKE-192f34835664快速
SLH-DSA-SHA2/SHAKE-256s56429792小签名
SLH-DSA-SHA2/SHAKE-256f56449856快速

公钥极小(32/48/64 字节),但签名很大,从约 7.8 KB 直至近 50 KB。s/f 权衡在签名尺寸与签名速度之间取舍:s 变体的超树更深,签名更慢但产出更小的签名;f 变体签名更快,但输出更大的签名。

何时选用 SLH-DSA

  • 须保持 20 年以上有效的根证书与信任锚。
  • 固件与安全启动签名,其中微小的公钥嵌入硬件,且签名并不频繁。
  • 任何希望获得依赖格假设的安全保证的场景,与 ML-DSA 形成多样性防御。
警告
SLH-DSA 签名庞大且签名相对较慢。请勿将其用于像逐连接 TLS 认证这类高吞吐协议,在那里 ML-DSA 更小更快的签名要实用得多。
注意
SLH-DSA 是无状态的,没有需要跟踪的密钥索引,也不存在因状态损坏导致安全失效的风险,这与 SP 800-208 中的有状态 LMS/XMSS 方案不同。当其尺寸代价可接受时,这种运维上的简洁性正是优先选用它的重要理由。

标准与参考

⚑ Report an error⚑ 纠错与校正