Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

secp256r1MLKEM768 is a TLS 1.3 hybrid key-agreement group. It combines ephemeral NIST P-256 (secp256r1) ECDHE with ML-KEM-768, the post-quantum key-encapsulation mechanism standardized in NIST FIPS 203. The combination establishes the secret that TLS 1.3 feeds into its key schedule; it is not a cipher for application data, a signature algorithm, or a promise that every part of a connection is post-quantum.

What the name means

The name identifies both components: secp256r1 is the P-256 elliptic curve used for ephemeral ECDH, and MLKEM768 is the ML-KEM parameter set with its 768 security level. IETF RFC 10024, published in August 2026, defines this group alongside X25519MLKEM768 and SecP384r1MLKEM1024.

RFC 10024 describes the purpose directly: “This document defines three hybrid key agreement mechanisms for TLS 1.3 — X25519MLKEM768, SecP256r1MLKEM768, and SecP384r1MLKEM1024 — that combine the post-quantum ML-KEM (Module-Lattice-Based Key Encapsulation Mechanism) with an ECDHE (Ephemeral Elliptic Curve Diffie-Hellman) exchange.”

It is a supported group negotiated in TLS 1.3. It is not a standalone encryption product and cannot be dropped into an arbitrary protocol without the TLS 1.3 transcript, encoding, validation and key-schedule rules specified by the RFC.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How the hybrid handshake works

1. The client sends two ephemeral components

In its TLS key share, the client sends a P-256 ephemeral public point followed by an ML-KEM-768 encapsulation (public) key. For this group, the client share is 1,249 bytes: 65 bytes for the uncompressed P-256 point and 1,184 bytes for the ML-KEM public key.

2. The server creates its P-256 share and encapsulates

The server generates its own P-256 ephemeral key pair, performs ECDHE with the client point, and uses the client’s ML-KEM public key to create an ML-KEM ciphertext and shared secret. Its response share is 1,153 bytes: a 65-byte P-256 point plus a 1,088-byte ML-KEM ciphertext.

3. Both sides obtain two secrets

The ECDHE operation gives both parties the same P-256 shared secret. The server already has the ML-KEM secret produced during encapsulation; the client decapsulates the returned ciphertext to recover the matching value.

4. TLS combines them in a defined order

The group specifies concatenating the ECDHE and ML-KEM shared secrets in that order. The result is a 64-byte hybrid secret. TLS 1.3 then uses that value in its normal key schedule to derive handshake and application traffic secrets. Symmetric encryption of records happens later with the traffic keys; the hybrid group does not replace AES-GCM, ChaCha20-Poly1305 or another TLS record cipher.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The lengths above are protocol-encoding sizes, not a benchmark and not the size of the complete packet. ClientHello contains extensions and other fields, so a message carrying this share can exceed one network packet.

What “hybrid” protects—and what it does not

Security if one component remains sound

The migration goal is resilience: an attacker should not recover the negotiated secret merely by breaking one component, provided the other component, the combiner, the implementation and the TLS transcript remain secure. P-256 also preserves a familiar, widely implemented ECDHE mechanism while ML-KEM is introduced.

Not an all-purpose quantum-proof connection

Do not describe the entire connection as quantum-proof. RFC 9954, which discusses post-quantum key establishment for TLS, explicitly leaves post-quantum authentication outside its scope. A deployment can therefore use a hybrid key exchange while still authenticating the server with conventional certificate signatures. Future quantum resistance depends on the authentication algorithms, certificate chain, endpoint software and cryptographic assumptions as well as key exchange.

Not automatically secure outside TLS 1.3

RFC 10024’s analysis relies on the TLS 1.3 transcript and key schedule. It does not establish that copying the same two algorithms and concatenation into another protocol has the same security. Implementers must use the normative wire format, length checks, validation and error handling rather than treating this explanation as implementation pseudocode.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Wire sizes and deployment consequences

Item SecP256r1MLKEM768 value Meaning
Client key share 1,249 bytes 65-byte P-256 point + 1,184-byte ML-KEM-768 public key
Server key share 1,153 bytes 65-byte P-256 point + 1,088-byte ML-KEM-768 ciphertext
Combined secret 64 bytes Ordered concatenation supplied to the TLS 1.3 key schedule

Large shares can trigger packet fragmentation, middlebox limits or different handshake timing. Offering several hybrid groups can also duplicate an ML-KEM key share in ClientHello, increasing the message further. Test MTU, proxies, load balancers and retry behavior in the actual network path instead of assuming that a successful local handshake proves production compatibility.

How it compares with the other RFC 10024 groups

