<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-ecdhe-mlkem-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="ECDHE-MLKEM">Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ecdhe-mlkem-03"/>
    <author initials="K." surname="Kwiatkowski" fullname="Kris Kwiatkowski">
      <organization>PQShield</organization>
      <address>
        <email>kris@amongbytes.com</email>
      </address>
    </author>
    <author initials="P." surname="Kampanakis" fullname="Panos Kampanakis">
      <organization>AWS</organization>
      <address>
        <email>kpanos@amazon.com</email>
      </address>
    </author>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <author initials="D." surname="Stebila" fullname="Douglas Stebila">
      <organization>University of Waterloo</organization>
      <address>
        <email>dstebila@waterloo.ca</email>
      </address>
    </author>
    <date year="2025" month="November" day="22"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>ECDH</keyword>
    <keyword>hybrid</keyword>
    <keyword>ML-KEM</keyword>
    <keyword>post-quantum</keyword>
    <keyword>x25519</keyword>
    <abstract>
      <?line 58?>

<t>This draft defines three hybrid key agreements for TLS 1.3: X25519MLKEM768,
SecP256r1MLKEM768, and SecP384r1MLKEM1024 which combine
a post-quantum KEM with an elliptic curve Diffie-Hellman (ECDHE).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://tlswg.github.io/draft-ietf-tls-ecdhe-mlkem/draft-ietf-tls-ecdhe-mlkem.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-tls-ecdhe-mlkem/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tlswg/draft-ietf-tls-ecdhe-mlkem"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>ML-KEM is a key encapsulation mechanism (KEM) defined in the <xref target="NIST-FIPS-203"/>. It is designed to
withstand cryptanalytic attacks from quantum computers.</t>
      <t>The <xref target="hybrid"/> document defines a framework for combining traditional key exchanges with next-generation key
exchange in TLS 1.3. The goal of this approach is to provide security against both classical and quantum
adversaries while maintaining compatibility with existing infrastructure and protocols.</t>
      <t>This document applies the framework to ML-KEM
and specifies code points for the hybrid groups.</t>
    </section>
    <section anchor="motivation">
      <name>Motivation</name>
      <t>This document introduces three new supported groups for hybrid post-quantum key agreements in TLS 1.3: the X25519MLKEM768,
SecP256r1MLKEM768, and SecP384r1MLKEM1024 which combine ML-KEM with ECDH in the manner of <xref target="hybrid"/>. Any of the hybrid groups
specified in this document may be implemented in a FIPS approved way as discussed in <xref target="discussion"/>.</t>
      <ul spacing="normal">
        <li>
          <t>The first one uses X25519 <xref target="rfc7748"/>, is widely deployed, and often serves as the most practical choice for a single PQ/T hybrid combiner in TLS 1.3.</t>
        </li>
        <li>
          <t>The second group uses secp256r1 (NIST P-256). This group supports use cases that require both shared secrets to be generated by FIPS-approved mechanisms.</t>
        </li>
        <li>
          <t>The third group uses secp384r1 (NIST P-384). This group is intended for high-security environments that require FIPS-approved mechanisms with an increased security margin.</t>
        </li>
      </ul>
      <t>Key establishment using NIST curves is outlined in Section 6.1.1.2 of <xref target="KEYAGREEMENT"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The <xref target="hybrid"/> document defines "traditional" algorithms as those that are already widely adopted and "next-generation" algorithms
as those that are not yet widely adopted, such as post-quantum algorithms. In this document, ECDH using Curve25519, P-256, or
P-384 is considered traditional, while ML-KEM is considered next-generation.</t>
        <t>The <xref target="hybrid"/> document defines a "hybrid" key exchange as one that combines a traditional key exchange with a next-generation key
exchange. This document uses the term "hybrid" in the same way.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="negotiated-groups">
      <name>Negotiated Groups</name>
      <section anchor="client-share">
        <name>Client share</name>
        <t>When the X25519MLKEM768 group is negotiated, the client's key_exchange value
