クライアントのキーシェアは、1,184 バイトの ML-KEM-768 のカプセル化鍵に 32 バイトの X25519 公開鍵を続けたもの(1,216 バイト)で、サーバーは 1,088 バイトの ML-KEM の暗号文と 32 バイトの X25519 鍵(計 1,120 バイト)で応答します。共有秘密は、32 バイトの ML-KEM の秘密に 32 バイトの X25519 の秘密を続けたものです。珍しいことに、ここではポスト量子の部分が先に来ますが、SecP256r1MLKEM768 と SecP384r1MLKEM1024 では ECDH の部分が先です。
これは、第 3 ラウンドの Kyber を使っていて相互運用性のない、標準化前の X25519Kyber768Draft00(0x6399)を置き換えました。デフォルトで対応しているのは、Chrome と Edge 131(2024年11月)、Firefox 132、iOS と macOS 26(2025年)以降の Safari と Apple プラットフォーム、OpenSSL 3.5、Go 1.24、そしてサーバー側では Cloudflare などの大手 CDN です。IANA はこれを推奨(Recommended)としています。
コストは小さいものの無視できません。キーシェアが大きくなったことで ClientHello が一般的なネットワークパケット 1 つに収まらなくなり、断片化されたハンドシェイクを正しく扱えないミドルボックスが表面化しました。また、OpenSSL 3.6.5 での鍵交換 1 回には 3 つの演算(鍵生成、カプセル化、デカプセル化)が必要で、その速度は Apple M4 Max の 1 コアで毎秒約 19,000〜24,000 回です。ブラウザーのポスト量子チェックで、お使いの接続がこれを使っているかを確認できます。