<?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.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-hybrid-design-09" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="ietf-tls-hybrid-design">Hybrid key exchange in TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-09"/>
    <author initials="D." surname="Stebila" fullname="Douglas Stebila">
      <organization>University of Waterloo</organization>
      <address>
        <email>dstebila@uwaterloo.ca</email>
      </address>
    </author>
    <author initials="S." surname="Fluhrer" fullname="Scott Fluhrer">
      <organization>Cisco Systems</organization>
      <address>
        <email>sfluhrer@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Gueron" fullname="Shay Gueron">
      <organization abbrev="U. Haifa">University of Haifa</organization>
      <address>
        <email>shay.gueron@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="September" day="07"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 210?>

<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.</t>
      <t>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>
  <middle>
    <?line 216?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document gives a construction for hybrid key exchange in TLS 1.3.  The overall design approach is a simple, "concatenation"-based approach: each hybrid key exchange combination should be viewed as a single new key exchange method, negotiated and transmitted using the existing TLS 1.3 mechanisms.</t>
      <t>This document does not propose specific post-quantum mechanisms; see <xref target="scope"/> for more on the scope of this document.</t>
      <section anchor="revision-history">
        <name>Revision history</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>
        <t>Earlier versions of this document categorized various design decisions one could make when implementing hybrid key exchange in TLS 1.3.</t>
        <ul spacing="normal">
          <li>
            <t>draft-ietf-tls-hybrid-design-09:
            </t>
            <ul spacing="normal">
              <li>Removal of TBD hybrid combinations using Kyber512 or secp384r1</li>
              <li>Editorial changes</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-08:
            </t>
            <ul spacing="normal">
              <li>Add reference to <xref target="SECP256R1Kyber768"/> and <xref target="KyberDraft00"/> drafts</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-07:
            </t>
            <ul spacing="normal">
              <li>Editorial changes</li>
              <li>Add reference to <xref target="X25519Kyber768"/> draft</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-06:
            </t>
            <ul spacing="normal">
              <li>Bump to version -06 to avoid expiry</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-05:
            </t>
            <ul spacing="normal">
              <li>Define four hybrid key exchange methods</li>
              <li>Updates to reflect NIST's selection of Kyber</li>
              <li>Clarifications and rewordings based on working group comments</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-04:
            </t>
            <ul spacing="normal">
              <li>Some wording changes</li>
              <li>Remove design considerations appendix</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-03:
            </t>
            <ul spacing="normal">
              <li>Remove specific code point examples and requested codepoint range for hybrid private use</li>
              <li>Change "Open questions" to "Discussion"</li>
              <li>Some wording changes</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-02:
            </t>
            <ul spacing="normal">
              <li>Bump to version -02 to avoid expiry</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-01:
            </t>
            <ul spacing="normal">
              <li>Forbid variable-length secret keys</li>
              <li>Use fixed-length KEM public keys/ciphertexts</li>
            </ul>
          </li>
          <li>
            <t>draft-ietf-tls-hybrid-design-00:
            </t>
            <ul spacing="normal">
              <li>Allow key_exchange values from the same algorithm to be reused across multiple KeyShareEntry records in the same ClientHello.</li>
            </ul>
          </li>
          <li>
            <t>draft-stebila-tls-hybrid-design-03:
            </t>
            <ul spacing="normal">
              <li>Add requirement for KEMs to provide protection against key reuse.</li>
              <li>Clarify FIPS-compliance of shared secret concatenation method.</li>
            </ul>
          </li>
          <li>
            <t>draft-stebila-tls-hybrid-design-02:
            </t>
            <ul spacing="normal">
              <li>Design considerations from draft-stebila-tls-hybrid-design-00 and draft-stebila-tls-hybrid-design-01 are moved to the appendix.</li>
              <li>A single construction is given in the main body.</li>
            </ul>
          </li>
          <li>
            <t>draft-stebila-tls-hybrid-design-01:
            </t>
            <ul spacing="normal">
              <li>Add (Comb-KDF-1) and (Comb-KDF-2) options.</li>
              <li>Add two candidate instantiations.</li>
            </ul>
          </li>
          <li>draft-stebila-tls-hybrid-design-00: Initial version.</li>
        </ul>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>For the purposes of this document, it is helpful to be able to divide cryptographic algorithms into two classes:</t>
        <ul spacing="normal">
          <li>"Traditional" algorithms: Algorithms which are widely deployed today, but which may be deprecated in the future.  In the context of TLS 1.3, examples of traditional key exchange algorithms include elliptic curve Diffie-Hellman using secp256r1 or x25519, or finite-field Diffie-Hellman.</li>
          <li>"Next-generation" (or "next-gen") algorithms: Algorithms which are not yet widely deployed, but which may eventually be widely deployed.  An additional facet of these algorithms may be that we have less confidence in their security due to them being relatively new or less studied.  This includes "post-quantum" algorithms.</li>
        </ul>
        <t>"Hybrid" key exchange, in this context, means the use of two (or more) key exchange algorithms based on different cryptographic assumptions, e.g., one traditional algorithm and one next-gen algorithm, with the purpose of the final session key being secure as long as at least one of the component key exchange algorithms remains unbroken.