is the concatenation of the client's ML-KEM-768 encapsulation key
and the client's X25519 ephemeral share.
The size of the client share is 1216 bytes (1184 bytes for the ML-KEM part and 32 bytes for X25519).</t>
        <t>Note: The group name X25519MLKEM768 does not adhere to the naming convention outlined in
<xref section="3.2" sectionFormat="of" target="hybrid"/>. Specifically, the order of shares in the concatenation has been
reversed. This is due to historical reasons.</t>
        <t>When the SecP256r1MLKEM768 group is negotiated, the client's key_exchange value
is the concatenation of the secp256r1 ephemeral share and ML-KEM-768 encapsulation key.
The ECDHE share is the serialized value of the uncompressed ECDH point representation as
defined  in <xref section="4.2.8.2" sectionFormat="of" target="RFC8446"/>. The size of the client share is 1249 bytes
(65 bytes for the secp256r1 part and 1184 bytes for ML-KEM).</t>
        <t>When the SecP384r1MLKEM1024 group is negotiated, the client's key_exchange value
is the concatenation of the secp384r1 ephemeral share and the ML-KEM-1024
encapsulation key. The ECDH share is serialized value of the uncompressed ECDH point
represenation as defined in <xref section="4.2.8.2" sectionFormat="of" target="RFC8446"/>. The size of the
client share is 1665 bytes (97 bytes for the secp384r1 part and 1568 for ML-KEM).</t>
      </section>
      <section anchor="server-share">
        <name>Server share</name>
        <t>When the X25519MLKEM768 group is negotiated, the server's key exchange
value is the concatenation of an ML-KEM ciphertext returned from encapsulation
to the client's encapsulation key, and the server's ephemeral X25519 share.
The size of the server share is 1120 bytes (1088 bytes for the ML-KEM part and 32 bytes for X25519).</t>
        <t>When the SecP256r1MLKEM768 group is negotiated, the server's key exchange
value is the concatenation of the server's ephemeral secp256r1 share encoded
in the same way as the client share and an ML-KEM ciphertext returned from encapsulation
to the client's encapsulation key. The size of the server share is 1153 bytes (1088 bytes
for the ML-KEM part and 65 bytes for secp256r1).</t>
        <t>When the SecP384r1MLKEM1024 group is negotiated, the server's key exchange
value is the concatenation of the server's ephemeral secp384r1 share
encoded in the same way as the client share and an ML-KEM ciphertext returned
from encapsulation to the client's encapsulation key. The size of the server
share is 1665 bytes (1568 bytes for the ML-KEM part and 97 bytes for
secp384r1)</t>
        <t>For all groups, the server <bcp14>MUST</bcp14> perform the encapsulation key check
described in Section 7.2 of <xref target="NIST-FIPS-203"/> on the client's encapsulation
key, and abort with an illegal_parameter alert if it fails.</t>
        <t>For all groups, the client <bcp14>MUST</bcp14> check if the ciphertext length matches
the selected group, and abort with an illegal_parameter alert if it fails.
If ML-KEM decapsulation fails for any other reason, the connection <bcp14>MUST</bcp14>
be aborted with an internal_error alert.</t>
        <t>For all groups, both client and server <bcp14>MUST</bcp14> process the ECDH part
as described in <xref section="4.2.8.2" sectionFormat="of" target="RFC8446"/>, including all validity checks,
and abort with an illegal_parameter alert if it fails.</t>
      </section>
      <section anchor="shared-secret">
        <name>Shared secret</name>
        <t>For X25519MLKEM768, the shared secret is the concatenation of the ML-KEM
shared secret and the X25519 shared secret. The shared secret is 64 bytes
(32 bytes for each part).</t>
        <t>For SecP256r1MLKEM768, the shared secret is the concatenation of the
ECDHE and ML-KEM shared secret. The ECDHE shared secret is the x-coordinate of the ECDH
shared secret elliptic curve point represented as an octet string as
defined in <xref section="7.4.2" sectionFormat="of" target="RFC8446"/>.
The size of the shared secret is 64 bytes (32 bytes for each part).</t>
        <t>For SecP384r1MLKEM1024, the shared secret is the concatenation of the
