Skip to main content
  1. Index/

SLH-DSA (Stateless Hash-Based Digital Signature Algorithm)

SLH-DSA (Stateless Hash-Based Digital Signature Algorithm), standardised as NIST FIPS 205 in August 2024, is the post-quantum signature standard based on hash functions rather than lattice problems. Where ML-DSA and ML-KEM both rest their security on the hardness of Module Learning With Errors — a relatively young mathematical assumption first formulated in 2005 — SLH-DSA’s security rests exclusively on the collision resistance and preimage resistance of an underlying hash function (SHA-256, SHA-512, or SHAKE, depending on parameter set). Hash function security against quantum computers is well-understood: Grover’s algorithm provides at most a quadratic speedup, which is fully mitigated by doubling output size (SHA-256 remains adequate against classical attacks; SHA-512 provides AES-256-equivalent quantum resistance). The decades-long cryptanalytic confidence in SHA-2 and SHA-3 makes SLH-DSA’s security argument the most conservative available: it requires no new mathematical assumption beyond the hash functions already trusted throughout the entire cryptographic stack.

SLH-DSA is derived from SPHINCS+, the hash-based signature scheme that NIST selected as its conservative, non-lattice alternative during the PQC standardisation process. Its construction chains together several cryptographic primitives: WOTS+ (Winternitz One-Time Signatures Plus) for signing individual messages with disposable key pairs, FORS (Forest of Random Subsets) for signing indices into a hypertree structure, and a hypertree of Merkle trees whose root commits to all possible signing key pairs. The “stateless” in the name is the critical property that distinguishes SLH-DSA from older hash-based schemes like XMSS: the signer does not need to maintain state about which one-time keys have been used, eliminating the catastrophic key-reuse vulnerability of stateful hash-based schemes. Instead, the one-time key used for each signature is derived deterministically from the private key and a random (or message-derived) index, making SLH-DSA safe to use with standard key management infrastructure and in multi-signer or distributed signing scenarios. NIST defines twelve parameter sets across two security/speed trade-off axes — small (smaller signatures, slower signing) and fast (larger signatures, faster signing) — at security levels 1, 3, and 5. Representative sizes for the recommended level-3 fast variant (SLH-DSA-SHAKE-192f): 48-byte public key, 35,664-byte signature. The tiny public key is SLH-DSA’s standout property; the large signature is its primary operational disadvantage.

SLH-DSA’s role in the PQC deployment strategy is as a diversity anchor, not a primary workhorse. ML-DSA is faster to sign, faster to verify, and produces signatures 10–15× smaller; it is the recommended default replacement for ECDSA and RSA signatures. SLH-DSA is the answer to “what do we use if a structural weakness in lattice-based cryptography is discovered?” — maintaining a parallel SLH-DSA signature on critical, long-lived artifacts (firmware images, root CA certificates, code signing certificates with multi-year validity) ensures that those artifacts remain secure even if the ML-DSA lattice assumption is broken. The deployment pattern for high-assurance signing infrastructure is therefore: sign with ML-DSA-65 as the primary algorithm and SLH-DSA-SHAKE-192s (small, conservative) as the secondary algorithm, and publish both signatures as separate OCI referrers or alongside the ML-DSA signature in the signing envelope. Verifiers can accept either, giving the signed artifact a defence-in-depth property across two independent mathematical foundations. For certificate authorities with decade-long root CA lifetimes, the small SLH-DSA public key (48 bytes) is attractive for root CA self-signatures: the root certificate itself can carry an SLH-DSA self-signature that is quantum-safe and requires no new mathematical trust, at the cost of a larger certificate file (dominated by the SLH-DSA signature, not the key).

Related

ML-DSA (Module-Lattice-Based Digital Signature Algorithm)

ML-DSA (Module-Lattice-Based Digital Signature Algorithm), standardised as NIST FIPS 204 in August 2024, is the primary post-quantum replacement for digital signatures. It replaces ECDSA, EdDSA, and RSA PSS/PKCS#1 signatures in X.509 certificates, code signing, TLS client and server authentication, SSH, JWT signing, and any other context where a party proves possession of a private key by producing a signature that others verify with the public key. ML-DSA is derived from CRYSTALS-Dilithium, the submission that won NIST’s lattice-based signature selection, and its security rests on the Module Learning With Errors (MLWE) and Module Short Integer Solution (MSIS) problems — the same mathematical family as ML-KEM, which is significant because both algorithms can share implementation code and hardware acceleration for the underlying polynomial arithmetic (NTT, number-theoretic transform).

ECC (Elliptic Curve Cryptography)

Elliptic Curve Cryptography (ECC) is a family of public-key cryptographic algorithms built on the mathematics of elliptic curves over finite fields. Its security rests on the Elliptic Curve Discrete Logarithm Problem (ECDLP): given a public point Q = k × G on a curve (where G is a fixed base point and k is the private key scalar), recovering k from Q and G is computationally infeasible on classical computers. The practical advantage over RSA is dramatic key size efficiency: a 256-bit ECC key provides roughly the same classical security as a 3072-bit RSA key, because the best known classical algorithms for ECDLP (Pollard’s rho) are exponential whereas the best RSA algorithms (GNFS) are sub-exponential. This size difference has compounding benefits — smaller keys mean faster operations, smaller certificates, smaller TLS handshake messages, and lower power consumption on constrained devices. ECC is now the dominant choice for all new asymmetric cryptography deployments: TLS 1.3 mandates ECDHE for key exchange, and ECDSA or EdDSA for authentication; SSH defaults to Ed25519; code signing infrastructure increasingly uses ECDSA P-256 or Ed25519.

ECDSA (Elliptic Curve Digital Signature Algorithm)

ECDSA (Elliptic Curve Digital Signature Algorithm) is the elliptic curve analogue of DSA, standardised in FIPS 186 and the IETF, that produces digital signatures using a private key and verifies them with the corresponding public key. It is the most widely deployed signature algorithm in X.509 certificates (P-256 with SHA-256 is the default for certificate authorities issuing TLS certificates), in code signing (Authenticode, macOS, Linux package signing), in TLS 1.3 certificate authentication, in SSH host keys and user keys (though Ed25519 is increasingly preferred), and in blockchain and cryptocurrency systems. An ECDSA signature over a message m with private key d on curve with base point G produces a pair (r, s), where r is the x-coordinate of an ephemeral public key k × G and s encodes the relationship between the message hash, r, the private key d, and the nonce k. Verification requires only the public key Q = d × G and is fast; signing requires the private key and a nonce.