<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rosomakho-tls-ecdhe-mlkem512-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="ECDHE-MLKEM512 hybrid">Post-quantum hybrid ECDHE-MLKEM512 Key Agreement for TLSv1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-rosomakho-tls-ecdhe-mlkem512-01"/>
    <author fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <date year="2026" month="September" day="14"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>tls</keyword>
    <keyword>mlkem</keyword>
    <keyword>hybrid</keyword>
    <abstract>
      <?line 37?>

<t>This document defines two post-quantum hybrid key exchange groups for TLS 1.3
that combine ML-KEM-512 with ECDHE: MLKEM512X25519 and SecP256r1MLKEM512.
These groups provide lower-overhead hybrid key exchange options for deployments
where ClientHello size, fragmentation risk, constrained-device performance, or
compatibility with existing network infrastructure are important
considerations. The groups defined in this document are intended for use with
TLS 1.3 and DTLS 1.3 and follow the hybrid key exchange construction used by
ECDHE-MLKEM key agreement for TLS 1.3.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://yaroslavros.github.io/tls-ecdhe-mlkem512/draft-rosomakho-tls-ecdhe-mlkem512.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rosomakho-tls-ecdhe-mlkem512/"/>.
      </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/yaroslavros/tls-ecdhe-mlkem512"/>.</t>
    </note>
  </front>
  <middle>
    <?line 48?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The transition to post-quantum cryptography requires new key exchange
mechanisms for TLS 1.3 <xref target="TLS"/>. Hybrid key exchange
combines a post-quantum key encapsulation mechanism with a traditional
elliptic-curve Diffie-Hellman key exchange, allowing deployments to gain
protection against future cryptographically relevant quantum computers while
retaining the security properties of widely deployed classical key exchange
mechanisms.</t>
      <t><xref target="TLS-HYBRID"/> describes the general design for
hybrid key exchange in TLS 1.3, and
<xref target="TLS-ECDHE-MLKEM"/> defines several ECDHE-MLKEM
hybrid groups based on ML-KEM-768 and ML-KEM-1024.</t>
      <t>This document defines two additional ECDHE-MLKEM hybrid groups that use
ML-KEM-512:</t>
      <ul spacing="normal">
        <li>
          <t>MLKEM512X25519</t>
        </li>
        <li>
          <t>SecP256r1MLKEM512</t>
        </li>
      </ul>
      <t>This document follows the construction and terminology of <xref target="TLS-HYBRID"/>. It
defines only additional TLS NamedGroup values and their associated key share
encodings. It does not modify the TLS 1.3 handshake, key schedule, or
negotiation mechanisms.</t>
    </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?>

<t>This document uses the terminology of TLS 1.3 <xref target="TLS"/> and hybrid key exchange
for TLS 1.3 <xref target="TLS-HYBRID"/>.</t>
      <t>The term "ML-KEM" refers to the Module-Lattice-Based Key-Encapsulation
Mechanism defined in <xref target="FIPS203"/>.</t>
    </section>
    <section anchor="motivation-and-applicability">
      <name>Motivation and Applicability</name>
      <t>The ECDHE-MLKEM hybrid groups defined in <xref target="TLS-ECDHE-MLKEM"/> are appropriate
for general-purpose post-quantum hybrid deployments and provide higher
post-quantum security categories than ML-KEM-512. However, the use of
ML-KEM-768 or ML-KEM-1024 increases the size of TLS key shares.</t>
      <t>Larger key shares increase the size of TLS handshake messages. In particular,
larger client key shares increase the size of the ClientHello, which can
increase the likelihood of fragmentation and may expose interoperability
problems in deployments involving legacy network devices, middleboxes, or other
network infrastructure with limitations around larger TLS ClientHello messages.
Larger key shares can also increase bandwidth, memory, and computational costs
for constrained endpoints or for deployments operating over lossy or
bandwidth-constrained networks.</t>
      <t>The groups defined in this document use ML-KEM-512 in combination with
classical ECDHE key exchange. This provides hybrid post-quantum and classical
key exchange with lower bandwidth, memory, and computational overhead than
corresponding hybrid groups based on ML-KEM-768 or ML-KEM-1024.</t>
      <t>The following table shows the key share sizes for the groups defined in this
