Tamanhos em bytes (FIPS 203, tabela 3), chave de encapsulamento / texto cifrado: ML-KEM-512 800 / 768 (categoria 1), ML-KEM-768 1.184 / 1.088 (categoria 3), ML-KEM-1024 1.568 / 1.568 (categoria 5); o segredo compartilhado tem sempre 32 bytes. As chaves de desencapsulamento podem ser armazenadas como a semente de 64 bytes d ‖ z. Em um núcleo do Apple M4 Max, o OpenSSL 3.6.5 executa cerca de 41.000 gerações de chaves ML-KEM-768, 63.000 encapsulamentos e 40.000 desencapsulamentos por segundo.
Uma transformação de Fujisaki–Okamoto com rejeição implícita torna o ML-KEM seguro contra ataques de texto cifrado escolhido: um texto cifrado inválido produz um segredo pseudoaleatório em vez de um erro. O FIPS 203 exige verificações de entrada nas chaves de encapsulamento (§7.2) e nas chaves de desencapsulamento (§7.3); as implementações também devem evitar os vazamentos por temporização que afetaram as primeiras implementações do Kyber (KyberSlash, 2024).
O ML-KEM-768 é o pilar da troca de chaves híbrida: X25519MLKEM768 no TLS, mlkem768x25519-sha256 no SSH, HPKE e X-Wing, o PQ3 do iMessage da Apple e o PQXDH do Signal. O ML-KEM-1024 é a escolha da CNSA 2.0. O ML-KEM não é interoperável com o Kyber da rodada 3.