<?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.8 (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-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <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-01"/>
    <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="March" day="17"/>
    <area>Security</area>
    <workgroup>COSE</workgroup>
    <keyword>PQC</keyword>
    <keyword>COSE</keyword>
    <keyword>JOSE</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 84?>

<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 88?>

<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 is an KEM that can be extended to support hybrid post-quantum KEMs and the specifications for the use of HPKE with JOSE and COSE are described in <xref target="I-D.ietf-rha-jose-hpke-encrypt"/> and <xref target="I-D.ietf-cose-hpke"/>, respectively.</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): <eref target="https://pq-crystals.org/kyber/">CRYSTALS-Kyber</eref>: ML-KEM, 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="I-D.cfrg-schwabe-kyber"/>. 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: Discuss use of JOSE/COSE context specific data.</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>
      <t>KMAC128 and KMAC256 are KMAC-based KDFs specified in this document. KMAC128 and KMAC256 are specified in <xref target="NIST.SP.800-185"/>.</t>
      <t>KMAC#(K, X, L, S) takes the following parameters:</t>
      <ul empty="true">
        <li>
          <t>K: the input key-derivation key.  In this document this is the shared secret outputted from the kemEncaps() or kemDecaps() functions.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>X: the context. In case of JOSE, it will carry the JOSE context specific data defined in Section 4.6.2 of <xref target="RFC7518"/>. In case of COSE, it will carry the COSE context structure defined in Section 5.2 of <xref target="RFC9053"/>.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>L: the output length, in bits.</t>
        </li>
      </ul>
      <ul empty="true">
        <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>
    </section>
    <section anchor="post-quantum-kem-in-jose">
      <name>Post-quantum KEM in JOSE</name>
      <t>As explained in <xref target="rational"/> JWA defines two ways to use public key cryptography with JWE:</t>
      <ul spacing="normal">
        <li>
          <t>Direct Key Agreement</t>
        </li>
        <li>
          <t>Key Agreement with Key Wrapping</t>
        </li>
      </ul>
      <t>This specification describes these two modes of use for PQ-KEM in JWE. Unless otherwise stated, no changes to the procedures described in <xref target="RFC7516"/> have been made.</t>
      <section anchor="direct-key-agreement">
        <name>Direct Key Agreement</name>
        <ul spacing="normal">
          <li>
            <t>The "alg" header parameter <bcp14>MUST</bcp14> be a PQ-KEM algorithm chosen from the JSON Web Signature and Encryption Algorithms registry defined in <xref target="JOSE-IANA"/>.</t>
          </li>
          <li>
            <t>The CEK will be generated using the process explained in <xref target="encrypt"/>. The output of the <xref target="encrypt"/> <bcp14>MUST</bcp14> be a secret key of the same length as that used by the "enc" algorithm. Both header parameters, "alg" and "enc", <bcp14>MUST</bcp14> be placed in the JWE Protected Header. Subsequently, the plaintext will be encrypted using the CEK, as detailed in Step 15 of Section 5.1 of <xref target="RFC7516"/>.</t>
          </li>
          <li>
            <t>The parameter "kem-ct" <bcp14>MUST</bcp14> include the output ('ct') from the PQ-KEM algorithm, encoded using base64url.</t>
          </li>
          <li>
            <t>The recipient <bcp14>MUST</bcp14> base64url decode the ciphertext from the "kem-ct" and then use it to derive the CEK using the process defined in <xref target="decrypt"/>. The ciphertext sizes of ML-KEMs are discussed in Section 12 of <xref target="I-D.ietf-pquip-pqc-engineers"/>.</t>
          </li>
          <li>
            <t>The JWE Encrypted Key <bcp14>MUST</bcp14> be absent.</t>
          </li>
        </ul>
      </section>
      <section anchor="key-agreement-with-key-wrapping">
        <name>Key Agreement with Key Wrapping</name>
        <ul spacing="normal">
          <li>
            <t>The derived key is generated using the process explained in <xref target="encrypt"/> and used to encrypt the CEK.</t>
          </li>
          <li>
            <t>The parameter "kem-ct" <bcp14>MUST</bcp14> include the output ('ct') from the PQ-KEM algorithm, encoded using base64url.</t>
          </li>
          <li>
            <t>The JWE Encrypted Key <bcp14>MUST</bcp14> include the base64url-encoded encrypted CEK.</t>
          </li>
          <li>
            <t>The 'enc' (Encryption Algorithm) header parameter <bcp14>MUST</bcp14> specify a content encryption algorithm from the JSON Web Signature and Encryption Algorithms registry, as defined in <xref target="JOSE-IANA"/>.</t>
          </li>
          <li>
            <t>The recipient <bcp14>MUST</bcp14> base64url decode the ciphertext from "kem-ct". Subsequently, it is used to derive the key, through the process defined in <xref target="decrypt"/>. The derived key will then be used to decrypt the CEK.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="post-quantum-kem-in-cose">
      <name>Post-Quantum KEM in COSE</name>
      <t>This specification supports two uses of PQ-KEM in COSE, namely</t>
      <ul spacing="normal">
        <li>
          <t>PQ-KEM in a single recipient setup.  This use case utilizes a one
