Ml_kem

Website:

https://github.com/b-erdem/ml_kem_ada

Author:
  • Baris Erdem
Maintainer:
  • Baris Erdem <baris@erdem.dev>
License:

GPL-3.0-only

Version:

1.0.0

Alire CI:

Dependencies:
  • image/svg+xml gnat >=14.2.1
  • image/svg+xml sha3 ~1.0
Dependents:

No dependents.

Badge:

SPARK-proved ML-KEM (FIPS 203) lattice-based key encapsulation

#ml-kem #post-quantum #cryptography #spark #embedded #security #verified

SPARK-proved ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism) implementing NIST FIPS 203. Formally verified at SPARK level 2 with zero pragma Assume, zero unproved VCs. The 7-layer Cooley-Tukey NTT, BaseMul, IndCPA, and FO transform are all proved end-to-end with no escape hatches.

All three FIPS 203 parameter sets – ML-KEM-512, ML-KEM-768, ML-KEM-1024 – are supported and selected at build time via the parameter_set crate configuration variable; default is ML-KEM-768 (NIST Category III).

Proof techniques are documented in PROOF_NOTES.md and reusable for similar lattice / ARX cryptography.

Built on sha3_ada for SHA-3/SHAKE. No heap allocation, pragma Pure, suitable for embedded and safety-critical systems. Constant-time execution empirically verified via cachegrind (LLd byte-identical). FIPS 140-3 validation is out of scope. See SECURITY.md for the full threat model.