document:</t>
      <table>
        <thead>
          <tr>
            <th align="left">Group</th>
            <th align="left">Client key share size</th>
            <th align="left">Server key share size</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">MLKEM512X25519</td>
            <td align="left">832 bytes</td>
            <td align="left">800 bytes</td>
          </tr>
          <tr>
            <td align="left">SecP256r1MLKEM512</td>
            <td align="left">865 bytes</td>
            <td align="left">833 bytes</td>
          </tr>
        </tbody>
      </table>
      <t>ML-KEM-512 provides a lower post-quantum security category than ML-KEM-768 and
ML-KEM-1024. Deployments that can support hybrid groups based on ML-KEM-768 or
ML-KEM-1024 <bcp14>SHOULD</bcp14> generally prefer those groups. The groups defined in this
document are intended for constrained, compatibility-sensitive,
bandwidth-sensitive, or otherwise policy-selected deployments.</t>
    </section>
    <section anchor="hybrid-group-definitions">
      <name>Hybrid Group Definitions</name>
      <t>This document defines two additional TLS NamedGroup values for use with the
TLS 1.3 <tt>key_share</tt> extension:</t>
      <ul spacing="normal">
        <li>
          <t>MLKEM512X25519</t>
        </li>
        <li>
          <t>SecP256r1MLKEM512</t>
        </li>
      </ul>
      <t>Each group combines an ML-KEM-512 key exchange with an elliptic-curve
Diffie-Hellman key exchange. The hybrid key exchange values are encoded as the
concatenation of the component key exchange values. The component encodings are
fixed length and are therefore unambiguous.</t>
      <t>For ML-KEM-512, the encapsulation key and ciphertext are encoded as defined in
<xref target="FIPS203"/>. The ML-KEM-512 encapsulation key is 800 octets, and the ML-KEM-512
ciphertext is 768 octets.</t>
      <t>For X25519 and secp256r1, the public key encodings used in the <tt>key_share</tt>
extension are those defined in <xref section="4.2.8.2" sectionFormat="of" target="TLS"/>. The X25519 public
key is the 32-octet public value for X25519 defined in
<xref section="5" sectionFormat="of" target="ELLIPTIC-CURVES"/>. The secp256r1 public key is encoded
as the <tt>UncompressedPointRepresentation</tt> and is 65 octets.</t>
      <t>The server <bcp14>MUST</bcp14> perform the encapsulation key check described
in Section 7.2 of <xref target="FIPS203"/> on the client's ML-KEM-512 encapsulation key and
abort with an <tt>illegal_parameter</tt> alert if it fails.</t>
      <t>The client <bcp14>MUST</bcp14> check that the ML-KEM-512 ciphertext length is
768 octets and abort with an <tt>illegal_parameter</tt> alert if it fails. If ML-KEM
decapsulation fails for any other reason, the connection <bcp14>MUST</bcp14> be aborted with
an <tt>internal_error</tt> alert.</t>
      <t>Both client and server <bcp14>MUST</bcp14> process the ECDHE component as described in
<xref section="4.2.8.2" sectionFormat="of" target="TLS"/>, including all validity checks, and abort with an
<tt>illegal_parameter</tt> alert if it fails.</t>
      <section anchor="mlkem512x25519">
        <name>MLKEM512X25519</name>
        <t>For MLKEM512X25519, the client key_exchange value contains the ML-KEM-512
encapsulation key followed by the X25519 public key:</t>
        <artwork><![CDATA[
struct {
    opaque kem_key[800];
    opaque ecdhe_key[32];
} MLKEM512X25519ClientShare;
]]></artwork>
        <t>The server key_exchange value contains the ML-KEM-512 ciphertext followed by
the X25519 public key:</t>
        <artwork><![CDATA[
struct {
    opaque kem_ciphertext[768];
    opaque ecdhe_key[32];
} MLKEM512X25519ServerShare;
]]></artwork>
        <t>The name MLKEM512X25519 reflects the order of the component algorithms in the