Group Traditional component ML-KEM component Why a deployment might choose it
X25519MLKEM768 X25519 ML-KEM-768 Uses the X25519 ecosystem with the same ML-KEM security level.
SecP256r1MLKEM768 P-256 ML-KEM-768 Useful where both component shared-secret mechanisms must come from FIPS-approved algorithm families.
SecP384r1MLKEM1024 P-384 ML-KEM-1024 Targets contexts seeking a larger traditional and ML-KEM security margin.

RFC 10024 does not provide a universal performance ranking. CPU cost, hardware acceleration, packet handling and library implementation determine the result in a particular environment. A group name alone also does not make an implementation FIPS compliant: certification depends on the exact module, validated configuration and operational controls.

Implementation and rollout checklist

  • Confirm standard support. Use a TLS 1.3 implementation that explicitly names the RFC 10024 group. Experimental Kyber768 code points are older and should not be confused with the standardized ML-KEM group.
  • Use approved, maintained cryptographic code. Do not hand-code point parsing, ML-KEM decapsulation or the hybrid combiner.
  • Protect randomness and secrets. Ephemeral ECDHE keys and ML-KEM operations require a secure random source; use side-channel-resistant implementations and protect private material in memory.
  • Keep authentication expectations separate. Inventory certificate signature algorithms and plan post-quantum authentication independently.
  • Measure the real path. Check ClientHello size, fragmentation, handshake latency, CPU, memory and behavior through every proxy and load balancer.
  • Negotiate fallback deliberately. Decide how clients and servers behave when the peer lacks the hybrid group, and monitor which group was actually selected.

Common failure modes and fixes

The peer reports an unknown or unsupported group

Cause: one endpoint, TLS library or terminator predates RFC 10024 support, or only implements an experimental identifier. Fix: upgrade the terminating component, verify the exact standardized name, and retain a policy-controlled TLS 1.3 fallback while measuring usage.

ClientHello is rejected or the handshake times out

Cause: a middlebox assumes a smaller handshake, mishandles fragmentation or limits extension sizes. Fix: capture the handshake at both sides, test with fragmentation permitted, update the middlebox and avoid silently disabling certificate or hostname checks as a workaround.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Decapsulation or key-share validation errors

Cause: malformed lengths, invalid P-256 points, corrupted ciphertext or non-conforming serialization. Fix: use the library’s RFC implementation, enforce its validation and error paths, and log only safe diagnostic metadata—not private keys or shared secrets.

FIPS procurement rejects the design

Cause: the organization treated the P-256 name as proof of certification. Fix: identify the exact cryptographic module and certificate, its approved mode and version, and whether ML-KEM is covered by the applicable validation.

Performance worsens after enabling several groups

Cause: larger ClientHello messages and duplicated ML-KEM shares, plus extra negotiation work. Fix: offer a deliberate group set, measure on representative hardware and networks, and avoid claiming a speed result without controlled measurements.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Testing without exposing secrets

For a deployment test, record the negotiated TLS version and group, handshake success or failure, message sizes, timing and peer software versions. Packet captures should be handled as sensitive operational data even though ephemeral key exchange is designed to prevent recovery of the session keys from the public transcript. Test both successful negotiation and the controlled fallback path.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Or skip the browser setup

If your team needs a clean visual record of a TLS test page or documentation view, ScreenshotNeo returns a screenshot or PDF from one GET request. It removes cookie banners, newsletter popups and chat widgets before capture; bot checks, blank pages, failed loads and cache hits are not billed, and response headers identify the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info and capture_pdf tools for Claude, Cursor and other MCP clients.

Example (see the ScreenshotNeo API documentation):

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account.

Bottom line for engineers

SecP256r1MLKEM768 is a precisely specified TLS 1.3 key-agreement group: P-256 ECDHE plus ML-KEM-768, combined into a 64-byte secret for the TLS key schedule. It is a migration mechanism that can remain secure if one component survives, not a guarantee covering authentication, every future attack or every other protocol. Adopt it through a conforming library, test the larger handshake on your network, and evaluate post-quantum authentication as a separate project.

Frequently Asked Questions

Is secp256r1MLKEM768 a cipher suite?

No. It is a TLS 1.3 supported group for key agreement. TLS negotiates the record-protection cipher separately.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can I use the group in TLS 1.2?

RFC 10024 defines these hybrid mechanisms for TLS 1.3. A TLS 1.2 implementation cannot claim support merely by adding the name.

Does the 64-byte value encrypt application data directly?

No. TLS 1.3 derives handshake and application traffic keys from the hybrid secret; those traffic keys protect records.

Are experimental Kyber768 identifiers equivalent to ML-KEM-768?

No. RFC 10024 obsoletes the experimental draft code points. Verify that software uses the standardized ML-KEM group.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.