ECDHE and ML-KEM shared secret. The ECDHE shared secret is the x-coordinate of the ECDH
shared secret elliptic curve point represented as an octet string as
defined in <xref section="7.4.2" sectionFormat="of" target="RFC8446"/>.
The size of the shared secret is 80 bytes (48 bytes for the ECDH part and
32 bytes for the ML-KEM part).</t>
        <t>For all groups, both client and server <bcp14>MUST</bcp14> calculate the ECDH part of the
shared secret as described in <xref section="7.4.2" sectionFormat="of" target="RFC8446"/>, including the
all-zero shared secret check for X25519, and abort the connection with an
illegal_parameter alert if it fails.</t>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <ul spacing="normal">
        <li>
          <t><strong>FIPS-compliance</strong>. All groups defined in this document permit FIPS-approved key derivation as per <xref target="NIST-SP-800-56C"/>
and <xref target="NIST-SP-800-135"/>. NIST's special publication 800-56Cr2 <xref target="NIST-SP-800-56C"/> approves the
usage of HKDF <xref target="HKDF"/> with two distinct shared secrets, with the condition that the first
one is computed by a FIPS-approved key-establishment scheme. FIPS also requires a certified
implementation of the scheme, which will remain more ubiquitous for secp256r1 in the coming years. For
this reason we put the ML-KEM shared secret first in X25519MLKEM768, and the ECDH shared secret
first in SecP256r1MLKEM768 and SecP384r1MLKEM1024. This means that for SecP256r1MLKEM768 and SecP384r1MLKEM1024,
the ECDH implementation must be certified whereas the ML-KEM implementation does not require certification. In
contrast, for X25519MLKEM768, the ML-KEM implementation must be certified.</t>
        </li>
        <li>
          <t><strong>SP800-227 compliance</strong>. The NIST Special Publication 800-227 <xref target="NIST-SP-800-227"/> provides general guidance on the design and use of key-encapsulation mechanisms, including hybrid constructions. The key agreements defined in this document follow the principles described in Section 4.6 of <xref target="NIST-SP-800-227"/>, which discusses the combination of post-quantum and classical key-establishment schemes and the use of approved key combiners. In particular, the shared-secret concatenation and HKDF-based derivation used by the TLS 1.3 are consistent with the composite-KEM constructions and key-combiner recommendations outlined in Sections 4.6.1 and 4.6.2 of <xref target="NIST-SP-800-227"/>. Section 4.6.3 of <xref target="NIST-SP-800-227"/> further provides relevant security considerations for hybrid KEM designs underlying the approach used in this document.</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The same security considerations as those described in <xref target="hybrid"/> apply to the approach used by this document.
The security analysis relies crucially on the TLS 1.3 message transcript, and one cannot assume a similar
hybridisation is secure in other protocols.</t>
      <t><xref target="NIST-SP-800-227"/> includes guidelines and requirements for implementations on using KEMs securely. Implementers are encouraged to use implementations resistant to side-channel attacks,
especially those that can be applied by remote attackers.</t>
      <t>All groups defined in this document use and generate fixed-length public keys, ciphertexts,
