Post-Quantum Key Sizes

Every NIST-standardized post-quantum algorithm. Public key, private key, signature, and ciphertext sizes. Compared against the classical algorithms they replace.

Last updated: April 22, 2026 | Sources: NIST FIPS 203, 204, 205 final specifications

Key Encapsulation Mechanisms (FIPS 203)

AlgorithmStandardSecurityPublic KeyPrivate KeyCiphertextShared Secretvs ECDH
ECDH P-256Classical~128-bit32 B32 B32 B32 Bbaseline
X25519Classical~128-bit32 B32 B32 B32 Bbaseline
RSA-2048Classical~112-bit256 B1,192 B256 Bvaries8x pk
ML-KEM-512FIPS 203Level 1800 B1,632 B768 B32 B25x pk
ML-KEM-768FIPS 203Level 31,184 B2,400 B1,088 B32 B37x pk
ML-KEM-1024FIPS 203Level 51,568 B3,168 B1,568 B32 B49x pk
Cache impact: Every TLS 1.3 session ticket carries an ML-KEM ciphertext for session resumption. At ML-KEM-768, that is 1,088 bytes per ticket vs 32 bytes for X25519. 500K cached session tickets: 16 MB classical, 544 MB PQ.

Digital Signatures — Lattice-Based (FIPS 204)

AlgorithmStandardSecurityPublic KeyPrivate KeySignaturevs Ed25519
Ed25519Classical~128-bit32 B32 B64 Bbaseline
ECDSA P-256Classical~128-bit64 B32 B64 B1x
RSA-2048Classical~112-bit256 B1,192 B256 B4x sig
ML-DSA-44FIPS 204Level 21,312 B2,560 B2,420 B38x sig
ML-DSA-65FIPS 204Level 31,952 B4,032 B3,309 B52x sig
ML-DSA-87FIPS 204Level 52,592 B4,896 B4,627 B72x sig
Cache impact: JWTs carry ML-DSA signatures. At ML-DSA-65, each cached JWT includes 3,309 bytes of signature. 100K cached tokens = 331 MB of signature data alone.

Digital Signatures — NTRU Lattice (Pending Standardization)

AlgorithmStandardSecurityPublic KeyPrivate KeySignaturevs Ed25519
FALCON-512FN-DSA (pending)Level 1897 B1,281 B690 B11x sig
FALCON-1024FN-DSA (pending)Level 51,793 B2,305 B1,330 B21x sig
Cache impact: FALCON is the most cache-friendly PQ signature. At 690 bytes, it is 4.8x smaller than ML-DSA-65 and 24.8x smaller than SLH-DSA-128f. Preferred for constrained environments and high-frequency signing.

Digital Signatures — Hash-Based (FIPS 205)

AlgorithmStandardSecurityPublic KeyPrivate KeySignaturevs Ed25519
SLH-DSA-SHA2-128sFIPS 205Level 132 B64 B7,856 B123x sig
SLH-DSA-SHA2-128fFIPS 205Level 132 B64 B17,088 B267x sig
SLH-DSA-SHA2-192sFIPS 205Level 348 B96 B16,224 B254x sig
SLH-DSA-SHA2-192fFIPS 205Level 348 B96 B35,664 B557x sig
SLH-DSA-SHA2-256sFIPS 205Level 564 B128 B29,792 B466x sig
SLH-DSA-SHA2-256fFIPS 205Level 564 B128 B49,856 B779x sig
Cache impact: SLH-DSA public keys are tiny (32-64 bytes) but signatures are enormous. Do NOT cache full SLH-DSA signatures unless required for audit. Cache the verification result (boolean + content hash) instead. One SLH-DSA-256f signature (49 KB) consumes the same cache memory as 512 classical Ed25519 signatures.

Cache Working Set — Before and After

ScenarioCrypto Material / Entry1M Entriesvs Classical
Classical (ECDH + Ed25519)96 B96 MBbaseline
ML-KEM-768 + ML-DSA-654,493 B4.49 GB47x
ML-KEM-768 + FALCON-5121,874 B1.87 GB20x
ML-KEM-1024 + ML-DSA-876,195 B6.20 GB65x
ML-KEM-768 + SLH-DSA-128f18,272 B18.27 GB190x
Hybrid (X25519 + ML-KEM-768)1,280 B1.28 GB13x

Cache Latency — Network vs In-Process

Value SizeExampleRedis GETCachee L0 GETDifference
64 BEd25519 signature0.3 ms0.000031 ms9,677x
1,088 BML-KEM-768 ciphertext0.35 ms0.000031 ms11,290x
3,309 BML-DSA-65 signature0.45 ms0.000031 ms14,516x
4,493 BPQ session token0.55 ms0.000031 ms17,742x
17,088 BSLH-DSA-128f signature0.9 ms0.000031 ms29,032x
49,856 BSLH-DSA-256f signature1.4 ms0.000031 ms45,161x

What is Post-Quantum Caching? | Cachee PQ Details | Install Cachee | Full PQ Key Size Guide (blog)