<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.4.2 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-hybrid-design-04" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.7.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-04"/>
    <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="2022" month="January" day="11"/>
    <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" numbered="true" toc="default">
      <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" format="default"/> for more on the scope of this document.</t>
      <section anchor="revision-history" numbered="true" toc="default">
        <name>Revision history</name>
        <ul empty="true" spacing="normal">
          <li>
            <strong>RFC Editor's Note:</strong> Please remove this section prior to publication of a final version of this document.</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>Since draft-ietf-tls-hybrid-design-03:
            </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" numbered="true" toc="default">
        <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 in 2019, 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.  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>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 required 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" numbered="true" toc="default">
        <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 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 classical 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.</t>
      </section>
      <section anchor="scope" numbered="true" toc="default">
        <name>Scope</name>
        <t>This document focuses on hybrid ephemeral key exchange in TLS 1.3 <xref target="TLS13" format="default"/>.  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" format="default"/>.</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" numbered="true" toc="default">
        <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" format="default"/> 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" format="default"/> for preliminary results in a laboratory setting, and <xref target="LANGLEY" format="default"/> 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" numbered="true" toc="default">
      <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" format="default"/> or a variant thereof <xref target="HHK" format="default"/>.</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="I-D.irtf-cfrg-hpke" format="default"/> for more details of such Diffie-Hellman-based key encapsulation mechanisms.</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, such as achieving IND-CCA2 security or having a transform like the Fujisaki-Okamoto transform <xref target="FO" format="default"/> <xref target="HHK" format="default"/> 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" numbered="true" toc="default">
      <name>Construction for hybrid key exchange</name>
      <section anchor="construction-negotiation" numbered="true" toc="default">
        <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 algorithms.  For example, a future document could specify that one codepoint corresponds to secp256r1+PQALG1, and another corresponds to x25519+PQALG1.  (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 name="" type="" align="left" alt=""><![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 */
          TBD(0xTBD), ...,

          /* Reserved Code Points */
          ffdhe_private_use(0x01FC..0x01FF),
          ecdhe_private_use(0xFE00..0xFEFF),
          (0xFFFF)
    } NamedGroup;
]]></artwork>
      </section>
      <section anchor="construction-transmitting" numbered="true" toc="default">
        <name>Transmitting public keys and ciphertexts</name>
        <t>We take the relatively simple "concatenation approach": the messages from the two 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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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" format="default"/> 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" numbered="true" toc="default">
        <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: among all Round 3 finalists and alternate candidates, once the algorithm and variant are specified, the shared secret output length is fixed.</t>
        <t>In other words, the shared secret is calculated as</t>
        <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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" format="default"/> or <xref target="NIST-SP-800-135" format="default"/> 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" format="default"/> 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" numbered="true" toc="default">
      <name>Discussion</name>
      <t><strong>Larger public keys and/or ciphertexts.</strong>
The <tt>HybridKeyExchange</tt> struct in <xref target="construction-transmitting" format="default"/> 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.  Hence this draft can not accommodate all current NIST Round 3 candidates.</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" format="default"/> can result in sending duplicate key shares.  For example, if a client wanted to offer support for two combinations, say "secp256r1+sikep503" and "x25519+sikep503", it would end up sending two sikep503 public keys, since the <tt>KeyShareEntry</tt> for each combination contains its own copy of a sikep503 key.  This duplication may be more problematic for post-quantum algorithms which have larger public keys.</t>
      <t><strong>Failures.</strong>