When one of the algorithms is traditional and one of them is postquantum, this is a Post-Quantum Traditional Hybrid Scheme <xref target="I-D.driscoll-pqt-hybrid-terminology"/>; while this is the initial use case for this draft, we do not limit this draft to that case.
We use the term "component" algorithms to refer to the algorithms combined in a hybrid key exchange.</t>
        <t>We note that some authors prefer the phrase "composite" to refer to the use of multiple algorithms, to distinguish from "hybrid public key encryption" in which a key encapsulation mechanism and data encapsulation mechanism are combined to create public key encryption.</t>
        <t>It is intended that the composite algorithms within a hybrid key exchange are to be performed, that is, negotiated and transmitted, within the TLS 1.3 handshake.  Any out-of-band method of exchanging keying material is considered out-of-scope.</t>
        <t>The primary motivation of this document is preparing for post-quantum algorithms.  However, it is possible that public key cryptography based on alternative mathematical constructions will be desired to mitigate risks independent of the advent of a quantum computer, for example because of a cryptanalytic breakthrough.  As such we opt for the more generic term "next-generation" algorithms rather than exclusively "post-quantum" algorithms.</t>
        <t>Note that TLS 1.3 uses the phrase "groups" to refer to key exchange algorithms -- for example, the <tt>supported_groups</tt> extension -- since all key exchange algorithms in TLS 1.3 are Diffie-Hellman-based.  As a result, some parts of this document will refer to data structures or messages with the term "group" in them despite using a key exchange algorithm that is not Diffie-Hellman-based nor a group.</t>
      </section>
      <section anchor="motivation">
        <name>Motivation for use of hybrid key exchange</name>
        <t>A hybrid key exchange algorithm allows early adopters eager for post-quantum security to have the potential of post-quantum security (possibly from a less-well-studied algorithm) while still retaining at least the security currently offered by traditional algorithms.  They may even need to retain traditional algorithms due to regulatory constraints, for example FIPS compliance.</t>
        <t>Ideally, one would not use hybrid key exchange: one would have confidence in a single algorithm and parameterization that will stand the test of time.  However, this may not be the case in the face of quantum computers and cryptanalytic advances more generally.</t>
        <t>Many (though not all) post-quantum algorithms currently under consideration are relatively new; they have not been subject to the same depth of study as RSA and finite-field or elliptic curve Diffie-Hellman, and thus the security community does not necessarily have as much confidence in their fundamental security, or the concrete security level of specific parameterizations.</t>
        <t>Moreover, it is possible that after next-generation algorithms are defined, and for a period of time thereafter, conservative users may not have full confidence in some algorithms.</t>
        <t>Some users may want to accelerate adoption of post-quantum cryptography due to the threat of retroactive decryption: if a cryptographic assumption is broken due to the advent of a quantum computer or some other cryptanalytic breakthrough, confidentiality of information can be broken retroactively by any adversary who has passively recorded handshakes and encrypted communications.  Hybrid key exchange enables potential security against retroactive decryption while not fully abandoning traditional cryptosystems.</t>
        <t>As such, there may be users for whom hybrid key exchange is an appropriate step prior to an eventual transition to next-generation algorithms. Users should consider the confidence they have in each hybrid component to assess that the hybrid system meets the desired motivation.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document focuses on hybrid ephemeral key exchange in TLS 1.3 <xref target="TLS13"/>.  It intentionally does not address:</t>
        <ul spacing="normal">
          <li>Selecting which next-generation algorithms to use in TLS 1.3, or algorithm identifiers or encoding mechanisms for next-generation algorithms.  This selection will be based on the recommendations by the Crypto Forum Research Group (CFRG), which is currently waiting for the results of the NIST Post-Quantum Cryptography Standardization Project <xref target="NIST"/>.</li>
          <li>Authentication using next-generation algorithms.  While quantum computers could retroactively decrypt previous sessions, session authentication cannot be retroactively broken.</li>
        </ul>
      </section>
      <section anchor="goals">
        <name>Goals</name>
        <t>The primary goal of a hybrid key exchange mechanism is to facilitate the establishment of a shared secret which remains secure as long as as one of the component key exchange mechanisms remains unbroken.</t>
        <t>In addition to the primary cryptographic goal, there may be several additional goals in the context of TLS 1.3:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Backwards compatibility:</strong> Clients and servers who are "hybrid-aware", i.e., compliant with whatever hybrid key exchange standard is developed for TLS, should remain compatible with endpoints and middle-boxes that are not hybrid-aware.  The three scenarios to consider are:
            </t>
            <ol spacing="normal" type="1"><li>Hybrid-aware client, hybrid-aware server: These parties should establish a hybrid shared secret.</li>
              <li>Hybrid-aware client, non-hybrid-aware server:  These parties should establish a traditional shared secret (assuming the hybrid-aware client is willing to downgrade to traditional-only).</li>
              <li>Non-hybrid-aware client, hybrid-aware server:  These parties should establish a traditional shared secret (assuming the hybrid-aware server is willing to downgrade to traditional-only).</li>
            </ol>
            <t>
