Post-Quantum Cryptography ML-KEM and ML-DSA Now Available in Python's pyca/cryptography
The pyca/cryptography library, one of the most downloaded Python packages with 1.2 billion monthly downloads, has added support for two NIST-standard post-quantum cryptographic primitives: ML-KEM (FIPS 203) for key encapsulation and ML-DSA (FIPS 204) for digital signatures. This update, funded by the Sovereign Tech Agency and released in cryptography>=48, enables Python applications to begin transitioning to quantum-resistant cryptography. The White House has mandated that high-value federal systems must adopt post-quantum key establishment by December 31, 2030, and post-quantum digital signatures by December 31, 2031. However, the migration is not a drop-in replacement due to significantly larger key and signature sizes (e.g., ML-DSA-65 signatures are 3,309 bytes vs. 64 bytes for Ed25519). The library also plans to support SLH-DSA (FIPS 205) in the future. Integration with real-world protocols like TLS and SSH is still ongoing, but the availability of these primitives is a critical step for the Python ecosystem.
Key facts
- pyca/cryptography adds ML-KEM and ML-DSA support in version 48.
- NIST-standard primitives enable quantum-resistant key exchange and signatures.
- Post-quantum keys/signatures are 10-50x larger than classical equivalents.
- US federal mandate requires migration by 2030/2031.
- SLH-DSA support and protocol integration are future work.