<?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.6.39 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tls-westerbaan-xyber768d00-03" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="xyber768d00">X25519Kyber768Draft00 hybrid post-quantum key agreement</title>
    <seriesInfo name="Internet-Draft" value="draft-tls-westerbaan-xyber768d00-03"/>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <author fullname="Douglas Stebila">
      <organization>University of Waterloo</organization>
      <address>
        <email>dstebila@uwaterloo.ca</email>
      </address>
    </author>
    <date year="2023" month="September" day="24"/>
    <workgroup>None</workgroup>
    <keyword>kyber</keyword>
    <keyword>x25519</keyword>
    <keyword>post-quantum</keyword>
    <abstract>
      <?line 76?>

<t>This memo defines X25519Kyber768Draft00, a hybrid post-quantum key exchange
    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://bwesterb.github.io/draft-westerbaan-tls-xyber768d00/draft-tls-westerbaan-xyber768d00.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-tls-westerbaan-xyber768d00/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/bwesterb/draft-westerbaan-tls-xyber768d00"/>.</t>
    </note>
  </front>
  <middle>
    <?line 82?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>The final draft for Kyber is expected in 2024.
There are already early deployments of post-quantum key agreement,
    with more to come before Kyber is standardised.
To promote interoperability of early implementations,
    this document specifies a preliminary hybrid post-quantum key agreement.</t>
      </section>
      <section anchor="warning-relation-with-x25519kyber768draft00-for-hpke">
        <name>Warning: relation with X25519Kyber768Draft00 for HPKE</name>
        <t>In <xref target="hpkexyber"/> a hybrid KEM with the same name is defined
for use in HPKE. It differs from the hybrid KEM implicit in
this document: here we use the X25519 shared secret directly,
whereas in <xref target="hpkexyber"/>, the ephemeral X25519 public key
(ciphertext) is mixed in.
For use in HPKE this is required to be IND-CCA2 robust.
This is not required for use in TLS 1.3, thanks to
the inclusion of the keyshare in the message transcript.</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 instantiate draft-ietf-tls-hybrid-design-06 with
    X25519 <xref target="rfc7748"/> and Kyber768Draft00 <xref target="kyber"/>.
The latter is Kyber as submitted
    to round 3 of the NIST PQC process <xref target="KyberV302"/>.</t>
      <t>For the client's share,
 the key_exchange value contains
    the concatenation of the client's X25519 ephemeral share (32 bytes)
    and the client's Kyber768Draft00 public key (1184 bytes).
    The resulting key_exchange value is 1216 bytes in length.</t>
      <t>For the server's share,
 the key_exchange value contains
    the concatenation of the server's X25519 ephemeral share (32 bytes)
    and the Kyber768Draft00 ciphertext (1088 bytes) returned
    from encapsulation for the client's public key.
    The resulting key_exchange value is 1120 bytes in length.</t>
      <t>The shared secret is calculated as the concatenation of
    the X25519 shared secret (32 bytes)
    and the Kyber768Draft00 shared secret (32 bytes).
    The resulting shared secret value is 64 bytes in length.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>For TLS 1.3, this concatenation approach provides a secure key
    exchange if either component key exchange methods (X25519
    or Kyber768Draft00) are secure <xref target="hybrid"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers a new entry 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>0x6399 (please)</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>X25519Kyber768Draft00</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>Pre-standards version of Kyber768</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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="kyber">
          <front>
            <title>Kyber Post-Quantum KEM</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SPI &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="31" month="March" year="2023"/>
            <abstract>
              <t>   This memo specifies a preliminary version ("draft00", "v3.02") of
   Kyber, an IND-CCA2 secure Key Encapsulation Method.

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://bwesterb.github.io/draft-schwabe-cfrg-kyber/draft-cfrg-
   schwabe-kyber.html.  Status information for this document may be
   found at https://datatracker.ietf.org/doc/draft-cfrg-schwabe-kyber/.

   Source for this draft and an issue tracker can be found at
   https://github.com/bwesterb/draft-schwabe-cfrg-kyber.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cfrg-schwabe-kyber-02"/>
        </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>
        <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</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="27" month="March" year="2023"/>
            <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-04"/>
        </reference>
        <reference anchor="hpkexyber">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum KEM for HPKE</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="4" month="May" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum KEM,
   for HPKE (RFC9180).  This KEM does not support the authenticated
   modes of HPKE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-westerbaan-cfrg-hpke-xyber768d00-02"/>
        </reference>
        <reference anchor="KyberV302" target="https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf">
          <front>
            <title>CRYSTALS-Kyber, Algorithm Specification And Supporting Documentation (version 3.02)</title>
            <author initials="R." surname="Avanzi">
              <organization/>
            </author>
            <author initials="J." surname="Bos">
              <organization/>
            </author>
            <author initials="L." surname="Ducas">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="J." surname="Schanck">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehle">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 186?>

<section anchor="change-log">
      <name>Change log</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
        </li>
      </ul>
      <section anchor="since-draft-tls-westerbaan-xyber768d00-02">
        <name>Since draft-tls-westerbaan-xyber768d00-02</name>
        <ul spacing="normal">
          <li>Explain relation with HPKE hybrid</li>
        </ul>
      </section>
      <section anchor="since-draft-tls-westerbaan-xyber768d00-01">
        <name>Since draft-tls-westerbaan-xyber768d00-01</name>
        <ul spacing="normal">
          <li>Change reference for X25519</li>
        </ul>
      </section>
      <section anchor="since-draft-tls-westerbaan-xyber768d00-00">
        <name>Since draft-tls-westerbaan-xyber768d00-00</name>
        <ul spacing="normal">
          <li>Set working group to None.</li>
          <li>Bump to cfrg-schwabe-kyber-02</li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
RcDQV64ExKO69O9ff60g6/4PzMIqpywUAAA=

-->

</rfc>