NamedGroup definition. This is the ordering convention specified by
<xref section="3.2" sectionFormat="of" target="TLS-HYBRID"/>, which requires the order of shares in the
concatenated <tt>key_exchange</tt> value to match the order of algorithms indicated in
the definition of the NamedGroup. Accordingly, the ML-KEM-512 component appears
first in both the name and the encoded <tt>key_exchange</tt> value, followed by the
X25519 component.</t>
        <t>This differs from the name X25519MLKEM768 defined in <xref target="TLS-ECDHE-MLKEM"/>.
That name is retained for historical compatibility reasons and is explicitly
documented by <xref target="TLS-ECDHE-MLKEM"/> as not following the naming convention in
<xref section="3.2" sectionFormat="of" target="TLS-HYBRID"/>. This document follows the convention from
<xref target="TLS-HYBRID"/> for the new MLKEM512X25519 NamedGroup.</t>
      </section>
      <section anchor="secp256r1mlkem512">
        <name>SecP256r1MLKEM512</name>
        <t>For SecP256r1MLKEM512, the client key_exchange value contains the secp256r1
ECDHE public key followed by the ML-KEM-512 encapsulation key:</t>
        <artwork><![CDATA[
struct {
    opaque ecdhe_key[65];
    opaque kem_key[800];
} SecP256r1MLKEM512ClientShare;
]]></artwork>
        <t>The server key_exchange value contains the secp256r1 ECDHE public key followed
by the ML-KEM-512 ciphertext:</t>
        <artwork><![CDATA[
struct {
    opaque ecdhe_key[65];
    opaque kem_ciphertext[768];
} SecP256r1MLKEM512ServerShare;
]]></artwork>
        <t>The component order for SecP256r1MLKEM512 follows the convention used by
<xref target="TLS-ECDHE-MLKEM"/> for NIST elliptic curves.</t>
      </section>
    </section>
    <section anchor="shared-secret-calculation">
      <name>Shared Secret Calculation</name>
      <t>For each group defined in this document, the hybrid shared secret is the
concatenation of the component shared secrets. The resulting hybrid shared
secret is used as the ECDHE shared secret input to the TLS 1.3 key schedule.</t>
      <t>For MLKEM512X25519, the ML-KEM shared secret is produced by ML-KEM-512
encapsulation and decapsulation, and the X25519 shared secret is produced by
the X25519 Diffie-Hellman operation. The hybrid shared secret is the
concatenation of the ML-KEM shared secret followed by the X25519 shared secret:</t>
      <artwork><![CDATA[
MLKEM512X25519_shared_secret =
    MLKEM512_shared_secret || X25519_shared_secret
]]></artwork>
      <t>The ML-KEM-512 shared secret is 32 octets, and the X25519 shared secret is 32
octets. The resulting hybrid shared secret is therefore 64 octets.</t>
      <t>For SecP256r1MLKEM512, the ECDHE shared secret is produced by the secp256r1
Diffie-Hellman operation, and the ML-KEM shared secret is produced by
ML-KEM-512 encapsulation and decapsulation. The hybrid shared secret is the
concatenation of the ECDHE shared secret followed by the ML-KEM shared secret:</t>
      <artwork><![CDATA[
SecP256r1MLKEM512_shared_secret =
    SecP256r1_shared_secret || MLKEM512_shared_secret
]]></artwork>
      <t>The secp256r1 shared secret is the x-coordinate of the ECDH shared secret
elliptic curve point represented as an octet string, as described in
<xref section="7.4.2" sectionFormat="of" target="TLS"/>. The secp256r1 shared secret is 32 octets, and the
ML-KEM-512 shared secret is 32 octets. The resulting hybrid shared secret is
therefore 64 octets.</t>
      <t>Both client and server <bcp14>MUST</bcp14> calculate the ECDHE component of the shared secret
as described in <xref section="7.4.2" sectionFormat="of" target="TLS"/>, including the all-zero shared secret
check for X25519. If this computation or validation fails, the endpoint <bcp14>MUST</bcp14>
abort the connection with an <tt>illegal_parameter</tt> alert.</t>
    </section>
    <section anchor="regulatory-context">
      <name>Regulatory Context</name>
      <t>The regulatory considerations related to component ordering and the use of
