<?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.17 (Ruby 2.7.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-hybrid-design-06" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.1 -->
  <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-06"/>
    <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, Amazon Web Services">University of Haifa and Amazon Web Services</organization>
      <address>
        <email>shay.gueron@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="February" day="27"/>
    <keyword>Internet-Draft</keyword>
    <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.</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>
    <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-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.  For example, a future document could specify that one identifier corresponds to secp256r1+Kyber512, and another corresponds to x25519+Kyber512.  (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 standardized 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 */
          x25519_kyber768(TBD), secp384r1_kyber768(TBD),
          x25519_kyber512(TBD), secp256r1_kyber512(TBD), ...,

          /* 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:</t>
        <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>
        <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 "secp256r1+kyber512" and "x25519+kyber512", it would end up sending two kyber512 public keys, since the <tt>KeyShareEntry</tt> for each combination contains its own copy of a kyber512 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 "secp256r1+kyber512" 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 four initial hybrids for use within TLS 1.3</t>
      <artwork><![CDATA[
+--------------------+---------------------|-------------|
| Hybrid name        | Hybrid components   | Named Group |
+--------------------+---------------------|-------------|
| x25519_kyber768    | x25519, kyber768    | TBD         |
| secp384r1_kyber768 | secp384r1, kyber768 | TBD         |
| x25519_kyber512    | x25519, kyber512    | TBD         |
| secp256r1_kyber512 | secp256r1, kyber512 | TBD         |
+--------------------+---------------------|-------------|
]]></artwork>
      <t>where the components x25519, secp384r1, secp256r1 are the existing named groups.</t>
      <t>The intention is that the first two combinations (using kyber768) are for normal TLS sessions, while the latter two (using kyber512) are for sessions that have limits in record size or it is important to limit the total amount of communication.</t>
      <section anchor="kyber-version">
        <name>Kyber version</name>
        <t>For kyber512 and 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 varient (and not the "90s" varient); the FIPS 202 varient uses SHA-3 and SHAKE 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.</t>
      </section>
      <section anchor="details-of-kyber-components">
        <name>Details of kyber components</name>
        <t>The listed kyber512, 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 uses their copy of the shared secret as a component within the hybrid shared secret.
where the client's key share is the Kyber public key, and the server's key share is the</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" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <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>
      </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"/>
        </reference>
        <reference anchor="BERNSTEIN">
          <front>
            <title>Post-Quantum Cryptography</title>
            <author>
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="Springer Berlin Heidelberg" value="book"/>
          <seriesInfo name="DOI" value="10.1007/978-3-540-88702-7"/>
        </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"/>
        </reference>
        <reference anchor="CAMPAGNA" target="https://datatracker.ietf.org/doc/html/draft-campagna-tls-bike-sike-hybrid-07">
          <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"/>
        </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"/>
        </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"/>
        </reference>
        <reference anchor="EXTERN-PSK" target="https://www.rfc-editor.org/info/rfc8773">
          <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">
              <organization/>
            </author>
            <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"/>
        </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"/>
        </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"/>
        </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"/>
        </reference>
        <reference anchor="HOFFMAN" target="https://datatracker.ietf.org/doc/html/draft-hoffman-c2pq-07">
          <front>
            <title>The Transition from Classical to Post-Quantum Cryptography</title>
            <author fullname="Paul E. Hoffman" initials="P. E." surname="Hoffman">
              <organization>ICANN</organization>
            </author>
            <date day="26" month="May" year="2020"/>
            <abstract>
              <t>   Quantum computing is the study of computers that use quantum features
   in calculations.  For over 20 years, it has been known that if very
   large, specialized quantum computers could be built, they could have
   a devastating effect on asymmetric classical cryptographic algorithms
   such as RSA and elliptic curve signatures and key exchange, as well
   as (but in smaller scale) on symmetric cryptographic algorithms such
   as block ciphers, MACs, and hash functions.  There has already been a
   great deal of study on how to create algorithms that will resist
   large, specialized quantum computers, but so far, the properties of
   those algorithms make them onerous to adopt before they are needed.

   Small quantum computers are being built today, but it is still far
   from clear when large, specialized quantum computers will be built
   that can recover private or secret keys in classical algorithms at
   the key sizes commonly used today.  It is important to be able to
   predict when large, specialized quantum computers usable for
   cryptanalysis will be possible so that organization can change to
   post-quantum cryptographic algorithms well before they are needed.

   This document describes quantum computing, how it might be used to
   attack classical cryptographic algorithms, and possibly how to
   predict when large, specialized quantum computers will become
   feasible.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hoffman-c2pq-07"/>
        </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"/>
        </reference>
        <reference anchor="HPKE" target="https://www.rfc-editor.org/info/rfc9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes">
              <organization/>
            </author>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan">
              <organization/>
            </author>
            <author fullname="B. Lipp" initials="B." surname="Lipp">
              <organization/>
            </author>
            <author fullname="C. Wood" initials="C." surname="Wood">
              <organization/>
            </author>
            <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" target="https://datatracker.ietf.org/doc/html/draft-tjhai-ipsecme-hybrid-qske-ikev2-04">
          <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" target="https://www.rfc-editor.org/info/rfc8784">
          <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">
              <organization/>
            </author>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis">
              <organization/>
            </author>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov">
              <organization/>
            </author>
            <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" target="https://datatracker.ietf.org/doc/html/draft-kiefer-tls-ecdhe-sidh-00">
          <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-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="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"/>
        </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" target="https://datatracker.ietf.org/doc/html/draft-schanck-tls-additional-keyshare-00">
          <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" target="https://datatracker.ietf.org/doc/html/draft-whyte-qsh-tls12-02">
          <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" target="https://datatracker.ietf.org/doc/html/draft-whyte-qsh-tls13-06">
          <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" target="https://www.rfc-editor.org/info/rfc8391">
          <front>
            <title>XMSS: eXtended Merkle Signature Scheme</title>
            <author fullname="A. Huelsing" initials="A." surname="Huelsing">
              <organization/>
            </author>
            <author fullname="D. Butin" initials="D." surname="Butin">
              <organization/>
            </author>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag">
              <organization/>
            </author>
            <author fullname="J. Rijneveld" initials="J." surname="Rijneveld">
              <organization/>
            </author>
            <author fullname="A. Mohaisen" initials="A." surname="Mohaisen">
              <organization/>
            </author>
            <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"/>
        </reference>
        <reference anchor="I-D.driscoll-pqt-hybrid-terminology" target="https://datatracker.ietf.org/doc/html/draft-driscoll-pqt-hybrid-terminology-01">
          <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="20" month="October" year="2022"/>
            <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 ensure consistency and clarity across different protocols,
   standards, and organisations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-driscoll-pqt-hybrid-terminology-01"/>
        </reference>
      </references>
    </references>
    <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"/> and <xref target="HOFFMAN"/>, 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="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:
H4sIAAAAAAAAA+1961bbyJrof55Ci/xoyFjGNpckZM4+m4AJbAKhMd3ZfWZN
h7JcttXIklslQdx09vPMPMd+sfPdSirJMpDTPeucs9akLwGpVKr66rvf5Pv+
WhZmkd73ThbDNBx5t3rh6S/BVMUT7YWxd/1h4HXb22tqOEz13b4X6mzsZ5Hx
pzTeH2kTTuK1URLEagbTjFI1zvzmUX5nb22kMhjV6/S2/U7P771aC+DCJEkX
MHU8TtbWwnm672VpbrJep/Om01uDFd0n6WjfO40zncY684/wHWtrJlPx6LOK
khhmXGizNg/3vX/LkqDlmSTNUj028NNihj/8OwzPh7PQmDCJrxdzeOK0f328
tqbybJqk+2ue58N/HizC7HtHbW+Q6WEYKbrGOztK8kmkTOVOkk5UHP6mMph1
3/shDu90asJs4SVj7xNsLI2ShAbqmQojgI7hh/+a38vddqCq7x60veMon6Y6
dd49CJIsq1yvvvkwNEHiDRYw/cy4LzRjfuavAY5oB8ls6W3vc50msfuyqVq4
Vx/b5IkKx8qDc/AOZuq3JPY+6aE30OldGGheiEWcH9o8uLVypF0yvL49odf/
dYKXaNVrcZLOYAl3Gs8KsLK7ve9dHR++3tnZA6QB1HFuH/x4enVwvk+zZiqd
6Gzfm2bZ3OxvbeGMKg2mMLSNaNqG7W3hha2ZmWwBzm4d7wx+1B96X4bvL9Xl
u977T5/f374bHn1Wu+dbPCVTzPq/wTL+3TtMZsMwDuMJ7CZIdWaQbISazoCa
+svUtE7TFKTQ9Ttv/E6XwVXgI/7x5W85rYtwliYA6rswVbPmIe90/IuawauO
kvsIFtU86jRSsXeWzAA2ycjchs2jznQcL7xLxFQjuLA0pr9QkXcFJLjyPtCn
91My0Xdw493hxaC7C7T08bTd7bS73c6brcFlu9fp7rZ3Ojigf3UxuO6fXpRj
Op1XW29evfa3/d2djv/69SvgG69w6OnFUf9D07jOdsfv7e52O/6rz90eDD08
OL88eH9xABv3j4DiZnM1iRUxqGF4q32D/2NWhaP7h5ffd5uxx+ggTwH325Mk
mUR6GCUTRM8t2MHeFixAf5nrNJzpOAPY+/dhNvXnicn8X3MVZ/msPc1mkYtD
fXe8h+O9Sxz/PY/3DtPFPEsmqZpPF0/jx3nbe5cqmOQe/qcrSNbd8zuv4F+7
v17z/u7v79vhDNekorswiXRG9AHPv97q9vDfQAfzX3tLG+FJn17iQdv7ANQQ
6UV1ea/9bs+nwzr6eHQ6WHX8253dV3t4rF0a+enD6cX76ljT6XR3dn2mqu3X
Oz6O7F8PTldvGGg2pG2GMzXRZmscRvB/fObTFOB4qQAeZkuOZKDGmi7P8XJ7
PhpXeII9OAPDvMA5PWKSFn0ADjHAIwNqzgPkqy1vqGM9DjMQWTpWwwjeSE8A
74giDewjNeuPQjdN8P16FGZJuoQVh4LyzWeSZFOYnq4ZOHmQ1cBO9wloHm3V
IxB4F0nbe109tl2U6QDfH/sNFNv1d/bgAHZeAT2++byD4/5+DQTuXw7OmHm/
erUNV48//HBy1b9qPiA9TwFQ7VAFqUVFoLTXuxWoE5moWEULExqUSymS34dP
fW+ojK5pNURleAUkTaq9VOdGPw7bJsHsQoqpFHgBvOUSl+sdsIRpeVd6DrqI
V1m1S5OInccfm1G42/XfdLuMwcdXH4+cYXB/q/fm1d6rnTdt+Pv1Tg+nfn96
cPixkXVud9/4r/Z24efdz8gDTg6uLk7PqiNh0t7e3vabz3iiJx+Pj88PLphj
TpPxeKZiP+jNf8V7J2cr39HZ7QDzZbZ7cnnWp3N+032NzP30rO+f/PTu6vSI
p81+marQD+dAFTPLf/1fDfBi4Md3PXmiRJbXiEJnp/1jwBWa4DbUY50SH9fB
aIqMfDTFMYuhTpvRKTBp0I5DkwEHv9s6HFwdbs2AaNTWZZr8ooPMbLn82ncp
eAuU3BxZtdlKkzwe+dtbpU5ptuil/hXe2W7/Fs4r3DEF1UzBMmmQd3E6uPZo
pLftlXM8jYNXCTyeJaABqPi3sOX9LZnPtfcuAa7x4Z//mXhHeaDg5z7AzzsL
o+y3lnet4iD953+MtPcBUBFws+X9qEbhzPuwyIE4pvrO3C5wpmmMnGKARBLc
trxLDWIff71XQ8Dj9ylq6aDiAG9MW94R6Bg6Rl14Gv3zP6vqTMcHyUuI/eHg
4v2H/k/fLmo6O4CNW/NfgyQew+kuSZtL54w8HBSOUISqCNVSUAVR0fojsqgD
REcb+OHw7CfQNBs3EGoN4j5KUlQktWYJoqNXW3u7O686r/fkb9gN/tDd7i4J
iw95cLvwrqdhmmkNuvW7VKtbVASAIZOuiBLgCH9IdQA2kDdPE7BvkqhBFti9
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
dfkD0o0AAA==

-->

</rfc>