Ideally backwards compatibility should be achieved without extra round trips and without sending duplicate information; see below.</t>
          </li>
          <li>
            <strong>High performance:</strong> Use of hybrid key exchange should not be prohibitively expensive in terms of computational performance.  In general this will depend on the performance characteristics of the specific cryptographic algorithms used, and as such is outside the scope of this document.  See <xref target="PST"/> for preliminary results about performance characteristics.</li>
          <li>
            <t><strong>Low latency:</strong> Use of hybrid key exchange should not substantially increase the latency experienced to establish a connection.  Factors affecting this may include the following.
            </t>
            <ul spacing="normal">
              <li>The computational performance characteristics of the specific algorithms used.  See above.</li>
              <li>The size of messages to be transmitted.  Public key and ciphertext sizes for post-quantum algorithms range from hundreds of bytes to over one hundred kilobytes, so this impact can be substantial.  See <xref target="PST"/> for preliminary results in a laboratory setting, and <xref target="LANGLEY"/> for preliminary results on more realistic networks.</li>
              <li>Additional round trips added to the protocol.  See below.</li>
            </ul>
          </li>
          <li>
            <strong>No extra round trips:</strong> Attempting to negotiate hybrid key exchange should not lead to extra round trips in any of the three hybrid-aware/non-hybrid-aware scenarios listed above.</li>
          <li>
            <strong>Minimal duplicate information:</strong> Attempting to negotiate hybrid key exchange should not mean having to send multiple public keys of the same type.</li>
        </ul>
      </section>
    </section>
    <section anchor="kems">
      <name>Key encapsulation mechanisms</name>
      <t>This document models key agreement as key encapsulation mechanisms (KEMs), which consist of three algorithms:</t>
      <ul spacing="normal">
        <li>
          <tt>KeyGen() -&gt; (pk, sk)</tt>: A probabilistic key generation algorithm, which generates a public key <tt>pk</tt> and a secret key <tt>sk</tt>.</li>
        <li>
          <tt>Encaps(pk) -&gt; (ct, ss)</tt>: A probabilistic encapsulation algorithm, which takes as input a public key <tt>pk</tt> and outputs a ciphertext <tt>ct</tt> and shared secret <tt>ss</tt>.</li>
        <li>
          <tt>Decaps(sk, ct) -&gt; ss</tt>: A decapsulation algorithm, which takes as input a secret key <tt>sk</tt> and ciphertext <tt>ct</tt> and outputs a shared secret <tt>ss</tt>, or in some cases a distinguished error value.</li>
      </ul>
      <t>The main security property for KEMs is indistinguishability under adaptive chosen ciphertext attack (IND-CCA2), which means that shared secret values should be indistinguishable from random strings even given the ability to have other arbitrary ciphertexts decapsulated.  IND-CCA2 corresponds to security against an active attacker, and the public key / secret key pair can be treated as a long-term key or reused.  A common design pattern for obtaining security under key reuse is to apply the Fujisaki-Okamoto (FO) transform <xref target="FO"/> or a variant thereof <xref target="HHK"/>.</t>
      <t>A weaker security notion is indistinguishability under chosen plaintext attack (IND-CPA), which means that the shared secret values should be indistinguishable from random strings given a copy of the public key.  IND-CPA roughly corresponds to security against a passive attacker, and sometimes corresponds to one-time key exchange.</t>
      <t>Key exchange in TLS 1.3 is phrased in terms of Diffie-Hellman key exchange in a group.  DH key exchange can be modeled as a KEM, with <tt>KeyGen</tt> corresponding to selecting an exponent <tt>x</tt> as the secret key and computing the public key <tt>g^x</tt>; encapsulation corresponding to selecting an exponent <tt>y</tt>, computing the ciphertext <tt>g^y</tt> and the shared secret <tt>g^(xy)</tt>, and decapsulation as computing the shared secret <tt>g^(xy)</tt>. See <xref target="HPKE"/> for more details of such Diffie-Hellman-based key encapsulation mechanisms. Diffie-Hellman key exchange, when viewed as a KEM, does not formally satisfy IND-CCA2 security, but is still safe to use for ephemeral key exchange in TLS 1.3, see e.g. <xref target="DOWLING"/>.</t>
      <t>TLS 1.3 does not require that ephemeral public keys be used only in a single key exchange session; some implementations may reuse them, at the cost of limited forward secrecy.  As a result, any KEM used in the manner described in this document MUST explicitly be designed to be secure in the event that the public key is reused.  Finite-field and elliptic-curve Diffie-Hellman key exchange methods used in TLS 1.3 satisfy this criteria.  For generic KEMs, this means satisfying IND-CCA2 security or having a transform like the Fujisaki-Okamoto transform <xref target="FO"/> <xref target="HHK"/> applied.  While it is recommended that implementations avoid reuse of KEM public keys, implementations that do reuse KEM public keys MUST ensure that the number of reuses of a KEM public key abides by any bounds in the specification of the KEM or subsequent security analyses.  Implementations MUST NOT reuse randomness in the generation of KEM ciphertexts.</t>
    </section>
    <section anchor="construction">
      <name>Construction for hybrid key exchange</name>
      <section anchor="construction-negotiation">
        <name>Negotiation</name>
        <t>Each particular combination of algorithms in a hybrid key exchange will be represented as a <tt>NamedGroup</tt> and sent in the <tt>supported_groups</tt> extension.  No internal structure or grammar is implied or required in the value of the identifier; they are simply opaque identifiers.</t>
        <t>Each value representing a hybrid key exchange will correspond to an ordered pair of two or more algorithms.  (We note that this is independent from future documents standardizing solely post-quantum key exchange methods, which would have to be assigned their own identifier.)</t>
        <t>Specific values shall be registered by IANA in the TLS Supported Groups registry.</t>
        <artwork><![CDATA[
    enum {

          /* Elliptic Curve Groups (ECDHE) */
          secp256r1(0x0017), secp384r1(0x0018), secp521r1(0x0019),
          x25519(0x001D), x448(0x001E),

          /* Finite Field Groups (DHE) */
          ffdhe2048(0x0100), ffdhe3072(0x0101), ffdhe4096(0x0102),
          ffdhe6144(0x0103), ffdhe8192(0x0104),

          /* Hybrid Key Exchange Methods */
          X25519Kyber768Draft00(0x6399),
          SecP256r1Kyber768Draft00 (0x639A), ...,

          /* Reserved Code Points */
          ffdhe_private_use(0x01FC..0x01FF),
          ecdhe_private_use(0xFE00..0xFEFF),
          (0xFFFF)
    } NamedGroup;
]]></artwork>
      </section>
      <section anchor="construction-transmitting">
        <name>Transmitting public keys and ciphertexts</name>
        <t>We take the relatively simple "concatenation approach": the messages from the two or more algorithms being hybridized will be concatenated together and transmitted as a single value, to avoid having to change existing data structures.  The values are directly concatenated, without any additional encoding or length fields; this assumes that the representation and length of elements is fixed once the algorithm is fixed.  If concatenation were to be used with values that are not fixed-length, a length prefix or other unambiguous encoding must be used to ensure that the composition of the two values is injective and requires a mechanism different from that specified in this document.</t>
        <t>Recall that in TLS 1.3 a KEM public key or KEM ciphertext is represented as a <tt>KeyShareEntry</tt>:</t>
        <artwork><![CDATA[
    struct {
        NamedGroup group;
        opaque key_exchange<1..2^16-1>;
    } KeyShareEntry;
]]></artwork>
        <t>These are transmitted in the <tt>extension_data</tt> fields of <tt>KeyShareClientHello</tt> and <tt>KeyShareServerHello</tt> extensions:</t>
        <artwork><![CDATA[
    struct {
        KeyShareEntry client_shares<0..2^16-1>;
    } KeyShareClientHello;

    struct {
        KeyShareEntry server_share;
    } KeyShareServerHello;
]]></artwork>
        <t>The client's shares are listed in descending order of client preference; the server selects one algorithm and sends its corresponding share.</t>
        <t>For a hybrid key exchange, the <tt>key_exchange</tt> field of a <tt>KeyShareEntry</tt> is the concatenation of the <tt>key_exchange</tt> field for each of the constituent algorithms.  The order of shares in the concatenation is the same as the order of algorithms indicated in the definition of the <tt>NamedGroup</tt>.</t>
        <t>For the client's share, the <tt>key_exchange</tt> value contains the concatenation of the <tt>pk</tt> outputs of the corresponding KEMs' <tt>KeyGen</tt> algorithms, if that algorithm corresponds to a KEM; or the (EC)DH ephemeral key share, if that algorithm corresponds to an (EC)DH group.  For the server's share, the <tt>key_exchange</tt> value contains concatenation of the <tt>ct</tt> outputs of the corresponding KEMs' <tt>Encaps</tt> algorithms, if that algorithm corresponds to a KEM; or the (EC)DH ephemeral key share, if that algorithm corresponds to an (EC)DH group.</t>
        <t><xref target="TLS13"/> requires that ``The key_exchange values for each KeyShareEntry MUST be generated independently.''  In the context of this document, since the same algorithm may appear in multiple named groups, we relax the above requirement to allow the same key_exchange value for the same algorithm to be reused in multiple KeyShareEntry records sent in within the same <tt>ClientHello</tt>.  However, key_exchange values for different algorithms MUST be generated independently.</t>
      </section>
      <section anchor="construction-shared-secret">
        <name>Shared secret calculation</name>
        <t>Here we also take a simple "concatenation approach": the two shared secrets are concatenated together and used as the shared secret in the existing TLS 1.3 key schedule.  Again, we do not add any additional structure (length fields) in the concatenation procedure: for both the traditional groups and Kyber, the shared secret output length is fixed for a specific elliptic curve or parameter set.</t>
        <t>In other words, the shared secret is calculated as</t>
        <artwork><![CDATA[
    concatenated_shared_secret = shared_secret_1 || shared_secret_2
]]></artwork>
        <t>and inserted into the TLS 1.3 key schedule in place of the (EC)DHE shared secret, as shown in <xref target="fig-key-schedule"/>.</t>
        <figure anchor="fig-key-schedule">
          <name>Key schedule for hybrid key exchange</name>
          <artwork><![CDATA[
                                    0
                                    |
                                    v
                      PSK ->  HKDF-Extract = Early Secret
                                    |
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    |
                                    v
                              Derive-Secret(., "derived", "")
                                    |
                                    v
concatenated_shared_secret -> HKDF-Extract = Handshake Secret
^^^^^^^^^^^^^^^^^^^^^^^^^^          |
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    |
                                    v
                              Derive-Secret(., "derived", "")
                                    |
                                    v
                         0 -> HKDF-Extract = Master Secret
                                    |
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
]]></artwork>
        </figure>
        <t><strong>FIPS-compliance of shared secret concatenation.</strong>
          <xref target="NIST-SP-800-56C"/> or <xref target="NIST-SP-800-135"/> give NIST recommendations for key derivation methods in key exchange protocols.  Some hybrid combinations may combine the shared secret from a NIST-approved algorithm (e.g., ECDH using the nistp256/secp256r1 curve) with a shared secret from a non-approved algorithm (e.g., post-quantum).  <xref target="NIST-SP-800-56C"/> lists simple concatenation as an approved method for generation of a hybrid shared secret in which one of the constituent shared secret is from an approved method.</t>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <t><strong>Larger public keys and/or ciphertexts.</strong>
