<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.35 (Ruby 3.0.2) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ra-cose-hybrid-encrypt-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="Hybrid key exchange in JOSE and COSE">Hybrid key exchange in JOSE and COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-ra-cose-hybrid-encrypt-00"/>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="05"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>PQC</keyword>
    <keyword>COSE</keyword>
    <keyword>JOSE</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 66?>

<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 JOSE and COSE. It defines the use of traditional and PQC algorithms, 
a hybrid post-quantum KEM, for JOSE and COSE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ra-cose-hybrid/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cose Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 74?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The migration to PQC is unique in the history of modern digital cryptography in that neither the traditional algorithms nor the post-quantum algorithms are fully trusted to protect data for the required data lifetimes. The traditional algorithms, such as RSA and elliptic curve, will fall to quantum cryptalanysis, while the post-quantum algorithms face uncertainty about the underlying mathematics, compliance issues, unknown vulnerabilities, hardware and software implementations that have not had sufficient maturing time to rule out classical cryptanalytic attacks and implementation bugs.</t>
      <t>During the transition from traditional to post-quantum algorithms, there is a desire or a requirement for protocols that use both algorithm types. <xref target="I-D.ietf-pquip-pqt-hybrid-terminology"/> defines terminology for the Post-Quantum and Traditional Hybrid Schemes.</t>
      <t>This document gives a construction for hybrid key exchange in Javascript Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE). The overall design approach is a simple, "hash and concatenation" based approach to use a “hybrid” shared secret.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document makes use of the terms defined in <xref target="I-D.ietf-pquip-pqt-hybrid-terminology"/>. For the purposes of this document, it is helpful to be able to divide cryptographic algorithms into two classes:</t>
      <t>"Traditional Algorithm":  An asymmetric cryptographic algorithm based on integer factorisation, finite field discrete logarithms or elliptic curve discrete logarithms. In the context of JOSE, examples of traditional key exchange algorithms include Elliptic Curve Diffie-Hellman Ephemeral Static <xref target="RFC6090"/> <xref target="RFC8037"/>. In the context of COSE, examples of traditional key exchange algorithms include Ephemeral-Static (ES) DH and Static-Static (SS) DH <xref target="RFC9052"/>.</t>
      <t>"Post-Quantum Algorithm":  An asymmetric cryptographic algorithm that is believed to be secure against attacks using quantum computers as well as classical computers. Examples of PQC key exchange algorithms include Kyber.</t>
      <t>"Hybrid" key exchange, in this context, means the use of two key exchange algorithms based on different cryptographic assumptions, e.g., one traditional algorithm and one Post-Quantum
algorithm, with the purpose of the final shared secret key being secure as long as at least one of the component key exchange algorithms remains unbroken. It is referred to
as PQ/T Hybrid Scheme in <xref target="I-D.ietf-pquip-pqt-hybrid-terminology"/>.</t>
      <t>PQ/T Hybrid Key Encapsulation Mechanism:  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>
      <section anchor="key-encapsulation-mechanisms">
        <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"/>.</t>
        <ul spacing="normal">
          <li>def kemKeyGen() -&gt; (pk, sk)</li>
          <li>def kemEncaps(pk) -&gt; (ct, ss)</li>
          <li>def kemDecaps(ct, sk) -&gt; ss</li>
        </ul>
        <t>where pk is public key, sk is secret key, ct is the ciphertext representing an encapsulated key, and ss 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="construction">
      <name>Construction</name>
      <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"/>, IKEv2 <xref target="RFC9370"/>.</t>
      <t>The migration to PQ/T Hybrid KEM calls for performing multiple key encapsulations in parallel and then combining their outputs to derive a single shared secret. It is compatible with NIST SP 800-56Cr2 <xref target="SP800-56C"/> when viewed as a key derivation function. The hybrid scheme defined in this document is the combination of Traditional and Post-Quantum Algorithms. The Key agreement Traditional and Post-Quantum Algorithms are used in parallel to generate shared secrets. The two shared secrets are hashed and concatenated together and used as the shared secret in JOSE and COSE.</t>
      <t>The JSON Web Algorithms (JWA) <xref target="RFC7518"/> in Section 4.6 defines two ways using the key agreement result. When Direct Key Agreement is employed, the shared secret established through the ECDH algorithm will be the content encryption key (CEK). When Key Agreement with Key Wrapping is employed, the shared secret established through the ECDH algorithm will wrap the CEK. Simiarly, COSE in Sections 8.5.4 and 8.5.5 <xref target="RFC9052"/> define the Direct Key Agreement and Key Agreement with Key Wrap classes. If multiple recipients are needed, then the version with key wrap is used.</t>
    </section>
    <section anchor="kem-combiner">
      <name>KEM Combiner</name>
      <t>The specification uses the KEM combiner defined in <xref target="I-D.ounsworth-cfrg-kem-combiners"/> that takes in two or more shared secrets and returns a combined shared secret. In case of PQ/T Hybrid KEM, the shared secrets are the output of the traditional key exchange and PQC KEM. The KEM combiner function is defined in Section 3 of <xref target="I-D.ounsworth-cfrg-kem-combiners"/>. The KDF and Hash functions will be KMAC and SHA3 and the counter will be initialized with a value of 0x00000001 (Section 4 of <xref target="I-D.ounsworth-cfrg-kem-combiners"/>). The KMAC and Hash functions used with the PQ/T hybrid algorithms are specified in the table below:</t>
      <artwork><![CDATA[
        +==============+=========+=========+==========+
        | PQ/T hybrid algorithm  | KDF     | H        |
        +========================+=========+==========+
        | x25519_kyber512        | KMAC128 | SHA3-256 |
        +------------------------+---------+----------+
        | secp384r1_kyber768     | KMAC256 | SHA3-384 |
        +------------------------+---------+----------+
        | x25519_kyber768        | KMAC256 | SHA3-384 |
        +-----------------------+----------+----------+
        | secp256r1_kyber512     | KMAC128 | SHA3-256 |
        +-----------------------+----------+----------+

                         Table 1 
]]></artwork>
      <t>KMAC is defined in NIST SP 800-185 <xref target="SP800-185"/>.  The KMAC(K, X, L, S) parameters are instantiated as follows:</t>
      <ul spacing="normal">
        <li>K: context-specific string.
