Safeguard
Developer Tools•

ML-KEM-512, 768 or 1024: how to pick a parameter set

FIPS 203 defines three ML-KEM parameter sets mapped to NIST security categories 1, 3 and 5. How to choose among them without guessing, with a test list.

Safeguard Security Team
3 min read

FIPS 203 defines three ML-KEM parameter sets. NIST's draft transition report maps ML-KEM-512 to 128 bits of security strength (category 1), ML-KEM-768 to 192 bits (category 3) and ML-KEM-1024 to 256 bits (category 5). Higher strength costs performance. Pick the one your protocol or policy names, and otherwise pick deliberately.

What the standard says

FIPS 203, published 13 August 2024, specifies ML-KEM with three parameter sets: ML-KEM-512, ML-KEM-768 and ML-KEM-1024. NIST states they offer increasing security strength, with lower performance as strength rises.

NIST IR 8547 (initial public draft) lists them in a table with security strength and security category. Its table labels contain typos in the draft, but the values are consistent: 128 bits and category 1, 192 bits and category 3, 256 bits and category 5.

How to choose

Do not choose in a vacuum. Start with what constrains you.

  1. Protocol or profile. A protocol specification or a regulator may name a set. Follow it.
  2. Policy target. If your policy says you need roughly AES-192 or AES-256 equivalent strength, map to 768 or 1024.
  3. Performance and size budget. Larger parameter sets mean larger keys and ciphertexts, which matters on constrained devices and in packet-limited protocols. Measure with your own library.
  4. Interoperability. What your peers and libraries support matters more than a small strength difference.

If none of these decide it, many teams default to the middle option as a balance, but check what your protocol stack already expects before deciding. I did not confirm a vendor-neutral recommendation from the NIST pages I fetched, so treat this as a decision method, not an official rule.

What not to do

  • Do not hard-code sizes. Keys and ciphertexts differ by parameter set. Use library constants.
  • Do not mix a high-strength KEM with a weak symmetric cipher. The data cipher also sets your overall strength. NIST's FAQ says AES with 128, 192 or 256 bit keys can continue to be used.
  • Do not roll your own implementation. Use a maintained library and check the version for known issues.

Testing checklist

  • Round-trip test with each parameter set you plan to support.
  • Negative tests with corrupted ciphertexts. A KEM implementation should not reveal the failure through different behavior.
  • Handshake size tests through proxies and load balancers.
  • Version pinning and a plan to update the library, since NIST's FIPS 203 page notes an issue will be corrected in a future revision.

Make it configurable

Keep the parameter set in configuration. If your policy changes or a better option appears, you want a config change and a rollout, not a rewrite.

Quick check

Which ML-KEM parameter set is the strongest?

ML-KEM-1024, mapped by NIST's draft to 256 bits of security strength and category 5.

Does a higher parameter set make the whole system stronger?

Only the key establishment part. The symmetric cipher, signatures and implementation quality also set the real strength.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.