The <tt>HybridKeyExchange</tt> struct in <xref target="construction-transmitting"/> limits public keys and ciphertexts to 2^16-1 bytes; this is bounded by the same (2^16-1)-byte limit on the <tt>key_exchange</tt> field in the <tt>KeyShareEntry</tt> struct.  Some post-quantum KEMs have larger public keys and/or ciphertexts; for example, Classic McEliece's smallest parameter set has public key size 261,120 bytes.  However, all defined parameter sets for Kyber have public keys and ciphertexts that fall within the TLS constraints.</t>
      <t><strong>Duplication of key shares.</strong>
Concatenation of public keys in the <tt>HybridKeyExchange</tt> struct as described in <xref target="construction-transmitting"/> can result in sending duplicate key shares.  For example, if a client wanted to offer support for two combinations, say "SecP256r1Kyber768Draft00" and "X25519Kyber768Draft00", it would end up sending two kyber768 public keys, since the <tt>KeyShareEntry</tt> for each combination contains its own copy of a kyber768 key.  This duplication may be more problematic for post-quantum algorithms which have larger public keys.  On the other hand, if the client wants to offer, for example "SecP256r1Kyber768Draft00" and "secp256r1" (for backwards compatibility), there is relatively little duplicated data (as the secp256r1 keys are comparatively small).</t>
      <t><strong>Failures.</strong>
Some post-quantum key exchange algorithms, including Kyber, have non-zero probability of failure, meaning two honest parties may derive different shared secrets.  This would cause a handshake failure.  Kyber has a cryptographically small failure rate; if other algorithms are used, implementers should be aware of the potential of handshake failure. Clients can retry if a failure is encountered.</t>
    </section>
    <section anchor="defined-hybrid-groups">
      <name>Defined Hybrid Groups</name>
      <t>This document defines or references four initial hybrids for use within TLS 1.3, as shown in <xref target="tab-defined-groups"/>, where the components x25519 and secp256r1 are the existing named groups.</t>
      <table anchor="tab-defined-groups">
        <name>Hybrid key exchanged methods defined by this document</name>
        <thead>
          <tr>
            <th align="left">Hybrid name</th>
            <th align="left">Hybrid components</th>
            <th align="left">Named group</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">X25519Kyber768Draft00</td>
            <td align="left">x25519, Kyber768</td>
            <td align="left">0x6399</td>
          </tr>
          <tr>
            <td align="left">SecP256r1Kyber768Draft00</td>
            <td align="left">secp256r1, Kyber768</td>
            <td align="left">0x639A</td>
          </tr>
        </tbody>
      </table>
      <section anchor="kyber-version">
        <name>Kyber version</name>
        <t>For Kyber768, this document refers to the same named parameter sets defined in the Round 3 submission of Kyber to NIST.  That submission defines two variants for each parameter set based on the symmetric primitives used.  This document uses the FIPS 202 variant (and not the "90s" variant); the FIPS 202 variant uses SHA-3 and SHAKE <xref target="NIST-FIPS-202"/> as its internal symmetric primitives.</t>
        <t>The Kyber team has updated their documentation twice since submitting to Round 3 (these updates are labeled as version 3.0.1 and 3.0.2), however neither modifies the FIPS 202 variant of Kyber. This version is documented in <xref target="KyberDraft00"/>.</t>
        <t>The X25519Kyber768Draft00 hybrid (0x6399) is defined in <xref target="X25519Kyber768"/>.  The SecP256r1Kyber768Draft00 hybrid (0x639A) is defined in <xref target="SECP256R1Kyber768"/>.</t>
      </section>
      <section anchor="details-of-kyber-components">
        <name>Details of Kyber components</name>
        <t>The listed kyber768 components are the named parameter sets of the key exchange method Kyber <xref target="Kyber"/>.
When it is used, the client selects an ephemeral private key, generates the corresponding public key, and transmits that (as a component) within its keyshare.
When the server receives this keyshare, it extracts the Kyber public key, generates a ciphertext and shared secret.  It then transmits the ciphertext (as a component) within its keyshare.
When the client receives this keyshare, it extracts the Kyber ciphertext, and uses its private key to generate the shared secret.
Both sides use their copy of the shared secret as a component within the hybrid shared secret.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA will assign identifiers from the TLS TLS Supported Groups section for the hybrid combinations defined in this document.
These assignments should be made in a range that is distinct from the Elliptic Curve Groups and the Finite Field Groups ranges.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The shared secrets computed in the hybrid key exchange should be computed in a way that achieves the "hybrid" property: the resulting secret is secure as long as at least one of the component key exchange algorithms is unbroken.  See <xref target="GIACON"/> and <xref target="BINDEL"/> for an investigation of these issues.  Under the assumption that shared secrets are fixed length once the combination is fixed, the construction from <xref target="construction-shared-secret"/> corresponds to the dual-PRF combiner of <xref target="BINDEL"/> which is shown to preserve security under the assumption that the hash function is a dual-PRF.</t>
      <t>As noted in <xref target="kems"/>, KEMs used in the manner described in this document MUST explicitly be designed to be secure in the event that the public key is reused, such as achieving IND-CCA2 security or having a transform like the Fujisaki-Okamoto transform applied.  Kyber has such security properties.  However, some other post-quantum KEMs are designed to be IND-CPA-secure (i.e., without countermeasures such as the FO transform) are completely insecure under public key reuse; for example, some lattice-based IND-CPA-secure KEMs are vulnerable to attacks that recover the private key after just a few thousand samples <xref target="FLUHRER"/>.</t>
      <t><strong>Public keys, ciphertexts, and secrets should be constant length.</strong>
