<?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.7 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-connolly-tls-mlkem-key-agreement-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="connolly-tls-mlkem-key-agreement">ML-KEM Post-Quantum Key Agreement for TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-connolly-tls-mlkem-key-agreement-00"/>
    <author fullname="Deirdre Connolly">
      <organization>SandboxAQ</organization>
      <address>
        <email>durumcrustulum@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="March" day="04"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>mlkem</keyword>
    <keyword>tls</keyword>
    <keyword>post-quantum</keyword>
    <abstract>
      <?line 58?>

<t>This memo defines ML-KEM as a standalone <tt>NamedGroup</tt> for use in TLS 1.3
to achieve post-quantum key agreement.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-connolly-tls-mlkem-key-agreement/"/>.
      </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/dconnolly/draft-tls-mlkem-key-agreement"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>FIPS 203 standard (ML-KEM) is a new FIPS / CNSA 2.0 standard for
post-quantum key agreement via lattice-based key establishment mechanism
(KEM). Having a fully post-quantum (not hybrid) FIPS-compliant key
agreement option for TLS 1.3 is necessary for eventual movement beyond
hybrids and for users that need to be fully post-quantum sooner than later.</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="construction">
      <name>Construction</name>
      <t>We align with <xref target="hybrid"/> except that instead of joining ECDH options
with a KEM, we just have the KEM as a <tt>NamedGroup</tt>.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TLS 1.3's key schedule commits to the the ML-KEM encapsulation key and
the encapsulated shared secret ciphertext, providing resilience against
re-encapsulation attacks against KEMs used for key agreement.</t>
      <t>ML-KEM is MAL-BIND-K-PK-secure but only LEAK-BIND-K-CT and
LEAK-BIND-K,PK-CT-secure, but because of the inclusion of the ML-KEM
ciphertext in the TLS 1.3 key schedule there is no concern of malicious
tampering (MAL) adversaries, not just honestly-generated but leaked key
pairs (LEAK adversaries). The same is true of other KEMs with weaker
binding properties, even if they were to have more constraints for
secure use in contexts outside of TLS 1.3 handshake key agreement.These
computational binding properties for KEMs were formalized in <xref target="CDM23"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers two new entries to the TLS Named Group
(or Supported Group) registry, according to the procedures in <xref section="6" sectionFormat="of" target="tlsiana"/>.</t>
      <dl>
        <dt>Value:</dt>
        <dd>
          <t>0x0768 (please)</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>MLKEM768</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>FIPS 203 version of ML-KEM-768</t>
        </dd>
        <dt>Value:</dt>
        <dd>
          <t>0x1024 (please)</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>MLKEM1024</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>FIPS 203 version of ML-KEM-1024</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="FIPS203">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CDM23" target="https://eprint.iacr.org/2023/1933.pdf">
          <front>
            <title>Keeping Up with the KEMs: Stronger Security Notions for KEMs and automated analysis of KEM-based protocols</title>
            <author initials="C." surname="Cremers" fullname="Cas Cremers">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <author initials="A." surname="Dax" fullname="Alexander Dax">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <author initials="N." surname="Medinger" fullname="Niklas Medinger">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <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</organization>
            </author>
            <date day="7" month="September" year="2023"/>
            <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 all but one of the component algorithms is broken.
   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.

   Discussion of this work is encouraged to happen on the TLS IETF
   mailing list tls@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dstebila/draft-ietf-tls-hybrid-design.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-09"/>
        </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="23" month="January" year="2024"/>
            <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.

   This document updates the following RFCs: 3749, 5077, 4680, 5246,
   5705, 5878, 6520, 7301, and 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-08"/>
        </reference>
      </references>
    </references>
    <?line 163?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71X/24buRH+n0/BKn/ULrz6YRuJI1zvTpGcWrAsO5bTQ1AU