and shared secrets, which complies with the requirements described in <xref section="6" sectionFormat="of" target="hybrid"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers three new entries to the TLS Supported Groups registry, according
to the procedures in <xref section="6" sectionFormat="of" target="tlsiana"/>. These identifiers are to be used with the final,
ratified by NIST, version of ML-KEM which is specified in <xref target="NIST-FIPS-203"/>.</t>
      <section anchor="x25519mlkem768">
        <name>X25519MLKEM768</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4588 (0x11EC)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>X25519MLKEM768</t>
          </dd>
          <dt>DTLS-OK:</dt>
          <dd>
            <t>Y</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Combining X25519 ECDH with ML-KEM-768</t>
          </dd>
        </dl>
      </section>
      <section anchor="secp256r1mlkem768">
        <name>SecP256r1MLKEM768</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4587 (0x11EB)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>SecP256r1MLKEM768</t>
          </dd>
          <dt>DTLS-OK:</dt>
          <dd>
            <t>Y</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Combining secp256r1 ECDH with ML-KEM-768</t>
          </dd>
        </dl>
      </section>
      <section anchor="secp384r1mlkem1024">
        <name>SecP384r1MLKEM1024</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4589 (0x11ED)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>SecP384r1MLKEM1024</t>
          </dd>
          <dt>DTLS-OK:</dt>
          <dd>
            <t>Y</t>
          </dd>
          <dt>Recommended:</dt>
          <dd>
            <t>N</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>This document</t>
          </dd>
          <dt>Comment:</dt>
          <dd>
            <t>Combining secp384r1 ECDH with ML-KEM-1024</t>
          </dd>
        </dl>
      </section>
      <section anchor="obsoleted-supported-groups">
        <name>Obsoleted Supported Groups</name>
        <t>Experimental code points for pre-standard versions of Kyber786 were added to the TLS registry as X25519Kyber768Draft00 (25497) and SecP256r1Kyber768Draft00 (25498). This document obsoletes these entries. IANA is instructed to modify the recommended field to 'D' and update the reference to add [ this RFC ].  The comment fields for 25497 and 25498 are updated to "Pre-standards version of Kyber768. Obsoleted by [this RFC]"</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="rfc7748">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="NIST-FIPS-203">
          <front>
            <title>Module-lattice-based key-encapsulation mechanism standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="NIST-SP-800-56C">
          <front>
            <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
            <author fullname="Elaine Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Richard Davis" initials="R." surname="Davis">
              <organization/>
            </author>
            <date month="August" year="2020"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-56cr2"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="NIST-SP-800-135">
          <front>
            <title>Recommendation for existing application-specific key derivation functions</title>
            <author fullname="Q H Dang" initials="Q." surname="Dang">
              <organization/>
            </author>
            <date year="2011"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-135r1"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="NIST-SP-800-227">
          <front>
            <title>Recommendations for Key-Encapsulation Mechanisms</title>
            <author fullname="Gorjan Alagic" initials="G." surname="Alagic">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-227"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="KEYAGREEMENT">
          <front>
            <title>Recommendation for pair-wise key-establishment schemes using discrete logarithm cryptography</title>
            <author fullname="Elaine Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Allen Roginsky" initials="A." surname="Roginsky">
              <organization/>
            </author>
            <author fullname="Apostol Vassilev" initials="A." surname="Vassilev">
              <organization/>
            </author>
            <author fullname="Richard Davis" initials="R." surname="Davis">
              <organization/>
            </author>
            <date month="April" year="2018"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-56ar3"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="hybrid">
          <front>
            <title>Hybrid key exchange in TLS 1.3</title>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shay Gueron" initials="S." surname="Gueron">
              <organization>University of Haifa and Meta</organization>
            </author>
            <date day="7" month="September" year="2025"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if a way is found to defeat the encryption for all but
   one of the component algorithms.  It is motivated by transition to
   post-quantum cryptography.  This document provides a construction for
   hybrid key exchange in the Transport Layer Security (TLS) protocol
   version 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-16"/>
        </reference>
        <reference anchor="tlsiana">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="21" month="July" year="2025"/>
            <abstract>
              <t>   This document updates the changes to TLS and DTLS IANA registries
   made in RFC 8447.  It adds a new value "D" for discouraged to the
   Recommended column of the selected TLS registries and adds a
   "Comment" column to all active registries that do not already have a
   "Comment" column.  Finally, it updates the registration request
   instructions.

   This document updates RFC 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-15"/>
        </reference>
        <reference anchor="HKDF">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk">
              <organization/>
            </author>
            <author fullname="P. Eronen" initials="P." surname="Eronen">
              <organization/>
            </author>
            <date month="May" year="2010"/>
          </front>
          <seriesInfo name="DOI" value="10.17487/rfc5869"/>
          <refcontent>RFC Editor</refcontent>
        </reference>
      </references>
    </references>
    <?line 304?>

