Post-Quantum Cryptography
Why are we having this lecture? RSA still works.
Where does asymmetric hardness come from, if not from groups?
Can it actually replace ECDH in something I use?
reject| Parameter set | NIST category | Classical security | Key (pk) | Ciphertext |
|---|---|---|---|---|
| ML-KEM-512 | Category 1 | \(\approx\) AES-128 | 800 B | 768 B |
| ML-KEM-768 | Category 3 | \(\approx\) AES-192 | 1184 B | 1088 B |
| ML-KEM-1024 | Category 5 | \(\approx\) AES-256 | 1568 B | 1568 B |
What about signatures, and why are there two PQ signature standards?
| Parameter set | NIST category | Public key | Signature |
|---|---|---|---|
| ML-DSA-44 | Category 2 | 1312 B | 2420 B |
| ML-DSA-65 | Category 3 | 1952 B | 3293 B |
| ML-DSA-87 | Category 5 | 2592 B | 4595 B |
| Parameter set | Public key | Signature | Focus |
|---|---|---|---|
| SLH-DSA-SHA2-128f | 32 B | 17 088 B | fast signing |
| SLH-DSA-SHA2-128s | 32 B | 7 856 B | small signature |
| SLH-DSA-SHA2-256f | 64 B | 49 856 B | fast signing |
| SLH-DSA-SHA2-256s | 64 B | 29 792 B | small signature |
The threshold concept from Segment 1 in action: cryptographic hardness is a defended position, not a fact.
Should we just deploy ML-KEM and hope?
What does this look like in code, and is it realistic to try?
liboqs (Open Quantum Safe project): C library, multi-algorithm, the standard sandbox
liboqs-python (three lines for keygen/encaps/decaps)oqs cratepq-crystals reference C implementations: authoritative implementations from the ML-KEM and ML-DSA authors (Bos, Ducas et al.)cryptography package: ML-KEM landing in mainline post-v43, check current version liboqs-python, which covers all NIST schemes and has a stable Python APIBenchmark output (pre-recorded, modern x86_64):
keygen encaps decaps pk ct
X25519 18 µs 55 µs 54 µs 32 B 32 B
ML-KEM-768 20 µs 25 µs 28 µs 1184 B 1088 B
X25519+ML-KEM-768 39 µs 82 µs 83 µs 1216 B 1120 B
The CPU cost is negligible. Bandwidth is the cost.
A credible A1 PQ attempt is not “implement Kyber from scratch.” It is:
liboqs-python)Prepare to answer: - Why hybrid rather than pure ML-KEM? - What does the bandwidth cost look like, and is it acceptable? - Why did the HPKE interface stay the same? - What security assumptions does your design rest on?