Some post-quantum key exchange algorithms have non-zero probability of failure, meaning two honest parties may derive different shared secrets.  This would cause a handshake failure.  All current NIST Round 3 candidates have either 0 or 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="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>Identifiers for specific key exchange algorithm combinations will be defined in later documents.</t>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <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" format="default"/> and <xref target="BINDEL" format="default"/> 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" format="default"/> corresponds to the dual-PRF combiner of <xref target="BINDEL" format="default"/> 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" format="default"/>, 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.  Some IND-CPA-secure post-quantum KEMs (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" format="default"/>.</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 all Round 3 finalists and alternate candidates.</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" format="default"/> and Raccoon <xref target="RACCOON" format="default"/> attacks.</t>
      <t>Furthermore, <xref target="AVIRAM" format="default"/> 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" format="default"/>).</t>
    </section>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <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://www.ietf.org/archive/id/draft-campagna-tls-bike-sike-hybrid-07.txt">
          <front>
            <title>Hybrid Post-Quantum Key Encapsulation Methods (PQ KEM) for Transport Layer Security 1.2 (TLS)</title>
            <author fullname="Matt Campagna">
              <organization>AWS</organization>
            </author>
            <author fullname="Eric 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="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, 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/>
            </author>
            <author fullname="Craig Costello" initials="C." surname="Costello">
              <organization/>
            </author>
            <author fullname="Leo Ducas" initials="L." surname="Ducas">
              <organization/>
            </author>
            <author fullname="Ilya Mironov" initials="I." surname="Mironov">
              <organization/>
            </author>
            <author fullname="Michael Naehrig" initials="M." surname="Naehrig">
              <organization/>
            </author>
            <author fullname="Valeria Nikolaenko" initials="V." surname="Nikolaenko">
              <organization/>
            </author>
            <author fullname="Ananth Raghunathan" initials="A." surname="Raghunathan">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <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://www.ietf.org/archive/id/draft-hoffman-c2pq-07.txt">
          <front>
            <title>The Transition from Classical to Post-Quantum Cryptography</title>
            <author fullname="Paul 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 Hovelmanns" initials="K." surname="Hovelmanns">
              <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="IKE-HYBRID" target="https://www.ietf.org/archive/id/draft-tjhai-ipsecme-hybrid-qske-ikev2-04.txt">
          <front>
            <title>Framework to Integrate Post-quantum Key Exchanges into Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Tjhai">
              <organization>Post-Quantum</organization>
            </author>
            <author fullname="M. Tomlinson">
              <organization>Post-Quantum</organization>
            </author>
            <author fullname="G. Bartlett">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="S. Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="D. Van Geest">
              <organization>ISARA Corporation</organization>
            </author>
            <author fullname="O. Garcia-Morchon">
              <organization>Philips</organization>
            </author>
            <author fullname="Valery 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://www.ietf.org/archive/id/draft-kiefer-tls-ecdhe-sidh-00.txt">
          <front>
            <title>Hybrid ECDHE-SIDH Key Exchange for TLS</title>
            <author fullname="Franziskus Kiefer">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Krzysztof 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="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://www.ietf.org/archive/id/draft-schanck-tls-additional-keyshare-00.txt">
          <front>
            <title>A Transport Layer Security (TLS) Extension For Establishing An Additional Shared Secret</title>
            <author fullname="John M. Schanck">
	 </author>
            <author fullname="Douglas Stebila">
	 </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://www.ietf.org/archive/id/draft-whyte-qsh-tls12-02.txt">
          <front>
            <title>Quantum-Safe Hybrid (QSH) Ciphersuite for Transport Layer Security (TLS) version 1.2</title>
            <author fullname="John M. Schanck">
	 </author>
            <author fullname="William Whyte">
	 </author>
            <author fullname="Zhenfei Zhang">
	 </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://www.ietf.org/archive/id/draft-whyte-qsh-tls13-06.txt">
          <front>
            <title>Quantum-Safe Hybrid (QSH) Key Exchange for Transport Layer Security (TLS) version 1.3</title>
            <author fullname="William Whyte">
              <organization>Onboard Security</organization>
            </author>
            <author fullname="Zhenfei Zhang">
              <organization>Onboard Security</organization>
            </author>
            <author fullname="Scott Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Oscar 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.irtf-cfrg-hpke" target="https://www.ietf.org/archive/id/draft-irtf-cfrg-hpke-12.txt">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="Richard L. Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Karthik Bhargavan">
              <organization>Inria</organization>
            </author>
            <author fullname="Benjamin Lipp">
              <organization>Inria</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="2" month="September" year="2021"/>
            <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 which
   authenticates possession of a pre-shared key, and two optional ones
   which authenticate possession of a KEM private key.  HPKE works for
   any combination of an asymmetric key encapsulation mechanism (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 key agreement, HKDF, and SHA2.

   This document is a product of the Crypto Forum Research Group (CFRG)
   in the IRTF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-hpke-12"/>
        </reference>
      </references>
    </references>
    <section anchor="related-work" numbered="true" toc="default">
      <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" format="default"/>.  For an overview of post-quantum cryptography as of 2009, see <xref target="BERNSTEIN" format="default"/>.  For the current status of the NIST Post-Quantum Cryptography Standardization Project, see <xref target="NIST" format="default"/>.  For additional perspectives on the general transition from classical to post-quantum cryptography, see for example <xref target="ETSI" format="default"/> and <xref target="HOFFMAN" format="default"/>, 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" format="default"/>, <xref target="CAMPAGNA" format="default"/></li>
        <li>Internet-Drafts for TLS 1.3: <xref target="KIEFER" format="default"/>, <xref target="SCHANCK" format="default"/>, <xref target="WHYTE13" format="default"/></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" format="default"/>, <xref target="CECPQ1" format="default"/>, <xref target="FRODO" format="default"/>, <xref target="OQS-102" format="default"/>, <xref target="S2N" format="default"/></li>
        <li>Experimental implementations in TLS 1.3: <xref target="CECPQ2" format="default"/>, <xref target="OQS-111" format="default"/>, <xref target="PST" format="default"/></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" format="default"/>.</t>
      <t>Considering other IETF standards, there is work on post-quantum preshared keys in IKEv2 <xref target="IKE-PSK" format="default"/> and a framework for hybrid key exchange in IKEv2 <xref target="IKE-HYBRID" format="default"/>.  The XMSS hash-based signature scheme has been published as an informational RFC by the IRTF <xref target="XMSS" format="default"/>.</t>
      <t>In the academic literature, <xref target="EVEN" format="default"/> initiated the study of combining multiple symmetric encryption schemes; <xref target="ZHANG" format="default"/>, <xref target="DODIS" format="default"/>, and <xref target="HARNIK" format="default"/> examined combining multiple public key encryption schemes, and <xref target="HARNIK" format="default"/> 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" format="default"/> and <xref target="BINDEL" format="default"/> examined combining multiple key encapsulation mechanisms.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
3gRdByb0g3r2RQ7xeyxZ7hEgQI79CsZLHHZyjSLihYDTdWIbgyHo/shEDak/
pvdejAxZuHw+lcnPMukecEsEHyUw8VXTlydnXoD12eF2mZpUTCLggdZySlNC
iDQgX15ATuGf2pwFO6Upghb02KagPhvL0riLT25KbRsMTYlmd8odQEe/SSjW
xoIkneQUVtCbV2XgkR3kIoPLr+vHYpo2KY4IyZQkh+Sb5zpc5jIYfDi2peap
dxvFKT9FdEtIFZGEhrn1GJyteSancJghprVnEuvQKsc+CGs+PJiC+0c6QJQ4
ZQc9iJnehJxy1Ba5+UKrxSoaYjQqM562bMnM2lUHl+mqegGzHtEOwFUTDVdU
vzzFvbEKhCdXVBZIkSwtt4h1dFXrzqotKmwnlo6gFvMQ4h+Y+UWUEGiJm/Xe
P7EEJH/gWJv3oF7LfIFTT1AwPiIh+XKOANULLlVeE+UHoLwlb2zF1ZmlI0UQ
irl8QnThHwP9WEpBe1vI7ReYnqGFiUkxaZ1sIMh1Q/N6r5Ktbc//k7c1vyUW
v92+OfSOwBvDADaIuQtDNsFyO455xoVeTlbgZn57I+rWKczwbvTtDTyAmz4v
goaV4UPEj3XT8NXVroyei7MNZiLltGYKpJvpIVeileriJszladXS32gtMzxR
PENNhAlzniU9wfxG6vfNqLb8utoq5lHOcnVG7FjaKA7Ch2jmpKaotcoyasOV
KCYfxPi1CCHAW6chl2UVCOdInU4CgzskJBiMgjnHGcJpShzvTlmKpL2t88sT
//j4qFfwnM2SIiNXWYMpkCkRTW3g2KjlDHGLGXID9EhLFFlqLjgYZCZog+MS
9wkygh8Z+yplOY+zS2w27FRJLMjP1eQijbTIci3CgsiGxFdklQi32Rivw1s7
7rbOgyizFiHnPJ0pIYSL5nMiA82I7lIDhMwJh4SQGJaCF4J9yJfx5qRDG5Iv
ZidbUhTmGE8ymM9jcfVPF79EOriNfP/TbTAj1e5tnX7aFtMJDUiW5fQTGRUO
LHLhVJKLG0fq4eHh7OwDR0iQzbhXxMBO+p0UoInOPcIshkfmMYL2KyxyddTE
Iawp/wguEQYB0pkX1qTcKrv5V0ceBwPj5dM8YGN7NR6A9CEWq+s9EGbwOUhb
y1F/WBOVQoyYc32jCk6u14fUg1o2YeV5J2e1alZhPjYblvlIxk1ZgFH1N860
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
77WfemL1sYwIFdXCcSZF3rQ1IO08NiX7pdLqV+crsOcfjm+1/p/Os1r9/Vmt
7ta0uhp8QP7SO8P54v43vieGyNPnIylyY+4fOIt/8fHPn+R6LuVL/1vk7G7/
N3j9nyO0/ac2eMvbHPEvo0364+YfO5NHJIDIUNvyM1ugbrf9b2v/+b0z+Z99
+4Nm0mnYt4tA53L30P/I6nNeZ/W78fLl77uxov3y5YbUqTv3OkrWvPpzd3ef
fkbeWcrh6wX4ADgwG6PyhsJZeXNjJUhcXAiKSiwk74y752QmJIFnDgM3WEdz
5I8nyMjlzj3u523JsXLEcJ2LiXCHJuK3O+X1A3wQa1uiO/UiFDMGKrLWD+GG
wrdpPU20FJRhYFcNdZXnStC9UIxpWU0dNZc1lyevK9Xwpd+6AilkTSsjcirK
ub/r4cWo+Mt3MNVHXHKX1eOfOzRPN6FFvARH40ZCw4Sm+4XnZUIWNOGHh/Vx
0u+SmNWPBloJq0ikRKoY3xbZDM7zmdOaFqRvSdNtH22ld1tj2xgFsKGhWjRB
5mv5tZL/4LoiudfhOUR6Wz27fCxnlbyLsE/eRKjgvs5wS7fOy3N3qJiU81dl
+I0rR3sH3Va31xFCwAVRAljhh+F2FC6SYCwdcu0N36QCEGyOvogoW0RcIt82
9vxkMXfvtypcU97n47rr7K7aEnE9HwS6mkB/nCmwCnP5Hpd31Uu9nanVsm5y
/E5iVTjtJ3FWPtZr708ULxFXsjjqh7xX0j+bZcoNd/XP9zu7m8yOmya9VvzK
xyAl24VKycW8mCU7UqZZNRle+sd1biu8cjdXW0QtIB9InNnan6DsX2p/pK7S
2T1zbIWrOlBqGMvNBI8WDoteWcPXzB+nQRQvDDusisW6Y/bmPG3i/6aytCx8
lAOKY+lS7h6x1JuSchNp4EMMWIxAFMehrrqqlgayIXI/QlCeVLTDwOl8WhZk
xipid60Dw1gpuOcCdRZZ2y2uSFBvwXqmWK967FXKOYpKCJzzcU49cM2vLehy
D8E3zN4eGRLxQMiC2d1Ow967iDGUqHhOmh5XLpri8+TFkT1wRFHDvuZ0f8VM
20yTOcwL+YTHmpUpZB64uEGyOjjOPZonfvX+K3PcrBaCMKfgCjX9SBHzUFVa
ByT+JsluTpZIqMIcrdosakUPvfIAoKlHNLbzj7o+JqrcHCOlWHLZPgpvuCRe
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
tR5b++PnCf8vqc0JCyR8AAA=

-->

</rfc>