OGp3JPG8u9wjuZIVw+/SZ+mT9RtSsi07hwBF0QDO7g45nJlvZr6hkiQRXvuc
urJxMUrOTy/klXE++VSr0teFPKe17M0tUUGllzNj5c1oIjvNo4ZQ06mlZVem
pixNnq8Tn7ukyG+pSG5pnaitlkiVp7mx667U5cwIkZm0VAUsZlbNfPI9/aTd
Fq6eFto5bUq/rqA5PL35KOUbqXJn4LkuM6oI/5W+cSAblGlvrFY5fwx7H/CA
443h9c3HhijrYkq2KzJ41RUw7qh0tetKb2sSiOdIwPzK2KwrZCKDQ/wC7/hR
MTq/R3SEUJYU7E8ora3264aA3u3cmrqC9Maq0lXGejlSa7LyadeSyhrGpfz+
ViljxI1fcLIu5/JvrMLyQukccvj1syY/axo7Z7Gy6QLihfeV67ZavItFeknN
7bYWC1pTa1aOWtBvsd5c+0U9hWa2TUgr5ucP0tJA9LVfGMswQV/KWZ3nMbED
0jazJPubk8IyDKtSf1UeWezKiSqzqbnrfQprFIPJalsXqa2dr/O6+HnO0mZq
AHRpbAHNZUDt+mP/feekza8fh1eTw/YRTF4Om51282378KQ1Hk5umrzSxJIQ
XHXPtPuDi8OjbjC7rfxzooqx/VzJFWCQfkESrYCimHhryvmzjMix4QBc6AXe
IxGIBBIGFghvpcrXTjtpZrycTJWDtLLGm9TkrhHtKjsn35XbJFFldembWqU2
5OewfXjU6rw/OmpW2SxohGqVLA+fj8iHf8nmKdFg8LnflH2LHFn3KI9p6Sv3
agXmsDCcXPXkGeXFwuT+q+wjv4iZQxxuwTPlIwbfNttryoG6e2Gyl9MdAMJh
z9f+d0bHTXmBducUvbA81rc54n21+l/ZhvZiPbU6A/Ukg9BIoS+iMMnI6XnJ
vZo7jQp4scvO0pPj43dT7YRIkkSqqfNWpV6ImwUqpaDCyIxmuiT4G0kYnivp
PKBTuSlJ/jpGUFno/V+Dm7UjILBlY+GNVGhyWtIOQ0m0rHxs2aaI9gudZTkJ
8QbBor6zOuVo8f1GXqC6lyp+cgeh5I42fthM7kXv9qVm90pahf6TLdkfT3ry
sNl+2gofxR97IpdayVx5r1PatAivE9SnuXaLsKegdAHGcIXYY6NNeaaW3KUq
MM16N9C90vhNjvaDV5grRZUjG56PFk+mTRVy+2yWcTglpeScsuuwABxxqspl
YZZRa0prU2YiWohNv0mDdeAL5XECokAepvQt/5xBGi3vLDlwsk3GHwTJlgKh
8JEDrgIdvrk4KKDCs8hhPH+e3PBA46ccX4b369NPn4fXpwN+n5z1RqPHF7HZ
MTm7/DwaPL09afYvLy5Ox4OoDKncEYnGRe8LVtirxuXVzfBy3Bs1uOQ81yxm
eB1wwQTcBK25hSpLgQWdQE+kVk/xAZ0P/at//6tzLO/v/wTyPux03j88bD5O
Ou+O8bFaUBmtmRLYxU/wMDJXVaQsn6LyXKaq0h5j/4BbxC3MqpQLsgQ0//IP
RuafXfnDNK06xz9uBBzwjnCL2Y4wYPZa8ko5gvgN0TfMPKK5I3+B9K6/vS87
31vcnwl/+CkHT8ikc/LTj2jnWEOgk20P/0KACWQUB9n9fSxYAEx3KVU+liqo
05PKeEb9ZlBwaKrT/uBs0xpOBF3F8+tArkj+hoEsFwrcshmMkZ6ec1Ko5scZ
yS5pkL7aVnLssz+7UM8uXVBW54SbY1Fo77h++GD+29Aflcizq/NIw4E60Hy8
4WkFleUWKD88KEXZyVRXKAVPd/6AB+5SM/NLC27ONdQAzFxx5MJSsmsARKTS
W7fdEOd6zazEPf6SQzc+ogsueqPkw3A8SM6Tq/PEcfgkp7WPNTw67Z1vl/s3
IYJnooMrlm6UDoLWlFLFvI60cKi6TPOa77xbQTQsnuKM7UiPPLaDrue+CNRm
+I6ekg0HFSiPVJvaCa+KiixjtIdA9qXKliAzZTWhu5hOY97BW87jej6nkjMK
UNjXnNRtZG1RKQ0O3OPYnp8BwmYGcygS9oKv12zfsF8R4VBmKz7Iiinu8OwK
EgenfPCBWVjqEDsYgSLThDosjOXy4cJHxny4jYkN/pvJiFWGCBex2nMxsu0t
TiDhDLVzSy9yC38dCR4ctQ+VgQnw2rGnq1/wKVwXcv01Mt39fbhfPjyEjhj2
xr3X3bBDoJZ+rwGwa1maa7Qlj5OVCcMVywzktj/Y+9By8TeA2IMbk7rinw1b
2b6Mp9g1+DFNMTjY9Y0+IkhRGmiI6CjaNXDG21Bf8eYS/JZ/V3n4fdKV7bv2
u7cncq9Cvh3tY20QeD0QRdhxMQIU2MNL8DC5PA/iL/i+Ju5w/l2WBdk4yGYA
DdUYJDtQYLUf9vuw9nj94IradEHsgCSY23Wz0z48/q6bvOn/6We0F+5cUxAM
V0QvvS3NKqdszgc4cd+NP0gp+2tjhrlGjQdUyOXgEvnb7sR0+w+33NAlqA8A
AA==

-->

</rfc>
