<?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.7.17 (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-reddy-cose-jose-pqc-kem-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="PQ KEM for JOSE and COSE">Post-Quantum Key Encapsulation Mechanisms (PQ KEMs) for JOSE and COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-reddy-cose-jose-pqc-kem-02"/>
    <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>
    <author fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>PQC</keyword>
    <keyword>COSE</keyword>
    <keyword>JOSE</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 88?>

<t>This document describes the conventions for using Post-Quantum Key Encapsulation Mechanisms (PQ-KEMs) within 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-reddy-cose-jose-pqc/"/>.
      </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 92?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Quantum computing is no longer perceived as a conjecture of computational sciences and theoretical physics.  Considerable research efforts and enormous corporate and government funding for the development of practical quantum computing systems are being invested currently. As such, as quantum technology advances, there is the potential for future quantum computers to have a significant impact on current cryptographic systems.</t>
      <t>Researchers have developed Post-Quantum Key Encapsulation Mechanisms (PQ-KEMs) to provide secure key establishment resistant against an adversary with access to a quantum computer.</t>
      <t>As the National Institute of Standards and Technology (NIST) is still in the process of selecting the new post-quantum cryptographic algorithms that are secure against both quantum and classical computers, the purpose of this document is to propose a PQ-KEMs to protect the confidentiality of content encrypted using JOSE and COSE against the quantum threat.</t>
      <t>Although this mechanism could thus be used with any PQ-KEM, this document focuses on Module-Lattice-based Key Encapsulation Mechanisms (ML-KEMs). ML-KEM is a one-pass (store-and-forward) cryptographic mechanism for an originator to securely send keying material to a recipient
using the recipient's ML-KEM public key. Three parameters sets for ML-KEMs are specified by <xref target="FIPS203-ipd"/>. In order of increasing security strength (and decreasing performance), these parameter sets
are ML-KEM-512, ML-KEM-768, and ML-KEM-1024.</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"/>. The following terms are repeately used in this specification:</t>
      <ul spacing="normal">
        <li>
          <t>KEM: Key Encapsulation Mechanism</t>
        </li>
        <li>
          <t>PQ-KEM: Post-Quantum Key Encapsulation Mechanism</t>
        </li>
        <li>
          <t>CEK: Content Encryption Key</t>
        </li>
        <li>
          <t>ML-KEM: Module-Lattice-based Key Encapsulation Mechanism</t>
        </li>
      </ul>
      <t>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. Post-quantum algorithms can also be called quantum-resistant or quantum-safe algorithms. Examples of Post-Quantum Algorithm include ML-KEM.</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>
            <t>def kemKeyGen() -&gt; (pk, sk)</t>
          </li>
          <li>
            <t>def kemEncaps(pk) -&gt; (ct, ss)</t>
          </li>
          <li>
            <t>def kemDecaps(ct, sk) -&gt; ss</t>
          </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="rational">
      <name>Design Rationales</name>
      <t>Section 4.6 of the JSON Web Algorithms (JWA) specification, see <xref target="RFC7518"/>, defines two ways of using a key agreement:</t>
      <ul spacing="normal">
        <li>
          <t>When Direct Key Agreement is employed, the shared secret established through the Traditional Algorithm will be the content encryption key (CEK).</t>
        </li>
        <li>
          <t>When Key Agreement with Key Wrapping is employed, the shared secret established through the Traditional Algorithm will wrap the CEK.</t>
        </li>
      </ul>
      <t>For efficient use with multiple recipient the key wrap approach is used since the content can be encrypted once with the CEK but each CEK is encrypted per recipient. Similarly, Section 8.5.4 and Section 8.5.5 of COSE <xref target="RFC9052"/> define the Direct Key Agreement and Key Agreement with Key Wrap, respectively. This document proposes the use of PQ-KEMs for these two modes.</t>
      <t>It is essential to note that in the PQ-KEM, one needs to apply Fujisaki-Okamoto <xref target="FO"/> transform or its variant <xref target="HHK"/> on the PQC KEM part to ensure that the overall scheme is IND-CCA2 secure, as mentioned in <xref target="I-D.ietf-tls-hybrid-design"/>. The FO transform is performed using the KDF such that the PQC KEM shared secret achieved is IND-CCA2 secure. As a consequence, one can re-use PQC KEM public keys but there is an upper bound that must be adhered to.</t>
      <t>Note that during the transition from traditional to post-quantum algorithms, there may be a desire or a requirement for protocols that incorporate both types of algorithms until the post-quantum algorithms are fully 
trusted. HPKE <xref target="RFC9180"/> is a KEM that can be extended to support hybrid post-quantum KEMs and the specification for the use of PQ/T Hybrid Key Encapsulation Mechanism (KEM) in Hybrid Public-Key Encryption (HPKE) for integration with JOSE and COSE is described in <xref target="I-D.ietf-reddy-cose-jose-pqc-hybrid-hpke"/>.</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>
          <t>Key Encapsulation Mechanisms (KEMs): ML-KEM <xref target="FIPS204"/>, previously known as Kyber, is a module learning with errors (MLWE)-based KEM. Three security levels have been defined in the NIST PQC Project, namely Level 1, 3, and 5. These levels correspond to the hardness of breaking AES-128, AES-192 and AES-256, respectively.</t>
        </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="ml-kem">
        <name>ML-KEM</name>
        <t>ML-KEM offers several parameter sets with varying levels of security and performance trade-offs. This document specifies the use of the ML-KEM algorithm at three security levels: ML-KEM-512, ML-KEM-768, and ML-KEM-1024. ML-KEM key generation, encapsulation and decaspulation functions are defined in <xref target="FIPS204"/>. The main security property for KEMs standardized in the NIST Post-Quantum Cryptography Standardization Project is indistinguishability under adaptive chosen ciphertext attacks (IND-CCA2) (see Section 10.2 of <xref target="I-D.ietf-pquip-pqc-engineers"/>). The public/private key sizes, ciphertext key size, and PQ security levels of ML-KEM are detailed in Section 12 of <xref target="I-D.ietf-pquip-pqc-engineers"/>.</t>
      </section>
      <section anchor="encrypt">
        <name>PQ-KEM Encapsulation</name>
        <t>The encapsulation process is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Generate an inital shared secret SS' and the associated ciphertext CT
using the KEM encapsulation function and the recipient's public
key recipPubKey.</t>
          </li>
        </ol>
        <artwork><![CDATA[
          (SS', CT) = kemEncaps(recipPubKey)
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>Derive a final shared secret SS of length SSLen bytes from
the initial shared secret SS' using the underlying key derivation
function:</t>
          </li>
        </ol>
        <artwork><![CDATA[
          SS = KDF(SS', SSLen)
]]></artwork>
        <t>In Direct Key Agreement mode, the output of the KDF <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 KDF <bcp14>MUST</bcp14> be a key of the length needed for the specified key wrap algorithm.</t>
        <t>When Direct Key Agreement is employed, SS is the CEK. When Key Agreement with Key Wrapping is employed, SS is used to wrap the CEK.</t>
      </section>
      <section anchor="decrypt">
        <name>PQ-KEM Decapsulation</name>
        <t>The decapsulation process is as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Decapsulate the ciphertext CT using the KEM decapsulation
function and the recipient's private key to retrieve the initial shared
secret SS':</t>
          </li>
        </ol>
        <artwork><![CDATA[
          SS' = kemDecaps(recipPrivKey, CT)
]]></artwork>
        <artwork><![CDATA[
If the decapsulation operation outputs an error, output "decryption error", and stop.
]]></artwork>
        <ol spacing="normal" type="1"><li>
            <t>Derive the final shared secret SS of length SSLen bytes from
the inital secret SS' using the underlying key derivation
function:</t>
          </li>
        </ol>
        <artwork><![CDATA[
          SS = KDF(SS', SSLen)
]]></artwork>
      </section>
    </section>
    <section anchor="kdf">
      <name>KDF</name>
      <section anchor="key-derivation-for-jose">
        <name>Key Derivation for JOSE</name>
        <t>The key derivation is performed using the Concat KDF leveraged in Section 4.6.2 of <xref target="RFC7518"/> for JOSE. A different set of contact KDF parameters would be used to construct the agreed-upon key from the shared secret (SS') established through the ML-KEM algorithm, instead of the key derivation process defined in Section 4.6.2 of RFC7518 for JOSE.</t>
        <t>The Concat KDF parameters are set as follows:</t>
        <t>*Z : This is set to the representation of the shared secret (SS').</t>
        <t>*keydatalen :  This is set to the number of bits in the desired output key.  For Direct Key Agreement, this is length of the key used by the "enc" algorithm. For Key Agreement with Key Wrapping, "MLKEM512-AES128KW", "MLKEM768-AES192KW", and "MLKEM1024-AES256KW", this is 128, 192, and 256, respectively.</t>
        <t>*AlgorithmID: The AlgorithmID value will be set as explained in Section 4.6.2 of <xref target="RFC7518"/>.</t>
        <t>*CipherText: The ciphertext (CT) generated using the KEM encapsulation function to bind the shared secret to the ciphertext (ct), achieving MAL-BIND-K-CT. ML-KEM already is MAL-BIND-K-PK as the hash of the encapsulation key (pk) is an input to the computation of the shared secret (ss).</t>
      </section>
      <section anchor="key-derivation-for-cose">
        <name>Key Derivation for COSE</name>
        <t>The HKDF (HMAC-based Key Derivation Function) defined in Section 5 of <xref target="RFC9053"/> is utilized to construct the agreed-upon key from the shared secret (SS') established through the ML-KEM algorithm. The HKDF algorithm leverages HMAC-SHA-256 as the underlying PRF (Pseudo-Random function). It takes the inputs defined in Section 5.1 of <xref target="RFC9053"/>, with the exception of the shared secret and context structure inputs. The secret is set to the shared secret established through the ML-KEM algorithm. The context structure, redefined as follows, is used as input to the HKDF.</t>
        <artwork><![CDATA[
      COSE_KDF_Context = [
          AlgorithmID : int / tstr,
          SuppPubInfo : [
              keyDataLength : uint,
              protected : empty_or_serialized_map,
              ? other : bstr
          ],
          ? SuppPrivInfo : bstr,
          CipherText: bstr
      ]
]]></artwork>
        <t>The fields AlgorithmID, SuppPubInfo and SuppPrivInfo in the above array are defined in Section 5.2 of <xref target="RFC9053"/>. The CipherText field contains the ciphertext (CT) generated using the KEM encapsulation function to bind the shared secret to the ciphertext (ct).</t>
      </section>
    </section>
    <section anchor="post-quantum-kem-in-jose">
      <name>Post-quantum KEM in JOSE</name>
      <t>As explained in <xref target="rational"/> JWA defines two ways to use public key cryptography with JWE:</t>
      <ul spacing="normal">
        <li>
          <t>Direct Key Agreement</t>
        </li>
        <li>
          <t>Key Agreement with Key Wrapping</t>
        </li>
      </ul>
      <t>This specification describes these two modes of use for PQ-KEM in JWE. Unless otherwise stated, no changes to the procedures described in <xref target="RFC7516"/> have been made.</t>
      <section anchor="direct-key-agreement">
        <name>Direct Key Agreement</name>
        <ul spacing="normal">
          <li>
            <t>The "alg" header parameter <bcp14>MUST</bcp14> be a PQ-KEM algorithm chosen from the JSON Web Signature and Encryption Algorithms registry defined in <xref target="JOSE-IANA"/>.</t>
          </li>
          <li>
            <t>The CEK will be generated using the process explained in <xref target="encrypt"/>. The output of the <xref target="encrypt"/> <bcp14>MUST</bcp14> be a secret key of the same length as that used by the "enc" algorithm. Both header parameters, "alg" and "enc", <bcp14>MUST</bcp14> be placed in the JWE Protected Header. Subsequently, the plaintext will be encrypted using the CEK, as detailed in Step 15 of Section 5.1 of <xref target="RFC7516"/>.</t>
          </li>
          <li>
            <t>The parameter "kem-ct" <bcp14>MUST</bcp14> include the output ('ct') from the PQ-KEM algorithm, encoded using base64url.</t>
          </li>
          <li>
            <t>The recipient <bcp14>MUST</bcp14> base64url decode the ciphertext from the "kem-ct" and then use it to derive the CEK using the process defined in <xref target="decrypt"/>. The ciphertext sizes of ML-KEMs are discussed in Section 12 of <xref target="I-D.ietf-pquip-pqc-engineers"/>.</t>
          </li>
          <li>
            <t>The JWE Encrypted Key <bcp14>MUST</bcp14> be absent.</t>
          </li>
        </ul>
      </section>
      <section anchor="key-agreement-with-key-wrapping">
        <name>Key Agreement with Key Wrapping</name>
        <ul spacing="normal">
          <li>
            <t>The derived key is generated using the process explained in <xref target="encrypt"/> and used to encrypt the CEK.</t>
          </li>
          <li>
            <t>The parameter "kem-ct" <bcp14>MUST</bcp14> include the output ('ct') from the PQ-KEM algorithm, encoded using base64url.</t>
          </li>
          <li>
            <t>The JWE Encrypted Key <bcp14>MUST</bcp14> include the base64url-encoded encrypted CEK.</t>
          </li>
          <li>
            <t>The 'enc' (Encryption Algorithm) header parameter <bcp14>MUST</bcp14> specify a content encryption algorithm from the JSON Web Signature and Encryption Algorithms registry, as defined in <xref target="JOSE-IANA"/>.</t>
          </li>
          <li>
            <t>The recipient <bcp14>MUST</bcp14> base64url decode the ciphertext from "kem-ct". Subsequently, it is used to derive the key, through the process defined in <xref target="decrypt"/>. The derived key will then be used to decrypt the CEK.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="post-quantum-kem-in-cose">
      <name>Post-Quantum KEM in COSE</name>
      <t>This specification supports two uses of PQ-KEM in COSE, namely</t>
      <ul spacing="normal">
        <li>
          <t>PQ-KEM in a single recipient setup.  This use case utilizes a one
layer COSE structure.</t>
        </li>
        <li>
          <t>PQ-KEM in a multiple recipient setup.  This use case requires a two
layer COSE structure.</t>
        </li>
      </ul>
      <section anchor="single-recipient-one-layer-structure">
        <name>Single Recipient / One Layer Structure</name>
        <t>With the one layer structure the information carried inside the 
COSE_recipient structure is embedded inside the COSE_Encrypt0.</t>
        <t>The CEK will be generated using the process explained in <xref target="encrypt"/>. 
Subsequently, the plaintext will be encrypted using the CEK. The resulting 
ciphertext is either included in the COSE_Encrypt0 or is detached. If a payload is
transported separately then it is called "detached content". A nil CBOR
object is placed in the location of the ciphertext. See Section 5
of <xref target="RFC9052"/> for a description of detached payloads.</t>
        <t>The sender <bcp14>MUST</bcp14> set the 'alg' parameter in the protected header to indicate the 
use of the PQ-KEM algorithm.</t>
        <t>Although the use of the 'kid' parameter in COSE_Encrypt0 is
discouraged by <xref target="RFC9052"/>, this documents RECOMMENDS the use of the 'kid' parameter
(or other parameters) to explicitly identify the recipient public key
used by the sender. If the COSE_Encrypt0 contains the 'kid' then the recipient may
use it to select the appropriate private key.</t>
      </section>
      <section anchor="multiple-recipients-two-layer-structure">
        <name>Multiple Recipients / Two Layer Structure</name>
        <t>With the two layer structure the PQ-KEM information is conveyed in the COSE_recipient 
structure, i.e. one COSE_recipient structure per recipient.</t>
        <t>In this approach the following layers are involved:</t>
        <ul spacing="normal">
          <li>
            <t>Layer 0 (corresponding to the COSE_Encrypt structure) contains the content (plaintext)
encrypted with the CEK. This ciphertext may be detached, and if not detached, then
it is included in the COSE_Encrypt structure.</t>
          </li>
          <li>
            <t>Layer 1 (corresponding to a recipient structure) contains parameters needed for 
PQ-KEM to generate a shared secret used to encrypt the CEK. This layer conveys<br/>
the output ('ct') from the PQ KEM Encaps algorithm in the 'ek' header 
parameter (Section 7.2 of <xref target="I-D.ietf-cose-hpke"/>) and encrypted CEK in the encCEK structure
(Section 3.1.2 of <xref target="I-D.ietf-cose-hpke"/>). The unprotected header <bcp14>MAY</bcp14> contain the kid 
parameter to identify the static recipient public key the sender has been using with PQ-KEM.</t>
          </li>
        </ul>
        <t>This two-layer structure is used to encrypt content that can also be shared with
multiple parties at the expense of a single additional encryption operation.
As stated above, the specification uses a CEK to encrypt the content at layer 0.</t>
      </section>
    </section>
    <section anchor="JOSE-PQ-KEM">
      <name>JOSE Ciphersuite Registration</name>
      <t>This specification registers a number of PQ-KEM algorithms for use with JOSE.</t>
      <t>All security levels of ML-KEM internally utilize SHA3-256, SHA3-512, SHAKE128, and SHAKE256. This internal usage influences the selection of the Concat KDF as described in this document.</t>
      <t>ML-KEM-512 <bcp14>MUST</bcp14> be used with a KDF capable of outputting a key with at least 128 bits of security and with a key wrapping algorithm with a key length of at least 128 bits.</t>
      <t>ML-KEM-768 <bcp14>MUST</bcp14> be used with a KDF capable of outputting a key with at least 192 bits of security and with a key wrapping algorithm with a key length of at least 192 bits.</t>
      <t>ML-KEM-1024 <bcp14>MUST</bcp14> be used with a KDF capable of outputting a key with at least 256 bits of security and with a key wrapping algorithm with a key length of at least 256 bits.</t>
      <ul spacing="normal">
        <li>
          <t>In Direct key agreement, the parameter "alg" <bcp14>MUST</bcp14> be specified, and its value <bcp14>MUST</bcp14> be one of the values specified in <xref target="direct-table"/>. (Note that future specifications <bcp14>MAY</bcp14> extend the list of algorithms.)</t>
        </li>
      </ul>
      <figure anchor="direct-table">
        <name>Direct Key Agreement: Algorithms.</name>
        <artwork><![CDATA[
 +===============================+===================================+
 | alg                           | Description                       |
 +===============================+===================================+
 | MLKEM512                      | ML-KEM-512                        |
 +===============================+===================================+
 | MLKEM768                      | ML-KEM-768                        |
 +===============================+===================================+
 | MLKEM1024                     | ML-KEM-1024                       |
 +===============================+===================================+
]]></artwork>
      </figure>
      <ul spacing="normal">
        <li>
          <t>In Key Agreement with Key Wrapping, the parameter "alg" <bcp14>MUST</bcp14> be specified, and its value <bcp14>MUST</bcp14> be one of the values specified in the table <xref target="keywrap-table"/>.</t>
        </li>
      </ul>
      <figure anchor="keywrap-table">
        <name>Key Agreement with Key Wrapping: Algorithms.</name>
        <artwork><![CDATA[
 +=================================+===================================+
 | alg                             | Description                       |
 +=================================+===================================+
 | MLKEM512-AES128KW               | ML-KEM-512 + AES128KW             |
 +=================================+===================================+
 | MLKEM768-AES192KW               | ML-KEM-768 + AES192KW             |
 +=================================+===================================+
 | MLKEM1024-AES256KW              | ML-KEM-1024 + AES256KW            |
 +=================================+===================================+
]]></artwork>
      </figure>
    </section>
    <section anchor="COSE-PQ-KEM">
      <name>COSE Ciphersuite Registration</name>
      <t><xref target="mapping-table"/> maps the JOSE algorithm names to the COSE algorithm values (for the PQ-KEM ciphersuites defined by this document).</t>
      <figure anchor="mapping-table">
        <name>Mapping between JOSE and COSE PQ-KEM Ciphersuites.</name>
        <artwork><![CDATA[
+===============================+=========+===================================+=============+
| JOSE                          | COSE ID | Description                       | Recommended |
+===============================+=========+===================================+=============+
| MLKEM512                      | TBD1    | ML-KEM-512                        | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM768                      | TBD2    | ML-KEM-768                        | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM1024                     | TBD3    | ML-KEM-1024                       | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM512+AES128KW             | TBD4    | ML-KEM-512  + AES128KW            | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM768+AES192KW             | TBD5    | ML-KEM-768  + AES192KW            | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM1024+AES256KW            | TBD6    | ML-KEM-1024  + AES256KW           | No          |
+-------------------------------+---------+-----------------------------------+-------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <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. ML-KEM has such security properties.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="jose">
        <name>JOSE</name>
        <t>The following has to be added to the "JSON Web Key Parameters" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Parameter Name: "kem-ct"</t>
          </li>
          <li>
            <t>Parameter Description: PQC KEM ciphertext</t>
          </li>
          <li>
            <t>Parameter Information Class: Public</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
        </ul>
        <t>The following entries are added to the "JSON Web Signature and Encryption Algorithms" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Algorithm Name: MLKEM512</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-512 PQ-KEM.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
          <li>
            <t>Algorithm Name: MLKEM768</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-768 PQ-KEM.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
          <li>
            <t>Algorithm Name: MLKEM1024</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-1024 PQ-KEM.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
          <li>
            <t>Algorithm Name: MLKEM512+A128KW</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-512 PQ-KEM and CEK wrapped with "A128KW".</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
          <li>
            <t>Algorithm Name: MLKEM768+A192KW</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-768 and CEK wrapped with "A192KW".</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
          <li>
            <t>Algorithm Name: MLKEM1024+A256KW</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-1024 and CEK wrapped with "A256KW".</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
        </ul>
      </section>
      <section anchor="cose">
        <name>COSE</name>
        <t>The following has to be added to the "COSE Algorithms" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Name: MLKEM512</t>
          </li>
          <li>
            <t>Value: TBD1</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-512 PQ-KEM.</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
          <li>
            <t>Name: MLKEM768</t>
          </li>
          <li>
            <t>Value: TBD2</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-768 PQ-KEM.</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
          <li>
            <t>Name: MLKEM1024</t>
          </li>
          <li>
            <t>Value: TBD3</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-1024 PQ-KEM.</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
          <li>
            <t>Name: MLKEM512+A128KW</t>
          </li>
          <li>
            <t>Value: TBD4</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-512 PQ-KEM and CEK wrapped with "A128KW".</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
          <li>
            <t>Name: MLKEM768+192KW</t>
          </li>
          <li>
            <t>Value: TBD5</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-768 and CEK wrapped with "A192KW".</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
          <li>
            <t>Name: MLKEM1024+A256KW</t>
          </li>
          <li>
            <t>Value: TBD6</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-1024 and CEK wrapped with "A256KW".</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Ilari Liusvaara, Neil Madden and AJITOMI Daisuke for the discussion and comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-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>
        <reference anchor="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </reference>
        <reference anchor="JOSE-IANA" target="https://www.iana.org/assignments/jose/jose.xhtml">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="FIPS204" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.ipd.pdf">
          <front>
            <title>FIPS 203 (Initial Public Draft): Module-Lattice-based Key-Encapsulation Mechanism Standard</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="FO" target="https://link.springer.com/article/10.1007/s00145-011-9114-1">
          <front>
            <title>Secure Integration of Asymmetric and Symmetric Encryption Schemes</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="HHK" target="https://link.springer.com/chapter/10.1007/978-3-319-70500-2_12">
          <front>
            <title>A Modular Analysis of the Fujisaki-Okamoto Transformation</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FIPS203-ipd" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.ipd.pdf">
          <front>
            <title>Module-Lattice-based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="NIST.SP.800-185" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf">
          <front>
            <title>SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash</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>
            <author fullname="Michael P" initials="M." surname="P">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="9" month="May" year="2024"/>
            <abstract>
              <t>   One aspect of the transition to post-quantum algorithms in
   cryptographic protocols is the development of hybrid schemes that
   incorporate both post-quantum and traditional asymmetric algorithms.
   This document defines terminology for such schemes.  It is intended
   to be used as a reference and, hopefully, to ensure consistency and
   clarity across different protocols, standards, and organisations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-03"/>
        </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="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.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</organization>
            </author>
            <date day="5" month="April" year="2024"/>
            <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-10"/>
        </reference>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="I-D.ietf-reddy-cose-jose-pqc-hybrid-hpke">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-pquip-pqc-engineers">
          <front>
            <title>Post-Quantum Cryptography for Engineers</title>
            <author fullname="Aritra Banerjee" initials="A." surname="Banerjee">
              <organization>Nokia</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Dimitrios Schoinianakis" initials="D." surname="Schoinianakis">
              <organization>Nokia</organization>
            </author>
            <author fullname="Tim Hollebeek" initials="T." surname="Hollebeek">
              <organization>DigiCert</organization>
            </author>
            <date day="21" month="May" year="2024"/>
            <abstract>
              <t>   The presence of a Cryptographically Relevant Quantum Computer (CRQC)
   would render state-of-the-art, traditional public-key algorithms
   deployed today obsolete, since the assumptions about the
   intractability of the mathematical problems for these algorithms that
   offer confident levels of security today no longer apply in the
   presence of a CRQC.  This means there is a requirement to update
   protocols and infrastructure to use post-quantum algorithms, which
   are public-key algorithms designed to be secure against CRQCs as well
   as classical computers.  These new public-key algorithms behave
   similarly to previous public key algorithms, however the intractable
   mathematical problems have been carefully chosen so they are hard for
   CRQCs as well as classical computers.  This document explains why
   engineers need to be aware of and understand post-quantum
   cryptography.  It emphasizes the potential impact of CRQCs on current
   cryptographic systems and the need to transition to post-quantum
   algorithms to ensure long-term security.  The most important thing to
   understand is that this transition is not like previous transitions
   from DES to AES or from SHA-1 to SHA-2.  While drop-in replacement
   may be possible in some cases, others will require protocol re-design
   to accommodate significant differences in behavior between the new
   post-quantum algorithms and the classical algorithms that they are
   replacing.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-engineers-04"/>
        </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.ietf-cose-hpke">
          <front>
            <title>Use of Hybrid Public-Key Encryption (HPKE) with CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
              <organization>bibital</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="8" month="July" year="2024"/>
            <abstract>
              <t>   This specification defines hybrid public-key encryption (HPKE) for
   use with CBOR Object Signing and Encryption (COSE).  HPKE offers a
   variant of public-key encryption of arbitrary-sized plaintexts for a
   recipient public key.

   HPKE works for any combination of an asymmetric key encapsulation
   mechanism (KEM), key derivation function (KDF), and authenticated
   encryption with additional data (AEAD) function.  Authentication for
   HPKE in COSE is provided by COSE-native security mechanisms or by one
   of the authenticated variants of HPKE.

   This document defines the use of the HPKE with COSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-08"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
vP8FzcVcKsZoAAA=

-->

</rfc>