hybrid ECDHE-MLKEM key exchange are discussed in
<xref section="5" sectionFormat="of" target="TLS-ECDHE-MLKEM"/> and apply to the groups defined in this
document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations outlined in <xref section="6" sectionFormat="of" target="TLS-HYBRID"/> and
<xref section="6" sectionFormat="of" target="TLS-ECDHE-MLKEM"/> apply to the groups defined in this document.
This document defines additional ECDHE-MLKEM hybrid groups and does not change
the TLS 1.3 handshake, key schedule, authentication mechanisms, or the general
hybrid key exchange construction.</t>
      <t>The groups defined in this document use ML-KEM-512. ML-KEM-512 provides a lower
post-quantum security category than ML-KEM-768 and ML-KEM-1024. As a result,
the groups defined in <xref target="TLS-ECDHE-MLKEM"/> provide stronger post-quantum
security properties and are generally preferred when their larger key shares
and implementation costs are acceptable.</t>
      <t>The groups defined in this document are intended for constrained,
compatibility-sensitive, bandwidth-sensitive, or otherwise policy-selected
deployments where the lower overhead of ML-KEM-512 is considered an acceptable
trade-off.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers two new entries to the
<eref target="https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8">TLS Supported Groups registry</eref>,
according to the procedures in <xref section="6" sectionFormat="of" target="IANA-TLS"/>.</t>
      <section anchor="mlkem512x25519-1">
        <name>MLKEM512X25519</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4586 (0x11EA)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>MLKEM512X25519</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 ML-KEM-512 with X25519 ECDH</t>
          </dd>
        </dl>
      </section>
      <section anchor="secp256r1mlkem512-1">
        <name>SecP256r1MLKEM512</name>
        <dl spacing="compact">
          <dt>Value:</dt>
          <dd>
            <t>4585 (0x11E9)</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>SecP256r1MLKEM512</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-512</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS203">
          <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="TLS">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <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.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, 8422, and 8446.  This document also specifies
   new requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </reference>
        <reference anchor="TLS-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="TLS-ECDHE-MLKEM">
          <front>
            <title>Post-quantum hybrid ECDHE-MLKEM Key Agreement for TLSv1.3</title>
            <author fullname="Kris Kwiatkowski" initials="K." surname="Kwiatkowski">
              <organization>PQShield</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <date day="26" month="May" year="2026"/>
            <abstract>
              <t>   This draft 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 (Elliptic Curve Diffie-
   Hellman) exchange.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ecdhe-mlkem-05"/>
        </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="ELLIPTIC-CURVES">
          <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA-TLS">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document updates the changes to the 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.</t>
              <t>This document updates RFC 8447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9847"/>
          <seriesInfo name="DOI" value="10.17487/RFC9847"/>
        </reference>
      </references>
    </references>
    <?line 350?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks the authors and contributors of <xref target="TLS-HYBRID"/> and
