SLH-DSA (SPHINCS+)
Stateless Hash-Based
Digital Signature Algorithm
2019 (SPHINCS+)
2024 (FIPS 205)
SLH-DSA(Stateless Hash-Based Digital Signature Algorithm),原名 SPHINCS+,是由 NIST 于 2024 年发布的后量子数字签名标准(FIPS 205)。与 ML-DSA 不同,SLH-DSA 的安全性 仅依赖于哈希函数的抗碰撞性,不依赖格问题或其他数论假设,提供了极简的安全基础。
后量子签名方案的安全假设可以分为两大类:
- 格假设:ML-DSA 等方案依赖 Module-LWE/Module-SIS,虽然被广泛研究但仍是较新的数学假设
- 哈希假设:SLH-DSA 仅依赖哈希函数的抗碰撞性,这是密码学中最成熟、最被信任的安全假设之一
SLH-DSA 的存在意义在于提供一个 「保守安全」的后量子签名备选方案。如果未来格密码学被发现有未知弱点,SLH-DSA 仍然安全。因此 NIST 将其作为 ML-DSA 的补充标准,推荐在对安全性有极高要求的场景中使用。
SLH-DSA 是一种 无状态(stateless) 的基于哈希的签名方案,使用 Merkle 树 结构组织大量的一次性签名(OTS)密钥。
- KeyGen():生成根密钥种子,通过确定性伪随机函数推导出整棵 Merkle 树的所有 OTS 密钥。
- Sign(sk, M):对消息 M 的摘要,随机选择一个 OTS 叶节点索引,生成一次性签名,并附上从叶节点到 Merkle 树根的认证路径。
- Verify(pk, M, σ):验证一次性签名和认证路径,确认签名有效且连接到正确的 Merkle 根(即公钥)。
「无状态」意味着签名者不需要记住哪些 OTS 密钥已经使用过——通过随机选择索引 + 超大 Merkle 树(2h 个叶节点),碰撞概率可忽略不计。这与早期有状态的哈希签名方案(如 XMSS、LMS)不同。
SLH-DSA 提供了「快速」(f)和「小型」(s)两系列参数集:
| 参数集 | NIST 安全级别 | 公钥大小 | 签名大小 | 私钥大小 | 特点 |
|---|---|---|---|---|---|
| SLH-DSA-128f | Level 1 | 32 B | 17,088 B | 64 B | 快速签名 |
| SLH-DSA-128s | Level 1 | 32 B | 7,856 B | 64 B | 小签名 |
| SLH-DSA-192f | Level 3 | 48 B | 35,664 B | 96 B | 快速签名 |
| SLH-DSA-192s | Level 3 | 48 B | 16,224 B | 96 B | 小签名 |
| SLH-DSA-256f | Level 5 | 64 B | 49,856 B | 128 B | 快速签名 |
| SLH-DSA-256s | Level 5 | 64 B | 29,792 B | 128 B | 小签名 |
SLH-DSA 的公钥非常小(32~64 字节,与经典方案相当),但签名尺寸远大于 ML-DSA(7.8~49.9 KB vs 2.4~4.6 KB),且签名速度较慢。这是哈希签名方案的固有代价。
| 方案 | 安全基础 | 公钥 | 签名 | 签名速度 | 特点 |
|---|---|---|---|---|---|
| ML-DSA-65 | 格问题 | 1,952 B | 3,309 B | 极快 | NIST 首选签名 |
| SLH-DSA-128f | 哈希函数 | 32 B | 17,088 B | 中等 | 极简安全假设 |
| SLH-DSA-128s | 哈希函数 | 32 B | 7,856 B | 慢 | 更小签名 |
| Falcon | 格问题 (NTRU) | 897 B | 666 B | 快 | 最小签名,实现复杂 |
SLH-DSA 的安全性仅依赖于底层哈希函数的以下性质:
- 抗碰撞性(Collision Resistance):找到两个不同消息具有相同哈希值在计算上不可行
- 抗原像性(Preimage Resistance):给定哈希值,找到对应输入在计算上不可行
- 伪随机性(Pseudorandomness):哈希函数输出与真随机不可区分
SLH-DSA-128 使用 SHA-256 或 SHAKE-256 作为底层哈希函数。即使未来量子计算机出现,只要哈希函数本身没有被攻破(Grover 算法仅将安全强度减半,使用足够长的输出即可应对),SLH-DSA 就保持安全。
与有状态方案(XMSS/LMS)相比,SLH-DSA 无需维护状态,避免了状态同步失败导致的安全灾难(重复使用 OTS 密钥会导致私钥泄露)。
- 高安全需求场景:军事、政府机密通信、根 CA 证书签名
- 长期归档:需要数十年甚至上百年安全的数字签名
- 保守策略:对格密码学安全假设持保留态度的组织
- 固件签名:IoT 设备、硬件模块的固件验证
对于大多数日常应用,ML-DSA 由于签名更小、速度更快,是更实用的选择。SLH-DSA 适合作为「保险方案」在高安全场景中部署。
- NIST (2024). "Stateless Hash-Based Digital Signature Standard". FIPS 205.
- Bernstein, D.J., et al. (2019). "SPHINCS+: Submission to the NIST Post-Quantum Cryptography Standardization Project".
- Bernstein, D.J., et al. (2015). "SPHINCS: Practical Stateless Hash-Based Signatures". EUROCRYPT 2015.
- Hülsing, A., et al. (2013). "XMSS: Extended Hash-Based Signatures". RFC 8391.
- McGrew, D., et al. (2019). "Hash-Based Signatures". RFC 8554 (LMS).