Lab
Post-quantum cryptography guide
Plain-language explanations of post-quantum cryptography (PQC), security notes, and privacy promises.
Educational demo - don't copy/paste into production
What this is
Plain-language notes that explain post-quantum cryptography (PQC) terms, sizes, and tradeoffs without the academic jargon. Use it to interpret the demo results and make migration decisions.
Who it's for
- Leaders building PQC migration plans.
- Engineers who need context for the demos.
- Security teams writing stakeholder briefings.
What NIST standardized
NIST finalized the first post-quantum standards as FIPS 203, 204, and 205:
- ML-KEM (FIPS 203), derived from CRYSTALS-Kyber.
- ML-DSA (FIPS 204), derived from CRYSTALS-Dilithium.
- SLH-DSA (FIPS 205), derived from SPHINCS+.
ML-KEM is a KEM
ML-KEM encapsulates a shared secret. It does not encrypt messages by itself. In the demo, the shared secret is turned into a symmetric AES-256 key with HKDF-SHA-256, and then AES-GCM encrypts the message.
Sizes and performance
- ML-KEM keys and ciphertexts are larger than classical RSA or ECDH.
- ML-DSA signatures are a few kilobytes, but signing is fast.
- SLH-DSA signatures are very large and signing is slower by design.
Each demo shows actual sizes from the selected parameter set.
Security notes
- This is an educational demo, not production-ready crypto.
- Use domain separation and authenticated encryption for real systems.
- Parameter sets trade speed, size, and security level.
Privacy promise
- Keys and plaintext stay in your browser.
- No secrets are sent to the server.
- No keys or messages are stored in URL fragments.
- Closing the tab forgets in-memory keys.
Implementation
This demo uses the open source @noble/post-quantum library (version 0.5.4) for ML-KEM, ML-DSA, and SLH-DSA operations.