<section anchor="change-log">
      <name>Change log</name>
      <ul spacing="normal">
        <li>
          <t>draft-ietf-tls-ecdhe-mlkem-01:
          </t>
          <ul spacing="normal">
            <li>
              <t>Alignment with the final version of <xref target="hybrid"/></t>
            </li>
            <li>
              <t>Added new section called Discussion and moved FIPS-compliance and Failures text there.</t>
            </li>
            <li>
              <t>The Construction section has been removed.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-ietf-tls-ecdhe-mlkem-00:
          </t>
          <ul spacing="normal">
            <li>
              <t>Change a name of the draft, following adoption by TLS WG</t>
            </li>
            <li>
              <t>Fixes references to the to NIST ECC CDH</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-03:
          </t>
          <ul spacing="normal">
            <li>
              <t>Adds P-384 combined with ML-KEM-1024</t>
            </li>
            <li>
              <t>Adds text that describes error-handling and outlines how the client and server must ensure the integrity of the key exchange process.</t>
            </li>
            <li>
              <t>Adds note on the incompatibility of the codepoint name X25519MLKEM768 with <xref target="hybrid"/>.</t>
            </li>
            <li>
              <t>Various cosmetic changes.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-02:
          </t>
          <ul spacing="normal">
            <li>
              <t>Adds section that mentions supported groups that this document obsoletes.</t>
            </li>
            <li>
              <t>Fix a reference to encapsulation in the FIPS 203.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-01:
          </t>
          <ul spacing="normal">
            <li>
              <t>Add X25519MLKEM768</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-mlkem-00:
          </t>
          <ul spacing="normal">
            <li>
              <t>Change Kyber name to ML-KEM</t>
            </li>
            <li>
              <t>Swap reference to I-D.cfrg-schwabe-kyber with FIPS-203</t>
            </li>
            <li>
              <t>Change codepoint. New value is equal to old value + 1.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-kyber-01: Fix size of key shares generated by the client and the server</t>
        </li>
        <li>
          <t>draft-kwiatkowski-tls-ecdhe-kyber-00: updates following IANA review</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
