<?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.18 (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-03" 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-03"/>
    <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="22"/>
    <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.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>TBD: ML-KEM can be used directly without HPKE. However, HPKE with ML-KEM is specifically discussed in the document draft-connolly-cfrg-hpke-mlkem. Specifications like TLS (draft-connolly-tls-mlkem-key-agreement) and IKEv2 (draft-kampanakis-ml-kem-ikev2) utilize ML-KEM directly, without employing HPKE with ML-KEM.</t>
        <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 for JOSE is performed using the KMAC defined in <xref target="NIST.SP.800-185"/>. The KMAC(K, X, L, S) parameters are instantiated as follows:</t>
        <ul spacing="normal">
          <li>
            <t>K: the input key-derivation key. In this document this is the initial shared secret (SS') outputted from the 
kemEncaps() or kemDecaps() functions.</t>
          </li>
          <li>
            <t>X: JOSE context-specific data defined in Section 4.6.2 of <xref target="RFC7518"/>, i.e., concat(AlgorithmID, PartyUInfo, PartyVInfo, 
SuppPubInfo, SuppPrivInfo).</t>
          </li>
          <li>
            <t>L: length of the output key in bits and it would be set to match the length of the key required for the AEAD operation.</t>
          </li>
          <li>
            <t>S: the optional customization label. In this document this parameter is unused, that is it is the zero-length string "".</t>
          </li>
        </ul>
        <t>For all security levels of ML-KEM, KMAC256 is used.</t>
      </section>
      <section anchor="key-derivation-for-cose">
        <name>Key Derivation for COSE</name>
        <t>The key derivation for COSE is performed using the KMAC defined in <xref target="NIST.SP.800-185"/>. The KMAC(K, X, L, S) parameters are instantiated as follows:</t>
        <ul spacing="normal">
          <li>
            <t>K: the input key-derivation key. In this document this is the initial shared secret (SS') outputted from the 
kemEncaps() or kemDecaps() functions.</t>
          </li>
          <li>
            <t>X: The context structure defined in Section 5.2 of <xref target="RFC9053"/>.</t>
          </li>
          <li>
            <t>L: length of the output key in bits and it would be set to match the length of the key required for the AEAD operation.</t>
          </li>
          <li>
            <t>S: the optional customization label. In this document this parameter is unused, that is it is the zero-length string "".</t>
          </li>
        </ul>
        <t>For all security levels of ML-KEM, KMAC256 is used.</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.</t>
          </li>
          <li>
            <t>The usage for the "alg" and "enc" header parameters remain the same as in JWE <xref target="RFC7516"/>: 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 JWE Encrypted Key <bcp14>MUST</bcp14> include the output ('ct') from the PQ-KEM algorithm, encoded using base64url. In the JWE Compact Serialization, it avoids double base64url encoding.</t>
          </li>
          <li>
            <t>The recipient <bcp14>MUST</bcp14> base64url decode the ciphertext from the JWE Encrypted Key and then use it to derive the CEK using the process defined in <xref target="decrypt"/>.</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 "ek" <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 "ek". 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 Direct Key Agreement mode.</t>
        </li>
        <li>
          <t>PQ-KEM in a Key Agreement with Key Wrap mode.</t>
        </li>
      </ul>
      <t>In both modes, the COSE header parameter 'ek' defined in Section 7.2 of <xref target="I-D.ietf-cose-hpke"/>, 
is used to convey the output ('ct') from the PQ KEM Encaps algorithm.</t>
      <section anchor="direct-key-agreement-1">
        <name>Direct Key Agreement</name>
        <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_Encrypt 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 COSE_Recipient structure for the recipient is organized as follows:</t>
        <ul spacing="normal">
          <li>
            <t>The sender <bcp14>MUST</bcp14> set the 'alg' parameter to indicate the use of the PQ-KEM algorithm.</t>
          </li>
          <li>
            <t>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_Encrypt contains the 'kid' then the recipient may
use it to select the appropriate private key.</t>
          </li>
        </ul>
      </section>
      <section anchor="key-agreement-with-key-wrap">
        <name>Key Agreement with Key Wrap</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 encrypted CEK in the "ciphertext" field (Section 5.1 of <xref target="RFC9052"/>). 
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 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 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 anchor="sec-combined-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>National Institute of Standards and Technology, 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.reddy-cose-jose-pqc-hybrid-hpke">
          <front>
            <title>PQ/T Hybrid KEM: HPKE with JOSE/COSE</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <date day="21" month="July" year="2024"/>
            <abstract>
              <t>   This document outlines the construction of a PQ/T Hybrid Key
   Encapsulation Mechanism (KEM) in Hybrid Public-Key Encryption (HPKE)
   for integration with JOSE and COSE.  It specifies the utilization of
   both traditional and Post-Quantum Cryptography (PQC) algorithms,
   referred to as PQ/T Hybrid KEM, within the context of JOSE and COSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-reddy-cose-jose-pqc-hybrid-hpke-01"/>
        </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">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </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="12" 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-09"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1d63bbxrX+j6eYQ/+wGBOUKFu+cDVtGUmOZcmWYyp1u7yy
ukBgSCICAQQDSGEd91n6LOfJzrf3zAADXmTZsZOz2vpHBA4GM3v2/QbE932v
jMtEDkXnVaZK/7sqSMtqIU7lUhynYZCrKgnKOEvFCxnOgzRWCyV2Xn0nTo9f
qK6YZoV4fj4+FkEaiUNcdLxgMinkFa3HkzZNCYNSzrJiORSqjDwvysI0WACE
qAimpV/IKFr6Yaak/yP9J/8p9C/lwlPVZBErBVjKZY7ZJ8cXT720WkxkMfQi
LDn0wixVMlWVGoqyqKQHMO57QSEDgDOWYVXE5bLjXWfF5azIqhyjGqBLucRg
NPSEL159d0h/6Ab9fW7+PltOihjAXsm0wk5C2BUI0I7AgIaq8warx+lMfEv3
OxhfBHFi5v05luW0nxUzfiAowjluzMsyV8PdXZpHQ/GV7Nt5uzSwOymyayV3
aYVdftJTJbD59yDJUmy5lMrL46F4W2ZhT6isKAs5VbhaLsxFWcRh2RNhtljI
tMQIUL4I8hxw/uB5QVXOs4IOj6WFmFZJoulxERfVIkikug4K8ZrIwhMAFxjh
H8wWQ/Eyu4wDHg+B3aH4JkhnAKyQPFbIGc86DYo0KINLMzOr0pLof5JG5mFp
0HSZpVEZF3+e0e8+IO6swzUCHYuAdpLFj1LeAqgXVRqH8/be38piEaTL1u4B
r9yfmJX/nNI6W6B4FqSpVOJChfNsKtN4tg5HA8GHt57zcv2yXg4o+LmfyhJb
e2mGB0pwBi30+unh/mDwxFw+Hjx6YC4fHQwe0iXxrH8yejnS24qawOYfYATq
cV+PGAXwfHz+UryREzGOZ6BVVUgWWWiBYpmzChglkNq4nC+UeTAoZrIcCsvB
19fX/ThIA825ENVZyvy2S3LM/+n/PC8Xied5cTp1j/T05NV4f+/BsAVQh0bF
/t59sXOSxmUcJOJVNUniUByRouiCrFlUJdI/C8oyDqU/CZSMSHX5W1SXGJPc
BEXU2XyA9CrJq4nqY27Zn2VXu3RBI7sEyu7Lk/FFn676AKof51E/j6Z6JdY/
YhokCuyIIWiR0auTlfNgEJoE4yLNSqm2ABGqImwgOBy/PtxdSIjJ7qsi+1GG
QKerqf1Dok42K4J8vtyFXFca5fLnYJEDN9MY8rsb5LHPe26BWDw9X4GV1aWE
gEJVFxqN2VSMoFMWktQJ88a4/uVwyTicy8XW0yVxetlXeQHVIwuSLKg4EC+R
u4O9/mBv79Gu2tsbPDjw9wYD/8lg8MAfbIL32bPTFYBHmhugqUZpkCxVrAjg
ci7F0+rHWAWXsX9+GSyyMhMXRZAqw39ZemtAwUR5KYsa0CePHvv3/fuDJ/6j
vYO9PX//74P9jbhl5r7vg2FWYP5/yb/Evjxz/Kr/GMcaPD5YAfslgwVxPEkV
xqpSEqotbIpZ4wIwp1mSzZY9MX428u+LI1lA2iOQIw3peRjpEHdOj3vi9MXo
sCcuKjDss0DNeYFXQREkiUxo4KOPO85lCH2h1QVDq3ZXzkRnFxsPj3+e7/si
mMBwBmHpeRdzcJOVLRFJFRbxBLqfuAs+B3wC3oJ9nUqR9f8oZ8rXztQ1VGuc
tp2lvvAYlkUcRYn0vDskkQXYhlHoeXYL8GdelbQzIE0zAc8AbCtyWYSSsR6A
LAQraRASbBBMP2NpqcJYpqHU1MPBYMHBlLgBvaLiUPWFOMQZ40gWwSSRsOxK
knci5BTHLvVzkgxVVimsXeQZ9Ia2IaCNLNgWwH7C5ANMQhWhL5JXMslyvgeY
ckI4b/vT2snUUpUSGINDJyaSzwrUYywS0FUFVkiWfagooapw3qMT2zXKmhlF
EF0FdMwe7Y6FYk3FHMoxZRNDgE0rxlEbBFlgaibmwRUOJci4xVNACrjjRQ6o
Behq4BBho5ShHA3gRMvXBmu0GK9kzo8zfArLAJ68yK5AFKG0woYrK4ATkChW
c8YqCBWTv1iKYBbEkFiQhNAAEIJiyVwnghAo4eMFa6fue95II+nj5F7skMR1
CcOYnSSglkZ1kfFmeFTJBOxIlKQbqbwGHYCEGoIWFoPa+8DsoGQ2MIe2B5tk
OIt9mqAJE3JDiJ1qGvY0EBX4U0ltIlzhjpVBKt8OhEG1GQQjlVbqp8A6swz8
Oy1OKfEQZIDhBkW1KmjJcw0qLVKz5xwhSkl4TuCoVbO5hmlRq304jgkJJQRr
IrEs1tZkS5cGwN7KMaa4UBBmYpwtRuYG/npxpvmrL/QVYSXAWgjGgE+xo0po
Bx9n8iEtCA6i7gqtGtBJnMBvoNwshldJUp8ZsiVLXAAvYFnCE6wxLARIxVxY
QIHn0Eilp7FI+KrH7ioLWK4dQizRFxdAIygLuwGnhARMyVLrZHMezTJkGqYx
cDBZinfvHOP8/n0fnA1QoeKIoDEIKQPeXZngkUIpmc6A+h2iaCTrGdC07FFA
t3SZxZQDCkNCgaiBxD8Y7Pfs9aOHj3vMH+b3YG//QZ80/aFjWej+kZzG5Afj
N5kkLesUtyp4Et+PLzo9/Ve8POfr18fffX/y+viIrmFoz87qC8/MGD87//7s
qLlqnjw8f/Hi+OWRfhijojXkdV6M/tbRUHfOX12cnL8cnXW0gLtcSCcGNcGz
MWSjyGFS2BR51oRG9Mw3h6/+91+DByDG/5jQ5v1784OCG/y4nstU75al4Br9
EzheeghioU9pFTgLAvwclzDjrPzVPLtOBSl5YPOrt4SZH4biD5MwHzz4oxmg
A7cGLc5ag4yz9ZG1hzUSNwxt2KbGZmt8BdNteEd/a/22eHcG//AneK1SwL35
0x+9VbdlEVxCIVRW6YEyiEJxn7hKE+Lduz+d+EecfPDzn6o4x39Lf86ZD59m
x1qzk6AQ/02zJMmuWTp5KSJ3IUGQkmSb1ZRlCSN1oYmLPZ9yQ8Ob1JDnG9U2
vLVlxCOHx6dDEhzWxE5QgqdwV0vY9rhx68LeU+OuGLuh1gxHT8RsPOYyyadV
YtiePSVcRjHb6K0GDeKRifI60wZLKmCogyglio3BrSPvzlAgvgF715HXljWF
PhROQaJHvuAUPgruKT5bT7AuAQ1jCdMSxZBHCCf8xllgYMKJZZLEwF9Ifg35
KuuzWGMag1jKn9mHI4PXEyYA1ZhyjsIOys+E2JlsoyBMKuDo2O55yHsexVOA
6D8DKFCu4jin4BKRAbkdNAs8Cz3xcO/JHisN+vF47/4jo8tXIDv8dZDZvX2z
987xuCuOnulQmIfqO2N9RwP0ZO9gnwACUVus/AlUZc8nJjcgiSX59ZrPVvwg
8HUQXirjgKy7sdCO10Ao/d3gIfW1wNV+VIOJkDzHRPGWIUVnkV3cb7xM8I0d
VMHUxWRfHDuo34yKGttaVskQ3rnRW7mVbF4zG3DwAt/ihuXEDjbtWumFe7WV
JorTHIw1CBWJ2tRFFYmZmi6t69KoSraEkEXA+e6dThMRb4A5viJdDC5cAL5v
ZbrTFf4fxU5+2RPqstvc1ZBjXN+nxK5Szv0jyfd5XM9RQNI1Rzv5JTFP4zTR
FHbQyZEp9UhY2qAI3haeYuGBWqeAL2VnHVwga/TJSD9GQgDfkBabwxBEZk0Q
sHa9ymVOnObYhjAgemnYSP3llAyi4IxG4J8VcooLzeaBBqrjbF10bLQqOpF0
hkFxhD/0VB0LUczmAiau4sDBhEtdnMaAxAFqsy5CNsXRU8MU9GgexAUDQreB
p6sYITB5t3o/zZv1Ruy505h7kD5l9e/AxaO4Urw2gRbxyJ3C/HjveWPJYb94
0H9ojXidtW2Ss2Ln+ZtRt21yQWj4xlodPToYPH7/vmcsv2LEXwdLlhutMQIG
NJgB9SQ/bK/fwOmCNi4oAiIBGtm7RHIJqc6WMtLBVRvPNQUYFYWJb6TYaN+A
HeiliWw0dxNR0ckJrh0Y+W7fgtSGhZFLQ28KXd/4AtBdY2meAzj6Wv1IGCnK
n5TsXzEQiyop4zxxohZ+hjmAFgB4RRaEcwKQxQGYD9vnJnU7kU5AmdGMmn+w
vZhUOAKtQj/oqPVcBCTN1n0xjhdUXkooHWe46HH/oP9AGy9n5MAaypbxMszC
+25kAlrmBlL0KA2R0zZXMuFYzXVNTbitBdx4qDbwNokipRXEIkPoAKSfaLZT
ymRtIOmU3zb2URt+GxkjbhUplIjOb+Q5JHMtJYxA8BynLG1mmKxYjOjxCn4O
GbV37549O8WEzC59yMVN0lesZVJVFWZ3uk/5LgpIjJEAqCcvj/zDw9G+MdUc
oSx0dLfufJeJsm53xBrBetxPzx0QSZPrqLPONdDep0dPOQPWQGOhbXM+uEa7
EOvQcRaN04VK/lRRWlBjkRgSgT9RqMZArdgUM2OdVcPUKicmnGQV62gAs6go
SQPDGtEs0uog5cuablFV2EPwKVn+xLTIFi0/jVIxmx0Um9RbBEvehlK1MSU7
C84oIKQppEmPFJzOycIsUZZpmpwl55GonqtWrHoFgiUmYbjZRSI7RzXCpfDK
oqLkZF88e3VaS9PgMTmqnE8h9PHWVs5/htRH2tgp4C4Db2kuaO+m7amxey0t
X2dVaxnavTCV61s4PWBCM1fnzX3ziNW9O3QOXfOPnbIQy3k7yUWy7Ub4hrc3
VfYNm8/zSwkmp7QHoYW4y6k2crbj07KPUO8FJx3qvCNhN8PxYjhI8ipIKlDc
uC9mrfgfktkdB11kTR7Y8XE11/srfkMrptM5CAkL9ZZ48oedzfW93Bb1XBL7
rjPShfIOiAcM/ORkFKTzCbdQUW+nccFJ3RSCFjJ/b93MrYdEsgzihGsmcbH7
+MHg/i5UfJAwIzyvwMEHPbG/t79P3lAMfYKjEyb1D/BsFFPhRNkQpEFexDxC
kTY5tTenGjnPOLTpvLemEPxDz/WjLlPK5ODYp8uJLHpaehYcw4tEBkVKWoPZ
UBZFVnAC881x18b1iCJMbrBO4yWUdTcZ+AnRyMmCcKYbvMNMaGquPUE1f4By
Rg+KQU/c1yxzwHpZSbsidAgZuixlKaaloHOj1OS7J6AbN4eMjsf+YP9xT188
2ee16Hr/4OGKqYSCJGAseaM6eLPqfVn7TG+zXKbaf5tmVQF8FKR7t3ED/Vot
LW/lQqe0zIv6D3ZnFeIpSjgpSgP73J9TUoDgl9c4J40SED7Pp3Ibx1WukHE4
Ce835UYAwdaaMBGItxQnfBTg0CVRPPNhLR1QaRUGTnsYiF3tJF/JvPSJvTVk
xLFUgHD4mlPXbdWrmtYIK+g6QtX863mGj7PpVCeg2Q9YSQRrVoVnwdGhYRyu
hhjuJBQ4+WQ2ftLHmmrVcbLJ7JbnRJcGjiZxwLyyQQaGt05J2zVJ6c1kKgsT
WMiWbJu0eKByOzK19V62jY6g1cKufZtFgLEaOiIYYs+lVSWqrWBacuomEtx2
iNo4mH4cK82kQGKQWRGzVvD9g0nMVRzwKSUIoiBnfgznsFKpGwbbxMqOdZi6
YocCK+tAD/b6+0SCTZnU0JfpDGcHY7x/39Vn1goZRiC+Ir+DUKtwPhgPZ1M7
qkny6rs1NYYNLb0Zw6TXNY5quG4HleZl7Tev6Ox3d0xo8V5b4zbVrW2KObek
kx2UxBz0hfhW8wpLO+UcqdbcckTH47u1OxMolYUx2xkHA4cXXJZ3fFzA14bA
clm9klss0mjmNQiZfAs+DiwTTvzPf/6z7owSlLm728OGXfG1k2xxnujyA94+
TqY7GkjbxumGUxHKE10tGo/PwEiTJasV+LO8IUEZm8amdYw0h2WuTFhZEPSR
ZG6h8r9uSNMHH66eBAB8TcGAPhFDYGC/+OaotrjG9+QINOLALtEpigzOPDl8
cF+za9JjPe3HsvJqyoK1/0kuLyWIK6Ua+Wx6Jri1EwEFvLMEPuC0mLHP5y8S
YBkejuvGKpHElwjBz8ZiZ+VBioz4EfK9/DpD0WWyn5weX+3bRxDY5UEKc0sP
UAOpjzWvILAVXHgyPuYM9tC9+tQ6XUDoXj0wBZ5bkiAUmOr8ApbIq9IqYorG
uNLE8QjRz9xQsAiWPQITgzAVJks34dHYGcpnfyjZ8dFQGAAoPDZumxNU6NSe
SVc0cHjeLXNB4ECTSaRMySeka/QCjBV4Dit5l0ZTHcm2pqKybKOpInlbTdWs
I1fzn4cXK9qntWpLEDdrIEfD4ygFJQ8hVBt0AK/V6IENYn1XqyaT59WqCcuf
UhYWikvLOE09ma5kMLmLL5e2n49ZhCN19pt7lmk6BoE0ie90bHyU5f2W6uPU
9q9SfvTob6L07tBwXU04qterG9Sbmnq0fnNrsuXF6LBdQl1pM7OZG5q4c9oT
f+2JMwDWdfsUyGpT3SagXJaukDuciVN9JcTp0KCMCES6zwGSux9OVovv/MvI
32YzQ0jqGqLTtjrTMrdNcI7961Is3PBct3Hq+hbAvw41oky5zbeGgbrrAhdF
ThK7dpacrHTcl31qVcfG5U6dAzg56lFHYLn8/iSdZub6L/raQDuucjLReox/
AEH0q1vDeDa0PGnUn2F4Ijogm8SmjS2GZuKWGy6tcYZvEZTh3FWZZgXtT3Bm
qdGfo+PRUSNo9fZjTcMsN4kM2MoyW1jnNAkmMtlGxyaCIIWYkkrs1cXAuK7Y
/EMWmW8ApK5/cGmnY3LUnI/c5jnqHkxEn1bh9reJyuFNonL4X1G5nahcOIVp
EKrSTZkbpOTAlZEnewf32Uv/Lzt/Aju3y9rsv6ZG84/gdfycJ0HDm3XV7b14
/ma0XisDDinc3lJANEnRN8ecAdvkKZnE2A2ukOnfaSd4W73Hbk1EF+8k08y4
RXS6N/Dfv08Tzj9Rbvw6VtIk8nrUJ6y7HZRNVrF3FIEV1xK45vUSoKNJmi2C
SGo9sdEXpKMzo3fgPHbEXAYUXTekbxxSA3CTrTCRdy1lH/NuCr9zBG5ZtpVN
/VKM7sQwoFHZzKbPTFKjpbSsu7jCHTYWNhqr7Ww7t50zNiX220QAttLdaTve
X/F2lQpmspZOjV1uxeMHVvFMCOHcSr1noAxvuHQd6qrH2tO91Q169aGAkrCJ
9Wi9V7pFFoPPeB0EdtVE15A4xGKUEiJZ8VnEr3bMGh+fM+itbEYpczHgAmWj
HgdaPdbnaNBEAB3XSxNvMuC2wcRRmDt3wxLqvWa3VX7kJFcW1QBSYvnhg6pI
6iYj2usw033gY25jNXqQ+8KCqyyOSAdW1A9WP61XxYJ9C3JTK9Y4rmfCI8+i
taikkY+1o5ogJGWlELPOjxqfndh+nclb8mKDKEaocQVu1Fb6BJF5y4NtkPok
mWLYbdBnRpso0m7U6JGOvOx8AdJ+BBvVD/l2sYalW0DfxfhdsbNJb3W3KEit
/5e6HLvaDtFozF+nKo2obVGXv4Y7iTirWkAbeEthhy25kcjtwvgQZ65yHGsU
Znub0+IN2ixUuwLftV0B69muGV1TjNXWvzIdZo2R1V2FukDEhqW5FWxPFhkj
5M69QcTMI4ITUKyo2eprjcpe9xr33JWXdzd5lI/WU9RcktUlWIRTDm345abl
zfIkmmTxalVko+PjfR676/0Ky9I37KyoRwfDnsO1lICKyVWyEl4bOELz340c
cX+Itk5UiO1TriUA8pdJFlBHhccNDMQ1HEMQVbgpmnlT879poOzYNax8Q1xG
Io0TcfjN+Wsvm9iKRdvaJllYv5XZljtIm1OROPDc6IE6eXRZS7t3uV2iBsIc
gYKVC3vm17XcN6GK9T4anUAvXOqXnzeGZbQave5R6zWpJfIueOauw7bgOqrN
hDYJ5xS1VnV3367sxBeq6Z8frz5/9zKOnK106LaDg7Br7Pg8XKgk1qMuAVBN
v+kzXa6cuHH+9VKu86aP2rc5uBbvEKGpUdcBivmivfoiaJY1Fly/L6ULJdQ+
lhcUBLvJxf6HbLXnvbH9Y6TNkmBJVcmarA6a61e0qYdcGVWwIg0NtF69hk7h
cAPFypxmm3ZzGis1jgvrpjhOLNY9swylDf6vsgTqfkgvRoozBn9P7DR1dxbz
bB3p9ebdNv6tVd2ptUfXa9SG22xniq+OrjB9RlZ4dJY0nlIrmjNItPViU3W8
QaXUEPabow02HM15OWrjqRzP38nre4asWGBWV+RWshxbnS4+uOYVzQcKpqic
y7afY0/VaVDUMS8Y7Kw57I1G6kKZc1iT5nX4YKzZi9Hf7Lm0g0B9MC1V4Uqm
0s33DlM64XkjlNxBwwGsNgpMY42dvrH/EA1/VTQcsygdQdY5DdPFZZvjDVpp
Za9uBDXNzcJ05UG/yFQrJ3qdNJ0l1BhXd7k5Xp6Tehkp24YTTLIrU+tpeyvs
oARMjxVSWnABgD7cHvtCnLY9ZJKpit4Jea29QltOYVdQ4+f9Rv9Ie5EsoUJ/
kMVxkJzeOP16tGw6xsgHGt2Ux9Hd8qnuGTd1u/Gz0X3dJ8NX3LfA75FzQw23
s9IvzDB8a9cwcTP0WlLpV501TySGNZ1aWbCS/2ilsPq2zYP2roNh561MXgL+
EL/9g1VN2rDprNbTSmpeUqUA3DpXt9oDYlazNTiujwVOL3J9t8nhrS3aAPvo
4ePPAeyT/S8ArFm0AZY6Tj4DtJQB/OzQ2kU5Lmrqwa2WeeOQNjEq51Dsger6
qrEY3GgMpqwncPehZke+oZySrI6BeE+fetepb1LsNF205uV11a6okybVDaba
fYTAtntb+11TS7v39c3/PnSf53jiF1pbbP/3C73sULugW+Z8RmhenIGvSGC3
QOOI9G8FDUnkzdBsnfEFoGGRuxGarTM+IzTEgu+G4o7L4PrDI193NoWTQyed
0e+8NyL5gWTVl5VO9q0Z7nfv6Mti2LQW1FvK2GeTss8mZ58gaf7oeAwzdPpm
Gz+RrN0TG2d9AYggSwzRk/3tEJG8aYjWZn0BiEieCCQYlFWQ2jLHIK3N+owQ
WalrsasVuw8I05oE3tEJqRs8ysOWR/nunfkWnZUSxFW5ds70awW1XaYcm3Kj
O+eekcQdm5gw7mfYQNGkETlGdzy6rpHL26uwW6F1Bcm/6OPcIKl8pJOj28ks
kKo/6EcR3i9fHPYP2c+Lb44Ga9K9FfaXmcvH9/yb/93bcHWb2fzL+7C1Bez7
Ldhvsru/B+w32GbAfr8F+01W+veAHXxwb7OOJ9gftGBnntlsEn4vnrm32RoQ
7AfrPLPZePxuPHNvo90g2B9u4JmNZua3hd0aopZFsIbohQnUJrK8pvRN+6Uz
o/Ads2PNkf30a/MBM/MRHfMSo3K+VULvIaQpfMLt8b/2A530MKcA6dWQ1e8x
mBXlVZ0kYr+zSUrFVILT3S/8yia9Xs6vZdIx2y9lAv76FQxKYPH81dclYn45
9g5/3HPltDC7XM7jBHHT79gkWQFjwempgvNQsn6DqfMxJcVOXVPkt8abV6df
8kdTrUZo3XKM3dCS0XZDKFc12CSd+/D3nNQ5M+WQHXqZjN15T3+7V5zQByeI
bNr5eN28BaqG4tz0LtGXY/R3P+jbMQVwIgvziVS/3ZsujgwX8E5v33IvPaeZ
Xj89/OGHFmj1hyjtM4ofujg/Ot+KG2iRj8cNqZ7/ANyQlvp45LBu+w/ADttZ
Npu/Rri0PqXqLLn3Nu/W0Qt3/q0RyMaebfenSeA2zNGK/96Y064Gew6fKJ9b
cMdL/pvg7s4dp3e6Mbtky83nhlpGl32arXZ1zZr+hcLfIUdh+PUJFvWQkur0
GiR8AJzzslz+cCOSXvOnedJQDlfeSd0BDF2eUIen9EH2Fai1nWug3r8t1G1b
9xtDbSxQA/b924K9YoV+Y7hbtqGB/sHHs8qH7cNvz0j3rNJuTnbwMez0QcX9
O3BZo06bQz38KGb7oEr98qdCJDIK6esNiYxmrA8puNMlYhl93eFPbne4qByk
l6wHT5KgiMVZXKmrICiCnngp40S8IN2o36wbPT+5OH9xIo6CWFWXTSOSeffU
voBn/18Xfe//ADkpfm7kZAAA

-->

</rfc>
