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 set | NIST level | Public key | Signature (approx) | Tradeoff |
|---|---|---|---|---|
| SLH-DSA-SHA2/SHAKE-128s | 1 | 32 | 7856 | small sig |
| SLH-DSA-SHA2/SHAKE-128f | 1 | 32 | 17088 | fast |
| SLH-DSA-SHA2/SHAKE-192s | 3 | 48 | 16224 | small sig |
| SLH-DSA-SHA2/SHAKE-192f | 3 | 48 | 35664 | fast |
| SLH-DSA-SHA2/SHAKE-256s | 5 | 64 | 29792 | small sig |
| SLH-DSA-SHA2/SHAKE-256f | 5 | 64 | 49856 | fast |
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.
SLH-DSA deep dive →
WOTS+, FORS, and hypertree internals.
Hash-based signatures →
The family overview.
SP 800-208 →
Stateful hash-based alternatives.
Standards & references
- FIPS 205 (SLH-DSA) — the authoritative standard specified on this page.
- NIST SP 800-208 — the stateful hash-based contrast (LMS/XMSS).
- NIST PQC project — program background and related publications.
- Resources — full standards register
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-128s | 1 | 32 | 7856 | 小签名 |
| SLH-DSA-SHA2/SHAKE-128f | 1 | 32 | 17088 | 快速 |
| SLH-DSA-SHA2/SHAKE-192s | 3 | 48 | 16224 | 小签名 |
| SLH-DSA-SHA2/SHAKE-192f | 3 | 48 | 35664 | 快速 |
| SLH-DSA-SHA2/SHAKE-256s | 5 | 64 | 29792 | 小签名 |
| SLH-DSA-SHA2/SHAKE-256f | 5 | 64 | 49856 | 快速 |
公钥极小(32/48/64 字节),但签名很大,从约 7.8 KB 直至近 50 KB。s/f 权衡在签名尺寸与签名速度之间取舍:s 变体的超树更深,签名更慢但产出更小的签名;f 变体签名更快,但输出更大的签名。
何时选用 SLH-DSA
- 须保持 20 年以上有效的根证书与信任锚。
- 固件与安全启动签名,其中微小的公钥嵌入硬件,且签名并不频繁。
- 任何希望获得不依赖格假设的安全保证的场景,与 ML-DSA 形成多样性防御。
标准与参考
- FIPS 205 SLH-DSA — 本页所述的权威标准。
- NIST SP 800-208 — 有状态哈希签名的对照 LMS/XMSS。
- NIST PQC 项目 — 项目背景与相关出版物。
- 资源链接 — 完整标准登记册