<?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.26 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-tls-westerbaan-xyber768d00-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.0 -->
  <front>
    <title abbrev="xyber768d00">X25519Kyber768Draft00 hybrid post-quantum key agreement</title>
    <seriesInfo name="Internet-Draft" value="draft-tls-westerbaan-xyber768d00-00"/>
    <author 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="March" day="29"/>
    <keyword>kyber</keyword>
    <keyword>x25519</keyword>
    <keyword>post-quantum</keyword>
    <abstract>
      <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>
    <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>
    <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>
    </section>
    <section anchor="construction">
      <name>Construction</name>
      <t>We instantiate draft-ietf-tls-hybrid-design-06 with
    X25519 <xref target="rfc8037"/> 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="rfc8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </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="23" month="September" year="2022"/>
            <abstract>
              <t>   This memo specifies 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-01"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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 and Amazon Web Services</organization>
            </author>
            <date day="27" month="February" 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-06"/>
        </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="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>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
