<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.0.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC8411 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8411.xml">
<!ENTITY RFC8784 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8784.xml">
<!ENTITY RFC8696 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8696.xml">
<!ENTITY I-D.ietf-lamps-cmp-updates SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lamps-cmp-updates.xml">
<!ENTITY I-D.driscoll-pqt-hybrid-terminology SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.driscoll-pqt-hybrid-terminology.xml">
<!ENTITY I-D.ietf-tls-hybrid-design SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-hybrid-design.xml">
<!ENTITY I-D.ietf-ipsecme-ikev2-multiple-ke SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-ikev2-multiple-ke.xml">
<!ENTITY I-D.ounsworth-pq-composite-kem SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ounsworth-pq-composite-kem.xml">
<!ENTITY I-D.wussler-openpgp-pqc SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.wussler-openpgp-pqc.xml">
]>


<rfc ipr="trust200902" docName="draft-ounsworth-cfrg-kem-combiners-02" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="KEM Combiner">Combiner function for hybrid key encapsulation mechanisms (Hybrid KEMs)</title>

    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road – Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="A." surname="Wussler" fullname="Aron Wussler">
      <organization abbrev="Proton">Proton AG</organization>
      <address>
        <postal>
          <country>Switzerland</country>
        </postal>
        <email>aron@wussler.it</email>
      </address>
    </author>
    <author initials="S." surname="Kousidis" fullname="Stavros Kousidis">
      <organization>BSI</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>stavros.kousidis@bsi.bund.de</email>
      </address>
    </author>

    <date year="2023" month="March" day="12"/>

    <area>Security</area>
    <workgroup>CFRG</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>The migration to post-quantum cryptography often calls for performing multiple key encapsulations in parallel and then combining their outputs to derive a single shared secret.</t>

<t>This document defines a flexible multi-share KEM combiner to join an arbitrary number of key shares, that is a multi-PRF compatible with NIST SP 800-56Cr2 <xref target="SP800-56C"></xref>. The combiner defined here is CCA-secure as long as at least one of the ingredient
KEMs is.</t>

<!-- End of Abstract -->



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ounsworth-cfrg-kem-combiners/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME (lamps) Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/EntrustCorporation/draft-ounsworth-cfrg-kem-combiners"/>.</t>
    </note>


  </front>

  <middle>


<section anchor="sec-terminology"><name>Terminology</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/>  <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>

<t>This document is consistent with all terminology defined in <xref target="I-D.driscoll-pqt-hybrid-terminology"/>.</t>

<section anchor="sec-kem-defn"><name>Key Encapsulation Mechanisms</name>

<t>For the purposes of this document, we consider a Key Encapsulation Mechanism (KEM) to be any asymmetric cryptographic scheme comprised of algorithms satisfying the following interfaces <xref target="PQCAPI"></xref>.</t>

<figure><artwork><![CDATA[
def kemKeyGen() -> (pk, sk)
def kemEncaps(pk) -> (ct, ss)
def kemDecaps(ct, sk) -> ss
]]></artwork></figure>

<t>where <spanx style="verb">pk</spanx> is public key, <spanx style="verb">sk</spanx> is secret key, <spanx style="verb">ct</spanx> is the ciphertext representing an encapsulated key, and <spanx style="verb">ss</spanx> is shared secret.</t>

<t>KEMs are typically used in cases where two parties, hereby refereed to as the "encapsulater" and the "decapsulater", wish to establish a shared secret via public key cryptography, where the decapsulater has an asymmetric key pair and has previously shared the public key with the encapsulater.</t>

</section>
</section>
<section anchor="sec-intro"><name>Introduction</name>

<t>The need for a KEM combiner function arises in three different contexts within IETF security protocols:</t>

<t><list style="numbers">
  <t>KEM / PSK hybrids where the output of a KEM is combined with a static pre-shared key.</t>
  <t>Post-quantum / traditional hybrid KEMs where output of a post-quantum KEM is combined with the output of a classical key transport or key exchange algorithm.</t>
  <t>KEM-based authenticated key exchanges (AKEs) where the output of two or more KEMs performed in different directions are combined.</t>
</list></t>

<t>This document normalizes a mechanism for combining the output of two or more KEMs.</t>

