ML-KEM

Lattices · MLWE · csrc.nist.gov(opens in a new tab)

Programmes
FIPS
Status
FIPS
Security flags
None on current sets

Parameter sets

Parameter sets of ML-KEM
Parameter setLevelpk (B)ct (B)pk+ct (B)KeygenEncapsDecaps
ML-KEM-512 18007681,5686.2 µs6.9 µs8.2 µs
ML-KEM-768 31,1841,0882,2729.3 µs10.0 µs12.0 µs
ML-KEM-1024 51,5681,5683,13612.9 µs13.9 µs16.6 µs

Wall-clock times vary between runs and machines (CPU frequency scaling, other tenants on cloud VMs); cycle counts are the steadier basis for comparison.

History

  1. Update

    ML-DSA, MAYO and ML-KEM: we moved our builds to the latest upstream code. ML-DSA uses the pq-crystals reference at d35ba3f, with two AVX2 conformance fixes by Gregor Seiler: the stricter infinity-norm check FIPS 204 requires (issue 113) and the rounding of use_hint when the low part is zero (bba9534, reported by Eric Biggers). MAYO uses MAYO-C at 412cb8a, which makes the generic echelon-form routine constant-time; our GFNI/AVX-512 build uses the AVX2 echelon-form code, which this commit does not change. ML-KEM uses mlkem-native v2.0.0. Sizes are unchanged and upstream's known-answer tests pass for every set. We re-benchmarked all three on AWS c8i.4xlarge; the timings do not change beyond run-to-run variation.

Full timeline →