<?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-02" 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-02"/>
    <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="31"/>
    <workgroup>None</workgroup>
    <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="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">
              <organization/>
            </author>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <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">
              <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>
    <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-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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

-->

</rfc>
