<?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.1 (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-rha-jose-hpke-encrypt-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="Use of HPKE in JOSE">Use of Hybrid Public-Key Encryption (HPKE) with Javascript Object Signing and Encryption (JOSE)</title>
    <seriesInfo name="Internet-Draft" value="draft-rha-jose-hpke-encrypt-00"/>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Hannes Tschofenig">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</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 initials="O." surname="Steele" fullname="Orie Steele">
      <organization>Transmute</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>orie@transmute.industries</email>
      </address>
    </author>
    <author initials="M." surname="Jones" fullname="Michael B. Jones">
      <organization>independent</organization>
      <address>
        <postal>
          <country>United States</country>
        </postal>
        <email>michael_b_jones@hotmail.com</email>
      </address>
    </author>
    <date year="2023" month="October" day="12"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>HPKE</keyword>
    <keyword>JOSE</keyword>
    <keyword>PQC</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 87?>

<t>This specification defines Hybrid public-key encryption (HPKE) for use with 
Javascript Object Signing and Encryption (JOSE). HPKE offers a variant of
public-key encryption of arbitrary-sized plaintexts for a recipient public key.</t>
      <t>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 JOSE is provided by 
JOSE-native security mechanisms or by one of the authenticated variants of HPKE.</t>
      <t>This document defines the use of the HPKE with JOSE.</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-rha-jose-hpke/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        jose Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 102?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Hybrid public-key encryption (HPKE) <xref target="RFC9180"/> is a scheme that 
provides public key encryption of arbitrary-sized plaintexts given a 
recipient's public key. HPKE utilizes a non-interactive ephemeral-static 
Diffie-Hellman exchange to establish a shared secret. The motivation for
standardizing a public key encryption scheme is explained in the introduction
of <xref target="RFC9180"/>.</t>
      <t>The HPKE specification 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, one that authenticates possession of
a key encapsulation mechanism (KEM) private key, and one that
authenticates possession of both a pre-shared key and a KEM private key.</t>
      <t>This specification utilizes HPKE as a foundational building block and
carries the output to JOSE (<xref target="RFC7516"/>, <xref target="RFC7518"/>).</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?>

</section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>This specification uses the following abbreviations and terms:</t>
      <ul spacing="normal">
        <li>
          <t>Content-encryption key (CEK), a term defined in CMS <xref target="RFC2630"/>.</t>
        </li>
        <li>
          <t>Hybrid Public Key Encryption (HPKE) is defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>pkR is the public key of the recipient, as defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>skR is the private key of the recipient, as defined in <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Encapsulation Mechanism (KEM), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Derivation Function (KDF), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Authenticated Encryption with Associated Data (AEAD), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Additional Authenticated Data (AAD), see <xref target="RFC9180"/>.</t>
        </li>
        <li>
          <t>Key Type (kty), see <xref target="RFC7517"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="hpke-for-jose">
      <name>HPKE for JOSE</name>
      <section anchor="overview">
        <name>Overview</name>
        <t>The JSON Web Algorithms (JWA) <xref target="RFC7518"/> in Section 4.6 defines two ways using the key agreement result. When Direct Key Agreement is employed, the shared secret established through the HPKE will be the content encryption key (CEK). When Key Agreement with Key Wrapping is employed, the shared secret established through the HPKE will wrap the CEK. If multiple recipients are needed, then Key Agreement with Key Wrapping mode is used.</t>
        <t>In both cases a new JOSE header parameter, called 'encapsulated_key', is used to convey the content of the "enc" structure defined in the HPKE specification. "enc" represents the serialized public key.</t>
        <t>When the alg value is set to any of algorithms registered by this
specification then the 'encapsulated_key' header parameter <bcp14>MUST</bcp14>
be present in the unprotected header parameter.</t>
        <t>The 'encapsulated_key' parameter contains the encapsulated key, which is output of the HPKE KEM, and is represented as a base64url encoded string. The parameter "kty" <bcp14>MUST</bcp14> be present and set to "OKP" defined in Section 2 of <xref target="RFC8037"/>.</t>
        <section anchor="hpke-usage-in-direct-and-key-agreement-with-key-wrapping">
          <name>HPKE Usage in Direct and Key Agreement with Key Wrapping</name>
          <t>In Direct Key Agreement mode, HPKE is employed to directly encrypt the plaintext, and the resulting ciphertext is included in the JWE ciphertext. In Key Agreement with Key Wrapping mode, HPKE is used to encrypt the Content Encryption Key (CEK), and the resulting ciphertext is included in the JWE ciphertext.</t>
          <t>In both modes, the sender <bcp14>MUST</bcp14> specify the 'alg' parameter in the protected header to indicate the use of HPKE. Additionally, the sender <bcp14>MUST</bcp14> place the 'encapsulated_key' parameter in the unprotected header. Optionally, the unprotected header <bcp14>MAY</bcp14> contain the 'kid' parameter used to identify the static recipient public key used by the sender.</t>
        </section>
      </section>
    </section>
    <section anchor="ciphersuite-registration">
      <name>Ciphersuite Registration</name>
      <t>This specification registers a number of ciphersuites for use with HPKE.
A ciphersuite is thereby a combination of several algorithm configurations:</t>
      <ul spacing="normal">
        <li>
          <t>HPKE Mode</t>
        </li>
        <li>
          <t>KEM algorithm</t>
        </li>
        <li>
          <t>KDF algorithm</t>
        </li>
        <li>
          <t>AEAD algorithm</t>
        </li>
      </ul>
      <t>The "KEM", "KDF", and "AEAD" values are conceptually taken from the HPKE IANA
registry <xref target="HPKE-IANA"/>. Hence, JOSE-HPKE cannot use an algorithm combination
that is not already available with HPKE.</t>
      <t>For better readability of the algorithm combination ciphersuites labels are
build according to the following scheme:</t>
      <artwork><![CDATA[
HPKE-<Mode>-<KEM>-<KDF>-<AEAD>
]]></artwork>
      <t>The "Mode" indicator may be populated with the following values from
Table 1 of <xref target="RFC9180"/>:</t>
      <ul spacing="normal">
        <li>
          <t>"Base" refers to "mode_base" described in Section 5.1.1 of <xref target="RFC9180"/>,
which only enables encryption to the holder of a given KEM private key.</t>
        </li>
        <li>
          <t>"PSK" refers to "mode_psk", described in Section 5.1.2 of <xref target="RFC9180"/>,
which authenticates using a pre-shared key.</t>
        </li>
        <li>
          <t>"Auth" refers to "mode_auth", described in Section 5.1.3 of <xref target="RFC9180"/>,
which authenticates using an asymmetric key.</t>
        </li>
        <li>
          <t>"Auth_Psk" refers to "mode_auth_psk", described in Section 5.1.4 of <xref target="RFC9180"/>,
which authenticates using both a PSK and an asymmetric key.</t>
        </li>
      </ul>
      <t>For a list of ciphersuite registrations, please see <xref target="IANA"/>.</t>
    </section>
    <section anchor="hpke-encryption-and-decryption">
      <name>HPKE Encryption and Decryption</name>
      <section anchor="hpke-encryption-with-sealbase">
        <name>HPKE Encryption with SealBase</name>
        <t>The SealBase(pkR, info, aad, pt) function is used to encrypt a plaintext pt to a recipient's public key (pkR).</t>
        <t>Two cases of plaintext need to be distinguished:</t>
        <ul spacing="normal">
          <li>
            <t>In Direct Key Agreement mode, the plaintext "pt" passed into SealBase
is the content to be encrypted.  Hence, there is no intermediate
layer utilizing a CEK.</t>
          </li>
          <li>
            <t>In Key Agreement with Key Wrapping mode, the plaintext "pt" passed into
SealBase is the CEK.  The CEK is a random byte sequence of length
appropriate for the encryption algorithm. For example, AES-128-GCM 
requires a 16 byte key and the CEK would therefore be 16 bytes long.</t>
          </li>
        </ul>
        <t>The "aad" parameter in SealBase function will take the JWE AAD value as input when the JWE AAD value is non-empty; otherwise, it will take an empty aad.</t>
        <t>The HPKE specification defines the "info" parameter as a context information structure that is used to ensure that the derived keying material is bound to the context of the transaction. The "info" parameter in SealBase function will take the JOSE context specific data defined in Section 4.6.2 of <xref target="RFC7518"/> as input.</t>
        <t>The SealBase function internally creates the sending HPKE context by invoking SetupBaseS() (Section 5.1.1 of <xref target="RFC9180"/>) with "pkR" and "info". This yields the context "sctxt" and an encapsulation key "enc". The SealBase function then invokes the Seal() method on "sctxt" (Section 5.2 of <xref target="RFC9180"/>) with "aad", yielding ciphertext "ct".</t>
        <t>In summary, if SealBase() is successful, it will output a ciphertext "ct" and an encapsulated key "enc". In both JWE Compact Serialization and the JWE JSON Serialization, "ct" and "enc" will be base64url encoded, since JSON lacks a way to directly represent arbitrary octet sequences.</t>
      </section>
      <section anchor="hpke-decryption-with-openbase">
        <name>HPKE Decryption with OpenBase</name>
        <t>The recipient will use the OpenBase(enc, skR, info, aad, ct) function
   with the base64url decoded "encapsulated_key" and the "ciphertext" parameters 
   received from the sender.  The "aad" and the "info" parameters are constructed 
   from JWE AAD and JOSE context, respectively.</t>
        <t>The OpenBase internally creates the receiving HPKE context by invoking SetupBaseR() (Section 5.1.1 of <xref target="RFC9180"/>) with "skR", "enc", and "info". This yields the context "rctxt". The OpenBase function then decrypts "ct" by invoking the Open() method on "rctxt" (Section 5.2 of <xref target="RFC9180"/>) with "aad", 
   yielding "pt" or an error on failure.</t>
        <t>The OpenBase function will, if successful, decrypts "ct".  When
   decrypted, the result will be either the CEK (when Key Agreement with Key Wrapping mode is
   used), or the content (if Direct Key Agreement mode is used).  The CEK is the
   symmetric key used to decrypt the ciphertext.</t>
      </section>
    </section>
    <section anchor="post-quantum-considerations">
      <name>Post-Quantum Considerations</name>
      <t>The migration to Post-Quantum Cryptography (PQC) is unique in the history of modern digital cryptography in that neither the traditional algorithms nor the post-quantum algorithms are fully trusted to protect data for the required data lifetimes. The traditional algorithms, such as RSA and elliptic curve, will fall to quantum cryptalanysis, while the post-quantum algorithms face uncertainty about the underlying mathematics, compliance issues, unknown vulnerabilities, hardware and software implementations that have not had sufficient maturing time to rule out classical cryptanalytic attacks and implementation bugs.</t>
      <t>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. HPKE can be extended to support hybrid post-quantum Key Encapsulation Mechanisms (KEMs) as defined in <xref target="I-D.westerbaan-cfrg-hpke-xyber768d00-02"/>. Kyber, which is a KEM does not support the static-ephemeral key exchange that allows HPKE based on DH based KEMs and its optional authenticated modes as discussed in Section 1.2 of <xref target="I-D.westerbaan-cfrg-hpke-xyber768d00-02"/>.</t>
      <t>The JOSE HPKE PQ/T hybrid ciphersuites are defined in <xref target="IANA"/>.</t>
      <section anchor="example-hybrid-key-agreement-computation">
        <name>Example Hybrid Key Agreement Computation</name>
        <t>This example uses HPKE-Base-P256-SHA256-AES128GCM which corresponds
to the following HPKE algorithm combination:</t>
        <ul spacing="normal">
          <li>
            <t>KEM: DHKEM(P-256, HKDF-SHA256)</t>
          </li>
          <li>
            <t>KDF: HKDF-SHA256</t>
          </li>
          <li>
            <t>AEAD: AES-128-GCM</t>
          </li>
          <li>
            <t>Mode: Base</t>
          </li>
          <li>
            <t>payload: "This is the content"</t>
          </li>
          <li>
            <t>aad: ""</t>
          </li>
        </ul>
        <artwork><![CDATA[
{
    "header": {
        "alg": "HPKE-Base-P256-SHA256-AES128GCM",
        "kid": "7"
    },
    "encapsulated_key": "BIxvdeRjp3MILzyw06cBNIpXjGeAq6ZYZGaCqa9ykd/
    Cd+yTw9WHB4GChsEJeCVFczjcPcr/Nn4pUTQunbMNwOc=",
    "ciphertext": "TODO"
}

]]></artwork>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This specification is based on HPKE and the security considerations of
<xref target="RFC9180"/> are therefore applicable also to this specification.</t>
      <t>HPKE assumes the sender is in possession of the public key of the recipient and
HPKE JOSE makes the same assumptions. Hence, some form of public key distribution
mechanism is assumed to exist but outside the scope of this document.</t>
      <t>HPKE in Base mode does not offer authentication as part of the HPKE KEM. In this case 
JOSE constructs like JWS and JSON Web Tokens (JWTs) can be used to add authentication. 
HPKE also offers modes that offer authentication.</t>
      <t>HPKE relies on a source of randomness to be available on the device. In Key Agreement 
with Key Wrapping mode, CEK has to be randomly generated and it <bcp14>MUST</bcp14> be
ensured that the guidelines in <xref target="RFC8937"/> for random number generations are followed.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This document requests IANA to add new values to the 'JOSE Algorithms' and to 
the 'JOSE Header Parameters' registries in the 'Standards Action 
With Expert Review category'.</t>
      <section anchor="jose-algorithms-registry-direct-key-agreement">
        <name>JOSE Algorithms Registry (Direct Key Agreement)</name>
        <ul spacing="normal">
          <li>
            <t>Algorithm Name: HPKE-Base-P256-SHA256-AES128GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and the AES-128-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P256-SHA256-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P384-SHA384-AES256GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-384, HKDF-SHA384) KEM, the HKDF-SHA384 KDF, and the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P384-SHA384-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-384, HKDF-SHA384) KEM, the HKDF-SHA384 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P521-SHA512-AES256GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P521-SHA512-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519-SHA256-AES128GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the AES-128-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519-SHA256-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X448-SHA512-AES256GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X448-SHA512-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519Kyber768-SHA256-AES256GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the X25519Kyber768Draft00 Hybrid KEM, the HKDF-SHA256 KDF, and the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519Kyber768-SHA256-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the X25519Kyber768Draft00 Hybrid KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP256-SHA256-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(CP-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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:HPKE-Base-CP384-SHA512-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP384, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES256GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP521-SHA512-ChaCha20Poly1305</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(CP-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP256-SHA256-AES128GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and the AES128GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP384-SHA512-AES256GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP384, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES256GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP521-SHA512-AES256GCM</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and the AES256GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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="jose-algorithms-registry-key-agreement-with-key-wrapping">
        <name>JOSE Algorithms Registry (Key Agreement with Key Wrapping)</name>
        <ul spacing="normal">
          <li>
            <t>Algorithm Name: HPKE-Base-P256-SHA256-AES128GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and Key wrapping with the AES-128-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P256-SHA256-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P384-SHA384-AES256GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-384, HKDF-SHA384) KEM, the HKDF-SHA384 KDF, and Key wrapping with the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P384-SHA384-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-384, HKDF-SHA384) KEM, the HKDF-SHA384 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P521-SHA512-AES256GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-P521-SHA512-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(P-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519-SHA256-AES128GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and Key wrapping with the AES-128-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519-SHA256-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X25519, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X448-SHA512-AES256GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X448-SHA512-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(X448, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519Kyber768-SHA256-AES256GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the X25519Kyber768Draft00 Hybrid KEM, the HKDF-SHA256 KDF, and Key wrapping with the AES-256-GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-X25519Kyber768-SHA256-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the X25519Kyber768Draft00 Hybrid KEM, the HKDF-SHA256 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP256-SHA256-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(CP-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP521-SHA512-ChaCha20Poly1305KW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE version 1 in Base Mode that uses the DHKEM(CP-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the ChaCha20Poly1305 AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP256-SHA256-AES128GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP-256, HKDF-SHA256) KEM, the HKDF-SHA256 KDF and Key wrapping with the AES128GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP384-SHA512-AES256GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP384, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the AES256GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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: HPKE-Base-CP521-SHA512-AES256GCMKW</t>
          </li>
          <li>
            <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the DHKEM(CP-521, HKDF-SHA512) KEM, the HKDF-SHA512 KDF, and Key wrapping with the AES256GCM AEAD.</t>
          </li>
          <li>
            <t>Algorithm Usage Location(s): "alg"</t>
          </li>
          <li>
            <t>JOSE Implementation Requirements: Optional</t>
          </li>
          <li>
            <t>Change Controller: IESG</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="jose-header-parameters">
        <name>JOSE Header Parameters</name>
        <ul spacing="normal">
          <li>
            <t>Parameter Name: "encapsulated_key"</t>
          </li>
          <li>
            <t>Parameter Description: HPKE encapsulated key</t>
          </li>
          <li>
            <t>Parameter Information Class: Public</t>
          </li>
          <li>
            <t>Used with "kty" Value(s): "OKP"</t>
          </li>
          <li>
            <t>Change Controller: IESG</t>
          </li>
          <li>
            <t>Specification Document(s): [[This specification]]</t>
          </li>
        </ul>
      </section>
    </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="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="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="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="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="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8937">
          <front>
            <title>Randomness Improvements for Security Protocols</title>
            <author fullname="C. Cremers" initials="C." surname="Cremers"/>
            <author fullname="L. Garratt" initials="L." surname="Garratt"/>
            <author fullname="S. Smyshlyaev" initials="S." surname="Smyshlyaev"/>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="October" year="2020"/>
            <abstract>
              <t>Randomness is a crucial ingredient for Transport Layer Security (TLS) and related security protocols. Weak or predictable "cryptographically secure" pseudorandom number generators (CSPRNGs) can be abused or exploited for malicious purposes. An initial entropy source that seeds a CSPRNG might be weak or broken as well, which can also lead to critical and systemic security problems. This document describes a way for security protocol implementations to augment their CSPRNGs using long-term private keys. This improves randomness from broken or otherwise subverted CSPRNGs.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8937"/>
          <seriesInfo name="DOI" value="10.17487/RFC8937"/>
        </reference>
        <reference anchor="RFC2630">
          <front>
            <title>Cryptographic Message Syntax</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="June" year="1999"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax. This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary messages. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2630"/>
          <seriesInfo name="DOI" value="10.17487/RFC2630"/>
        </reference>
        <reference anchor="HPKE-IANA" target="https://www.iana.org/assignments/hpke/hpke.xhtml">
          <front>
            <title>Hybrid Public Key Encryption (HPKE) IANA Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="I-D.westerbaan-cfrg-hpke-xyber768d00-02">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum KEM for HPKE</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="4" month="May" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum KEM,
   for HPKE (RFC9180).  This KEM does not support the authenticated
   modes of HPKE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-westerbaan-cfrg-hpke-xyber768d00-02"/>
        </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">
         </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="6" month="October" year="2023"/>
            <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-06"/>
        </reference>
      </references>
    </references>
    <?line 606?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This specification leverages text from <xref target="I-D.ietf-cose-hpke"/>. We would like to thank Matt Chanda and Aaron Parecki for their feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
9wjIVvz32fH08dvdJ5vPtsZ657nY+ufT6Pf30VGk7r1MN/M3x6+KdHDwcnoY
/cOhVA84kR6H24dh8NEf/A7zd8uXuNqF2jpaE68blq0uGC3tU9QAgteR6tfe
6EJLWSWA4CMByFhExVtUNs2d39PfcwQLXkxqCSOmt5h4zl1R+sQ9BrpSRPBI
qSbcJ24agmi7Bym3LgvkOptQAWUyd38Mi1dKgglGxamuV6EdIkxtpn+GRT+y
04VButi9oix3Vrt228cfFG/0YHBIkVVpzehCad3gUAqmMfxfaEZS9kawsf5m
b1BWiYGGuOIE07a+zQf8PYJj9BJ0h+AYDLOz9T5c43E8tzkYJ6fYwDl33dVa
QDKny/D1J1QiwRtdeAAgb6Fs9cpWtVJgpavTVY0FG82DgTuVkVjSDQzOq7hh
JDrmHqDdATzwSGDwQS1aMum+7RrYykxclWZGBTAtoeqPv6+C16hBlDFkc4U4
12VyUO09H+UtIJYZ6b4o3oeeV7E7bNk4+3CHzPf8TVWMDsFvaLvGcQWvEbim
hLO8d4nf1bWQu1ZLMxZUT3dtA++oTB7v+lq0tEelqX13dVOznnViwVsk9M5Z
DvaEvRZ4G4X5j8Pctc5mbvPyCjhbWZY/rKIHKGezl/YjEheb2saKbWEvZ9Pt
fNsnZLa27u/O2O7WKZyR3HCpX+gvLKPLW1vneiHb4icdq0ZtI88ZwHrdFL1T
p4GlbcO/yKwerOjVrvUrgf2oDttrBp+vbRpAl+G7ZSMWL4zZgAU72QqkSyj8
JFH/GTzpN+z0thMZ2umXX46fgLckWQL5/fXXBmo9DIYhByjXaFqEbuLyvAG8
4P/G2lGWzNbvrz34f8mieSRvC5/uP9pEcuAvkFKgyo3oEGxXMQjeLGEQjCKD
Wg0lQnG6RUpUY87NK9F1eHRbtejBxjrS48H6xk1qEexacQj2XsIhGL31WlRj
zs1r0XV4dEu16F8bDx6sP77xiM5ue8l4oXWLY7omf25ala7JptuqS5ubj27c
I+Gm3xzSlXhz41p0HRbdVh0ii7Pv6u41v/Sltam58TZ+c8jaWlmgv5RnumUa
tZRTN6dbn8mwW6pfW//JItHWVapEt5NVdU65SsSf5rIuwZ9G/eHywYQ1zn9l
vjRU6D+Y3G59y26va+0+L7n9c41bXXlc3/62cKRm1T4vrPtmzv58c/bFOXLd
+ulfjiUXNmY/cTv0Oj3a/bdf2jVd2f7hkab+ekB51e721fguCsm/Grbd0ghj
aS/3Jph21U7h+cp2u8oWF/V3vx6+3VZtWxaq3ATXrhq1fNO2T/eBvx6+3VJt
O6c3/OX5do2247dY8jL94q+IdbdV55b1kG+AbVdtUX5zcJ/uK381bLutunZx
r/lLsu8zmpffNO8q/eeviom3VA8v7El/eSN6ja70N/Zdth96I+z7luX96T3S
a/LtC3RJz/V33/qmX5BLV+2cnsulv1zj7uq91C+oS39aXfIvxybfX134XC1y
sHznOLj4VQCNSQ2OEW/mv6SrMX2v9p1zW/hFJ1331wBg1hvtv8XUfr30P/GD
wpaq+G3Sn0Gohc/pA7XsH2Ia8OgEP9nci/CrXhIRj4hYwYeu+6C0iP8RDnmi
Rfhx6ZcMJPQFuyMUPvyaJ/oGK/e1Gfi35dqR/+t6+A0Zb4X78kH6UDt9Apqn
J+yAG0NnizlJYo8rgAxEE9GJ9F+3IxUbChEjwvj3ff4Pw4UgPWNwAAA=

-->

</rfc>