This document assumes that the length of each public key, ciphertext, and shared secret is fixed once the algorithm is fixed.  This is the case for Kyber.</t>
      <t>Note that variable-length secrets are, generally speaking, dangerous.  In particular, when using key material of variable length and processing it using hash functions, a timing side channel may arise.  In broad terms, when the secret is longer, the hash function may need to process more blocks internally.  In some unfortunate circumstances, this has led to timing attacks, e.g. the Lucky Thirteen <xref target="LUCKY13"/> and Raccoon <xref target="RACCOON"/> attacks.</t>
      <t>Furthermore, <xref target="AVIRAM"/> identified a risk of using variable-length secrets when the hash function used in the key derivation function is no longer collision-resistant.</t>
      <t>Therefore, this specification MUST only be used with algorithms which have fixed-length shared secrets (after the variant has been fixed by the algorithm identifier in the <tt>NamedGroup</tt> negotiation in <xref target="construction-negotiation"/>).</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>These ideas have grown from discussions with many colleagues, including Christopher Wood, Matt Campagna, Eric Crockett, authors of the various hybrid Internet-Drafts and implementations cited in this document, and members of the TLS working group.  The immediate impetus for this document came from discussions with attendees at the Workshop on Post-Quantum Software in Mountain View, California, in January 2019.  Daniel J. Bernstein and Tanja Lange commented on the risks of reuse of ephemeral public keys.  Matt Campagna and the team at Amazon Web Services provided additional suggestions.  Nimrod Aviram proposed restricting to fixed-length secrets.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="TLS13">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="X25519Kyber768">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum key agreement</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <date day="31" month="March" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum key
   exchange for TLS 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tls-westerbaan-xyber768d00-02"/>
        </reference>
        <reference anchor="SECP256R1Kyber768">
          <front>
            <title>Post-quantum hybrid ECDHE-Kyber Key Agreement for TLSv1.3</title>
            <author fullname="Kris Kwiatkowski" initials="K." surname="Kwiatkowski">
              <organization>PQShield, LTD</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <date day="18" month="May" year="2023"/>
            <abstract>
              <t>   This draft defines a hybrid key agreement for TLS 1.3 that combines a
   post-quantum KEM with elliptic curve Diffie-Hellman (ECDHE).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kwiatkowski-tls-ecdhe-kyber-01"/>
        </reference>
        <reference anchor="KyberDraft00">
          <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="AVIRAM" target="https://mailarchive.ietf.org/arch/msg/tls/F4SVeL2xbGPaPB2GW_GkBbD_a5M/">
          <front>
            <title>[TLS] Combining Secrets in Hybrid Key Exchange in TLS 1.3</title>
            <author initials="" surname="Nimrod Aviram">
              <organization/>
            </author>
            <author initials="" surname="Benjamin Dowling">
              <organization/>
            </author>
            <author initials="" surname="Ilan Komargodski">
              <organization/>
            </author>
            <author initials="" surname="Kenny Paterson">
              <organization/>
            </author>
            <author initials="" surname="Eyal Ronen">
              <organization/>
            </author>
            <author initials="" surname="Eylon Yogev">
              <organization/>
            </author>
            <date year="2021" month="September" day="01"/>
          </front>
        </reference>
        <reference anchor="BCNS15">
          <front>
            <title>Post-Quantum Key Exchange for the TLS Protocol from the Ring Learning with Errors Problem</title>
            <author fullname="Joppe W. Bos" initials="J." surname="Bos">
              <organization/>
            </author>
            <author fullname="Craig Costello" initials="C." surname="Costello">
              <organization/>
            </author>
            <author fullname="Michael Naehrig" initials="M." surname="Naehrig">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization/>
            </author>
            <date month="May" year="2015"/>
          </front>
          <seriesInfo name="2015 IEEE Symposium on Security and" value="Privacy"/>
          <seriesInfo name="DOI" value="10.1109/sp.2015.40"/>
          <refcontent>IEEE</refcontent>
        </reference>
        <reference anchor="BERNSTEIN">
          <front>
            <title>Post-Quantum Cryptography</title>
            <author>
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/978-3-540-88702-7"/>
          <seriesInfo name="ISBN" value="[&quot;9783540887010&quot;, &quot;9783540887027&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="BINDEL">
          <front>
            <title>Hybrid Key Encapsulation Mechanisms and Authenticated Key Exchange</title>
            <author fullname="Nina Bindel" initials="N." surname="Bindel">
              <organization/>
            </author>
            <author fullname="Jacqueline Brendel" initials="J." surname="Brendel">
              <organization/>
            </author>
            <author fullname="Marc Fischlin" initials="M." surname="Fischlin">
              <organization/>
            </author>
            <author fullname="Brian Goncalves" initials="B." surname="Goncalves">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
          <seriesInfo name="Post-Quantum Cryptography" value="pp. 206-226"/>
          <seriesInfo name="DOI" value="10.1007/978-3-030-25510-7_12"/>
          <seriesInfo name="ISBN" value="[&quot;9783030255091&quot;, &quot;9783030255107&quot;]"/>
          <refcontent>Springer International Publishing</refcontent>
        </reference>
        <reference anchor="CAMPAGNA">
          <front>
            <title>Hybrid Post-Quantum Key Encapsulation Methods (PQ KEM) for Transport Layer Security 1.2 (TLS)</title>
            <author fullname="Matt Campagna" initials="M." surname="Campagna">
              <organization>AWS</organization>
            </author>
            <author fullname="Eric Crockett" initials="E." surname="Crockett">
              <organization>AWS</organization>
            </author>
            <date day="2" month="September" year="2021"/>
            <abstract>
              <t>   Hybrid key exchange refers to executing two independent key exchanges
   and feeding the two resulting shared secrets into a Pseudo Random
   Function (PRF), with the goal of deriving a secret which is as secure
   as the stronger of the two key exchanges.  This document describes
   new hybrid key exchange schemes for the Transport Layer Security 1.2
   (TLS) protocol.  The key exchange schemes are based on combining
   Elliptic Curve Diffie-Hellman (ECDH) with a post-quantum key
   encapsulation method (PQ KEM) using the existing TLS PRF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-campagna-tls-bike-sike-hybrid-07"/>
        </reference>
        <reference anchor="CECPQ1" target="https://security.googleblog.com/2016/07/experimenting-with-post-quantum.html">
          <front>
            <title>Experimenting with Post-Quantum Cryptography</title>
            <author initials="M." surname="Braithwaite">
              <organization/>
            </author>
            <date year="2016" month="July" day="07"/>
          </front>
        </reference>
        <reference anchor="CECPQ2" target="https://www.imperialviolet.org/2018/12/12/cecpq2.html">
          <front>
            <title>CECPQ2</title>
            <author initials="A." surname="Langley">
              <organization/>
            </author>
            <date year="2018" month="December" day="12"/>
          </front>
        </reference>
        <reference anchor="DODIS">
          <front>
            <title>Chosen-Ciphertext Security of Multiple Encryption</title>
            <author fullname="Yevgeniy Dodis" initials="Y." surname="Dodis">
              <organization/>
            </author>
            <author fullname="Jonathan Katz" initials="J." surname="Katz">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
          <seriesInfo name="Theory of Cryptography" value="pp. 188-209"/>
          <seriesInfo name="DOI" value="10.1007/978-3-540-30576-7_11"/>
          <seriesInfo name="ISBN" value="[&quot;9783540245735&quot;, &quot;9783540305767&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="DOWLING">
          <front>
            <title>A Cryptographic Analysis of the TLS 1.3 Handshake Protocol</title>
            <author fullname="Benjamin Dowling" initials="B." surname="Dowling">
              <organization/>
            </author>
            <author fullname="Marc Fischlin" initials="M." surname="Fischlin">
              <organization/>
            </author>
            <author fullname="Felix Günther" initials="F." surname="Günther">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization/>
            </author>
            <date month="July" year="2021"/>
          </front>
          <seriesInfo name="Journal of Cryptology" value="vol. 34, no. 4"/>
          <seriesInfo name="DOI" value="10.1007/s00145-021-09384-1"/>
          <refcontent>Springer Science and Business Media LLC</refcontent>
        </reference>
        <reference anchor="ETSI" target="https://www.etsi.org/images/files/ETSIWhitePapers/QuantumSafeWhitepaper.pdf">
          <front>
            <title>Quantum safe cryptography and security: An introduction, benefits, enablers and challengers</title>
            <author initials="M." surname="Campagna" role="editor">
              <organization/>
            </author>
            <author initials="" surname="others">
              <organization/>
            </author>
            <date year="2015" month="June"/>
          </front>
          <seriesInfo name="ETSI White Paper No. 8" value=""/>
        </reference>
        <reference anchor="EVEN">
          <front>
            <title>On the Power of Cascade Ciphers</title>
            <author fullname="S. Even" initials="S." surname="Even">
              <organization/>
            </author>
            <author fullname="O. Goldreich" initials="O." surname="Goldreich">
              <organization/>
            </author>
            <date year="1984"/>
          </front>
          <seriesInfo name="Advances in Cryptology" value="pp. 43-50"/>
          <seriesInfo name="DOI" value="10.1007/978-1-4684-4730-9_4"/>
          <seriesInfo name="ISBN" value="[&quot;9781468447323&quot;, &quot;9781468447309&quot;]"/>
          <refcontent>Springer US</refcontent>
        </reference>
        <reference anchor="EXTERN-PSK">
          <front>
            <title>TLS 1.3 Extension for Certificate-Based Authentication with an External Pre-Shared Key</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="March" year="2020"/>
            <abstract>
              <t>This document specifies a TLS 1.3 extension that allows a server to authenticate with a combination of a certificate and an external pre-shared key (PSK).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8773"/>
          <seriesInfo name="DOI" value="10.17487/RFC8773"/>
        </reference>
        <reference anchor="FLUHRER" target="https://eprint.iacr.org/2016/085">
          <front>
            <title>Cryptanalysis of ring-LWE based key exchange with key share reuse</title>
            <author initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <date year="2016" month="January"/>
          </front>
          <seriesInfo name="Cryptology ePrint Archive, Report 2016/085" value=""/>
        </reference>
        <reference anchor="FO">
          <front>
            <title>Secure Integration of Asymmetric and Symmetric Encryption Schemes</title>
            <author fullname="Eiichiro Fujisaki" initials="E." surname="Fujisaki">
              <organization/>
            </author>
            <author fullname="Tatsuaki Okamoto" initials="T." surname="Okamoto">
              <organization/>
            </author>
            <date month="December" year="2011"/>
          </front>
          <seriesInfo name="Journal of Cryptology" value="vol. 26, no. 1, pp. 80-101"/>
          <seriesInfo name="DOI" value="10.1007/s00145-011-9114-1"/>
          <refcontent>Springer Science and Business Media LLC</refcontent>
        </reference>
        <reference anchor="FRODO">
          <front>
            <title>Frodo: Take off the Ring! Practical, Quantum-Secure Key Exchange from LWE</title>
            <author fullname="Joppe Bos" initials="J." surname="Bos">
              <organization>NXP Semiconductors, Eindhoven, Netherlands</organization>
            </author>
            <author fullname="Craig Costello" initials="C." surname="Costello">
              <organization>Microsoft Research, Redmond, WA, USA</organization>
            </author>
            <author fullname="Leo Ducas" initials="L." surname="Ducas">
              <organization>CWI, Amsterdam, Netherlands</organization>
            </author>
            <author fullname="Ilya Mironov" initials="I." surname="Mironov">
              <organization>Google, Mountain View, CA, USA</organization>
            </author>
            <author fullname="Michael Naehrig" initials="M." surname="Naehrig">
              <organization>Microsoft Research, Redmond, WA, USA</organization>
            </author>
            <author fullname="Valeria Nikolaenko" initials="V." surname="Nikolaenko">
              <organization>Stanford University, Stanford, CA, USA</organization>
            </author>
            <author fullname="Ananth Raghunathan" initials="A." surname="Raghunathan">
              <organization>Google, Mountain View, CA, USA</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>McMaster University, Hamilton, ON, Canada</organization>
            </author>
            <date month="October" year="2016"/>
          </front>
          <seriesInfo name="Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications" value="Security"/>
          <seriesInfo name="DOI" value="10.1145/2976749.2978425"/>
          <refcontent>ACM</refcontent>
        </reference>
        <reference anchor="GIACON">
          <front>
            <title>KEM Combiners</title>
            <author fullname="Federico Giacon" initials="F." surname="Giacon">
              <organization/>
            </author>
            <author fullname="Felix Heuer" initials="F." surname="Heuer">
              <organization/>
            </author>
            <author fullname="Bertram Poettering" initials="B." surname="Poettering">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
          <seriesInfo name="Public-Key Cryptography – PKC 2018" value="pp. 190-218"/>
          <seriesInfo name="DOI" value="10.1007/978-3-319-76578-5_7"/>
          <seriesInfo name="ISBN" value="[&quot;9783319765778&quot;, &quot;9783319765785&quot;]"/>
          <refcontent>Springer International Publishing</refcontent>
        </reference>
        <reference anchor="HARNIK">
          <front>
            <title>On Robust Combiners for Oblivious Transfer and Other Primitives</title>
            <author fullname="Danny Harnik" initials="D." surname="Harnik">
              <organization/>
            </author>
            <author fullname="Joe Kilian" initials="J." surname="Kilian">
              <organization/>
            </author>
            <author fullname="Moni Naor" initials="M." surname="Naor">
              <organization/>
            </author>
            <author fullname="Omer Reingold" initials="O." surname="Reingold">
              <organization/>
            </author>
            <author fullname="Alon Rosen" initials="A." surname="Rosen">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 96-113"/>
          <seriesInfo name="DOI" value="10.1007/11426639_6"/>
          <seriesInfo name="ISBN" value="[&quot;9783540259107&quot;, &quot;9783540320555&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="HHK">
          <front>
            <title>A Modular Analysis of the Fujisaki-Okamoto Transformation</title>
            <author fullname="Dennis Hofheinz" initials="D." surname="Hofheinz">
              <organization/>
            </author>
            <author fullname="Kathrin Hövelmanns" initials="K." surname="Hövelmanns">
              <organization/>
            </author>
            <author fullname="Eike Kiltz" initials="E." surname="Kiltz">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
          <seriesInfo name="Theory of Cryptography" value="pp. 341-371"/>
          <seriesInfo name="DOI" value="10.1007/978-3-319-70500-2_12"/>
          <seriesInfo name="ISBN" value="[&quot;9783319704999&quot;, &quot;9783319705002&quot;]"/>
          <refcontent>Springer International Publishing</refcontent>
        </reference>
        <reference anchor="HPKE">
          <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="IKE-HYBRID">
          <front>
            <title>Framework to Integrate Post-quantum Key Exchanges into Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Tjhai" initials="C." surname="Tjhai">
              <organization>Post-Quantum</organization>
            </author>
            <author fullname="M. Tomlinson" initials="M." surname="Tomlinson">
              <organization>Post-Quantum</organization>
            </author>
            <author fullname="grbartle@cisco.com" initials="" surname="grbartle@cisco.com">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Daniel Van Geest" initials="D." surname="Van Geest">
              <organization>ISARA Corporation</organization>
            </author>
            <author fullname="Oscar Garcia-Morchon" initials="O." surname="Garcia-Morchon">
              <organization>Philips</organization>
            </author>
            <author fullname="Valery Smyslov" initials="V." surname="Smyslov">
              <organization>ELVIS-PLUS</organization>
            </author>
            <date day="9" month="July" year="2019"/>
            <abstract>
              <t>   This document describes how to extend Internet Key Exchange Protocol
   Version 2 (IKEv2) so that the shared secret exchanged between peers
   has resistance against quantum computer attacks.  The basic idea is
   to exchange one or more post-quantum key exchange payloads in
   conjunction with the existing (Elliptic Curve) Diffie-Hellman
   payload.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tjhai-ipsecme-hybrid-qske-ikev2-04"/>
        </reference>
        <reference anchor="IKE-PSK">
          <front>
            <title>Mixing Preshared Keys in the Internet Key Exchange Protocol Version 2 (IKEv2) for Post-quantum Security</title>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>The possibility of quantum computers poses a serious challenge to cryptographic algorithms deployed widely today. The Internet Key Exchange Protocol Version 2 (IKEv2) is one example of a cryptosystem that could be broken; someone storing VPN communications today could decrypt them at a later time when a quantum computer is available. It is anticipated that IKEv2 will be extended to support quantum-secure key exchange algorithms; however, that is not likely to happen in the near term. To address this problem before then, this document describes an extension of IKEv2 to allow it to be resistant to a quantum computer by using preshared keys.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8784"/>
          <seriesInfo name="DOI" value="10.17487/RFC8784"/>
        </reference>
        <reference anchor="KIEFER">
          <front>
            <title>Hybrid ECDHE-SIDH Key Exchange for TLS</title>
            <author fullname="Franziskus Kiefer" initials="F." surname="Kiefer">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Kris Kwiatkowski" initials="K." surname="Kwiatkowski">
              <organization>Cloudflare</organization>
            </author>
            <date day="5" month="November" year="2018"/>
            <abstract>
              <t>   This draft specifies a TLS key exchange that combines the post-
   quantum key exchange, Supersingular elliptic curve isogenie diffie-
   hellman (SIDH), with elliptic curve Diffie-Hellman (ECDHE) key
   exchange.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kiefer-tls-ecdhe-sidh-00"/>
        </reference>
        <reference anchor="Kyber" target="https://csrc.nist.gov/CSRC/media/Projects/post-quantum-cryptography/documents/round-3/submissions/Kyber-Round3.zip">
          <front>
            <title>Crystals-Kyber NIST Round 3 submission</title>
            <author initials="" surname="Roberto Avanzi, Joppe Bos, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, John M Schanck, Peter Schwabe, Gregor Seiler, Damien Stehlé">
              <organization/>
            </author>
            <date year="2020" month="October" day="01"/>
          </front>
        </reference>
        <reference anchor="LANGLEY" target="https://www.imperialviolet.org/2018/04/11/pqconftls.html">
          <front>
            <title>Post-quantum confidentiality for TLS</title>
            <author initials="A." surname="Langley">
              <organization/>
            </author>
            <date year="2018" month="April" day="11"/>
          </front>
        </reference>
        <reference anchor="LUCKY13" target="https://ieeexplore.ieee.org/iel7/6547086/6547088/06547131.pdf">
          <front>
            <title>Lucky Thirteen: Breaking the TLS and DTLS record protocols</title>
            <author initials="N. J." surname="Al Fardan">
              <organization/>
            </author>
            <author initials="K. G." surname="Paterson">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NIELSEN">
          <front>
            <title>Quantum Computation and Quantum Information</title>
            <author initials="M. A." surname="Nielsen">
              <organization/>
            </author>
            <author initials="I. L." surname="Chuang">
              <organization/>
            </author>
            <date year="2000"/>
          </front>
          <seriesInfo name="Cambridge University Press" value=""/>
        </reference>
        <reference anchor="NIST" target="https://www.nist.gov/pqcrypto">
          <front>
            <title>Post-Quantum Cryptography</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NIST-FIPS-202" target="https://doi.org/10.6028/NIST.FIPS.202">
          <front>
            <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
        </reference>
        <reference anchor="NIST-SP-800-56C" target="https://doi.org/10.6028/NIST.SP.800-56Cr2">
          <front>
            <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2020" month="August"/>
          </front>
        </reference>
        <reference anchor="NIST-SP-800-135" target="https://doi.org/10.6028/NIST.SP.800-135r1">
          <front>
            <title>Recommendation for Existing Application-Specific Key Derivation Functions</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2011" month="December"/>
          </front>
        </reference>
        <reference anchor="OQS-102" target="https://github.com/open-quantum-safe/openssl/tree/OQS-OpenSSL_1_0_2-stable">
          <front>
            <title>OQS-OpenSSL-1-0-2_stable</title>
            <author>
              <organization>Open Quantum Safe Project</organization>
            </author>
            <date year="2018" month="November"/>
          </front>
        </reference>
        <reference anchor="OQS-111" target="https://github.com/open-quantum-safe/openssl/tree/OQS-OpenSSL_1_1_1-stable">
          <front>
            <title>OQS-OpenSSL-1-1-1_stable</title>
            <author>
              <organization>Open Quantum Safe Project</organization>
            </author>
            <date year="2022" month="January"/>
          </front>
        </reference>
        <reference anchor="OQS-PROV" target="https://github.com/open-quantum-safe/oqs-provider/">
          <front>
            <title>OQS Provider for OpenSSL 3</title>
            <author>
              <organization>Open Quantum Safe Project</organization>
            </author>
            <date year="2023" month="July"/>
          </front>
        </reference>
        <reference anchor="PST">
          <front>
            <title>Benchmarking Post-quantum Cryptography in TLS</title>
            <author fullname="Christian Paquin" initials="C." surname="Paquin">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization/>
            </author>
            <author fullname="Goutam Tamvada" initials="G." surname="Tamvada">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="Post-Quantum Cryptography" value="pp. 72-91"/>
          <seriesInfo name="DOI" value="10.1007/978-3-030-44223-1_5"/>
          <seriesInfo name="ISBN" value="[&quot;9783030442224&quot;, &quot;9783030442231&quot;]"/>
          <refcontent>Springer International Publishing</refcontent>
        </reference>
        <reference anchor="RACCOON" target="https://raccoon-attack.com/">
          <front>
            <title>Raccoon Attack: Finding and Exploiting Most-Significant-Bit-Oracles in TLS-DH(E)</title>
            <author initials="R." surname="Merget">
              <organization/>
            </author>
            <author initials="M." surname="Brinkmann">
              <organization/>
            </author>
            <author initials="N." surname="Aviram">
              <organization/>
            </author>
            <author initials="J." surname="Somorovsky">
              <organization/>
            </author>
            <author initials="J." surname="Mittmann">
              <organization/>
            </author>
            <author initials="J." surname="Schwenk">
              <organization/>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="S2N" target="https://aws.amazon.com/blogs/security/post-quantum-tls-now-supported-in-aws-kms/">
          <front>
            <title>Post-quantum TLS now supported in AWS KMS</title>
            <author>
              <organization>Amazon Web Services</organization>
            </author>
            <date year="2019" month="November" day="04"/>
          </front>
        </reference>
        <reference anchor="SCHANCK">
          <front>
            <title>A Transport Layer Security (TLS) Extension For Establishing An Additional Shared Secret</title>
            <author fullname="John M. Schanck" initials="J. M." surname="Schanck">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>McMaster University</organization>
            </author>
            <date day="17" month="April" year="2017"/>
            <abstract>
              <t>   This document defines a Transport Layer Security (TLS) extension that
   allows parties to establish an additional shared secret using a
   second key exchange algorithm and incorporates this shared secret
   into the TLS key schedule.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schanck-tls-additional-keyshare-00"/>
        </reference>
        <reference anchor="WHYTE12">
          <front>
            <title>Quantum-Safe Hybrid (QSH) Ciphersuite for Transport Layer Security (TLS) version 1.2</title>
            <author fullname="John M. Schanck" initials="J. M." surname="Schanck">
         </author>
            <author fullname="William Whyte" initials="W." surname="Whyte">
              <organization>Security Innovation</organization>
            </author>
            <author fullname="Zhenfei Zhang" initials="Z." surname="Zhang">
              <organization>Security Innovation</organization>
            </author>
            <date day="22" month="July" year="2016"/>
            <abstract>
              <t>   This document describes the Quantum-Safe Hybrid ciphersuite, a new
   cipher suite providing modular design for quantum-safe cryptography
   to be adopted in the handshake for the Transport Layer Security (TLS)
   protocol version 1.2.  In particular, it specifies the use of the
   NTRUEncrypt encryption scheme in a TLS handshake.




              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-whyte-qsh-tls12-02"/>
        </reference>
        <reference anchor="WHYTE13">
          <front>
            <title>Quantum-Safe Hybrid (QSH) Key Exchange for Transport Layer Security (TLS) version 1.3</title>
            <author fullname="William Whyte" initials="W." surname="Whyte">
              <organization>Onboard Security</organization>
            </author>
            <author fullname="Zhenfei Zhang" initials="Z." surname="Zhang">
              <organization>Onboard Security</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Oscar Garcia-Morchon" initials="O." surname="Garcia-Morchon">
              <organization>Philips</organization>
            </author>
            <date day="3" month="October" year="2017"/>
            <abstract>
              <t>   This document describes the Quantum-Safe Hybrid Key Exchange, a
   mechanism for providing modular design for quantum-safe cryptography
   to be adopted in the handshake for the Transport Layer Security (TLS)
   protocol version 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-whyte-qsh-tls13-06"/>
        </reference>
        <reference anchor="XMSS">
          <front>
            <title>XMSS: eXtended Merkle Signature Scheme</title>
            <author fullname="A. Huelsing" initials="A." surname="Huelsing"/>
            <author fullname="D. Butin" initials="D." surname="Butin"/>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
            <author fullname="J. Rijneveld" initials="J." surname="Rijneveld"/>
            <author fullname="A. Mohaisen" initials="A." surname="Mohaisen"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature. This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS. Both XMSS and XMSS^MT use WOTS+ as a main building block. XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems. Instead, it is proven that it only relies on the properties of cryptographic hash functions. XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken. It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks. Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8391"/>
          <seriesInfo name="DOI" value="10.17487/RFC8391"/>
        </reference>
        <reference anchor="ZHANG">
          <front>
            <title>On the Security of Multiple Encryption or CCA-security+CCA-security=CCA-security?</title>
            <author fullname="Rui Zhang" initials="R." surname="Zhang">
              <organization/>
            </author>
            <author fullname="Goichiro Hanaoka" initials="G." surname="Hanaoka">
              <organization/>
            </author>
            <author fullname="Junji Shikata" initials="J." surname="Shikata">
              <organization/>
            </author>
            <author fullname="Hideki Imai" initials="H." surname="Imai">
              <organization/>
            </author>
            <date year="2004"/>
          </front>
          <seriesInfo name="Public Key Cryptography – PKC 2004" value="pp. 360-374"/>
          <seriesInfo name="DOI" value="10.1007/978-3-540-24632-9_26"/>
          <seriesInfo name="ISBN" value="[&quot;9783540210184&quot;, &quot;9783540246329&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="I-D.driscoll-pqt-hybrid-terminology">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="7" month="March" year="2023"/>
            <abstract>
              <t>   One aspect of the transition to post-quantum algorithms in
   cryptographic protocols is the development of hybrid schemes that
   incorporate both post-quantum and traditional asymmetric algorithms.
   This document defines terminology for such schemes.  It is intended
   to be used as a reference and, hopefully, to ensure consistency and
   clarity across different protocols, standards, and organisations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-driscoll-pqt-hybrid-terminology-02"/>
        </reference>
      </references>
    </references>
    <?line 522?>

