Algorithm Comparison

Side-by-side comparison of the three NIST post-quantum cryptography standards. Real-world parameter sizes at their recommended security levels.

PropertyML-KEM-768ML-DSA-65SLH-DSA-128s
TypeKEMSignatureSignature
StandardFIPS 203FIPS 204FIPS 205
Security BasisMLWE latticeMLWE latticeHash functions
Security LevelNIST Level 3NIST Level 3NIST Level 1
Public Key Size1.2 KB1.9 KB32 B
Secret Key Size2.3 KB3.9 KB64 B
Sig / Ciphertext Size1.1 KB(ciphertext)3.2 KB(signature)7.7 KB(signature)

Size Comparison

ML-KEM-7681.2 KB
ML-DSA-651.9 KB
SLH-DSA-128s32 B

ML-KEM-768

Lattice-based key encapsulation for secure key exchange. Fast operations, moderate key sizes.

Strengths

  • +Fast encapsulation/decapsulation
  • +Moderate sizes
  • +Well-studied lattice assumptions

Trade-offs

  • -Larger keys than classical ECDH
  • -Relatively new standard

ML-DSA-65

Lattice-based digital signatures using Fiat-Shamir with Aborts. Good balance of speed and size.

Strengths

  • +Fast signing and verification
  • +Reasonable signature sizes
  • +Shared lattice foundation with ML-KEM

Trade-offs

  • -Larger signatures than classical ECDSA
  • -Non-deterministic signing (rejection sampling)

SLH-DSA-128s

Hash-based signatures with minimal security assumptions. Tiny keys but large signatures.

Strengths

  • +Smallest public keys
  • +Conservative security (hash-only)
  • +Stateless design

Trade-offs

  • -Very large signatures
  • -Slower signing
  • -Higher bandwidth requirements

When to Use What?

ML-KEM is for key exchange (replacing ECDH/RSA key transport). Use it when establishing shared secrets in TLS, VPNs, or messaging protocols.

ML-DSA is the general-purpose signature scheme (replacing ECDSA/RSA signatures). Best for certificates, code signing, and authentication where bandwidth is not extremely constrained.

SLH-DSA is the conservative choice relying only on hash function security. Prefer it when you need minimal cryptographic assumptions and can tolerate larger signatures (e.g., firmware signing, long-term document signatures).