<?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-01" 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-01"/>
    <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="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="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-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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
v37+yItbnej/SPQSDUoRAAA=

-->

</rfc>