layer COSE structure.</t>
        </li>
        <li>
          <t>PQ-KEM in a multiple recipient setup.  This use case requires a two
layer COSE structure.</t>
        </li>
      </ul>
      <section anchor="single-recipient-one-layer-structure">
        <name>Single Recipient / One Layer Structure</name>
        <t>With the one layer structure the information carried inside the 
COSE_recipient structure is embedded inside the COSE_Encrypt0.</t>
        <t>The CEK will be generated using the process explained in <xref target="encrypt"/>. 
Subsequently, the plaintext will be encrypted using the CEK. The resulting 
ciphertext is either included in the COSE_Encrypt0 or is detached. If a payload is
transported separately then it is called "detached content". A nil CBOR
object is placed in the location of the ciphertext. See Section 5
of <xref target="RFC9052"/> for a description of detached payloads.</t>
        <t>The sender <bcp14>MUST</bcp14> set the alg parameter in the protected header, which
indicates the use of PQ-KEM.</t>
        <t>Although the use of the 'kid' parameter in COSE_Encrypt0 is
discouraged by <xref target="RFC9052"/>, this documents RECOMMENDS the use of the 'kid' parameter
(or other parameters) to explicitly identify the recipient public key
used by the sender. If the COSE_Encrypt0 contains the 'kid' then the recipient may
use it to select the appropriate private key.</t>
      </section>
      <section anchor="multiple-recipients-two-layer-structure">
        <name>Multiple Recipients / Two Layer Structure</name>
        <t>With the two layer structure the PQ-KEM information is conveyed in the COSE_recipient 
structure, i.e. one COSE_recipient structure per recipient.</t>
        <t>In this approach the following layers are involved:</t>
        <ul spacing="normal">
          <li>
            <t>Layer 0 (corresponding to the COSE_Encrypt structure) contains the content (plaintext)
encrypted with the CEK. This ciphertext may be detached, and if not detached, then
it is included in the COSE_Encrypt structure.</t>
          </li>
          <li>
            <t>Layer 1 (corresponding to a recipient structure) contains parameters needed for 
PQ-KEM to generate a shared secret used to encrypt the CEK. This layer conveys<br/>
the output ('ct') from the PQ KEM Encaps algorithm in the 'ek' header 
parameter (Section 7.2 of <xref target="I-D.ietf-cose-hpke"/>) and encrypted CEK in the encCEK structure
(Section 3.1.2 of <xref target="I-D.ietf-cose-hpke"/>). The unprotected header <bcp14>MAY</bcp14> contain the kid 
parameter to identify the static recipient public key the sender has been using with PQ-KEM.</t>
          </li>
        </ul>
        <t>This two-layer structure is used to encrypt content that can also be shared with
multiple parties at the expense of a single additional encryption operation.
As stated above, the specification uses a CEK to encrypt the content at layer 0.</t>
      </section>
    </section>
    <section anchor="JOSE-PQ-KEM">
      <name>JOSE Ciphersuite Registration</name>
      <t>This specification registers a number of PQ-KEM algorithms for use with JOSE.</t>
      <t>All security levels of ML-KEM internally utilize SHA3-256, SHA3-512, SHAKE128, and SHAKE256. This internal usage influences the selection of the KMAC128 or KMAC256 Key Derivation Function (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>
      <t>For readability the algorithm ciphersuites labels are built according to the following scheme:</t>
      <artwork><![CDATA[
<PQ-KEM>-<KDF>
]]></artwork>
      <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-KMAC128              | ML-KEM-512 + KMAC128              |
 +===============================+===================================+
 | MLKEM768-KMAC256              | ML-KEM-768 + KMAC256              |
 +===============================+===================================+
 | MLKEM1024-KMAC256             | ML-KEM-1024 + KMAC256             |
 +===============================+===================================+
]]></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-KMAC128-AES128KW       | ML-KEM-512 + KMAC128 + AES128KW   |
 +=================================+===================================+
 | MLKEM768-KMAC256-AES256KW       | ML-KEM-768 + KMAC256 + AES256KW   |
 +=================================+===================================+
 | MLKEM1024-KMAC256-AES256KW      | ML-KEM-1024 + KMAC256 + 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-KMAC128              | TBD1    | ML-KEM-512 + KMAC128              | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM768-KMAC256              | TBD2    | ML-KEM-768 + KMAC256              | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM1024-KMAC256             | TBD3    | ML-KEM-1024 + KMAC256             | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM512-KMAC128+AES128KW     | TBD4    | ML-KEM-512 + KMAC128 + AES128KW   | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM768-KMAC256+AES256KW     | TBD5    | ML-KEM-768 + KMAC256 + AES256KW   | No          |
