<?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.23 (Ruby 3.2.3) -->
<?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-hybrid-hpke-07" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="PQ/T Hybrid KEM: HPKE with JOSE/COSE">PQ/T Hybrid KEM: HPKE with JOSE/COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-reddy-cose-jose-pqc-hybrid-hpke-07"/>
    <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>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <date year="2025" month="February" day="17"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>PQC</keyword>
    <keyword>COSE</keyword>
    <keyword>JOSE</keyword>
    <keyword>Hybrid</keyword>
    <keyword>HPKE</keyword>
    <abstract>
      <?line 63?>

<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>
    <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-hybrid/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        cose Working Group mailing list (<eref target="mailto:cose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cose/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 67?>

<section anchor="introduction">
      <name>Introduction</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>During the transition from traditional to post-quantum algorithms, there is a desire or a requirement for protocols that use both algorithm types. 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.</t>
      <t>HPKE offers a variant of public-key encryption of arbitrary-sized plaintexts for a recipient public key. The specifications for the use of HPKE with JOSE and COSE are described in <xref target="I-D.ietf-jose-hpke-encrypt"/> and <xref target="I-D.ietf-cose-hpke"/>, respectively. HPKE can be extended to support PQ/T Hybrid KEM as defined in <xref target="I-D.connolly-cfrg-xwing-kem"/>. This specification defines PQ/T Hybrid KEM in HPKE for use with JOSE and COSE.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document makes use of the terms defined in <xref target="I-D.ietf-pquip-pqt-hybrid-terminology"/>. For the purposes of this document, it is helpful to be able to divide cryptographic algorithms into two classes:</t>
      <t>"Traditional Algorithm":  An asymmetric cryptographic algorithm based on integer factorisation, finite field discrete logarithms, elliptic curve discrete logarithms, or related mathematical problems. In the context of JOSE, examples of traditional key exchange algorithms include Elliptic Curve Diffie-Hellman Ephemeral Static <xref target="RFC6090"/> <xref target="RFC8037"/>. In the context of COSE, examples of traditional key exchange algorithms include Ephemeral-Static (ES) DH and Static-Static (SS) DH <xref target="RFC9052"/>.</t>
      <t>"Post-Quantum Algorithm":  An asymmetric cryptographic algorithm that is believed to be secure against attacks using quantum computers as well as classical computers. Examples of PQC key exchange algorithms include ML-KEM.</t>
      <t>"Post-Quantum Traditional (PQ/T) Hybrid Scheme":  A multi-algorithm scheme where at least one component algorithm is a post-quantum algorithm and at least one is a traditional algorithm.</t>
      <t>"PQ/T Hybrid Key Encapsulation Mechanism":  A multi-algorithm KEM made up of two or more component KEM algorithms where at least one is a post-quantum algorithm and at least one is a traditional algorithm.</t>
    </section>
    <section anchor="construction">
      <name>Construction</name>
      <t>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"/>. In order of increasing security strength (and decreasing performance), these parameter sets
are ML-KEM-512, ML-KEM-768, and ML-KEM-1024. X-Wing <xref target="I-D.connolly-cfrg-xwing-kem"/> uses a multi-algorithm scheme,
where one component algorithm is a post-quantum algorithm and another one is a traditional algorithm. X-Wing uses the final version of ML-KEM-768 and X25519. The Combiner function defined in Section 5.3 of <xref target="I-D.connolly-cfrg-xwing-kem"/> combines the output of a post-quantum KEM and a traditional KEM to generate a single shared secret.</t>
    </section>
    <section anchor="ciphersuite-registration">
      <name>Ciphersuite Registration</name>
      <t>This specification registers a number of PQ/T Hybrid KEMs for use with HPKE. A ciphersuite is thereby a combination of several algorithm configurations:</t>
      <ul spacing="normal">
        <li>
          <t>KEM algorithm (PQ KEM + Traditional Algorithm,  for example, MLKEM768 + X25519 defined as "X-Wing" in <xref target="I-D.connolly-cfrg-xwing-kem"/>)</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 and COSE cannot use an algorithm combination that is not already available with HPKE.</t>
      <t>The HPKE PQ/T hybrid ciphersuites for JOSE and COSE are defined in <xref target="IANA"/>. Note that the PQ/T Hybrid KEM in HPKE is not an authenticated KEM. The HPKE Base mode can only be supported with the PQ/T Hybrid KEM.</t>
    </section>
    <section anchor="akp-key-for-x-wing">
      <name>AKP Key for X-Wing</name>
      <t>This section describes the required parameters for an "AKP" key type, as defined in <xref target="I-D.ietf-cose-dilithium"/>, and its use with the X-Wing algorithms, as defined in {#XWING}. An example JWK is also provided for illustration.</t>
      <section anchor="required-parameters">
        <name>Required Parameters</name>
        <t>A JSON Web Key (JWK) or COSE_Key with a key type ("kty") for use with the "X-Wing" algorithm includes the following parameters:</t>
        <ul spacing="normal">
          <li>
            <t>kty (Key Type)<br/>
The key type parameter <bcp14>MUST</bcp14> be present and set to "AKP".</t>
          </li>
          <li>
            <t>alg (Algorithm)<br/>
The algorithm parameter <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> represent the X-Wing algorithm, as defined in {#XWING}. X-Wing algorithms are those registered in the "JSON Web Signature and Encryption Algorithms" and "COSE Algorithms" registries, derived from the KEM identifier in the HPKE IANA registry.</t>
          </li>
          <li>
            <t>pub (Public Key)<br/>
The public key parameter <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> contain the X-Wing encapsulation key (pk) as defined in Section 5.2 of <xref target="I-D.connolly-cfrg-xwing-kem"/>. When represented as a JWK, this value <bcp14>MUST</bcp14> be base64url-encoded.</t>
          </li>
          <li>
            <t>priv (Private Key)<br/>
When representing an X-Wing private key, the private key parameter <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> contain the X-Wing decapsulation key (sk) as defined in Section 5.2 of <xref target="I-D.connolly-cfrg-xwing-kem"/>. When represented as a JWK, this value <bcp14>MUST</bcp14> be base64url-encoded.</t>
          </li>
        </ul>
        <section anchor="example">
          <name>Example</name>
          <t>The following is an example JWK representation of an "AKP" private key for the "HPKE-XWING-SHA256-AES256GCM" algorithm:</t>
          <artwork><![CDATA[
{
    "kty"  : "AKP", 
    "alg"  : "HPKE-7", 
    "pub"  : "4iNrNajCSz...tmrrIzQSQQO9lNA", 
    "priv" : "f5wrpOiP...rPpm7yY" 
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations in <xref target="I-D.connolly-cfrg-xwing-kem"/> and <xref target="I-D.ietf-jose-hpke-encrypt"/> are to be taken into account.</t>
      <t>The shared secrets computed in the hybrid key exchange should be computed in a way that achieves the "hybrid" property: the resulting secret is secure as long as at least one of the component key exchange algorithms is unbroken. 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 anchor="post-quantum-security-for-multiple-recipients">
        <name>Post-Quantum Security for Multiple Recipients</name>
        <t>In HPKE JWE Key Encryption, when encrypting the Content Encryption Key (CEK) for multiple recipients, it is crucial to consider the security requirements of the message to safeguard against "Harvest Now, Decrypt Later" attack. For messages requiring post-quantum security, all recipients <bcp14>MUST</bcp14> use algorithms supporting post-quantum cryptographic methods, such as PQC KEMs or Hybrid PQ/T KEMs. Using traditional algorithms (e.g., ECDH-ES) for any recipient in these scenarios compromises the overall security of the message.</t>
      </section>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="jose">
        <name>JOSE</name>
        <t>This document requests IANA to add new values to the "JSON Web Signature and Encryption Algorithms" registry.</t>
        <section anchor="XWING">
          <name>JOSE Algorithms Registry</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: HPKE-7</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the XWING 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: 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: HPKE-8</t>
            </li>
            <li>
              <t>Algorithm Description: Cipher suite for JOSE-HPKE in Base Mode that uses the XWING Hybrid<br/>
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: 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>
      <section anchor="cose">
        <name>COSE</name>
        <t>This document requests IANA to add new values to the 'COSE Algorithms' registry.</t>
        <section anchor="cose-algorithms-registry">
          <name>COSE Algorithms Registry</name>
          <ul spacing="normal">
            <li>
              <t>Name: HPKE-Base-XWING-SHA256-AES256GCM</t>
            </li>
            <li>
              <t>Value: TBD1</t>
            </li>
            <li>
              <t>Description: Cipher suite for COSE-HPKE in Base Mode that uses the XWING Hybrid KEM, the<br/>
HKDF-SHA256 KDF, and the AES-256-GCM AEAD.</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IANA</t>
            </li>
            <li>
              <t>Reference: [[TBD: This RFC]]</t>
            </li>
            <li>
              <t>Name: HPKE-Base-XWING-SHA256-ChaCha20Poly1305</t>
            </li>
            <li>
              <t>Value: TBD2</t>
            </li>
            <li>
              <t>Description: Cipher suite for COSE-HPKE in Base Mode that uses the XWING Hybrid    <br/>
KEM, the HKDF-SHA256 KDF, and the ChaCha20Poly1305 AEAD.</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IANA</t>
            </li>
            <li>
              <t>Reference: [[TBD: This RFC]]</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Ilari Liusvaara and Orie Steele 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="I-D.ietf-cose-dilithium">
          <front>
            <title>ML-DSA for JOSE and COSE</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Rafael Misoczki" initials="R." surname="Misoczki">
              <organization>Google</organization>
            </author>
            <author fullname="Michael Osborne" initials="M." surname="Osborne">
              <organization>IBM</organization>
            </author>
            <author fullname="Christine Cloostermans" initials="C." surname="Cloostermans">
              <organization>NXP</organization>
            </author>
            <date day="18" month="December" year="2024"/>
            <abstract>
              <t>   This document describes JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for Module-
   Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum
   Cryptography (PQC) digital signature scheme defined in FIPS 204.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-dilithium-05"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="FIPS203" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
          <front>
            <title>Module-Lattice-based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </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/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-jose-hpke-encrypt">
          <front>
            <title>Use of Hybrid Public Key Encryption (HPKE) with JSON Object Signing and Encryption (JOSE)</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <author fullname="Aritra Banerjee" initials="A." surname="Banerjee">
              <organization>Nokia</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <date day="10" month="February" year="2025"/>
            <abstract>
              <t>   This specification defines Hybrid Public Key Encryption (HPKE) for
   use with JSON Object Signing and Encryption (JOSE).  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 JOSE is provided by JOSE-native security mechanisms or by one
   of the authenticated variants of HPKE.

   This document defines the use of the HPKE with JOSE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-jose-hpke-encrypt-05"/>
        </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="18" month="January" year="2025"/>
            <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-10"/>
        </reference>
        <reference anchor="I-D.connolly-cfrg-xwing-kem">
          <front>
            <title>X-Wing: general-purpose hybrid post-quantum KEM</title>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SP &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This memo defines X-Wing, a general-purpose post-quantum/traditional
   hybrid key encapsulation mechanism (PQ/T KEM) built on X25519 and ML-
   KEM-768.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-connolly-cfrg-xwing-kem-06"/>
        </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>
            <author fullname="Britta Hale" initials="B." surname="Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <date day="10" month="January" year="2025"/>
            <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-06"/>
        </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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
tdOBn+otNcFMWuuKt77Z3/7WdEd1Z909cTQYHsc0RPMoctWYFXiPA582UZk0
OvdhizKuq/4052YpXau7rWGegXBNb2clgBOG4uxe/FXNxmSZVAobWP8wJZPJ
RGRqWbUsNMr99VilBha+grxqo5b6i4UaOlElru+Lc/+lCefy1o0hR3fhP37x
Da3wjWbVksS+n8h8s3BGzUL1ltHrkelVFkTe57f1jIrQtIUyRL2eR+p0AzUp
ptqEqsRNX7fF0lv279PcN847drfny1HkP2ISJ+23rVeNIOmJi8J7CzYPfM6j
CDUoD8qEL0JiMWp15sNgOKb0ww/XL4Y9//7q6uXg/fsWa316+2txq3rG8kPX
F8OLe/X97HfV95cpHKrA/4cPL/N0dfDo4ZP/Ia0jFga/PQi/2kD/X23G2eC+
OIuiP4qmmcla9yAv2vk3IgueXwwPBF3/sh8MfrUf1D7AyOtXRB54Gcii/poC
tgAefM/L91gSt67omwGam2wz3WcVs+mNbf0c/h7q8d9dif8gVn4HPT0Q/YQ+
aUnVZMZuHX3shdmgmvxfhz8Z63wiz5bZDbvsSYpSJk51aW8luiLm+QKdqhg5
pVJV9wH0Lq7kT0yrzzP4/G70b3azJ4UbKwAA

-->

</rfc>