<section anchor="related-work">
      <name>Related work</name>
      <t>Quantum computing and post-quantum cryptography in general are outside the scope of this document.  For a general introduction to quantum computing, see a standard textbook such as <xref target="NIELSEN"/>.  For an overview of post-quantum cryptography as of 2009, see <xref target="BERNSTEIN"/>.  For the current status of the NIST Post-Quantum Cryptography Standardization Project, see <xref target="NIST"/>.  For additional perspectives on the general transition from traditional to post-quantum cryptography, see for example <xref target="ETSI"/>, among others.</t>
      <t>There have been several Internet-Drafts describing mechanisms for embedding post-quantum and/or hybrid key exchange in TLS:</t>
      <ul spacing="normal">
        <li>Internet-Drafts for TLS 1.2: <xref target="WHYTE12"/>, <xref target="CAMPAGNA"/></li>
        <li>Internet-Drafts for TLS 1.3: <xref target="KIEFER"/>, <xref target="SCHANCK"/>, <xref target="WHYTE13"/></li>
      </ul>
      <t>There have been several prototype implementations for post-quantum and/or hybrid key exchange in TLS:</t>
      <ul spacing="normal">
        <li>Experimental implementations in TLS 1.2: <xref target="BCNS15"/>, <xref target="CECPQ1"/>, <xref target="FRODO"/>, <xref target="OQS-102"/>, <xref target="S2N"/></li>
        <li>Experimental implementations in TLS 1.3: <xref target="CECPQ2"/>, <xref target="OQS-111"/>, <xref target="OQS-PROV"/>, <xref target="PST"/></li>
      </ul>
      <t>These experimental implementations have taken an ad hoc approach and not attempted to implement one of the drafts listed above.</t>
      <t>Unrelated to post-quantum but still related to the issue of combining multiple types of keying material in TLS is the use of pre-shared keys, especially the recent TLS working group document on including an external pre-shared key <xref target="EXTERN-PSK"/>.</t>
      <t>Considering other IETF standards, there is work on post-quantum preshared keys in IKEv2 <xref target="IKE-PSK"/> and a framework for hybrid key exchange in IKEv2 <xref target="IKE-HYBRID"/>.  The XMSS hash-based signature scheme has been published as an informational RFC by the IRTF <xref target="XMSS"/>.</t>
      <t>In the academic literature, <xref target="EVEN"/> initiated the study of combining multiple symmetric encryption schemes; <xref target="ZHANG"/>, <xref target="DODIS"/>, and <xref target="HARNIK"/> examined combining multiple public key encryption schemes, and <xref target="HARNIK"/> coined the term "robust combiner" to refer to a compiler that constructs a hybrid scheme from individual schemes while preserving security properties.  <xref target="GIACON"/> and <xref target="BINDEL"/> examined combining multiple key encapsulation mechanisms.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
x9p/AQdECoIHkAAA

-->

</rfc>