+-------------------------------+---------+-----------------------------------+-------------+
| MLKEM1024-KMAC256+AES256KW    | TBD6    | ML-KEM-1024 + KMAC256 + AES256KW  | No          |
+-------------------------------+---------+-----------------------------------+-------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>PQC KEMs used in the manner described in this document <bcp14>MUST</bcp14> explicitly be designed to be secure in the event that the public key is reused, such as achieving IND-CCA2 security. ML-KEM has such security properties.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <section anchor="jose">
        <name>JOSE</name>
        <t>The following has to be added to the "JSON Web Key Parameters" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Parameter Name: "kem-ct"</t>
          </li>
          <li>
            <t>Parameter Description: PQC KEM ciphertext</t>
          </li>
          <li>
            <t>Parameter Information Class: Public</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Specification Document(s): [[TBD: This RFC]]</t>
          </li>
          <li>
            <t>Algorithm Analysis Documents(s): TODO</t>
          </li>
        </ul>
        <t>The following entries are added to the "JSON Web Signature and Encryption Algorithms" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Algorithm Name: MLKEM512-KMAC128</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-512 PQ-KEM and the KMAC128 KDF.</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-KMAC256</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-768 PQ-KEM and the KMAC256 KDF.</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-KMAC256</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-1024 PQ-KEM and the KMAC256 KDF.</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-KMAC128+A128KW</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-512 PQ-KEM, the KMAC128 KDF 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-KMAC256+A256KW</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-768, the KMAC256 KDF 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>
          <li>
            <t>Algorithm Name: MLKEM1024-KMAC256+A256KW</t>
          </li>
          <li>
            <t>Algorithm Description: PQ-KEM that uses ML-KEM-1024, the KMAC256 KDF 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-KMAC128</t>
          </li>
          <li>
            <t>Value: TBD1</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-512 PQ-KEM and the KMAC128 KDF.</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-KMAC256</t>
          </li>
          <li>
            <t>Value: TBD2</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-768 PQ-KEM and the KMAC256 KDF.</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-KMAC256</t>
          </li>
          <li>
            <t>Value: TBD3</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-1024 PQ-KEM and the KMAC256 KDF.</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-KMAC128+A128KW</t>
          </li>
          <li>
            <t>Value: TBD4</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-512 PQ-KEM, the KMAC128 KDF 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-KMAC256+A256KW</t>
          </li>
          <li>
            <t>Value: TBD5</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-768, the KMAC256 KDF 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>
          <li>
            <t>Name: MLKEM1024-KMAC256+A256KW</t>
          </li>
          <li>
            <t>Value: TBD6</t>
          </li>
          <li>
            <t>Description: PQ-KEM that uses ML-KEM-1024, the KMAC256 KDF and CEK wrapped with "A256KW".</t>
          </li>
          <li>
            <t>Capabilities: [kty]</t>
          </li>
          <li>
            <t>Change Controller: IANA</t>
          </li>
          <li>
            <t>Reference: This document (TBD)</t>
          </li>
          <li>
            <t>Recommended: No</t>
          </li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Ilari Liusvaara, Neil Madden and AJITOMI Daisuke for the discussion and comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7516">
          <front>
            <title>JSON Web Encryption (JWE)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Hildebrand" initials="J." surname="Hildebrand"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Encryption (JWE) represents encrypted content using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries defined by that specification. Related digital signature and Message Authentication Code (MAC) capabilities are described in the separate JSON Web Signature (JWS) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7516"/>
          <seriesInfo name="DOI" value="10.17487/RFC7516"/>
        </reference>
        <reference anchor="JOSE-IANA" target="https://www.iana.org/assignments/jose/jose.xhtml">
          <front>
            <title>JSON Web Signature and Encryption Algorithms</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="PQCAPI" target="https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/example-files/api-notes.pdf">
          <front>
            <title>PQC - API notes</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FO" target="https://link.springer.com/article/10.1007/s00145-011-9114-1">
          <front>
            <title>Secure Integration of Asymmetric and Symmetric Encryption Schemes</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="HHK" target="https://link.springer.com/chapter/10.1007/978-3-319-70500-2_12">
          <front>
            <title>A Modular Analysis of the Fujisaki-Okamoto Transformation</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FIPS203-ipd" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.ipd.pdf">
          <front>
            <title>Module-Lattice-based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="NIST.SP.800-185" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf">
          <front>
            <title>SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-pquip-pqt-hybrid-terminology">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="2" month="February" 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-02"/>
        </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="7" month="September" year="2023"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if all but one of the component algorithms is broken.
   It is motivated by transition to post-quantum cryptography.  This
   document provides a construction for hybrid key exchange in the
   Transport Layer Security (TLS) protocol version 1.3.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-09"/>
        </reference>
        <reference anchor="I-D.ietf-rha-jose-hpke-encrypt">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </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="22" 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-07"/>
        </reference>
        <reference anchor="I-D.cfrg-schwabe-kyber">
          <front>
            <title>Kyber Post-Quantum KEM</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SP &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="2" month="January" year="2024"/>
            <abstract>
              <t>   This memo specifies a preliminary version ("draft00", "v3.02") of
   Kyber, an IND-CCA2 secure Key Encapsulation Method.

About This Document

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cfrg-schwabe-kyber-04"/>
        </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="22" month="February" 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-03"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
3r4daP/HCwPv/wCujZp1cWMAAA==

-->

</rfc>
