如何Use Post-Quantum Cryptography
Migrate classical 公共-键 cryptography 到 NIST-standardized post-quantum algorithms (ML-KEM, ML-DSA, SLH-DSA) 到 resist quantum attacks.
问题
Shor's algorithm 将 break RSA 和 ECC 一次大-规模 quantum computers arrive. 你需要transition 到 post-quantum cryptography (PQC) 但是 unsure 哪个 algorithms 到选择和 如何hybridize 它们安全.
前置条件
- Understanding 的公共-键 cryptography (RSA, ECDH, ECDSA)
- 熟悉键 encapsulation mechanisms (KEM) 和 digital signatures
- Knowledge 的 NIST PQC standardization 处理
步骤
-
1. Identify vulnerable cryptographic primitives
Audit your system for RSA key exchange, RSA signatures, ECDH key exchange, and ECDSA signatures. These are all vulnerable to Shor's algorithm. Symmetric encryption (AES) and hashing (SHA-2/3) only lose half their security bits to Grover's algorithm, so AES-256 and SHA-256/512 remain quantum-safe with doubled key sizes.
输入RSA-2048, ECDH-P256, ECDSA-P256输出vulnerable: RSA-2048, ECDH-P256, ECDSA-P256 | safe: AES-256, SHA-256 -
2. Select NIST-standardized PQC algorithms
Use ML-KEM-768 (formerly Kyber) for key encapsulation, replacing ECDH/RSA key exchange. Use ML-DSA-65 (formerly Dilithium) for digital signatures, replacing RSA/ECDSA. For stateful hash-based signatures, use SLH-DSA (formerly SPHINCS+). ML-KEM-1024 and ML-DSA-87 provide NIST Level 5 security (equivalent to AES-256).
输入security level: 3 (AES-192 equivalent)输出KEM: ML-KEM-768 | signature: ML-DSA-65 -
3. Implement hybrid key exchange
Do not deploy PQC algorithms alone initially. Use a hybrid approach: combine classical ECDH with ML-KEM by XORing or concatenating the shared secrets. This ensures that if the PQC algorithm is later broken, the classical component still provides security, and vice versa. Generate both classical and PQC key pairs, perform both exchanges, then derive the final key with HKDF over the concatenated shared secrets.
输入ECDH-P256 + ML-KEM-768输出shared_secret = HKDF(ECDH_ss || MLKEM_ss) -
4. Test and validate the implementation
Verify that the KEM decapsulation produces the correct shared secret. Test signature verification with valid and invalid signatures. Check that key sizes and ciphertext sizes match the NIST specifications (ML-KEM-768 public key: 1184 bytes, ciphertext: 1088 bytes). Use the hash tool to verify known-answer test vectors against NIST KAT vectors.
输入ML-KEM-768 KAT vector输出shared_secret matches reference
预期结果
hybrid post-quantum cryptographic 系统 using ML-KEM 和 ML-DSA 该 resists 两者 classical 和 quantum attacks, 具有 fallback 安全从 classical 组件.
常见错误
- Deploying PQC algorithm without hybrid fallback
- Always use hybrid mode (classical + PQC) during the transition period. If the PQC algorithm has an undiscovered flaw, the classical component preserves security.
- Using superseded algorithm names (Kyber, Dilithium)
- Use the NIST FIPS 203/204/205 standardized names: ML-KEM, ML-DSA, SLH-DSA. The older names refer to pre-standardization variants with different parameters.
- Ignoring larger key and ciphertext sizes
- PQC keys are much larger (ML-KEM-768 public key: 1184 bytes vs ECDH-P256: 32 bytes). Update protocols, buffers, and storage to accommodate these sizes.
排障指引
- If performance is a concern, ML-KEM is faster than ECDH on most platforms, but ML-DSA signatures are larger than ECDSA. Benchmark on your target hardware.
- For TLS, use the hybrid key exchange groups defined in IETF drafts (e.g., X25519MLKEM768) rather than custom combinations.
- If interoperability fails, verify you are using the same parameter set and that the implementation follows FIPS 203 exactly.
安全限制
- Post-quantum algorithms are newer and have less cryptanalytic maturity than RSA/ECC. Hybrid mode mitigates this risk.
- All cryptographic operations are performed locally; no keys or secrets are transmitted.
- PQC does not protect against all quantum attacks — Grover's algorithm still halves symmetric key security.