Verifying and optimizing post-quantum cryptography at Amazon
Summary
Amazon's Automated Reasoning Group, AWS Cryptography, and the open-source community have developed mlkem-native, a high-assurance, high-performance C implementation of the ML-KEM post-quantum cryptography standard (FIPS-203). Released in 2024, mlkem-native combines the simplicity of the ML-KEM reference implementation with advanced research optimizations and formal verification techniques. This project addresses the "store now, decrypt later" threat posed by future quantum computers to current public-key cryptography like RSA and ECC. By employing automated reasoning tools such as CBMC for memory and type safety verification in C code, and SLOTHY with HOL Light/s2n-bignum for assembly optimization and correctness proofs, mlkem-native achieves significant performance gains, increasing operations per second by factors of 2.0 to 2.4 on c7i and c7g EC2 instances, while ensuring security and maintainability. The implementation is integrated into AWS-LC, Amazon's open-source cryptographic library, and is available to the broader community.
Key takeaway
For CTOs and VP of Engineering evaluating post-quantum cryptography solutions, mlkem-native demonstrates that high security and performance are achievable without sacrificing maintainability. You should consider adopting formally verified implementations like mlkem-native to protect against future quantum threats, leveraging its open-source nature and proven performance gains. Prioritize solutions that offer transparent documentation of their verification scope and assumptions, such as the SOUNDNESS.md file, to thoroughly assess residual risks and build trust in your cryptographic infrastructure.
Key insights
Automated reasoning reconciles cryptographic security, performance, and maintainability through formal verification and optimization.
Principles
- Formal verification enhances security and maintainability.
- Modular design enables hardware-specific optimizations.
- Transparency about proof limits builds trust.
Method
Automated reasoning uses CBMC for C-level memory/type safety and SLOTHY with HOL Light/s2n-bignum for formally verified, optimized assembly, separating logic from microarchitecture-specific optimizations.
In practice
- Use CBMC for C code memory and type safety verification.
- Apply SLOTHY for automated assembly optimization.
- Publish SOUNDNESS.md for transparency on verification limits.
Topics
- Post-Quantum Cryptography
- ML-KEM
- Automated Reasoning
- Formal Verification
- mlkem-native
Code references
Best for: CTO, VP of Engineering/Data, AI Security Engineer, Security Engineer, Software Engineer
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by Amazon Science homepage.