<xref target="TLS-ECDHE-MLKEM"/>, whose work this document builds on.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA7Va63bbNhL+j6fAKj+27RHlu+O4TVvHdjY6tZOs7XQ3m9OT
QCQk4ZgiWF6kKE76LPss+2Q7MwBJgKJkN3v2jy2CxGVmvvlmBkAQBKxQRSyP
ee+1zovg91IkRTnj0+UoUxE/Pz17cR5cXvxyfnmws8t/kUt+MsmknMmk4GOd
8ZuL6/nOYK/HxGiUyTkM0+piBuqxUBRyorPlMVfJWDMW6TARM5g3ysS4CDKd
65m4neqgiPNAhtFUBrP4Vs5gjGB7h+XlaKbyXOmkWKbQa3h+85zzR1zEuYZJ
VRLJVMKfpOj1eU9GqtCZEjE+DE+ewT9Ya294dfO8x5JyNpLZMYtgRccs1Eku
k7zMj/kYBpMMZNhjIpMChr2WYZmpYtljC53dTjJdptB6k4kkT3VW8AuxlBlv
vrqVS/gwOmY84CAH/iMh8IdRBJvLpIRpOb9/NM6NrL1/wOQqmfC/YRdsnwkV
QztM8bOSxXigswk2iyycQvO0KNL8eGsLv8ImNZeD6rMtbNgaZXqRyy3ov4X9
JqqYliPouRRgh1jM4e/Wqh3w0xiUlhfOJE6XgRlnoHRH56377TyYFrO4x5go
i6nOUIkwIefjMo4NVN7aufhVNQp9AGKJRH0SBaDjmP8rD0UsM3ojjaKW9aw/
fzJvB6GeMZbobAa95mSP58PX17vbe8f87NVwsLM9ONzePdp6Oby+GeCbAbxi
DKFbd2FBEHAxyotMhAVjN1OVc0B1Sb4RybFKZM6LheZph2MBUrj8GE5FMpEG
CnnlTxz8iRVTUXBY5AhG4ZcXAXhTgO60ABUbrzzmlY/9c/fgYOcJF0mE4Hm9
e3CY7VTvBrAumddTpJmeq0jyWC9kFui5zKZSRJ2L0inq06wKnCvWSxQsZ4up
zCQ/jRU8vZBxrHmuPsk+H2digl+QGXim8ts+R+cC9YAMURDJuQolT2VGOkxC
iU4J/jdLoctIxYB5I578qPIC8Z7IAv0OGSMTMFAZFiXMDc7J1QxdBlRKDgwi
ZTRvPuAgbyWtMUIE/XnhWYdGSAokjIgELEFFODez+idlnrkPYw2iLmAc2akt
IyksEIWH0SI+WjKHCulr0aZOHH1ggDRTURRLxh7xYVJkOjJDIawkL5AiFA1d
tOAUZsu00JNMpNMlz+TvpcoAdYlceMtjM4k/VD7zUMbv7v4CP58OgzMiCPLJ
bBwe7e8fjlT+5cuAv1iVlVlY5lz4a6GPklCkeRkbFNTTGsMKlCQiQUTMADsK
MBYGwHdzyc/UeKxkgJACdHgz9oHmQfkICQeJqIsJYIsBqAtpNC+wIQf9loQU
RzsK/D5GFcVyDsvltQIBf2Uhs5wvpgoMkMkChsCp0NS5JWN0HEBuoUBqPQZp
IgmDmcWArcNYQGyCGdZpHYxsdB28ePvsanjmq9wACjwkV5PkyxcYNw8zNUL6
QDDLBNAdc/Ma7ce6EAggt2btI2Cr+RwM+pM63EtTGr7K5Zwmc7pVs1mnGglE
N+jastLjwyNyEPu4s727P9jEhiKqEOBOwv1JiP7AjVhDfUC437UoDxpWCK89
tfFbo0nPSXHNYPeZSnSsJ0s0691dYyEE/7Bg1cp1AvZ2lo6qfglBKaKYzOci
LtEhcMypVBkHPOhQQbA0VsqnQDkMnENHAK0ch4Yloqfqgs+gcbykFVaOCSaN
oM8tQJ+6h1MZlbFhzATyqEK1HAwR9oif6gTyC8PbxGC4elpybpgEB8MMJee9
yzfXN5ge4X/+8hX9vjr/+5vh1fkZ/r5+cXJxUf9g9ovrF6/eXJw1v5qep68u
L89fnpnO0Mq9Jta7PHnbI2Ty3qvXN8NXL08uet3MDH49MvycpeCOoEKRs8on
iM2fnb7+z7939pG/rp6f7u7sPAEIm4ejncf78ABRKjGzkeXMI2h4yUSaSpHh
KEAIHNhKFZD3wbcA/qleJBzjG2jzu3eomd+O+Q+jMN3Z/9E2oMBeY6Uzr5F0
ttqy0tkosaOpY5pam157S9P+ek/ees+V3p3GH36KMcMIdo5++pG1fQcc0DhO
y0+a8AG/QNmo5g5KYn6o8XzLBjYYFxBIPt4Dbh4jD4P5cc5LjYgPLkQBMUIG
z4h2oAAJzt0Qwy7rEONE+7s7m83RTI9gLEjZRO32J2kaA1ubnMOsZD0VecO2
GBVlx4QkxfCQobuTzJaxg7TMIEDKzgTQDWS4piozm6oJAJB5XeooZIsoRWYR
iZMYQqSGlA64m1BO+YweM4eiYVkOQ4M0IZQ4lX0xg6sMW9MVUsqFyCZQkzRt
dceVfjVlASnluZhIZLmEpwKiZgjWyvosNqOFlDveOyj+dtLMPgbocAo6SJj3
faxuZaymWkfYy09DUbMzgZAkQxCnYCCvbA9aH8VyhivwLKKSuY7nmAXEciLC
ZZ2KmiwW6MLkayP9ER9AubpAs63JWCn7idVMmWWBxQFbsDSrEFSfm1DXCuzQ
P4hPRW+jsxEICQlJMYVFyRmU2Ib3TGIjbLwKAU85gdPJySFbi1KtUGB40Ur0
OemJ8nCsE6BkyPMlxp96vsAdykqeW8++LwNHgDplDbw3WaUxG6XiTVJFHudR
C6b5qi5n8sqpPK8hJVRjMC9XMvbAGuhh2qsLJfQ6yH8zsESqE4zl/P7syHc9
qyCTl1CeKQCCFHuMM9bGJk8wCXuxVqWsUinkRyYX+Wyx1BoI2q9lNnfRRO1U
fXzm9V/WKis/86O9XahmoO7H39vb5jdbybzw7eFB8+Xenv3SSeIaiwmr/41E
t/RozmaazFUmpDhOQUBFM3TIy5R2VB5iG3c4boOvJfAY834MSjCyrovoTSUm
W19iOs7S517VG+AGlMJNhb7jXE1jTS8LRcEEYhf2iaHmkV4goVhnKzaDhVYC
+ICcvDuxdWtkBGNdJ38AML0nMH0A9ypwzTp5cKp+LoDQSZO8KSrdsMZX3Rbe
+5Uj21A5Glt1lUtVxg5morScskwSDQyF8LNUZAMRGkwnlVe1RjGzNJ/UeT4O
z8bqIwwey2RCq49MjotZJmgVQnUiQPJJqUu03/OGLEB8E8z9mpo2EpChVApj
FKD0thANJpmbCNEiHdWuDgvwQP/WgKsi71fVjNOHOZPCx+RA9LFdubMTBa6c
krWNDGk5AthWWwRWO7RPQp4jXSCxGkhWVeh7Xhp2bcv9/cHu4Giwa1OQSka7
CjMls4LhHHu7AS23Wg1Zj7Btu3iaqyY5wOH/cn5xMYT0+TQ4fXP16/n1Uyg1
Hj/eP6rmrMV1JYVprVmYwRb/8CZBmED4ANFfY+i9kvhUJSwfSHfQD4i01qwZ
n6ibKhC7hbYGG1Aqhrf1FkIEuRKvJHlsVOWAAtmQ4E0R46/5Znwg+YoREmvl
iR9UjAlS/B7SPCANyK5AghgQwtWYK6i+hYorEWzaRyKYRRJf+whzYW1dBli1
AZpxoK9YAx+O7TRQSrqC0WsCgUiWhmc5JlbaFIzI24nVHy0dSlOaH2BCaQqt
APNKYM/3Mst0NT2I/QyGq+Q2TuFYMdOQSBpYmASnIRBy4qbeZesR38c8MC4p
E8F6FiCtIoqgqGHrxJ6+2ENt9uhRm8MtO7ltfQc+iJH3PjWi9nA/LW8TySq4
TEJEG6f0sefF+AVElT/++IOZrJrfma3/VPxeYso0ew9fvAP2+u179wVtctGr
vV1486W1epMoXSPrfE+Du772cGlc0DpisK8RoxnqHaD+T0lj0ru2NHh00j4q
gNCD2YORQ2cRSLsS50SMlWYxNcURBkYnLYjqvMJm4soZC7EY1jtRPE9lqCBA
k0oaJO/VKK53BaoSr97H9pZX14qtKA0Df3Bt9cEaq4BCShTh1B/FEytSIfUH
F8OPGqkqdTQiD/hJCIk/Olq87K8AoFEbbS9BqaWyvMDFjrRJmYwhqphaheuu
lffbvsCs2epZ6g1WyHxwy2Sc6Vkzh/maTI7EuXkDAw+IgIWpI4xotr9tygpT
4DFqSPWje0xj+DGvghVU1wBuVcTLOv81a+/cMDGbnk79Y9bdQo3Heh1Ysbhb
t89bDYOaYf7eU11Q4SlJyzEcexMBduSsyIErzX+KButcwRwQuRlDmwQ3heMN
RNIQxeGBTyE+U35ZleR/osQmC1orGVuVrKG8rxZphTU7JOumx8ZzDUWMu8y7
Dl3VQV8XznEgPD6uqxVO1Yop0mgVdFwLDsdPRRxW+5mEL9nURet2UPruUWRu
hsvNcOpBdYzXx5YwwK9lXDi7GuYj1gxMEgs3a2nNnaRlUW3hVkWie4QxWJ9F
GEisCpPScahxirUpBFKRl9g19Yv17U3juqG6VU7abTAT6b5C451SrUl2vI+s
M/iaMiVS9N6O85Qcofqk9fLzZ97VqcG+44Mr8uztrtSB6/S4t8tsrbIJRL6u
bPF7uO8XkGuItRNpPjB8Yl1nw3ZRuxkUa9l3BWxfiY0uubpDQCc0VrTViY76
q1V4dPdzab/i8y6Z+Mcg1JQSgWCuSP7XzCdATjvOgBJb9xo+QSNRaQ7cD9Dp
byiBHg/2V0r+DQtdBTJ7EO4fCGbWDeZNlV9o6V521n5Wj74KW9rg67ThloM4
CpSEwSeZ6dZwpvxuNj6oOqbw4ux747YjlZNOnVxtSJljAxLH7gi0SuV7i3MK
g1dygorAjd5TyCMgfBvcZU27f70H729Qxg4RphW5qQK2zm2Pv1YvMfq7d7i7
FKk8LPO8c9OnI3nFajpN42UV4u7ZBjbBvtrVPvVkqV3Mbnn7guqyiFc3vA7b
abC96rHyvrXs+5fMmyV37xM/6N4GEWN1r8GeAj/oXgPe+cOkKmzfa6Ddb+ca
TOfdF/dix1cdQA34hjOKzYexnWcU3oEPP8GhDJP0WbcJujLI6kgYRNPJpHVW
wrquJlW7y+3zC3R9vAJhL6fE7VNFRoXcLI1lc3RKJ4bmeDsMZUqnVA/U7caz
D7bu7IP/6bMP5h5XmnuJdCBMB0v1mZ0eu8YljjOehpEncaRjeDtNBno8Jrcd
nrw86XBZV1DcqJCgpi0gLKiV6fbCQlNhCa/NOT05HXuHHnBtjqWkPZ1BNsNu
2fK3b6rrtIvFYqBEIsxd3RxvfJF4dKO25tD24+AjXp195DcGR9/2mag2LSrv
p23HqLQ7KS3m+AllDvBK4NXz0ydH+4/N/YnVjUD+KxZ/x4wf8/2Do0P+zfbH
nZ3zk2/hzRnFKbo8Su9XuuK1yuDVL/TyLTxfSUDEjMBCbS+pDVALOZeZwlM6
vD2l7wt6d0rnRihg+5asTVfRp9jdMc9TEcJnT3uEv7DofVlX4fvCHVjhnnQJ
19X7/yWfX1wbGZ1yiK+REQ92RyK8RUifhLeJXsQympi7vHfH5jK8jJ726PY7
dkAPN1ewidluTa5nWnJ7OI7gHpUFNqzcm7MhaYXPcHcPT3LogoRPGKNSxRFe
shuw/wJZgWVwkjAAAA==

-->

</rfc>