<section anchor="kempsk-hybrids"><name>KEM/PSK hybrids</name>

<t>As a post-quantum stop-gap, several IETF protocols have added extensions to allow for mixing a pre-shared key (PSK) into an (EC)DH based key exchange. Examples include CMS <xref target="RFC8696"></xref> and IKEv2 <xref target="RFC8784"></xref>.</t>

</section>
<section anchor="pqtraditional-hybrid-kems"><name>PQ/Traditional hybrid KEMs</name>

<t>A post-quantum / traditional hybrid key encapsulation mechanism (hybrid KEM) as defined in <xref target="I-D.driscoll-pqt-hybrid-terminology"/> as</t>

<dl>
  <dt>PQ/T Hybrid Key Encapsulation Mechanism:</dt>
  <dd>
    <t>A Key Encapsulation Mechanism (KEM) made up of two or more component KEM algorithms where at least one is a post-quantum algorithm and at least one is a traditional algorithm.</t>
  </dd>
</dl>

<t>Building a PQ/T hybrid KEM requires a secure function which combines the output of both component KEMs to form a single output. Several IETF protocols are adding PQ/T hybrid KEM mechanisms as part of their overall post-quantum migration strategies, examples include TLS 1.3 <xref target="I-D.ietf-tls-hybrid-design"></xref>, IKEv2 <xref target="I-D.ietf-ipsecme-ikev2-multiple-ke"></xref>, X.509; PKIX; CMS <xref target="I-D.ounsworth-pq-composite-kem"></xref>, OpenPGP <xref target="I-D.wussler-openpgp-pqc"></xref>, JOSE / COSE (CITE once Orie's drafts are up).</t>

<t>The traditional algorithm may in fact be a key transport or key agreement scheme, but since simple transformations exist to turn both of those schemes into KEMs, this document assumes that all cryptograhpic algorithms satisfy the KEM interface described in <xref target="sec-kem-defn"/>.</t>

</section>
<section anchor="kem-based-ake"><name>KEM-based AKE</name>

<t>The need for a KEM-based authenticated key establishment arises, for example, when two communicating parties each have long-term KEM keys (for example in X.509 certificates), and wish to involve both KEM keys in deriving a mutually-authenticated shared secret. In particular this will arise for any protocol that needs to provide post-quantum replacements for static-static (Elliptic Curve) Diffie-Hellman mechanisms. Examples include a KEM replacement for CMP's DHBasedMac <xref target="I-D.ietf-lamps-cmp-updates"/>.</t>

</section>
</section>
<section anchor="sec-kem-combiner"><name>KEM Combiner construction</name>

<!-- TODO: read and cite the ETSI doc "Quantum-safe Hybrid Key Exchanges"
https://www.etsi.org/deliver/etsi_ts/103700_103799/103744/01.01.01_60/ts_103744v010101p.pdf

TODO: as per https://www.enisa.europa.eu/publications/post-quantum-cryptography-integration-study section 4.2, might need to specify behaviour in light of KEMs with a non-zero failure probability.
-->

<t>A KEM combiner is a function that takes in two or more shared secrets <spanx style="verb">ss_i</spanx> and returns a combined shared secret <spanx style="verb">ss</spanx>.</t>

<figure><artwork><![CDATA[
ss = kemCombiner(ss_1, ss_2, ..., ss_n)
]]></artwork></figure>

<t>This document assumes that shared secrets are the output of a KEM, but without loss of generality they MAY also be any other source of cryptographic key material, such as pre-shared keys (PSKs), with PQ/PSK being a quantum-safe migration strategy being made available by some protocols, see for example IKEv2 in <xref target="RFC8784"></xref>.</t>

<t>In general it is desirable to use a multi-PRF as a KEM combiner, meaning that the combiner has the properties of a PRF when keyed by any of its single inputs.
The following simple yet generic construction can be used in all IETF protocols that need to combine the output of two or more KEMs:</t>

<figure title="general KEM combiner construction" anchor="tab-kemCombiner"><artwork><![CDATA[
KDF(counter || k_1 || ... || k_n || fixedInfo, outputBits)
]]></artwork></figure>

<t>where:</t>

<t><list style="symbols">
  <t><spanx style="verb">KDF</spanx> represents a suitable choice of cryptographic key derivation function,</t>
  <t><spanx style="verb">k_i</spanx> represent the constant-length input keys and is discussed in <xref target="sec-k_i-construction"/>,</t>
  <t><spanx style="verb">fixedInfo</spanx> is some protocol-specific KDF binding,</t>
  <t><spanx style="verb">counter</spanx> parameter is instantiation-specific and is discussed in <xref target="sec-instantiation"/>.</t>
  <t><spanx style="verb">outputBits</spanx> determines the length of the output keying material,</t>
  <t><spanx style="verb">||</spanx> represents concatenation.</t>
</list></t>

<t>In <xref target="sec-instantiation"/> several possible practical instantiations are listed that are in compliance with NIST SP-800 56Cr2 <xref target="SP800-56C"/>.
The shared secret <spanx style="verb">ss</spanx> MAY be used directly as a symmetric key, for example as a MAC key or as a Key Encryption Key (KEK).</t>

<section anchor="sec-k_i-construction"><name>k_i construction</name>

<t>Following the guidance of Giacon et al. <xref target="KEMC"></xref>, we wish for a KEM combiner that is CCA-secure as long as at least one of the ingredient KEMs is. Ir order to protect against chosen ciphertext attacks, it is necessary to include both the shared secret <spanx style="verb">ss_i</spanx> and its corresponding ciphertext <spanx style="verb">ct_i</spanx>. In addition, each <spanx style="verb">k_i</spanx> MUST be constant in length to prevent abuse of the underlying hash function, therefore the secret shares <spanx style="verb">ss_i || ct_i</spanx> MUST be hashed prior to inclusion in the overall construction described in <xref target="tab-kemCombiner"/>:</t>

<figure><artwork><![CDATA[
k_i = H(ss_i || ct_i)
]]></artwork></figure>

<t>In the case of a PSK there is no associated ciphertext present.</t>

<t>~~~ BEGIN EDNOTE ~~~</t>

<t>Each <spanx style="verb">k_i</spanx> MUST be constant in length, therefore it MAY be the concatenation of the secret share <spanx style="verb">ss_i</spanx> and ciphertext <spanx style="verb">ct_i</spanx> only if they are guaranteed to be constant length:</t>

<figure><artwork><![CDATA[
k_i = ss_i || ct_i
]]></artwork></figure>

<t>For all other cases, it is REQUIRED to concatenate and hash them first:</t>

<figure><artwork><![CDATA[
k_i = H(ss_i || ct_i)
]]></artwork></figure>

<t>Including the ciphertext guarantees that the combined kem is IND-CCA secure as long as one of the ingredient KEMs is, as stated by <xref target="KEMC"></xref>.</t>

<t>Any protocols making use of this construction MUST either hash all inputs <spanx style="verb">ss_i || ct_i</spanx>, or justify that any un-hashed inputs will always be fixed length.</t>

<t>~~~ END EDNOTE ~~~</t>

</section>
<section anchor="protocol-binding"><name>Protocol binding</name>
<t>The <spanx style="verb">fixedInfo</spanx> string is a fixed-length string containing some context-specific information.
The intention is to prevent cross-context attacks by making this key derivation unique to its protocol context.</t>

<t>The <spanx style="verb">fixedInfo</spanx> string MUST have a definite structure depending on the protocol where all parts are fixed length. This prevents a variable length structure from creating collisions between two different instances.
In cases some variable length input is necessary, such as the representation of a user ID, a public key, or an OID, then hashing or padding MAY be used.</t>

<t><spanx style="verb">fixedInfo</spanx> MUST NOT include the shared secrets and ciphertexts, as they are already represented in the KDF input.</t>

<t>The parameter fixedInfo MAY contain any of the following information:</t>

<t><list style="symbols">
  <t>Public information about the communication parties, such as their identifiers.</t>
  <t>The public keys or certificates contributed by each party to the key-agreement transaction.</t>
  <t>Other public information shared between communication parties before or during the transaction, such as nonces.</t>
  <t>An indication of the protocol or application employing the key-derivation method.</t>
  <t>Protocol-related information, such as a label or session identifier.</t>
  <t>An indication of the key-agreement scheme and/or key-derivation method used.</t>
  <t>An indication of the domain parameters associated with the asymmetric key pairs employed for key establishment.</t>
  <t>An indication of other parameter or primitive choices.</t>
  <t>An indication of how the derived keying material should be parsed, including an indication of which algorithm(s) will use the (parsed) keying material.</t>
</list></t>

<t>This is a non-comprehensive list, further information can be found in paragraph 5.8.2 of NIST SP800-56Ar3 <xref target="SP800-56A"/>.</t>

</section>
</section>
<section anchor="sec-instantiation"><name>Practical instantiations</name>

<t>The KDF must be instantiated with cryptographically-secure choices for <spanx style="verb">KDF</spanx> and <spanx style="verb">H</spanx>. The following are RECOMMENDED Keccak-based instatiations, but other choices MAY be made for example to allow for future cryptographic agility. A protocol using a different instantiation MUST justify that it will behave as a multi-PRF given fixed length inputs.</t>

<t>Each instance defines a function to be used as <spanx style="verb">KDF</spanx>, a hash <spanx style="verb">H</spanx> function to derive the <spanx style="verb">k_i</spanx>, and optionally a <spanx style="verb">counter</spanx>.</t>

<t><list style="numbers">
  <t><spanx style="verb">KDF = SHA3-256</spanx> and <spanx style="verb">H = SHA3-256</spanx>, with <spanx style="verb">hashSize = 256 bit</spanx>.</t>
  <t><spanx style="verb">KDF = SHA3-512</spanx> and <spanx style="verb">H = SHA3-512</spanx>, with <spanx style="verb">hashSize = 512 bit</spanx>.</t>
  <t><spanx style="verb">KDF = KMAC128</spanx> and <spanx style="verb">H = SHA3-256</spanx>, with <spanx style="verb">hashSize = 128 bit</spanx>.</t>
  <t><spanx style="verb">KDF = KMAC256</spanx> and <spanx style="verb">H = SHA3-512</spanx>, with <spanx style="verb">hashSize = 256 bit</spanx>.</t>
</list></t>

<section anchor="hash-and-counter-based-construction"><name>Hash-and-counter based construction</name>
<t>Options 1 and 2 instantiate the KDF using SHA3, specified in NIST FIPS 202 <xref target="FIPS202"/>.
To generate an <spanx style="verb">outputBits</spanx> long secret share <spanx style="verb">ss</spanx>:</t>

<t><list style="symbols">
  <t>the <spanx style="verb">counter</spanx> MUST be initialized with the value <spanx style="verb">0x00000001</spanx>.</t>
  <t>The hash is performed over the string defined in <xref target="sec-kem-combiner"/>, and repeated <spanx style="verb">ceil(outputBits/hashSize)</spanx> times. For each iteration the <spanx style="verb">counter</spanx> MUST be increased by <spanx style="verb">0x01</spanx>.</t>
  <t>The strings are concatenated ordered by <spanx style="verb">counter</spanx>.</t>
  <t>The leftmost <spanx style="verb">outputBits</spanx> are returned as <spanx style="verb">ss</spanx>.</t>
</list></t>

<t>An implementation MUST NOT overflow and reuse the <spanx style="verb">counter</spanx> and an error MUST be returned when producing more than 2^32 consecutive hashes.</t>

</section>
<section anchor="kmac-based-construction"><name>KMAC based construction</name>
<t>Options 3 and 4 are KMAC-based, as specified in NIST SP 800-185 <xref target="SP800-185"/>.
To instantiate the function:</t>

<t><list style="symbols">
  <t>The context <spanx style="verb">S</spanx> MUST be the utf-8 string "KDF".</t>
  <t>The key <spanx style="verb">K</spanx> MUST be a context-specific string of at least <spanx style="verb">hashSize</spanx> bits, and it MAY be used as an additional option to perform context separation, in scenarios where <spanx style="verb">fixedInfo</spanx> is not sufficient.</t>
  <t>The parameter <spanx style="verb">counter</spanx> MUST be the fixed value <spanx style="verb">0x00000001</spanx>.</t>
</list></t>

<t>To derive a shared secret <spanx style="verb">ss</spanx> of desired length, KMAC is called a single time with the input string <spanx style="verb">X</spanx> defined in <xref target="sec-kem-combiner"/> and length <spanx style="verb">L</spanx> being <spanx style="verb">outputBits</spanx>.
This is compatible with the one-step KDF definition given in NIST SP800-56Cr2 <xref target="SP800-56C"/>, Section 4.</t>

</section>
</section>
<section anchor="sec-iana"><name>IANA Considerations</name>

<t>None.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The proposed instantiations in <xref target="sec-instantiation"/> are practical multi-PRFs and this specification limits to the use of Keccak-based constructions. The sponge construction was proven to be indifferentiable from a random oracle <xref target="SPONGE"/>.
More precisely, for a given capacity <spanx style="verb">c</spanx> the indifferentiability proof shows that assuming there are no weaknesses found in the Keccak permutation, an attacker has to make an expected number of <spanx style="verb">2^(c/2)</spanx> calls to the permutation to tell Keccak from a random oracle.
For a random oracle, a difference in only a single bit gives an unrelated, uniformly random output.
Hence, to be able to distinguish a key <spanx style="verb">k</spanx>, derived from shared keys <spanx style="verb">k_i</spanx> from a random bit string, an adversary has to correctly guess all key shares <spanx style="verb">k_i</spanx> entirely.</t>

<t>The proposed construction in <xref target="sec-kem-combiner"/> with the instantiations in
<xref target="sec-instantiation"/> preserves IND-CCA2 of any of its ingredient KEMs, i.e.
the newly formed combined KEM is IND-CCA2 secure as long as at least one of the
ingredient KEMs is. Indeed, the above stated indifferentiability from a random
oracle qualifies Keccak as a split-key pseudorandom function as defined in
<xref target="KEMC"/>. That is, Keccak behaves like a random function if at least
one input shared secret <spanx style="verb">ss_i</spanx> is picked uniformly at random. Our construction
can thus be seen as an instantiation of the IND-CCA2 preserving Example 3 in
Figure 1 of <xref target="KEMC"/>, up to some reordering of input shared secrets and
ciphertexts and their potential compression by a cryptographic hash function.</t>

<!-- Start of Appendices -->

</section>


  </middle>

  <back>


    <references title='Normative References'>

&RFC2119;


    </references>

    <references title='Informative References'>

&RFC8174;
&RFC8411;
&RFC8784;
&RFC8696;
&I-D.ietf-lamps-cmp-updates;
&I-D.driscoll-pqt-hybrid-terminology;
&I-D.ietf-tls-hybrid-design;
&I-D.ietf-ipsecme-ikev2-multiple-ke;
&I-D.ounsworth-pq-composite-kem;
&I-D.wussler-openpgp-pqc;
<reference anchor="PQCAPI" target="https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/example-files/api-notes.pdf">
  <front>
    <title>PQC - API notes</title>
    <author initials="N. P.-Q. C." surname="Project" fullname="NIST Post-Quantum Cryptography Project">
      <organization></organization>
    </author>
    <date year="2022" month="November"/>
  </front>
</reference>
<reference anchor="SP800-56A" target="https://doi.org/10.6028/NIST.SP.800-56Ar3">
  <front>
    <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography</title>
    <author initials="E." surname="Barker" fullname="Elaine Barker">
      <organization></organization>
    </author>
    <author initials="L." surname="Chen" fullname="Lily Chen">
      <organization></organization>
    </author>
    <author initials="A." surname="Roginsky" fullname="Allen Roginsky">
      <organization></organization>
    </author>
    <author initials="A." surname="Vassilev" fullname="Apostol Vassilev">
      <organization></organization>
    </author>
    <author initials="R." surname="Davis" fullname="Richard Davis">
      <organization></organization>
    </author>
    <date year="2018" month="April"/>
  </front>
  <seriesInfo name="NIST Special Publication 800-56A" value=""/>
</reference>
<reference anchor="SP800-56C" target="https://doi.org/10.6028/NIST.SP.800-56Cr2">
  <front>
    <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
    <author initials="E." surname="Barker" fullname="Elaine Barker">
      <organization></organization>
    </author>
    <author initials="L." surname="Chen" fullname="Lily Chen">
      <organization></organization>
    </author>
    <author initials="R." surname="Davis" fullname="Richard Davis">
      <organization></organization>
    </author>
    <date year="2020" month="August"/>
  </front>
  <seriesInfo name="NIST Special Publication 800-56C" value=""/>
</reference>
<reference anchor="SP800-185" target="https://doi.org/10.6028/NIST.SP.800-185">
  <front>
    <title>SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash, and ParallelHash</title>
    <author initials="J." surname="Kelsey" fullname="John Kelsey">
      <organization></organization>
    </author>
    <author initials="S." surname="Chan" fullname="Shu-jen Chan">
      <organization></organization>
    </author>
    <author initials="R." surname="Perln" fullname="Ray Perln">
      <organization></organization>
    </author>
    <date year="2016"/>
  </front>
  <seriesInfo name="NIST Special Publication 800-185" value=""/>
</reference>
<reference anchor="FIPS202" target="https://doi.org/10.6028/NIST.FIPS.202">
  <front>
    <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions</title>
    <author >
      <organization></organization>
    </author>
    <date year="2015"/>
  </front>
  <seriesInfo name="Federal information Processing Standards Publication (FIPS) 202" value=""/>
</reference>
<reference anchor="SPONGE" target="https://doi.org/10.1007/978-3-540-78967-3_11">
  <front>
    <title>On the Indifferentiability of the Sponge Construction</title>
    <author initials="G." surname="Bertoni" fullname="Guido Bertoni">
      <organization></organization>
    </author>
    <author initials="J." surname="Daemen" fullname="Joan Daemen">
      <organization></organization>
    </author>
    <author initials="M." surname="Peters" fullname="Michael Peters">
      <organization></organization>
    </author>
    <author initials="G." surname="Assche" fullname="Gilles van Assche">
      <organization></organization>
    </author>
    <date year="2008"/>
  </front>
</reference>
<reference anchor="KEMC" target="https://doi.org/10.1007/978-3-319-76578-5_7">
  <front>
    <title>KEM Combiners</title>
    <author initials="F." surname="Giacon" fullname="Federico Giacon">
      <organization></organization>
    </author>
    <author initials="F." surname="Heuer" fullname="Felix Heuer">
      <organization></organization>
    </author>
    <author initials="B." surname="Poettering" fullname="Bertram Poettering">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
</reference>
<reference anchor="ETSI-QHKE" target="https://www.etsi.org/deliver/etsi_ts/103700_103799/103744/01.01.01_60/ts_103744v010101p.pdf">
  <front>
    <title>Quantum-safe Hybrid Key Exchanges</title>
    <author >
      <organization></organization>
    </author>
    <date year="2020" month="December"/>
  </front>
  <seriesInfo name="ETSI TS 103 744 V1.1.1" value=""/>
</reference>
<reference anchor="Aviram2022" target="https://eprint.iacr.org/2022/065">
  <front>
    <title>Practical (Post-Quantum) Key Combiners from One-Wayness and Applications to TLS.</title>
    <author initials="N." surname="Aviram" fullname="Nimrod Aviram">
      <organization></organization>
    </author>
    <author initials="B." surname="Dowling" fullname="Benjamin Dowling">
      <organization></organization>
    </author>
    <author initials="I." surname="Komargodski" fullname="Ilan Komargodski">
      <organization></organization>
    </author>
    <author initials="K. G." surname="Paterson" fullname="Kenneth G Paterson">
      <organization></organization>
    </author>
    <author initials="E." surname="Ronen" fullname="Eyal Ronen">
      <organization></organization>
    </author>
    <author initials="E." surname="Yogev" fullname="Eylon Yogev">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>


<section numbered="false" anchor="contributors"><name>Contributors</name>

<t>Stavros Kousidis (BSI)</t>

</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>This document incorporates contributions and comments from a large group of experts. The authors would especially like to acknowledge the expertise and tireless dedication of the following people, who attended many long meetings and generated millions of bytes of electronic mail and VOIP traffic over the past years in pursuit of this document:</t>

<t>Douglas Stebila, Nimrod Aviram, and Andreas Huelsing.</t>

<t>We are grateful to all, including any contributors who may have
been inadvertently omitted from this list.</t>

<t>This document borrows text from similar documents, including those referenced below. Thanks go to the authors of those
   documents.  "Copying always makes things easier and less error prone" - <xref target="RFC8411"></xref>.</t>

<!-- End of Contributors section -->

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