In case of JOSE, the context-specific string will be set to concat("JOSE", "<em>", Name of the PQ/T hybrid algorithm). In case of COSE, the context-specific string 
will be set to concat("COSE", "-", Name of the PQ/T hybrid algorithm). For example, concat("JOSE", "</em>","x25519_kyber512") = "JOSE_x25519_kyber512".</li>
        <li>X: concat(0x00000001, k_1, ... , k_n).</li>
        <li>L: length of the output key in bits.</li>
        <li>S: empty string.</li>
      </ul>
      <t>In the case of a traditional key exchange algorithm (e.g., x25519, secp384r1) since there is no associated ciphertext present when calculating the constant-length input key (k1) defined in Section 3.1 of <xref target="I-D.ounsworth-cfrg-kem-combiners"/>, the key derivation process defined in Section 4.6.2 of <xref target="RFC7518"/> for JOSE would be used to construct k. However, in case of COSE, the the HKDF (HMAC based Key Derivation Function) defined in Section 5 of <xref target="RFC9053"/> would be used. The HKDF algorithm leverages HMAC SHA-256 as the underlying PRF (Pseudo-Random function) for secp256r1 and x25519, and HMAC SHA-384 for secp384r1. The context structure defined in Section 5.2 of <xref target="RFC9053"/>, salt and secret from DH key agreement are used as inputs to the HKDF. Note that the result of an ECDH key agreement process does not provide a uniformly random secret and it needs to be run through a KDF in order to produce a usable key (see Section 6.3.1 of <xref target="RFC9053"/>).</t>
      <t>The KEM combiner instantiation of the first entry of Table 1 would be:</t>
      <artwork><![CDATA[
  ss = KMAC128("COSE_x25519_kyber512", "0x00000001 || 
                HKDF-256(DH-Shared-Secret, salt, context) || 
                SHA3-256(ss_1 || ct_1)" , 256, "")  
]]></artwork>
      <t>In Direct Key Agreement mode, the output of the KEM combiner <bcp14>MUST</bcp14> be a key of the same length as that used by encryption algorithm. In Key Agreement with Key Wrapping mode, the output of the KEM combiner <bcp14>MUST</bcp14> be a key of the length needed for the specified key wrap algorithm.</t>
    </section>
    <section anchor="kem-pqc-algorithms">
      <name>KEM PQC Algorithms</name>
      <t>The National Institute of Standards and Technology (NIST) started a process to solicit, evaluate, and standardize one or more quantum-resistant public-key cryptographic algorithms, as seen <eref target="https://csrc.nist.gov/projects/post-quantum-cryptography">here</eref>. Said process has reached its <eref target="https://csrc.nist.gov/publications/detail/nistir/8413/final">first announcement</eref> in July 5, 2022, which stated which candidates to be standardized for KEM:</t>
      <ul spacing="normal">
        <li>Key Encapsulation Mechanisms (KEMs): <eref target="https://pq-crystals.org/kyber/">CRYSTALS-Kyber</eref>: Kyber is a module learning with errors (MLWE)-based key encapsulation mechanism.</li>
      </ul>
      <t>NIST announced as well that they will be <eref target="https://csrc.nist.gov/csrc/media/Projects/post-quantum-cryptography/documents/round-4/guidelines-for-submitting-tweaks-fourth-round.pdf">opening a fourth round</eref> to standardize an alternative KEM, and a <eref target="https://csrc.nist.gov/csrc/media/Projects/pqc-dig-sig/documents/call-for-proposals-dig-sig-sept-2022.pdf">call</eref> for new candidates for a post-quantum signature algorithm.</t>
      <section anchor="kyber">
        <name>Kyber</name>
        <t>Kyber offers several parameter sets with varying levels of security and performance trade-offs. This document specifies the use of the Kyber algorithm at two security levels: Kyber512 and Kyber768. Kyber key generation, encapsulation and decaspulation functions are defined in <xref target="I-D.cfrg-schwabe-kyber"/>.</t>
      </section>
    </section>
    <section anchor="hybrid-kem">
      <name>Hybrid Key Representation with JOSE</name>
      <t>A new key type (kty) value "HYBRID" is defined for expressing the cryptographic keys for PQ/T Hybrid KEM in JSON Web Key (JWK) form, the following rules apply:</t>
      <ul spacing="normal">
        <li>The parameter "kty" <bcp14>MUST</bcp14> be present and set to "HYBRID".</li>
        <li>
          <t>The parameter "alg" <bcp14>MUST</bcp14> be specified, and its value <bcp14>MUST</bcp14> be one of the values specified in the table below:  </t>
          <artwork><![CDATA[
        +============================+===================================+
        | alg                        | Description                       |
        +============================+===================================+
        | x25519_kyber512            | Curve25519 elliptic curve +       |
        |                            | Kyber512 parameter                |
        |                            | Direct Key Agreement              |
        +============================+===================================+
        | secp384r1_kyber768         | P-384 + Kyber768 parameter        |
        |                            | Direct Key Agreement              |
        +============================+===================================+
        | x25519_kyber768            | Curve25519 elliptic curve +       |
        |                            | Kyber768 parameter                |
        |                            | Direct Key Agreement              |
        +============================+===================================+
        | secp256r1_kyber512         | P-256 +  Kyber512 parameter       |
        |                            | Direct Key Agreement              |
        +============================+===================================+
        | x25519_kyber512+A128KW     | Curve25519 elliptic curve +       |
        |                            | Kyber512 parameter + CEK wrapped  |
        |                            | with "A128KW"                     | 
        +========+===================+===================================+
        | secp384r1_kyber768+A128KW  | P-384 + Kyber768 parameter        |
        |                            |  + CEK wrapped with "A128KW"      |
        +========+===================+===================================+
        | x25519_kyber768+A128KW     | Curve25519 elliptic curve +       |
        |                            | Kyber768 parameter + CEK wrapped  |
        |                            | with "A128KW"                     |
        +========+===================+===================================+
        | secp256r1_kyber512+A128KW  | P-256 +  Kyber512 parameter       |
        |                            | + CEK wrapped with "A128KW"       |
        +============================+===================================+
        | x25519_kyber512+A256KW     | Curve25519 elliptic curve +       |
        |                            | Kyber512 parameter + CEK wrapped  |
        |                            | with "A256KW"                     | 
        +============================+==================================+
        | secp384r1_kyber768+A256KW  | P-384 + Kyber768 parameter        |
        |                            |  + CEK wrapped  with "A256KW"     |
        +========+===================+===================================+
        | x25519_kyber768+A256KW     | Curve25519 elliptic curve +       |
        |                            | Kyber768 parameter + CEK wrapped  |
        |                            | with "A256KW"                     |
        +========+===================+===================================+
        | secp256r1_kyber512+A256KW  | P-256 +  Kyber512 parameter       |
        |                            | + CEK wrapped with "A256KW"       |
        +============================+===================================+

                           Table 2
]]></artwork>
        </li>
        <li>The parameter "kem" <bcp14>MUST</bcp14> be present and set to the PQC KEM algorithm.</li>
        <li>The parameter "kem-pk" <bcp14>MUST</bcp14> be present and contains the PQC KEM public key encoded using the base64url <xref target="RFC4648"/> encoding.</li>
        <li>The parameter "kem-sk" <bcp14>MUST</bcp14> be present for private key and contains the PQC KEM private key encoded using the base64url encoding. This parameter <bcp14>MUST NOT</bcp14> be present for public key.</li>
        <li>The parameter "kem-ct" <bcp14>MUST</bcp14> be present for KEM ciphertext encoded using the base64url <xref target="RFC4648"/> encoding.</li>
        <li>The parameter "crv" <bcp14>MUST</bcp14> be present and contains the Elliptic Curve Algorithm used (from the "JSON Web Key Elliptic Curve" registry).</li>
        <li>The parameter "x" <bcp14>MUST</bcp14> be present and contains the x coordinate for the Elliptic Curve point encoded using the base64url <xref target="RFC4648"/> encoding.</li>
        <li>The parameter "y" <bcp14>MUST</bcp14> be present and contains the y coordinate for the Elliptic Curve point encoded using the base64url <xref target="RFC4648"/> encoding. This parameter is not present for "X25519".</li>
        <li>The parameter "d" <bcp14>MUST</bcp14> be present for private keys and contains the Elliptic Curve Algorithm private key encoded using the base64url encoding. This parameter <bcp14>MUST NOT</bcp14> be present for public keys.</li>
      </ul>
      <t>In Table 1, "A128KW" and "A256KW" are AES Key Wrap with 128-bit key and 256-bit key respectively.</t>
      <section anchor="kem">
        <name>"kem"</name>
        <t>The "kem" (KEM) parameter identifies PQC KEM algorithm used with the "kem-pk" key. KEM values used by this specification are:</t>
        <artwork><![CDATA[
  "kem"            PQC KEM Applied
  Kyber512            Kyber512          
  Kyber768            Kyber768
]]></artwork>
        <t>These values are registered in the IANA "JSON PQC KEM" registry defined in <xref target="JSON-KEM-REGISTRY"/>.  Additional "kem" values can be registered by other specifications.</t>
      </section>
      <section anchor="example-hybrid-key-agreement-computation">
        <name>Example Hybrid Key Agreement Computation</name>
        <t>This example uses secp256r1_kyber512 Key Agreement and the KEM Combiner to derive
   the CEK in the manner described in <xref target="kem-combiner"/>.  In this example, the
   secp256r1_kyber512 Direct Key Agreement mode ("alg" value "secp256r1_kyber512") is used to
   produce an agreed-upon key for AES GCM with a 128-bit key ("enc"
   value "A128GCM").</t>
        <t>In this example, a producer Alice is encrypting content to a consumer
   Bob.  The producer (Alice) generates an ephemeral key for the key
   agreement computation.  Alice's ephemeral key (in JWK format) used
   for the key agreement computation in this example (including the
   private part) is:</t>
        <artwork><![CDATA[
 {"kty":"EC",
  "crv":"P-256",    
  "x":"alice_eph_public_key_x",
  "y":"alice_eph_public_key_y",
  "d":"alice_eph_private_key"
 }
]]></artwork>
        <t>The consumer's (Bob's) key (in JWK format) used for the key agreement
   computation in this example (including the private part) is:</t>
        <artwork><![CDATA[
 {"kty":"HYBRID",
  "kem": "kyber512",
  "kem-pk":"bob_kyber_public_key",
  "kem-sk":"bob_kyber_private_key"
  "crv":"P-256",
  "x":"bob_public_key_x",
  "y":"bob_public_key_y",
  "d":"bob_private_key"
 }
]]></artwork>
        <t>Header Parameter values used in this example are as follows.</t>
        <artwork><![CDATA[
 {"alg":"secp256r1_kyber512",
  "enc":"A128GCM",
  "apu":"QWxpY2U",  // base64url encoding of the UTF-8 string "Alice"
  "apv":"Qm9i",    // base64url encoding of the UTF-8 string "Bob"
  "epk":
   {"kty":"EC",
    "crv":"P-256",
    "x":"alice_eph_public_key_x",
    "y":"alice_eph_public_key_y",
   }
 }
]]></artwork>
      </section>
    </section>
    <section anchor="cose-hybrid-kem">
      <name>Hybrid Key Representation with COSE</name>
      <t>The approach taken here matches the work done to support secp256k1 in JOSE and COSE in <xref target="RFC8812"/>. The following tables map terms between JOSE and COSE for Key Type Parameters.</t>
      <artwork><![CDATA[
    +======================+========================================+==+
    | Name                 | Value | Description                       |
    +======================+===========================================+
    | crv                  | -1    | EC used                           |
    +----------------------+-------------------------------------------+
    | d                    | -4    | Private key                       |
    +----------------------+-------------------------------------------+
    | x                    | -2    | x coordinate for the public key   |
    +----------------- ----+-------------------------------------------+
    | y                    | -3    | y coordinate for the public key   |
    +---------------- -----+-------------------------------------------+
    | kem                  | TBD2  | PQC KEM Algorithm                 |
    +----------------------+-------------------------------------------+
    | kem-pk               | TBD3  | PQC KEM Public Key                |
    +----------------------+-------------------------------------------+
    | kem-sk               | TBD4  | PQC KEM Private Key               |
    +----------------------+-------------------------------------------+
    | kem-ct               | TBD5  | PQC KEM ciphertext                |
    +----------------------+-------------------------------------------+

                             Table 3
]]></artwork>
      <t>The following tables map terms between JOSE and COSE for PQ/T Hybrid KEM.</t>
      <artwork><![CDATA[
    +==============+===================+====================+============================+
    | Name                          | Value  | Description                 | Recommended |
    +===================+===========+========+=============================+=============+
    | x25519_kyber512               | TBD10  | Curve25519 elliptic curve + | No          |
    |                               |        | Kyber512 parameter          |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | secp384r1_kyber768            | TBD11  | P-384 + Kyber768 parameter  | No          |
    |                               |        |                             |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | x25519_kyber768               | TBD12  | Curve25519 elliptic curve   | No          |
    |                               |        | + Kyber768 parameter        |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | secp256r1_kyber512            | TBD13  | P-256 + Kyber512 parameter  | No          |
    |                               |        |                             |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | x25519_kyber512+A128KW        | TBD14  | Curve25519 elliptic curve + | No          |
    |                               |        | Kyber512 parameter +        |             |
    |                               |        | CEK wrapped with "A128KW"   |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | secp384r1_kyber768+A128KW     | TBD15  | P-384 + Kyber768 parameter  | No          |
    |                               |        | + CEK wrapped with "A128KW" |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | x25519_kyber768+A128KW        | TBD16  | Curve25519 elliptic curve   | No          |
    |                               |        | + Kyber768 parameter        |             |
    |                               |        | + CEK wrapped with "A128KW" |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | secp256r1_kyber512+A128KW     | TBD17  | P-256 + Kyber512 parameter  | No          |
    |                               |        | + CEK wrapped with "A128KW" |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | x25519_kyber512+A256KW        | TBD18  | Curve25519 elliptic curve + | No          |
    |                               |        | Kyber512 parameter +        |             |
    |                               |        | CEK wrapped with "A256KW"   |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | secp384r1_kyber768+A256KW     | TBD19  | P-384 + Kyber768 parameter  | No          |
    |                               |        | + CEK wrapped with "A256KW" |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | x25519_kyber768+A256KW        | TBD20  | Curve25519 elliptic curve   | No          |
    |                               |        | + Kyber768 parameter        |             |
    |                               |        | + CEK wrapped with "A256KW" |             |
    +-------------------------------+--------+-----------------------------+-------------+
    | secp256r1_kyber512+A256KW     | TBD21  | P-256 + Kyber512 parameter  | No          |
    |                               |        | + CEK wrapped with "A256KW" |             |
    +-------------------------------+--------+-----------------------------+-------------+
  

                                   Table 4
]]></artwork>
      <t>The following tables map terms between JOSE and COSE for key types.</t>
      <artwork><![CDATA[
    +==============+=======+====================+===============================+
    | Name                 | Value | Description                 | Recommended  |
    +==============+=======+====================+=============--------==========+
    | HYBRID               | TBD1  | kty for PQ/T Hybrid KEM     | No           |
    |                      |       |                             |              |
    +---------------------+--------+-----------------------------+--------------+

                                   Table 5
]]></artwork>
      <t>The following tables map terms between JOSE and COSE for PQC KEM algorithms.</t>
      <artwork><![CDATA[
    +==============+=======+====================+===============================+
    | Name                 | Value | Description                 | Recommended  |
    +==============+=======+====================+=============--------==========+
    | Kyber512             | TBD7  | Kyber512                    | No           |
    |                      |       |                             |              |
    +---------------------+--------+-----------------------------+--------------+
    | Kyber768             | TBD9  | Kyber768                    | No           |
    |                      |       |                             |              |
    +---------------------+--------+-----------------------------+--------------+

                                   Table 6
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations from <xref target="RFC7748"/> and <xref target="I-D.ounsworth-cfrg-kem-combiners"/> apply here. 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.</t>
      <t>PQC KEMs used in the manner described in this document <bcp14>MUST</bcp14> explicitly be designed to be secure in the event that the public key is reused, such as achieving IND-CCA2 security. Kyber has such security properties.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="jose">
        <name>JOSE</name>
        <t>The following has to be been added to the "JSON Web Key Types"
registry:</t>
        <ul spacing="normal">
          <li>Name: "HYBRID"</li>
          <li>Description: Hybrid Key Exchange</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
        </ul>
        <t>The following has to be added to the "JSON Web Key Parameters"
registry:</t>
        <ul spacing="normal">
          <li>Parameter Name: "crv"</li>
          <li>Parameter Description: The EC used</li>
          <li>Parameter Information Class: Public</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "d"</li>
          <li>Parameter Description: The private key</li>
          <li>Parameter Information Class: Private</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "x"</li>
          <li>Parameter Description: x coordinate for the public key</li>
          <li>Parameter Information Class: Public</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "y"</li>
          <li>Parameter Description: y coordinate for the public key</li>
          <li>Parameter Information Class: Public</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "kem"</li>
          <li>Parameter Description: PQC KEM Algorithm</li>
          <li>Parameter Information Class: Public</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "kem-pk"</li>
          <li>Parameter Description: PQC KEM Public Key</li>
          <li>Parameter Information Class: Public</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "kem-sk"</li>
          <li>Parameter Description: PQC KEM Private Key</li>
          <li>Parameter Information Class: Private</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Parameter Name: "kem-ct"</li>
          <li>Parameter Description: PQC KEM ciphertext</li>
          <li>Parameter Information Class: Public</li>
          <li>Used with "kty" Value(s): "HYBRID"</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
        </ul>
        <t>The following has to be added to the "JSON Web Signature and
Encryption Algorithms" registry:</t>
        <ul spacing="normal">
          <li>Algorithm Name: "x25519_kyber768"</li>
          <li>Algorithm Description: Curve25519 elliptic curve + Kyber768 parameter</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "secp384r1_kyber768"</li>
          <li>Algorithm Description: P-384 + Kyber768 parameter</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "x25519_kyber512"</li>
          <li>Algorithm Description: Curve25519 elliptic curve + Kyber512 parameter</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "secp256r1_kyber512"</li>
          <li>Algorithm Description: P-256 + Kyber512 parameter</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "x25519_kyber768+A128KW"</li>
          <li>Algorithm Description: Curve25519 elliptic curve + Kyber768 parameter and CEK wrapped with "A128KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "secp384r1_kyber768+A128KW"</li>
          <li>Algorithm Description: P-384 + Kyber768 parameter and CEK wrapped with "A128KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "x25519_kyber512+A128KW"</li>
          <li>Algorithm Description: Curve25519 elliptic curve + Kyber512 parameter and CEK wrapped with "A128KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "secp256r1_kyber512+A128KW"</li>
          <li>Algorithm Description: P-256 + Kyber512 parameter and CEK wrapped with "A128KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "x25519_kyber768+A256KW"</li>
          <li>Algorithm Description: Curve25519 elliptic curve + Kyber768 parameter and CEK wrapped with "A256KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "secp384r1_kyber768+A256KW"</li>
          <li>Algorithm Description: P-384 + Kyber768 parameter and CEK wrapped with "A256KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): S<xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "x25519_kyber512+A256KW"</li>
          <li>Algorithm Description: Curve25519 elliptic curve + Kyber512 parameter and CEK wrapped with "A256KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
          <li>Algorithm Name: "secp256r1_kyber512+A256KW"</li>
          <li>Algorithm Description: P-256 + Kyber512 parameter and CEK wrapped with "A256KW"</li>
          <li>Algorithm Usage Location(s): "alg"</li>
          <li>JOSE Implementation Requirements: Optional</li>
          <li>Change Controller: IESG</li>
          <li>Specification Document(s): <xref target="hybrid-kem"/> of this document (TBD)</li>
          <li>Algorithm Analysis Documents(s): (TBD20)</li>
        </ul>
        <section anchor="JSON-KEM-REGISTRY">
          <name>JSON PQC KEM Registry</name>
          <t>This section establishes the IANA "JSON PQC KEM"
   registry for JWK "kem" member values.  The registry records the PQC
   KEM name, implementation requirements, and a reference to the
   specification that defines it.  This specification registers the
   PQC KEM algorithms defined in <xref target="kem"/>.</t>
          <t>The implementation requirements of a PQC KEM may be changed over time
   as the cryptographic landscape evolves, for instance, to change the
   status of a PQC KEM to Deprecated or to change the status of a PQC KEM
   from Optional to Recommended+ or Required.  Changes of implementation
   requirements are only permitted on a Specification Required basis
   after review by the Designated Experts, with the new specification
   defining the revised implementation requirements level.</t>
          <section anchor="registration-template">
            <name>Registration Template</name>
            <t>PQC KEM name:
      The name requested (e.g., "Kyber512").  Because a core goal of this
      specification is for the resulting representations to be compact,
      it is <bcp14>RECOMMENDED</bcp14> that the name be short -- not to exceed 12
      characters without a compelling reason to do so.  This name is
      case sensitive.  Names may not match other registered names in a
      case-insensitive manner unless the Designated Experts state that
      there is a compelling reason to allow an exception.</t>
            <t>PQC KEM Description:
      Brief description of the PQC KEM (e.g., "Kyber512").</t>
            <t>JOSE Implementation Requirements:
      The PQC KEM implementation requirements for JWE, which must
      be one the words Required, Recommended, Optional, Deprecated, or
      Prohibited.  Optionally, the word can be followed by a "+" or "-".
      The use of "+" indicates that the requirement strength is likely
      to be increased in a future version of the specification.  The use
      of "-" indicates that the requirement strength is likely to be
      decreased in a future version of the specification.</t>
            <t>Change Controller:
      For Standards Track RFCs, list "IESG".  For others, give the name
      of the responsible party.  Other details (e.g., postal address,
      email address, home page URI) may also be included.</t>
            <t>Specification Document(s):
      Reference to the document or documents that specify the parameter,
      preferably including URIs that can be used to retrieve copies of
      the documents.  An indication of the relevant sections may also be
      included but is not required.</t>
          </section>
          <section anchor="initial-registry-contents">
            <name>Initial Registry Contents</name>
            <ul spacing="normal">
              <li>PQC KEM name: "Kyber512"</li>
              <li>PQC KEM Description: Kyber512</li>
              <li>JOSE Implementation Requirements: Optional</li>
              <li>Change Controller: IESG</li>
              <li>Specification Document(s): <xref target="kem"/></li>
              <li>PQC KEM name: "Kyber768"</li>
              <li>PQC KEM Description: Kyber768</li>
              <li>JOSE Implementation Requirements: Optional</li>
              <li>Change Controller: IESG</li>
              <li>Specification Document(s): <xref target="kem"/></li>
            </ul>
          </section>
        </section>
      </section>
      <section anchor="cose">
        <name>COSE</name>
        <t>The following has to be been added to the "COSE Key Types"
registry:</t>
        <ul spacing="normal">
          <li>Name: "HYBRID"</li>
          <li>Value: TBD1</li>
          <li>Description: Hybrid Key Exchange</li>
          <li>Reference: This document (TBD)</li>
        </ul>
        <t>The following has to be added to the "COSE Key Type Parameters"
registry:</t>
        <ul spacing="normal">
          <li>Key Type: TBD1</li>
          <li>Name: crv</li>
          <li>Label : -1</li>
          <li>CBOR Type: int / tstr</li>
          <li>Description: The EC used</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: d</li>
          <li>Label : -4</li>
          <li>CBOR Type: bstr</li>
          <li>Description: The Private key</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: x</li>
          <li>Label : -2</li>
          <li>CBOR Type: bstr</li>
          <li>Description: x coordinate for the public key</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: y</li>
          <li>Label : -3</li>
          <li>CBOR Type: bstr / bool</li>
          <li>Description:  y coordinate for the public key</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: kem</li>
          <li>Label : TBD2</li>
          <li>CBOR Type: int / tstr</li>
          <li>Description: PQC KEM Algorithm</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: kem-pk</li>
          <li>Label : TBD3</li>
          <li>CBOR Type: bstr</li>
          <li>Description: PQC KEM Public Key</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: kem-sk</li>
          <li>Label : TBD4</li>
          <li>CBOR Type: bstr</li>
          <li>Description:  PQC KEM Private Key</li>
          <li>Reference: This document (TBD)</li>
          <li>Key Type: TBD1</li>
          <li>Name: kem-ct</li>
          <li>Label : TBD5</li>
          <li>CBOR Type: bstr</li>
          <li>Description:  PQC KEM ciphertext</li>
          <li>Reference: This document (TBD)</li>
        </ul>
        <t>The following has to be added to the "COSE Algorithms" registry:</t>
        <ul spacing="normal">
          <li>Name: x25519_kyber768</li>
          <li>Value: TBD10</li>
          <li>Description: Curve25519 elliptic curve + Kyber768 parameter</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: secp384r1_kyber768</li>
          <li>Value: TBD11</li>
          <li>Description: P-384 + Kyber768 parameter</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: x25519_kyber512</li>
          <li>Value: TBD12</li>
          <li>Description: Curve25519 elliptic curve + Kyber512 parameter</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: secp256r1_kyber512</li>
          <li>Value: TBD13</li>
          <li>Description: P-256 + Kyber512 parameter</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: x25519_kyber768+A128KW</li>
          <li>Value: TBD14</li>
          <li>Description: Curve25519 elliptic curve + Kyber768 parameter and CEK wrapped with "A128KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: secp384r1_kyber768+A128KW</li>
          <li>Value: TBD15</li>
          <li>Description: P-384 + Kyber768 parameter and CEK wrapped with "A128KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: x25519_kyber512+A128KW</li>
          <li>Value: TBD16</li>
          <li>Description: Curve25519 elliptic curve + Kyber512 parameter and CEK wrapped with "A128KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: secp256r1_kyber512+A128KW</li>
          <li>Value: TBD17</li>
          <li>Description: P-256 + Kyber512 parameter and CEK wrapped with "A128KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: x25519_kyber768+A256KW</li>
          <li>Value: TBD18</li>
          <li>Description: Curve25519 elliptic curve + Kyber768 parameter and CEK wrapped with "A256KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: secp384r1_kyber768+A256KW</li>
          <li>Value: TBD19</li>
          <li>Description: P-384 + Kyber768 parameter and CEK wrapped with "A256KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: x25519_kyber512+A256KW</li>
          <li>Value: TBD20</li>
          <li>Description: Curve25519 elliptic curve + Kyber512 parameter and CEK wrapped with "A256KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
          <li>Name: secp256r1_kyber512+A256KW</li>
          <li>Value: TBD21</li>
          <li>Description: P-256 + Kyber512 parameter and CEK wrapped with "A256KW"</li>
          <li>Reference: This document (TBD)</li>
          <li>Recommended: No</li>
        </ul>
        <section anchor="cose-pqc-kem-registry">
          <name>COSE PQC KEM Registry</name>
          <t>This section establishes the IANA "COSE PQC KEM"
   registry for "kem" member values.  The registry records the PQC
   KEM name, implementation requirements, and a reference to the
   specification that defines it.  This specification registers the
   PQC KEM algorithms defined in <xref target="cose-hybrid-kem"/>.</t>
          <t>The implementation requirements of a PQC KEM may be changed over time
   as the cryptographic landscape evolves, for instance, to change the
   status of a PQC KEM to Deprecated or to change the status of a PQC KEM
   from Optional to Recommended+ or Required.  Changes of implementation
   requirements are only permitted on a Specification Required basis
   after review by the Designated Experts, with the new specification
   defining the revised implementation requirements level.</t>
          <section anchor="registration-template-1">
            <name>Registration Template</name>
            <t>Name:
      The name requested (e.g., "Kyber512").  Because a core goal of this
      specification is for the resulting representations to be compact,
      it is <bcp14>RECOMMENDED</bcp14> that the name be short -- not to exceed 12
      characters without a compelling reason to do so.  This name is
      case sensitive.  Names may not match other registered names in a
      case-insensitive manner unless the Designated Experts state that
      there is a compelling reason to allow an exception.</t>
            <t>Value: This is the value used for the label.  The label can be
      either an integer or a string.  Registration in the table is based
      on the value of the label requested.  Integer values between 1 and
      255 and strings of length 1 are designated as "Standards Action".
      Integer values from 256 to 65535 and strings of length 2 are
      designated as "Specification Required".  Integer values of greater
      than 65535 and strings of length greater than 2 are designated as
      "Expert Review".  Integer values in the range -1 to -65536 are
      "delegated to the COSE Header Algorithm Parameters registry".
      Integer values less than -65536 are marked as private use.</t>
            <t>Description:
      Brief description of the PQC KEM (e.g., "Kyber512").</t>
            <t>Change Controller:
      For Standards Track RFCs, list "IESG".  For others, give the name
      of the responsible party.  Other details (e.g., postal address,
      email address, home page URI) may also be included.</t>
            <t>Reference:
      Reference to the document or documents that specify the parameter,
      preferably including URIs that can be used to retrieve copies of
      the documents.  An indication of the relevant sections may also be
      included but is not required.</t>
            <artwork><![CDATA[
Recommended:  Does the IETF have a consensus recommendation to use
  the algorithm?  The legal values are 'Yes', 'No', and
  'Deprecated'.
]]></artwork>
          </section>
          <section anchor="initial-registry-contents-1">
            <name>Initial Registry Contents</name>
            <ul spacing="normal">
              <li>Name: "Kyber512"</li>
              <li>Value: TBD7</li>
              <li>Description: Kyber512</li>
              <li>Change Controller: IESG</li>
              <li>Reference: This document (TBD)</li>
              <li>Recommended: No</li>
              <li>Name: "Kyber768"</li>
              <li>Value: TBD9</li>
              <li>Description: Kyber768</li>
              <li>Change Controller: IESG</li>
              <li>Reference: This document (TBD)</li>
              <li>Recommended: No</li>
            </ul>
          </section>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Mike Ounsworth for the discussion and comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="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>
              <organization/>
            </author>
            <date/>
          </front>
        </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>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <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>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-pquip-pqt-hybrid-terminology">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="4" month="May" year="2023"/>
            <abstract>
              <t>   One aspect of the transition to post-quantum algorithms in
   cryptographic protocols is the development of hybrid schemes that
   incorporate both post-quantum and traditional asymmetric algorithms.
   This document defines terminology for such schemes.  It is intended
   to be used as a reference and, hopefully, to ensure consistency and
   clarity across different protocols, standards, and organisations.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-ietf-pquip-pqt-hybrid/.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-00"/>
        </reference>
        <reference anchor="RFC6090">
          <front>
            <title>Fundamental Elliptic Curve Cryptography Algorithms</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="K. Igoe" initials="K." surname="Igoe"/>
            <author fullname="M. Salter" initials="M." surname="Salter"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>This note describes the fundamental algorithms of Elliptic Curve Cryptography (ECC) as they were defined in some seminal references from 1994 and earlier.  These descriptions may be useful for implementing the fundamental algorithms without using any of the specialized methods that were developed in following years.  Only elliptic curves defined over fields of characteristic greater than three are in scope; these curves are those used in Suite B.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6090"/>
          <seriesInfo name="DOI" value="10.17487/RFC6090"/>
        </reference>
        <reference anchor="RFC8037">
          <front>
            <title>CFRG Elliptic Curve Diffie-Hellman (ECDH) and Signatures in JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document defines how to use the Diffie-Hellman algorithms "X25519" and "X448" as well as the signature algorithms "Ed25519" and "Ed448" from the IRTF CFRG elliptic curves work in JSON Object Signing and Encryption (JOSE).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8037"/>
          <seriesInfo name="DOI" value="10.17487/RFC8037"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="I-D.ietf-tls-hybrid-design">
          <front>
            <title>Hybrid key exchange in TLS 1.3</title>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shay Gueron" initials="S." surname="Gueron">
              <organization>University of Haifa and Amazon Web Services</organization>
            </author>
            <date day="27" month="February" year="2023"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if all but one of the component algorithms is broken.
   It is motivated by transition to post-quantum cryptography.  This
   document provides a construction for hybrid key exchange in the
   Transport Layer Security (TLS) protocol version 1.3.

   Discussion of this work is encouraged to happen on the TLS IETF
   mailing list tls@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dstebila/draft-ietf-tls-hybrid-design.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-06"/>
        </reference>
        <reference anchor="RFC9370">
          <front>
            <title>Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="CJ. Tjhai" initials="CJ." surname="Tjhai"/>
            <author fullname="M. Tomlinson" initials="M." surname="Tomlinson"/>
            <author fullname="G. Bartlett" initials="G." surname="Bartlett"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow multiple key exchanges to take place while computing a shared secret during a Security Association (SA) setup.</t>
              <t>This document utilizes the IKE_INTERMEDIATE exchange, where multiple key exchanges are performed when an IKE SA is being established. It also introduces a new IKEv2 exchange, IKE_FOLLOWUP_KE, which is used for the same purpose when the IKE SA is being rekeyed or is creating additional Child SAs.</t>
              <t>This document updates RFC 7296 by renaming a Transform Type 4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and renaming a field in the Key Exchange Payload from "Diffie-Hellman Group Num" to "Key Exchange Method". It also renames an IANA registry for this Transform Type from "Transform Type 4 - Diffie- Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Method Transform IDs". These changes generalize key exchange algorithms that can be used in IKEv2.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9370"/>
          <seriesInfo name="DOI" value="10.17487/RFC9370"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="I-D.ounsworth-cfrg-kem-combiners">
          <front>
            <title>Combiner function for hybrid key encapsulation mechanisms (Hybrid KEMs)</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Aron Wussler" initials="A." surname="Wussler">
              <organization>Proton AG</organization>
            </author>
            <author fullname="Stavros Kousidis" initials="S." surname="Kousidis">
              <organization>BSI</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <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.

   This document defines a comprehensible and easy to implement Keccak-
   based KEM combiner to join an arbitrary number of key shares, that is
   compatible with NIST SP 800-56Cr2 [SP800-56C] when viewed as a key
   derivation function.  The combiners defined here are practical multi-
   PRFs and are CCA-secure as long as at least one of the ingredient
   KEMs is.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-cfrg-kem-combiners-03"/>
        </reference>
        <reference anchor="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="I-D.cfrg-schwabe-kyber">
          <front>
            <title>Kyber Post-Quantum KEM</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SPI &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="31" month="March" year="2023"/>
            <abstract>
              <t>   This memo specifies a preliminary version ("draft00", "v3.02") of
   Kyber, an IND-CCA2 secure Key Encapsulation Method.

About This Document

   This note is to be removed before publishing as an RFC.

   The latest revision of this draft can be found at
   https://bwesterb.github.io/draft-schwabe-cfrg-kyber/draft-cfrg-
   schwabe-kyber.html.  Status information for this document may be
   found at https://datatracker.ietf.org/doc/draft-cfrg-schwabe-kyber/.

   Source for this draft and an issue tracker can be found at
   https://github.com/bwesterb/draft-schwabe-cfrg-kyber.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cfrg-schwabe-kyber-02"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC8812">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) and JSON Object Signing and Encryption (JOSE) Registrations for Web Authentication (WebAuthn) Algorithms</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>The W3C Web Authentication (WebAuthn) specification and the FIDO Alliance FIDO2 Client to Authenticator Protocol (CTAP) specification use CBOR Object Signing and Encryption (COSE) algorithm identifiers. This specification registers the following algorithms (which are used by WebAuthn and CTAP implementations) in the IANA "COSE Algorithms" registry: RSASSA-PKCS1-v1_5 using SHA-256, SHA-384, SHA-512, and SHA-1; and Elliptic Curve Digital Signature Algorithm (ECDSA) using the secp256k1 curve and SHA-256. It registers the secp256k1 elliptic curve in the IANA "COSE Elliptic Curves" registry. Also, for use with JSON Object Signing and Encryption (JOSE), it registers the algorithm ECDSA using the secp256k1 curve and SHA-256 in the IANA "JSON Web Signature and Encryption Algorithms" registry and the secp256k1 elliptic curve in the IANA "JSON Web Key Elliptic Curve" registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8812"/>
          <seriesInfo name="DOI" value="10.17487/RFC8812"/>
        </reference>
        <reference anchor="RFC7748">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
GUsmbP0/JDfRyWWqAAA=

-->

</rfc>