MLigSrG+QdI2ffZcbWKsa1aBHG+dOqAz2Oa0J73f1z3bC0Ioasad8NF7YveA
g72QXrXiicSqMApxy2tiTZXydxHMXK5Z56XrqGvko909H6KkgLRdwaYVlFDL
tD2700Po5Kh0W0a9FeARAHxWk67rnLVlJIfx3kpqtBrENwmUf4VA2yHi/yW6
XgBHVVa0140Ola+jGFhL4J3gsfU7EQUudQlinOyc42Xf8buNQLOG4ybM4FZA
UfSb1EWHcQfxdW7XRO4OsHo0Yl+JRvysqs3zzy8ahXqsN796RREOLxWZEnki
X72K+UkltHbLrFmcmmMB1nbqxxha4art2yxU5QSqfCitG7OPj4St7fHB7j7e
RXAIgiu1KSDFmZejDG7ctF3VuV23Y2hQkLGz0ogJWRg2S2E6/oOVMJScXRTY
vbCgFtsp1/f9DCdvV7V09Uwb2hkMS5xUQaVWH1X0xaoYonZd3CSYs8W+lZKZ
IhTgsUCagNKoJcOq1ks786PFfd8PWoDaYTW23fisgKSqHCnYyhZlJ0OtyxxU
SFlKoQ1QAHkUadJFbb4AHy9t033adul6OLBVN36F4FPfW6t4V61ZvZOsb3X5
UstMitz3J8brYtCG1X1W0dER4KzEbqasJYzFT2S8yW9nTVWOCi0Sv9gZIZbn
8ZGQxV5mv+Gv7Ti5fusVcmLngjfX/skAb/shQiX1Um68N1x3vAGXtH0BRsDO
fWfX+MYTeHOpUtw1JLGuw03yxGYWGBrZ7PruuWlCWNVcy10vF+vpjtJOH3Qj
coyLLCsWRMYcwgeks5nsAKqH0//+Zy8+aCTjTR6DO4Q+ZAic2HaovKfdY8Ee
ftXU3uSjpjJsL5gWuIWeomvTYIRQGDZ0M5ZHAdFbQRx3RRSKRtRMa6BkaRyK
4A6+T0mlf+rRGIukNVBpBjwpK92trakEOgG5qvqeWsKfwFoq3IQ1fThDIo4H
uNj9Odwg77ilFCBx/TQ+LjVdCioT1HAhuRco39A/DM0nT1ajr+7uG2iahpc5
TMmWPmzWbxdKs8aoKM6F52/Y+mkc4Lo9dBneRELVveuE9aoHhu8RluH62yaF
NNcixTeY/ZsKfDBiCG/pRUMC+lJYmg6uGFQOpkdBy+KjPiBibkPPBpvNORXI
jYEjqNs9w/d5zNGnjDMkKhsm+LgCiC+CFqoXFuu05fwagaLENqXr2MGhHvvq
h0FtJMNGn29IgsrCsRlc/y+qxwPa8FAQKjUwhq9pyKe6W0EQVPjCxuIE1EqE
uJPLLLyx6TPp0wHUQd1lBakgmrq3IqQIoLiAFM6tc89wviaXQaqQ69Cmh6D3
AH7sb9cuBUHXAiCsL9/+griSQIRHG+4BS+W5LYluyB4PWo0Meu10cnWyxpyb
xOPGAGRmW8sJwoVuPmKBCfRUx1su2tpN9a7F9bS4W6exfJEkdEOYhCob3bPT
0vdMOoT6p2q+gIyKTbFRA3HNq971LslJKjGABkTWZ8jL2CsNrbLP6c2gQ+3w
0oUkqQxvPVlZfbRFF+52EGaM/xMLaseMH/O9/aMj/nLnYTA4P92CL2fSuRe+
VsTvK0vPQEzRh0v6+BP8/hhwVKY0dkVjY0gkIKLSSEsj8PWU5lv6dlq96/LX
dEpUSCB1x4Z9PgY2RQLT/tajV1SJ7T36snknC+oyd+iZ+24dc+tW/1n81Znn
Whb50zy2c7ouk689k2ebmFxZ/mdy6YquK1zSyZu5/DAyRUY9/K4PMnb+ADcl
RaiYrbxng8t3RG8QhU6Doxj0lMvlSOrDowPI4rGkm6YOZYOrB8/G+OaMzy04
ODrDV6E7O/zlcH/v9eFWlViT+tZOOtrqvsUoPDuUeRkZsCZ2oEUPklx24oia
FakaLz0WVqoAQJAZff/m7BuXj87TcA3XQT34HbjjPzvghrs1/yXmlHW6nazb
x4mLeKK9iHDCIrcrHdS7bojTNIEnMB43VAUA9XM49Jeee406guhCT0xcgzAr
JpDGP/X/Igzw/e8ruFdDZjNrJXSEh00a6qTDLSGd0ntEj73Y14ahxqUeOZ1R
itq5y9OXN0JlhOBUMbbuRQdujdI7bWSQ1QmhE07h9N7fUp5ib8ex58UhXJff
X15pXd8n/VQswodQeAxIFo300/e0+A2EXFNrvApZ8A9dgc5PTzlWqypS7ur3
+2v+54/jID3jXsuFzD1dddhqoheQsFV8Npxq1BEwlmZEPCZkLo02fOpvMasl
Jbro4f9Gop0hY8l7ov2TeOvvSlWD2Vez45qSHLMYnx+qvP2qNnTOASNccW7d
mwpisvEelLb+p9AKqwRJYWaSSnzuWXH8lUIdNoQabIXENQvvrFbezPrayVrY
iIPewWJant6+hvoqBlVOIOB/LbGDitiVAP9V69s2TcjgJF0/QsbvNwsxb1OP
D/eTsZ5EcJ9ciJGM7mgtaSRkLc2tK0XG/ArcvGoEQloHyAAbFll4A/AXuCh8
iXw6DdknyYZCK9qbf/zSeovaMd9Gw+7rjtk59shqGh5O+K/lvZIL9j8hingj
EzYAAA==

-->

</rfc>
