Skip to content

Post-Quantum Cryptography

This document covers the fundamentals of post-quantum cryptography and hybrid certificates in QPKI.

For PKI basics (certificates, keys, CAs, trust chains), see PKI Fundamentals.

Current public-key cryptography (RSA, ECDSA, ECDH) is vulnerable to attacks by quantum computers using Shor’s algorithm. While large-scale quantum computers don’t exist yet, data encrypted today could be stored and decrypted later (“harvest now, decrypt later” attacks).

NIST has standardized three post-quantum algorithms:

AlgorithmStandardTypeUse Case
ML-KEMFIPS 203Key EncapsulationKey exchange
ML-DSAFIPS 204Digital SignatureSigning, authentication
SLH-DSAFIPS 205Digital SignatureSigning (stateless)

This PKI implements ML-DSA and SLH-DSA for signatures, and ML-KEM for key material transport.

2.1 ML-DSA (Digital Signatures) - FIPS 204

Section titled “2.1 ML-DSA (Digital Signatures) - FIPS 204”

ML-DSA (Module-Lattice Digital Signature Algorithm) is the standardized version of Dilithium.

VariantSecurity LevelPublic KeySignaturePerformance
ML-DSA-44NIST Level 11,312 bytes2,420 bytesFastest
ML-DSA-65NIST Level 31,952 bytes3,309 bytesBalanced
ML-DSA-87NIST Level 52,592 bytes4,627 bytesMost secure

Recommendation: Use ML-DSA-65 for most applications (equivalent to AES-192 security).

2.2 SLH-DSA (Digital Signatures) - FIPS 205

Section titled “2.2 SLH-DSA (Digital Signatures) - FIPS 205”

SLH-DSA (Stateless Hash-Based Digital Signature Algorithm) is the standardized version of SPHINCS+. It provides an alternative to ML-DSA based on hash functions rather than lattice problems.

VariantSecurity LevelPublic KeySignatureSigning Speed
SLH-DSA-128sNIST Level 132 bytes~7,856 bytesSlow
SLH-DSA-128fNIST Level 132 bytes~17,088 bytesFast
SLH-DSA-192sNIST Level 348 bytes~16,224 bytesSlow
SLH-DSA-192fNIST Level 348 bytes~35,664 bytesFast
SLH-DSA-256sNIST Level 564 bytes~29,792 bytesSlow
SLH-DSA-256fNIST Level 564 bytes~49,856 bytesFast

Variants:

  • s (small) = Smaller signatures, slower signing
  • f (fast) = Larger signatures, faster signing

Recommendation: Use SLH-DSA as a conservative alternative when hash-based security is preferred over lattice assumptions.

ML-KEM (Module-Lattice Key Encapsulation Mechanism) is the standardized version of Kyber.

VariantSecurity LevelPublic KeyCiphertextShared Secret
ML-KEM-512NIST Level 1800 bytes768 bytes32 bytes
ML-KEM-768NIST Level 31,184 bytes1,088 bytes32 bytes
ML-KEM-1024NIST Level 51,568 bytes1,568 bytes32 bytes

Note: ML-KEM is included for key transport but is not used for X.509 certificate signing.

Use CaseRecommendedRationale
General purposeML-DSA-65Balance of security and size
Long-term secretsML-DSA-87Maximum security
Constrained devicesML-DSA-44Smallest signatures
Conservative choiceSLH-DSAHash-based (different assumptions)

Pure PQC certificates face challenges:

  1. Existing infrastructure (browsers, TLS libraries) doesn’t recognize PQC
  2. Security uncertainty - PQC algorithms are newer, less analyzed than classical

Hybrid certificates provide:

  • Backward compatibility via classical signature
  • Forward security via PQC material
  • Gradual migration path

QPKI supports three hybrid approaches:

ModeStandardCertificatesDescription
Catalyst (Combined)ITU-T X.509 9.81Dual keys in single cert
CompositeIETF draft-131Single composite key/signature
Separate (Linked)draft-ietf-lamps-cert-binding2Two linked certificates

For technical details on each hybrid mode, see Hybrid Certificates.