<?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.35 (Ruby 2.5.9) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pquip-pqc-engineers-14" category="info" consensus="true" submissionType="IETF" xml:lang="en" number="9958" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <link href="https://datatracker.ietf.org/doc/draft-ietf-pquip-pqc-engineers-14" rel="prev"/>
  <front>
    <title abbrev="PQC for Engineers">Post-Quantum Cryptography for Engineers</title>
    <seriesInfo name="RFC" value="9958"/>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy.K">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author fullname="Dimitrios Schoinianakis">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Athens</city>
          <country>Greece</country>
        </postal>
        <email>dimitrios.schoinianakis@nokia-bell-labs.com</email>
      </address>
    </author>
    <author fullname="Timothy Hollebeek">
      <organization>DigiCert</organization>
      <address>
        <postal>
          <city>Pittsburgh</city>
          <region>PA</region>
          <country>United States of America</country>
        </postal>
        <email>tim.hollebeek@digicert.com</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road, Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <date year="2026" month="April"/>
    <area>SEC</area>
    <workgroup>pquip</workgroup>
    <keyword>PQC</keyword>
    <abstract>
      <?line 638?>

<!-- Status of I-Ds in references section:

[I-D.bonnell-lamps-chameleon-certs]
draft-bonnell-lamps-chameleon-certs-07
IESG State: I-D Exists as of 11/26/25

[I-D.connolly-cfrg-xwing-kem]
draft-connolly-cfrg-xwing-kem-09
IESG State: I-D Exists as of 11/26/25

[I-D.hale-mls-combiner]
draft-hale-mls-combiner-01
Replaced by draft-ietf-mls-combiner

[I-D.ietf-hpke-pq]
draft-ietf-hpke-pq-03
IESG State: I-D Exists as of 11/26/25

[I-D.ietf-lamps-pq-composite-sigs]
draft-ietf-lamps-pq-composite-sigs-13
IESG state: Publication Requested as of 11/26/25

[I-D.ietf-pquip-hybrid-signature-spectrums]
draft-ietf-pquip-hybrid-signature-spectrums-07
IESG state: RFC Ed Queue as of 11/26/25

[I-D.ietf-pquip-pqc-hsm-constrained]
draft-ietf-pquip-pqc-hsm-constrained-02
IESG State: I-D Exists as of 11/26/25

[I-D.ietf-sshm-ntruprime-ssh]
draft-ietf-sshm-ntruprime-ssh-06
Published as RFC 9941

[I-D.ietf-tls-hybrid-design]
draft-ietf-tls-hybrid-design-16
IESG state: RFC Ed Queue as of 11/26/25

[I-D.irtf-cfrg-bbs-signatures]
draft-irtf-cfrg-bbs-signatures-09
IESG State: I-D Exists as of 11/26/25

[I-D.irtf-cfrg-hybrid-kems]
draft-irtf-cfrg-hybrid-kems-07
IESG State: I-D Exists as of 11/26/25

[I-D.ounsworth-cfrg-kem-combiners]
draft-ounsworth-cfrg-kem-combiners-05
IESG State: Expired as of 11/26/25
-->

<!-- [rfced] FYI - We will do the following when we convert the file to RFCXML:

a) Correct author names in reference entry for draft-ietf-pquip-pqc-hsm-constrained.

Current:
   [I-D.ietf-pquip-pqc-hsm-constrained]
              Reddy.K, T., Wing, D., S, B., and K. Kwiatkowski,
              "Adapting Constrained Devices for Post-Quantum
              Cryptography", Work in Progress, Internet-Draft, draft-
              ietf-pquip-pqc-hsm-constrained-02, 18 October 2025,
              <https://datatracker.ietf.org/doc/html/draft-ietf-pquip-
              pqc-hsm-constrained-02>.
-->

<!-- XML for reference update (draft-ietf-pquip-pqc-hsm-constrained):

<reference anchor="I-D.ietf-pquip-pqc-hsm-constrained" target="https://datatracker.ietf.org/doc/html/draft-ietf-pquip-pqc-hsm-constrained-02">
   <front>
      <title>Adapting Constrained Devices for Post-Quantum Cryptography</title>
      <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy.K">
         <organization>Nokia</organization>
      </author>
      <author initials="D." surname="Wing" fullname="Dan Wing">
         <organization>Citrix</organization>
      </author>
      <author initials="B." surname="Salter" fullname="Ben Salter">
         <organization>UK National Cyber Security Centre</organization>
      </author>
      <author initials="K." surname="Kwiatkowski" fullname="Kris Kwiatkowski">
         <organization>PQShield</organization>
      </author>
      <date month="October" day="18" year="2025" />
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-hsm-constrained-02" />
</reference>
-
-->

<t>The advent of a cryptographically relevant quantum computer (CRQC) would render state-of-the-art, traditional public key algorithms deployed today obsolete, as the mathematical assumptions underpinning their security would no longer hold. To address this, protocols and infrastructure must transition to post-quantum algorithms, which are designed to resist both traditional and quantum attacks. This document explains why engineers need to be aware of and understand post-quantum cryptography (PQC), and it details the impact of CRQCs on existing systems and the challenges involved in transitioning to post-quantum algorithms. Unlike previous cryptographic updates, this shift may require significant protocol redesign due to the unique properties of post-quantum algorithms.</t>
    </abstract>
  </front>
  <middle>
    <?line 734?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Quantum computing is no longer just a theoretical concept in computational science and physics; it is now an active area of research with practical implications. Considerable research efforts and enormous corporate and government funding for the development of practical quantum computing systems are currently being invested. At the time this document is published, cryptographically relevant quantum computers (CRQCs) that can break widely used asymmetric algorithms (also known as public key algorithms) are not yet available. However, there is ongoing research and development in the field of quantum computing, with the goal of building more powerful and scalable quantum computers.</t>
      <t>One common myth is that quantum computers are faster than conventional CPUs and GPUs in all areas. This is not the case; much as GPUs outperform general-purpose CPUs only on specific types of problems, quantum computers also have a niche set of problems on which they excel. Unfortunately for cryptographers, integer factorization and discrete logarithms, the mathematical problems underpinning much of classical public key cryptography, happen to fall within the niche in which quantum computers are expected to excel. As quantum technology advances, there is the potential for future quantum computers to have a significant impact on current cryptographic systems. Predicting the date of emergence of a CRQC is a challenging task, and there is ongoing uncertainty regarding when they will become practically feasible <xref target="CRQCThreat"/>.</t>
      <t>Extensive research has produced several post-quantum cryptographic algorithms that offer the potential to ensure cryptography's survival in the quantum computing era. However, transitioning to a post-quantum infrastructure is not a straightforward task, and there are numerous challenges to overcome. It requires a combination of engineering efforts, proactive assessment and evaluation of available technologies, and a careful approach to product development and deployment.</t>
      <t>PQC is sometimes referred to as "quantum-proof", "quantum-safe", or "quantum-resistant". It is the development of cryptographic algorithms designed to secure communication and data in a world where quantum computers are powerful enough to break traditional cryptographic systems, such as RSA (Rivest-Shamir-Adleman) and ECC (Elliptic Curve Cryptography). PQC algorithms are intended to be resistant to attacks by quantum computers, which use quantum-mechanical phenomena to solve mathematical problems that are infeasible for classical computers.</t>
      <t>As the threat of CRQCs draws nearer, engineers responsible for designing, maintaining, and securing cryptographic systems must prepare for the significant changes that the existence of CRQCs will bring. Engineers need to understand how to implement post-quantum algorithms in applications, how to evaluate the trade-offs between security and performance, and how to ensure backward compatibility with current systems where needed. This is not merely a one-for-one replacement of algorithms; in many cases, the shift to PQC will involve redesigning protocols and infrastructure to accommodate the significant differences in resource utilization and key sizes between traditional and PQC algorithms. Due to the wide-ranging nature of these impacts, discussions of protocol changes are integrated throughout this document rather than being confined to a single section.</t>
      <t>This document aims to provide general guidance to engineers working on cryptographic libraries, network security, and infrastructure development, where long-term security planning is crucial. The document covers topics such as selecting appropriate PQC algorithms and understanding the differences between PQC Key Encapsulation Mechanisms (KEMs) and traditional Diffie-Hellman (DH) and RSA-style key exchanges, and it provides insights into expected differences in keys, ciphertext, signature sizes, and processing times between PQC and traditional algorithms. Additionally, it discusses the potential threat to symmetric cryptography and hash functions from CRQCs.</t>
      <t>It is important to remember that asymmetric algorithms (also known as public key algorithms) are largely used for secure communications between organizations or endpoints that may not have previously interacted, so a significant amount of coordination between organizations, and within and between ecosystems, needs to be taken into account. Such transitions are some of the most complicated in the tech industry and will require staged migrations in which upgraded agents need to coexist and communicate with non-upgraded agents at a scale never before undertaken.</t>
      <t>The National Security Agency (NSA) of the United States released an article on future PQC algorithm requirements for US national security systems <xref target="CNSA2-0"/> based on the need to protect against deployments of CRQCs in the future. The German Federal Office for Information Security (BSI) has also released a PQC migration and recommendations document <xref target="BSI-PQC"/> that largely aligns with United States National Institute of Standards and Technology (NIST) and NSA guidance but differs in aspects such as specific PQC algorithm profiles.</t>
      <t>CRQCs pose a threat to both symmetric and asymmetric cryptographic schemes. However, the threat to asymmetric cryptography is significantly greater due to Shor's algorithm <xref target="Shors"/>, which can break widely used public key schemes like RSA and ECC. Symmetric cryptography and hash functions face a lower risk from Grover's algorithm <xref target="Grovers"/>, although the impact is less severe and can typically be mitigated by doubling key and digest lengths where the risk applies. It is crucial for the reader to understand that when "PQC" is mentioned in the document, it means asymmetric cryptography (or public key cryptography) and not any symmetric algorithms based on stream ciphers, block ciphers, hash functions, MACs, etc., which are less vulnerable to quantum computers. This document does not cover topics such as when traditional algorithms might become vulnerable (for that, see documents such as <xref target="QC-DNS"/> and others).</t>
      <t>This document does not cover unrelated technologies like quantum key distribution (QKD) or quantum key generation, which use quantum hardware to exploit quantum effects to protect communications and generate keys, respectively. PQC is based on conventional math (not on quantum mechanics) and software, and it can be run on any general-purpose computer.</t>
      <t>This document does not go into the deep mathematics or technical specification of the PQC algorithms but rather provides an overview to engineers on the current threat landscape and the relevant algorithms designed to help prevent those threats. Also, the cryptographic and algorithmic guidance given in this document should be taken as non-authoritative if it conflicts with emerging and evolving guidance from the IRTF's Crypto Forum Research Group (CFRG).</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>Quantum computer:</dt>
        <dd>
          <t>A computer that performs computations using quantum-mechanical phenomena such as superposition and entanglement.</t>
        </dd>
        <dt>Physical qubit:</dt>
        <dd>
          <t>The basic physical unit in a quantum computer, which is prone to noise and errors.</t>
        </dd>
        <dt>Logical qubit:</dt>
        <dd>
          <t>A fault-tolerant qubit constructed from multiple physical qubits using quantum error correction; it is the effective unit for reliable quantum computation.</t>
        </dd>
        <dt>Post-Quantum Cryptography (PQC):</dt>
        <dd>
          <t>Cryptographic algorithms designed to be secure against quantum and classical attacks.</t>
        </dd>
        <dt>Cryptographically Relevant Quantum Computer (CRQC):</dt>
        <dd>
          <t>A quantum computer with sufficient logical qubits to break traditional asymmetric cryptographic algorithms (e.g., RSA or ECC) within a practical timeframe.</t>
        </dd>
        <dt>Public Key Cryptography (also called Asymmetric Cryptography):</dt>
        <dd>
          <t>A class of cryptographic algorithms in which separate keys are used for encryption and decryption or for signing and verification. Throughout this document, the terms Public Key Cryptography and Asymmetric Cryptography are used interchangeably.</t>
        </dd>
      </dl>
      <t>There is ongoing discussion about whether to use the term "post-quantum", "quantum ready", "quantum resistant", or "quantum secure" to describe algorithms that resist CRQCs, and a consensus has not yet been reached. NIST has coined the term "post-quantum" to refer to the algorithms that participated in its competition-like selection process; in this context, the term can be interpreted to mean "the set of algorithms that are designed to  still be relevant after quantum computers exist" and not a statement about their security. "Quantum resistant" or "quantum secure" is obviously the goal of these algorithms; however, some people have raised concerns that labeling a class of algorithms as "quantum resistant" or "quantum secure" could lead to confusion if one or more of those algorithms are later found to be insecure or to not resist quantum computers as much as theory predicted. "Quantum ready" is often used to refer to a solution -- device, appliance, or software stack -- that has reached maturity with regard to integration of these new cryptographic algorithms. That said, the authors recognize that there is great variability in how these terms are used. This document uses these terms interchangeably to refer to such algorithms.</t>
      <t>In this document, the terms "current", "state-of-the-art", and "ongoing" refer to work, research, investigations, deployments, or developments that are applicable at the time of publication.</t>
    </section>
    <section anchor="threat-of-crqcs-on-cryptography">
      <name>Threat of CRQCs on Cryptography</name>
      <t>When considering the security risks associated with the ability of a quantum computer to attack traditional cryptography, it is important to distinguish between the impact on symmetric algorithms and public key ones. Dr. Peter Shor and Dr. Lov Grover developed two algorithms that changed the way the world thinks of security under the presence of a CRQC.</t>
      <t>Quantum computers are, by their nature, hybrids of classical and quantum computational units. For example, Shor's algorithm consists of a combination of quantum and classical computational steps. Thus, the term "quantum adversary" should be thought of as "quantum-enhanced adversary", meaning they have access to both classical and quantum computational techniques.</t>
      <t>Although large-scale quantum computers do not yet exist to experiment on, the theoretical properties of quantum computation are very well understood.  This allows engineers and researchers to reason about the upper limits of quantum-enhanced computation and to design cryptographic algorithms that are resistant to any conceivable form of quantum cryptanalysis.</t>
      <section anchor="symmetric">
        <name>Symmetric Cryptography</name>
        <t>For unstructured data such as symmetric encrypted data or cryptographic hashes, although CRQCs can search for specific solutions across all possible input combinations (e.g., Grover's algorithm), no quantum algorithm is known to break the underlying security properties of these classes of algorithms. Symmetric-key cryptography, which includes keyed primitives such as block ciphers (e.g., AES) and message authentication mechanisms (e.g., HMAC-SHA256), relies on secret keys shared between the sender and receiver and remains secure even in a post-quantum world. Symmetric cryptography also includes hash functions (e.g., SHA-256) that are used for secure message digesting without any shared key material. Hashed Message Authentication Code (HMAC) is a specific construction that utilizes a cryptographic hash function and a secret key shared between the sender and receiver to produce a message authentication code.</t>
        <t>Grover's algorithm is a quantum search algorithm that provides a theoretical quadratic speedup for searching an unstructured database, compared to traditional search algorithms.
This has led to the common misconception that symmetric key lengths need to be doubled for quantum security. When you consider the mapping of hash values to their corresponding hash inputs (also known as pre-image) or of ciphertext blocks to the corresponding plaintext blocks as an unstructured database, then Grover's algorithm theoretically requires doubling the key sizes of the symmetric algorithms that are currently deployed at the time of publication to counter the quadratic speedup and maintain the current security level. This is because Grover's algorithm reduces the amount of operations to break 128-bit symmetric cryptography to 2^{64} quantum operations, which might sound computationally feasible. However, quantum operations are fundamentally different from classical ones, as 2^{64} classical operations can be efficiently parallelized but 2^{64} quantum operations must be performed serially, making them infeasible on practical quantum computers.</t>
        <t>Grover's algorithm is highly non-parallelizable and even if one deploys 2^c computational units in parallel to brute-force a key using Grover's algorithm, it will complete in time proportional to 2^{(128-c)/2}, or, put simply, using 256 quantum computers will only reduce runtime by a factor of 16, 1024 quantum computers will only reduce runtime by a factor of 32, and so forth (see <xref target="NIST"/> and <xref target="Cloudflare"/>). Due to this inherent limitation, the general expert consensus is that AES-128 remains secure in practice and key sizes do not necessarily need to be doubled.</t>
        <t>It would be natural to ask whether future research will develop a superior algorithm that could outperform Grover's algorithm in the general case. However, Christof Zalka has shown that Grover's algorithm achieves the best possible complexity for this type of search, meaning no significantly faster quantum approach is expected <xref target="Grover-Search"/>.</t>
        <!-- [rfced] "CNSA 2.0" is a suite of algorithms from the NSA, not an
organization. The organization is the National Security Agency (NSA). May we
update the sentence as follows to clarify?

Current:
 However, for compliance purposes, some organizations, such as the French
 National Agency for the Security of Information Systems (ANSSI) {{ANSSI}} and
 CNSA 2.0 (Commercial National Security Algorithm Suite 2.0) {{CNSA2-0}},
 recommend the use of AES-256.

Perhaps:
 However, for compliance purposes, some organizations, such as the French
 National Agency for the Security of Information Systems (ANSSI) {{ANSSI}} and the
 National Security Agency (NSA) {{CNSA2-0}}, recommend the use of AES-256.
-->

<t>Finally, in their evaluation criteria for PQC, NIST is assessing the security levels of proposed post-quantum algorithms by comparing them against the equivalent traditional and quantum security of AES-128, AES-192, and AES-256. This indicates that NIST is confident in the stable security properties of AES, even in the presence of both traditional and quantum attacks. As a result, 128-bit algorithms can be considered quantum-safe for the foreseeable future. However, for compliance purposes, some organizations, such as the French National Agency for the Security of Information Systems (ANSSI) <xref target="ANSSI"/> and Commercial National Security Algorithm Suite 2.0 (CNSA 2.0) <xref target="CNSA2-0"/>, recommend the use of AES-256.</t>
      </section>
      <section anchor="asymmetric-cryptography">
        <name>Asymmetric Cryptography</name>
        <t>"Shor's algorithm" efficiently solves the integer factorization problem (and the related discrete logarithm problem), which underpin the foundations of the vast majority of public key cryptography that the world uses today. This implies that, if a CRQC is developed, today's public key algorithms (e.g., RSA, Diffie-Hellman, and ECC, as well as less commonly used variants such as ElGamal <xref target="RFC6090"/> and Schnorr signatures <xref target="RFC8235"/>) and protocols would need to be replaced by algorithms and protocols that can offer cryptanalytic resistance against CRQCs. Note that Shor's algorithm cannot run solely on a classical computer; it requires a CRQC.</t>
        <t>For example, studies show that, if a CRQC existed, it could break RSA-2048 in hours or even seconds depending on assumptions about error correction <xref target="RSAShor"/> <xref target="RSA8HRS"/> <xref target="RSA10SC"/>. While such machines are purely theoretical at the time of writing, this illustrates the eventual vulnerability of RSA to CRQCs.</t>
        <t>For structured data such as public keys and signatures, CRQCs can fully solve the underlying hard problems used in traditional cryptography (see Shor's algorithm). Because an increase in the size of the key pair would not provide a secure solution (short of RSA keys that are many gigabytes in size <xref target="PQRSA"/>), a complete replacement of the algorithm is needed. Therefore, post-quantum public key cryptography must rely on problems that are different from the ones used in traditional public key cryptography (i.e., the integer factorization problem, the finite-field discrete logarithm problem, and the elliptic-curve discrete logarithm problem).</t>
      </section>
      <section anchor="quantum-side-channel-attacks">
        <name>Quantum Side-Channel Attacks</name>
        <t>Cryptographic side-channel attacks exploit physical implementations (such as timing, power consumption, or electromagnetic leakage) to recover secret keys.</t>
        <t>The field of cryptographic side-channel attacks potentially stands to gain a boost in attacker power once cryptanalytic techniques can be enhanced with quantum computation techniques <xref target="QuantSide"/>. While a full discussion of quantum side-channel techniques is beyond the scope of this document, implementers of cryptographic hardware should be aware that current best practices for side-channel resistance may not be sufficient against quantum adversaries.</t>
        <!-- [rfced] We slightly rephrased the following to avoid repetition of "hence"
(i.e., made new sentence and replaced the first "hence" with "Because of
this"). Please review and let us know any concerns.

Original:
Similar to key agreement, signatures also depend on a public-private
key pair based on the same mathematics as for key agreement and key transport,
and hence a break in existing public key cryptography will also affect
traditional digital signatures, hence the importance of developing
post-quantum digital signatures.

Updated:
Similar to key agreement, signatures also depend on a public-private
key pair based on the same mathematics as for key agreement and key transport.
Because of this, a break in existing public key cryptography will also affect
traditional digital signatures, hence the importance of developing
post-quantum digital signatures.
-->

</section>
    </section>
    <section anchor="traditional-cryptographic-primitives-that-could-be-replaced-by-pqc">
      <name>Traditional Cryptographic Primitives That Could Be Replaced by PQC</name>
      <t>Any asymmetric cryptographic algorithm based on integer factorization, finite field discrete logarithms, or elliptic-curve discrete logarithms will be vulnerable to attacks using Shor's algorithm on a CRQC. This document focuses on the principal functions of asymmetric cryptography:</t>
      <dl>
        <dt>Key agreement and key transport:</dt>
        <dd>
          <t>Key agreement schemes, typically referred to as Diffie-Hellman (DH) or Elliptic Curve Diffie-Hellman (ECDH), as well as key transport, typically using RSA encryption, are used to establish a shared cryptographic key for secure communication. They are one of the mechanisms that can be replaced by PQC, as they are based on existing public key cryptography and are therefore vulnerable to Shor's algorithm. A CRQC can employ Shor's algorithm to efficiently find the prime factors of a large public key (in the case of RSA), which, in turn, can be exploited to derive the private key. In the case of DH, a CRQC has the potential to calculate the discrete logarithm of the (short- or long-term) DH public key. This, in turn, would reveal the secret required to derive the symmetric encryption key.</t>
        </dd>
        <dt>Digital signatures:</dt>
        <dd>
          <t>Digital signature schemes are used to authenticate the identity of a sender, detect unauthorized modifications to data, and underpin trust in a system. Similar to key agreement, signatures also depend on a public-private key pair based on the same mathematics as for key agreement and key transport. Because of this, a break in existing public key cryptography will also affect traditional digital signatures, hence the importance of developing post-quantum digital signatures.</t>
        </dd>
        <dt>Boneh-Boyen-Shacham (BBS) signatures:</dt>
        <dd>
          <t>BBS signatures are a privacy-preserving signature scheme that offers zero-knowledge proof-like properties by allowing selective disclosure of specific signed attributes without revealing the entire set of signed data. The security of BBS signatures relies on the hardness of the discrete logarithm problem, making them vulnerable to Shor's algorithm. A CRQC can break the data authenticity security property of BBS but not the data confidentiality (<xref section="6.9" sectionFormat="of" target="I-D.irtf-cfrg-bbs-signatures"/>).</t>
        </dd>
        <dt>Content encryption:</dt>
        <dd>
          <t>Content encryption typically refers to the encryption of the data using symmetric key algorithms, such as AES, to ensure confidentiality. The threat to symmetric cryptography is discussed in <xref target="symmetric"/>.</t>
        </dd>
      </dl>
    </section>
    <section anchor="nist-pqc-algorithms">
      <name>NIST PQC Algorithms</name>
      <t>At the time of writing, NIST has standardized three PQC algorithms, with more expected to be standardized in the future (see <xref target="NISTFINAL"/>). These algorithms are not necessarily drop-in replacements for traditional asymmetric cryptographic algorithms. For instance, RSA <xref target="RSA"/> and ECC <xref target="RFC6090"/> can be used as both a key encapsulation method (KEM) and  a signature scheme, whereas there is currently no post-quantum algorithm that can perform both functions. When upgrading protocols, it is important to replace the existing use of traditional algorithms with either a PQC KEM or a PQC signature method, depending on how the traditional algorithm was previously being used. Additionally, KEMs, as described in <xref target="KEMs"/>, present a different API than either key agreement or key transport primitives. As a result, they may require protocol-level or application-level changes in order to be incorporated.</t>
      <section anchor="nist-candidates-selected-for-standardization">
        <name>NIST Candidates Selected for Standardization</name>
        <!-- [rfced] In Sections 5.1.1, 5.1.2, and 6.1, may we update the lists to
better indicate the term being defined? We suggest placing the term rather
than the citation before the colon. See the suggested text in a), b), and c)
below.

We also have some additional questions regarding Section 5.1.2:

- How should "FN" in "FN-DSA" be expanded? Perhaps as "Fast-Fourier Transform
over NTRU-Lattice-Based Digital Signature Algorithm"?
- The FN-DSA entry includes pointers to Sections 8.1 and 10.2, but ML-DSA and
SLH-DSA are also mentioned in those setions. Should the pointers to Sections
8.1 and 10.2 apply to all entries?
- We do not see "FN-DSA" mentioned in the URL listed for [FN-DSA]. Please
review. Also, should this reference be to FIPS 206, or should the relationship
between FIPS 206 and Fast Fourier/Falcon be explained for the reader? It seems
that FIPS 206 is still in draft form.

a) Section 5.1.1

Original
   *  [ML-KEM]: Module-Lattice-based Key-Encapsulation Mechanism
      Standard (FIPS-203).

   *  [HQC]: Hamming Quasi-Cyclic coding algorithm which is based on the
      hardness of the syndrome decoding problem for quasi-cyclic
      concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the
      Hamming metric.  Reed-Muller (RM) codes are a class of block
      error-correcting codes commonly used in wireless and deep-space
      communications, while Reed-Solomon (RS) codes are widely used to
      detect and correct multiple-bit errors.  HQC has been selected as
      part of the NIST post-quantum cryptography project but has not yet
      been standardized.

Perhaps:
   ML-KEM:  Module-Lattice-Based Key Encapsulation Mechanism. See
      FIPS 203 [ML-DSA].

   HQC:  Hamming Quasi-Cyclic. See [HQC]. The coding algorithm based on the
      hardness of the syndrome decoding problem for quasi-cyclic
      concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the
      Hamming metric.  Reed-Muller (RM) codes are a class of block
      error-correcting codes commonly used in wireless and deep-space
      communications, while Reed-Solomon (RS) codes are widely used to
      detect and correct multiple-bit errors.  HQC has been selected as
      part of the NIST post-quantum cryptography project but has not yet
      been standardized.


b) Section 5.1.2

Original:
    *  [ML-DSA]: Module-Lattice-Based Digital Signature Standard (FIPS-
       204).

    *  [SLH-DSA]: Stateless Hash-Based Digital Signature (FIPS-205).

    *  [FN-DSA]: FN-DSA is a lattice signature scheme (FIPS-206)
       (Section 8.1 and Section 10.2).

Perhaps:
   ML-DSA:  Module-Lattice-Based Digital Signature Algorithm. See FIPS
      204 [ML-DSA].

   SLH-DSA: Stateless Hash-Based Digital Signature Algorithm. See FIPS
      205 [SLH-DSA].

   FN-DSA:  Fast-Fourier Transform over NTRU-Lattice-Based Digital
      Signature Algorithm. See FIPS 206 [FN-DSA].

   For more information about these, see Sections 8.1 and 10.2.


c) Section 6.1

Original:
   *  [FrodoKEM]: Key Encapsulation mechanism based on the hardness of
      learning with errors in algebraically unstructured lattices.

   *  [ClassicMcEliece]: Based on the hardness of syndrome decoding of
      Goppa codes.  Goppa codes are a class of error-correcting codes
      that can correct a certain number of errors in a transmitted
      message.  The decoding problem involves recovering the original
      message from the received noisy codeword.

   *  [NTRU]: Key encapsulation mechanism based on the "N-th degree
      Truncated polynomial Ring Units" (NTRU) lattices.  Variants
      include Streamlined NTRU Prime (sntrup761), which is leveraged for
      use in SSH [I-D.ietf-sshm-ntruprime-ssh].

Perhaps:
   FrodoKEM:  KEM based on the hardness of learning with errors in
      algebraically unstructured lattices. See [FrodoKEM].

   Classic McEliece:  KEM based on the hardness of syndrome decoding of
      Goppa codes.  Goppa codes are a class of error-correcting codes
      that can correct a certain number of errors in a transmitted
      message.  The decoding problem involves recovering the original
      message from the received noisy codeword. See [ClassicMcEliece].

   NTRU:  KEM based on the "N-th degree Truncated polynomial Ring
      Units" (NTRU) lattices.  Variants include Streamlined NTRU Prime
      (sntrup761), which is leveraged for use in SSH [RFC9941]. See [NTRU].
-->

<section anchor="pqc-key-encapsulation-mechanisms-kems">
          <name>PQC Key Encapsulation Mechanisms (KEMs)</name>
          <dl>
            <dt><xref target="ML-KEM"/>:</dt>
            <dd>
              <t>Module-Lattice-Based Key-Encapsulation Mechanism Standard (FIPS 203).</t>
            </dd>
            <dt><xref target="HQC"/>:</dt>
            <dd>
              <t>Hamming Quasi-Cyclic coding algorithm, which is based on the hardness of the syndrome decoding problem for quasi-cyclic concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the Hamming metric. Reed-Muller (RM) codes are a class of block error-correcting codes commonly used in wireless and deep-space communications, while Reed-Solomon (RS) codes are widely used to detect and correct multiple-bit errors. HQC has been selected as part of the NIST post-quantum cryptography project but has not yet been standardized.</t>
            </dd>
          </dl>
        </section>
        <section anchor="pqc-signatures">
          <name>PQC Signatures</name>
          <dl>
            <dt><xref target="ML-DSA"/>:</dt>
            <dd>
              <t>Module-Lattice-Based Digital Signature Standard (FIPS 204).</t>
            </dd>
            <dt><xref target="SLH-DSA"/>:</dt>
            <dd>
              <t>Stateless Hash-Based Digital Signature (FIPS 205).</t>
            </dd>
            <dt><xref target="FN-DSA"/>:</dt>
            <dd>
              <t>FN-DSA is a lattice signature scheme (FIPS 206) (see Sections <xref target="lattice-based" format="counter"/> and <xref target="sig-scheme" format="counter"/>).</t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
    <section anchor="iso-candidates-selected-for-standardization">
      <name>ISO Candidates Selected for Standardization</name>
      <t>At the time of writing, ISO has selected three PQC KEM algorithms as candidates for standardization; these are mentioned in the following subsection.</t>
      <section anchor="pqc-key-encapsulation-mechanisms-kems-1">
        <name>PQC Key Encapsulation Mechanisms (KEMs)</name>
        <dl>
          <dt><xref target="FrodoKEM"/>:</dt>
          <dd>
            <t>KEM based on the hardness of learning with errors in algebraically unstructured lattices.</t>
          </dd>
          <dt><xref target="ClassicMcEliece"/>:</dt>
          <dd>
            <t>KEM based on the hardness of syndrome decoding of Goppa codes. Goppa codes are a class of error-correcting codes that can correct a certain number of errors in a transmitted message. The decoding problem involves recovering the original message from the received noisy codeword.</t>
          </dd>
          <dt><xref target="NTRU"/>:</dt>
          <dd>
            <t>KEM based on the "N-th degree Truncated polynomial Ring Units" (NTRU) lattices. Variants include Streamlined NTRU Prime (sntrup761), which is leveraged for use in SSH <xref target="RFC9941"/>.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="timeline">
      <name>Timeline for Transition</name>
      <t>The timeline and driving motivation for transition differ slightly between data confidentiality (e.g., encryption) and data authentication (e.g., signature) use cases.</t>
      <t>For data confidentiality, one is concerned with the so-called "harvest now, decrypt later" (HNDL) attack where a malicious actor with adequate resources can launch an attack to store sensitive encrypted data today that they hope to decrypt once a CRQC is available. This implies that, every day, sensitive encrypted data is susceptible to the attack by not implementing quantum-safe strategies, as it corresponds to data possibly being deciphered in the future.</t>
      <t>For authentication, it is often the case that signatures have a very short lifetime between signing and verifying (such as during a TLS handshake), but some authentication use cases do require long lifetimes, such as signing firmware or software that will be active for decades, signing legal documents, or signing certificates that will be embedded into hardware devices such as smart cards. Even for short-lived signature use cases, the infrastructure often relies on long-lived root keys, which can be difficult to update or replace on in-field devices.</t>
      <figure anchor="Mosca">
        <name>Mosca Model</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="160" width="448" viewBox="0 0 448 160" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,32 L 8,128" fill="none" stroke="black"/>
              <path d="M 208,32 L 208,80" fill="none" stroke="black"/>
              <path d="M 296,80 L 296,128" fill="none" stroke="black"/>
              <path d="M 440,32 L 440,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 440,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 440,80" fill="none" stroke="black"/>
              <path d="M 312,96 L 440,96" fill="none" stroke="black"/>
              <path d="M 8,128 L 296,128" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,96 436,90.4 436,101.6" fill="black" transform="rotate(0,440,96)"/>
              <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(180,312,96)"/>
              <g class="text">
                <text x="104" y="68">y</text>
                <text x="320" y="68">x</text>
                <text x="136" y="116">z</text>
                <text x="356" y="116">Security</text>
                <text x="408" y="116">gap</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
+------------------------+----------------------------+
|                        |                            |
|           y            |             x              |
+------------------------+----------+-----------------+
|                                   | <--------------->
|               z                   |   Security gap
+-----------------------------------+

]]></artwork>
        </artset>
      </figure>
      <t>These challenges are illustrated nicely by the so-called Mosca model discussed in <xref target="Threat-Report"/>. In <xref target="Mosca"/>, "x" denotes the time that systems and data need to remain secure, "y" the number of years to fully migrate to a PQC infrastructure, and "z" the time until a CRQC that can break current cryptography is available. The model assumes either that encrypted data can be intercepted and stored before the migration is completed in "y" years, or that signatures will still be relied upon for "x" years after their creation. This data remains vulnerable for the complete "x" years of their lifetime; thus, the sum "x+y" gives us an estimate of the full timeframe that data remains insecure. The model essentially asks how one is preparing IT systems during those "y" years (in other words, how one can minimize those "y" years) to minimize the transition phase to a PQC infrastructure and hence minimize the risks of data being exposed in the future.</t>
      <t>Finally, other factors that could accelerate the introduction of a CRQC should not be underestimated, for example, faster-than-expected advances in quantum computing and more efficient versions of Shor's algorithm requiring fewer qubits. Innovation often comes in waves, so it is to the industry's benefit to remain vigilant and prepare as early as possible. Also, bear in mind that while the industry tracks advances from public research institutions such as universities and companies that publish their results, there is also a great deal of large-budget quantum research being conducted privately by various national interests. Therefore, the true state of quantum computer advancement is likely several years ahead of the publicly available research at the date this document is published.</t>
      <t>Organizations should also carefully and honestly consider what their migration timeline "y" actually is. If you only think of the time between receiving a patch from your technology vendor and rolling that patch out, then "y" might seem as short as a few weeks. However, this represents the minority of migration cases; more often, a PQC migration will involve at least some amount of hardware replacement. For example, performance-sensitive applications will need CPUs with PQC hardware acceleration. Security-sensitive applications will need PQC TPMs, Trusted Execution Environments (TEEs), secure enclaves, and other cryptographic co-processors. Smart card applications will require replacement of the cards and readers. The readers can come in many form factors: tap-for-entry door and turnstile readers, PIN pad machines, laptops with built-in smart card readers, and many others.</t>
      <t>Included in "y" is not only the deployment time but also the preparation time: integration, testing, auditing, and recertification of cryptographic environments. Also consider upstream effects that contribute to "y", including lead times for vendors to produce PQC-ready products, which may itself include auditing and certification delays, time for regulating bodies to adopt PQC policies, time for auditors to become familiar with the new requirements, etc. If you measure the full migration time "y" from when your vendors begin implementing PQC functionality to when you switch off your last non-PQC-capable device, then "y" can be quite long, likely measured in years for even most moderately sized organizations. This long tail should not discourage early action.</t>
      <t>Organizations responsible for protecting long-lived sensitive data or operating critical infrastructure will need to begin transitioning immediately, particularly in scenarios where data is vulnerable to HNDL attacks. Post-quantum and traditional (PQ/T) <xref target="PQT"/> or PQ key exchange is relatively self-contained, typically requiring changes only to the cryptographic library (e.g., OpenSSL). In contrast, migrating to post-quantum or PQ/T digital signatures involves broader ecosystem changes, including updates to certificates, certificate authorities (CAs), Certificate Management Protocols, HSMs, and trust anchors.
Starting early with hybrid key exchange deployments allows organizations to gain operational experience, while prototyping and planning for PQ/T or PQ digital signature integration helps identify ecosystem-wide impacts early. This phased approach reduces long-term migration risks and ensures readiness for more complex updates.</t>
    </section>
    <section anchor="pqc-categories">
      <name>PQC Categories</name>
      <t>The post-quantum cryptographic schemes standardized by NIST can be categorized into three main groups: lattice-based, hash-based, and code-based. Other approaches, such as isogeny-based, multivariate-based, and MPC-in-the-Head-based cryptography, are also being explored in research and standardization efforts. In addition, NIST issued a call for additional digital signature proposals to expand the set of post-quantum signatures under evaluation <xref target="AddSig"/>.</t>
      <section anchor="lattice-based">
        <name>Lattice-Based Public Key Cryptography</name>
        <t>Lattice-based public key cryptography leverages the simple construction of lattices (i.e., a regular collection of points in a Euclidean space that are evenly spaced) to create "trapdoor" problems. These problems are efficient to compute if you possess the secret information but challenging to compute otherwise. Examples of such problems include the shortest vector, closest vector, short integer solution, learning with errors, module learning with errors, and learning with rounding problems. All of these problems feature strong proofs for worst-to-average case reduction, effectively relating the hardness of the average case to the worst case.</t>
        <t>Lattice-based public keys and signatures are larger than those of classical schemes such as RSA or ECC, but typically by less than an order of magnitude for public keys (about 6-10x) and by roughly one to two orders of magnitude for signatures (about 10-100x) rather than by several orders of magnitude, making them the best available candidates for general-purpose use, such as replacing the use of RSA in PKIX certificates.</t>
        <t>Examples of this class of algorithms include ML-KEM, FN-DSA, ML-DSA, and FrodoKEM.</t>
        <t>It is noteworthy that lattice-based encryption schemes require a rounding step during decryption, which has a non-zero probability of "rounding the wrong way" and leading to a decryption failure, meaning that valid encryptions are decrypted incorrectly. However, the parameters of NIST PQC candidates are carefully chosen so that the probability of such a failure is cryptographically negligible, far lower than the probability of random transmission errors and implementation bugs. In practical terms, these rare decryption failures can be treated the same way as any fatal transport error: Both sides simply perform a fresh KEM operation, generating a new ciphertext and shared secret.</t>
        <t>In cryptanalysis, an oracle refers to a system that an attacker can query to learn whether decryption succeeded or failed. If such an oracle exists, an attacker could significantly reduce the security of lattice-based schemes that have a relatively high failure rate. However, for most of the NIST PQC proposals, the number of required oracle queries to force a decryption failure is above practical limits, as shown in <xref target="LattFail1"/>. More recent works have improved upon the results in <xref target="LattFail1"/>, showing that the cost of searching for additional failing ciphertexts after one or more have already been found can be sped up dramatically <xref target="LattFail2"/>. Nevertheless, at the time this document is published, the PQC candidates by NIST are considered secure under these attacks, and constant monitoring as cryptanalysis research is ongoing.</t>
      </section>
      <section anchor="hash-based">
        <name>Hash-Based Public Key Cryptography</name>
        <t>Hash-based Public Key Cryptography (PKC) has been around since the 1970s, when it was developed by Lamport and Merkle. It is used to create digital signature algorithms, and its security is based on the security of the underlying cryptographic hash function. Many variants of hash-based signatures (HBSs) have been developed since the 1970s, including the recent XMSS <xref target="RFC8391"/>, HSS/LMS <xref target="RFC8554"/>, or BPQS <xref target="BPQS"/> schemes. Unlike many other digital signature techniques, most hash-based signature schemes are stateful, which means that signing necessitates the update and careful tracking of the state of the secret key. Producing multiple signatures using the same secret key state results in loss of security and may ultimately enable signature forgery attacks against that key.</t>
        <t>Stateful hash-based signatures with long service lifetimes require additional operational complexity compared to other signature types. For example, consider a 20-year root key; there is an expectation that 20 years is longer than the expected lifetime of the hardware that key is stored on, so the key will need to be migrated to new hardware at some point. Disaster-recovery scenarios where the primary node fails without warning can be similarly tricky. This requires careful operational and compliance consideration to ensure that no private key state can be reused across the migration or disaster recovery event. One approach for avoiding these issues is to only use stateful HBSs for short-term use cases that do not require horizontal scaling, for example, signing a batch of firmware images and then retiring the signing key.</t>
        <t>The SLH-DSA algorithm, which was standardized by NIST, leverages the HORST (Hash to Obtain Random Subset with Trees) technique and remains the only standardized hash based signature scheme that is stateless, thus avoiding the complexities associated with state management. SLH-DSA is an advancement on SPHINCS that reduces the signature sizes in SPHINCS and makes it more compact.</t>
      </section>
      <section anchor="code-based">
        <name>Code-Based Public Key Cryptography</name>
        <t>This area of cryptography started in the 1970s and 1980s and was based on the seminal work of McEliece and Niederreiter, which focuses on the study of cryptosystems based on error-correcting codes. Some popular error-correcting codes include Goppa codes (used in McEliece cryptosystems), encoding and decoding syndrome codes used in HQC, or quasi-cyclic moderate density parity check (QC-MDPC) codes.</t>
        <t>Examples include all the unbroken NIST Round 4 finalists: Classic McEliece, HQC (selected by NIST for standardization), and BIKE <xref target="BIKE"/>.</t>
        <!-- [rfced] Please review the following sentence. The expansion of "KEM
encapsulation" would be "key encapsulation mechanism encapsulation" if it were
left as is. Is this correct? Or may we update as follows to avoid repetition?

Current:
The KEM encapsulation results in a fixed-length symmetric key that
can be used with a symmetric algorithm, typically a block cipher, in one of
two different ways:

Perhaps:
The KEM results in a fixed-length symmetric key that can be used with
a symmetric algorithm, typically a block cipher, in one of two different ways:
-->

</section>
    </section>
    <section anchor="KEMs">
      <name>KEMs</name>
      <t>A Key Encapsulation Mechanism (KEM) is a cryptographic technique used for securely exchanging symmetric key material between two parties over an insecure channel. It is commonly used in hybrid encryption schemes where a combination of asymmetric (public key) and symmetric encryption is employed. The KEM encapsulation results in a fixed-length symmetric key that can be used with a symmetric algorithm, typically a block cipher, in one of two different ways:</t>
      <ul spacing="normal">
        <li>
          <t>To derive a data encryption key (DEK) to encrypt the data</t>
        </li>
        <li>
          <t>To derive a key encryption key (KEK) used to wrap a DEK</t>
        </li>
      </ul>
      <t>These techniques are often referred to as the Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/> mechanism.</t>
      <t>The term "encapsulation" is chosen intentionally to indicate that KEM algorithms behave differently at the API level from the key agreement or key encipherment and key transport mechanisms that are in use today. Key agreement schemes imply that both parties contribute a public-private key pair to the exchange, while key encipherment and key transport schemes imply that the symmetric key material is chosen by one party and "encrypted" or "wrapped" for the other party. KEMs, on the other hand, behave according to the following API primitives <xref target="PQCAPI"/>:</t>
      <ul spacing="normal">
        <li>
          <t>def kemKeyGen() -&gt; (pk, sk)</t>
        </li>
        <li>
          <t>def kemEncaps(pk) -&gt; (ss, ct)</t>
        </li>
        <li>
          <t>def kemDecaps(ct, sk) -&gt; ss</t>
        </li>
      </ul>
      <t>where <tt>pk</tt> is the public key, <tt>sk</tt> is the secret key, <tt>ct</tt> is the ciphertext representing an encapsulated key, and <tt>ss</tt> is the shared secret. The following figure illustrates a sample flow of a KEM-based key exchange:</t>
      <figure anchor="tab-kem-ke">
        <name>KEM-Based Key Exchange</name>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="336" width="536" viewBox="0 0 536 336" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,272 L 8,304" fill="none" stroke="black"/>
              <path d="M 24,80 L 24,112" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 208,80 L 208,112" fill="none" stroke="black"/>
              <path d="M 208,272 L 208,304" fill="none" stroke="black"/>
              <path d="M 224,72 L 224,320" fill="none" stroke="black"/>
              <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
              <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
              <path d="M 320,72 L 320,320" fill="none" stroke="black"/>
              <path d="M 336,176 L 336,208" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
              <path d="M 528,176 L 528,208" fill="none" stroke="black"/>
              <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
              <path d="M 280,32 L 360,32" fill="none" stroke="black"/>
              <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
              <path d="M 280,64 L 360,64" fill="none" stroke="black"/>
              <path d="M 24,80 L 208,80" fill="none" stroke="black"/>
              <path d="M 24,112 L 208,112" fill="none" stroke="black"/>
              <path d="M 232,160 L 312,160" fill="none" stroke="black"/>
              <path d="M 336,176 L 528,176" fill="none" stroke="black"/>
              <path d="M 336,208 L 528,208" fill="none" stroke="black"/>
              <path d="M 232,256 L 312,256" fill="none" stroke="black"/>
              <path d="M 8,272 L 208,272" fill="none" stroke="black"/>
              <path d="M 8,304 L 208,304" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="320,160 308,154.4 308,165.6" fill="black" transform="rotate(0,312,160)"/>
              <polygon class="arrowhead" points="240,256 228,250.4 228,261.6" fill="black" transform="rotate(180,232,256)"/>
              <g class="text">
                <text x="220" y="52">Client</text>
                <text x="316" y="52">Server</text>
                <text x="48" y="100">pk,</text>
                <text x="76" y="100">sk</text>
                <text x="96" y="100">=</text>
                <text x="152" y="100">kemKeyGen()</text>
                <text x="216" y="100">-</text>
                <text x="244" y="148">pk</text>
                <text x="328" y="196">-</text>
                <text x="360" y="196">ss,</text>
                <text x="388" y="196">ct</text>
                <text x="408" y="196">=</text>
                <text x="472" y="196">kemEncaps(pk)</text>
                <text x="292" y="244">ct</text>
                <text x="28" y="292">ss</text>
                <text x="48" y="292">=</text>
                <text x="112" y="292">kemDecaps(ct,</text>
                <text x="184" y="292">sk)</text>
                <text x="216" y="292">-</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  +----------------------+ |           |
  | pk, sk = kemKeyGen() |-|           |
  +----------------------+ |           |
                           |           |
                           | pk        |
                           |---------->|
                           |           | +-----------------------+
                           |           |-| ss, ct = kemEncaps(pk)|
                           |           | +-----------------------+
                           |           |
                           |       ct  |
                           |<----------|
+------------------------+ |           |
| ss = kemDecaps(ct, sk) |-|           |
+------------------------+ |           |
                           |           |
]]></artwork>
        </artset>
      </figure>
      <section anchor="authenticated-key-exchange">
        <name>Authenticated Key Exchange</name>
        <!-- [rfced] May we update the title of Figure 4 as follows?

Original:
Figure 4: Diffie-Hellman based AKE and NIKE simultaneously

Perhaps:
Figure 4: Simultaneous DH-Based AKE and NIKE
-->

<t>Authenticated Key Exchange (AKE) with KEMs where both parties contribute a KEM public key to the overall session key is interactive as described in <xref section="9.4" sectionFormat="of" target="RFC9528"/>. However, a single-sided KEM, such as when one peer has a KEM key in a certificate and the other peer wants to encrypt for it (as in S/MIME or OpenPGP email), can be achieved using non-interactive HPKE <xref target="RFC9180"/>. The following figure illustrates the DH Key exchange:</t>
        <figure anchor="tab-dh-ake">
          <name>DH-Based AKE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="552" viewBox="0 0 552 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,320 L 8,368" fill="none" stroke="black"/>
                <path d="M 24,80 L 24,128" fill="none" stroke="black"/>
                <path d="M 136,336 L 136,344" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
                <path d="M 216,80 L 216,128" fill="none" stroke="black"/>
                <path d="M 216,320 L 216,368" fill="none" stroke="black"/>
                <path d="M 232,72 L 232,464" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 328,72 L 328,464" fill="none" stroke="black"/>
                <path d="M 344,192 L 344,256" fill="none" stroke="black"/>
                <path d="M 344,432 L 344,464" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
                <path d="M 544,192 L 544,256" fill="none" stroke="black"/>
                <path d="M 544,432 L 544,464" fill="none" stroke="black"/>
                <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
                <path d="M 280,32 L 360,32" fill="none" stroke="black"/>
                <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
                <path d="M 280,64 L 360,64" fill="none" stroke="black"/>
                <path d="M 24,80 L 216,80" fill="none" stroke="black"/>
                <path d="M 24,128 L 216,128" fill="none" stroke="black"/>
                <path d="M 240,176 L 320,176" fill="none" stroke="black"/>
                <path d="M 344,192 L 544,192" fill="none" stroke="black"/>
                <path d="M 344,256 L 544,256" fill="none" stroke="black"/>
                <path d="M 240,304 L 320,304" fill="none" stroke="black"/>
                <path d="M 8,320 L 216,320" fill="none" stroke="black"/>
                <path d="M 8,368 L 216,368" fill="none" stroke="black"/>
                <path d="M 240,416 L 320,416" fill="none" stroke="black"/>
                <path d="M 344,432 L 544,432" fill="none" stroke="black"/>
                <path d="M 344,464 L 544,464" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="328,416 316,410.4 316,421.6" fill="black" transform="rotate(0,320,416)"/>
                <polygon class="arrowhead" points="328,176 316,170.4 316,181.6" fill="black" transform="rotate(0,320,176)"/>
                <polygon class="arrowhead" points="248,304 236,298.4 236,309.6" fill="black" transform="rotate(180,240,304)"/>
                <g class="text">
                  <text x="220" y="52">Client</text>
                  <text x="316" y="52">Server</text>
                  <text x="72" y="100">Long-term</text>
                  <text x="140" y="100">client</text>
                  <text x="188" y="100">key:</text>
                  <text x="116" y="116">sk1,</text>
                  <text x="152" y="116">pk1</text>
                  <text x="224" y="116">-</text>
                  <text x="256" y="164">pk1</text>
                  <text x="336" y="212">-</text>
                  <text x="392" y="212">Long-term</text>
                  <text x="460" y="212">server</text>
                  <text x="508" y="212">key:</text>
                  <text x="436" y="228">sk2,</text>
                  <text x="472" y="228">pk2</text>
                  <text x="364" y="244">ss</text>
                  <text x="384" y="244">=</text>
                  <text x="436" y="244">KeyEx(pk1,</text>
                  <text x="500" y="244">sk2)</text>
                  <text x="312" y="292">pk2</text>
                  <text x="28" y="340">ss</text>
                  <text x="48" y="340">=</text>
                  <text x="96" y="340">KeyEx(pk2</text>
                  <text x="164" y="340">sk1)</text>
                  <text x="92" y="356">encryptContent(ss)</text>
                  <text x="224" y="356">-</text>
                  <text x="280" y="388">encrypted</text>
                  <text x="288" y="404">content</text>
                  <text x="428" y="452">decryptContent(ss)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  +-----------------------+ |           |
  | Long-term client key: | |           |
  |         sk1, pk1      |-|           |
  +-----------------------+ |           |
                            |           |
                            | pk1       |
                            |---------->|
                            |           | +------------------------+
                            |           |-| Long-term server key:  |
                            |           | |         sk2, pk2       |
                            |           | | ss = KeyEx(pk1, sk2)   |
                            |           | +------------------------+
                            |           |
                            |        pk2|
                            |<----------|
+-------------------------+ |           |
| ss = KeyEx(pk2, sk1)    | |           |
| encryptContent(ss)      |-|           |
+-------------------------+ |           |
                            | encrypted |
                            |   content |
                            |---------->|
                            |           | +------------------------+
                            |           | | decryptContent(ss)     |
                            |           | +------------------------+
]]></artwork>
          </artset>
        </figure>
        <!-- [rfced] Figure 4 is not referred to in the text. May we update this sentence as shown below?

Original:
   However, a DH key exchange can be an AKE and a NIKE at
   the same time if the receiver's public key is known to the sender in
   advance, and many Internet protocols rely on this property of DH-
   based key exchanges.

Perhaps:
   However, a DH key exchange can be an AKE and a NIKE at
   the same time if the receiver's public key is known to the sender in
   advance (see Figure 4), and many Internet protocols rely on this property of DH-
   based key exchanges.
-->

<t>In the sample flow above, it is important to note that the shared secret <tt>ss</tt> is derived using key material from both the client and the server, which classifies it as an AKE. There is another property of a key exchange, called Non-Interactive Key Exchange (NIKE), that  refers to whether the sender can compute the shared secret <tt>ss</tt> and encrypt content without requiring active interaction (an exchange of network messages) with the recipient. <xref target="tab-dh-ake"/> shows a DH key exchange, which is an AKE since both parties are using long-term keys that can have established trust (for example, via certificates), but it is not a NIKE since the client needs to wait for the network interaction to receive the receiver's public key <tt>pk2</tt> before it can compute the shared secret <tt>ss</tt> and begin content encryption. However, a DH key exchange can be an AKE and a NIKE at the same time if the receiver's public key is known to the sender in advance, and many Internet protocols rely on this property of DH-based key exchanges.</t>
        <figure anchor="tab-dh-ake-nike">
          <name>DH-Based AKE and NIKE Simultaneously</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="536" viewBox="0 0 536 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,80 L 8,192" fill="none" stroke="black"/>
                <path d="M 136,160 L 136,168" fill="none" stroke="black"/>
                <path d="M 168,32 L 168,64" fill="none" stroke="black"/>
                <path d="M 200,80 L 200,192" fill="none" stroke="black"/>
                <path d="M 216,72 L 216,368" fill="none" stroke="black"/>
                <path d="M 248,32 L 248,64" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
                <path d="M 312,72 L 312,368" fill="none" stroke="black"/>
                <path d="M 328,288 L 328,368" fill="none" stroke="black"/>
                <path d="M 344,32 L 344,64" fill="none" stroke="black"/>
                <path d="M 456,336 L 456,344" fill="none" stroke="black"/>
                <path d="M 528,288 L 528,368" fill="none" stroke="black"/>
                <path d="M 168,32 L 248,32" fill="none" stroke="black"/>
                <path d="M 264,32 L 344,32" fill="none" stroke="black"/>
                <path d="M 168,64 L 248,64" fill="none" stroke="black"/>
                <path d="M 264,64 L 344,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 200,80" fill="none" stroke="black"/>
                <path d="M 8,192 L 200,192" fill="none" stroke="black"/>
                <path d="M 224,272 L 304,272" fill="none" stroke="black"/>
                <path d="M 328,288 L 528,288" fill="none" stroke="black"/>
                <path d="M 328,368 L 528,368" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="312,272 300,266.4 300,277.6" fill="black" transform="rotate(0,304,272)"/>
                <g class="text">
                  <text x="204" y="52">Client</text>
                  <text x="300" y="52">Server</text>
                  <text x="56" y="100">Long-term</text>
                  <text x="124" y="100">client</text>
                  <text x="172" y="100">key:</text>
                  <text x="100" y="116">sk1,</text>
                  <text x="136" y="116">pk1</text>
                  <text x="208" y="116">-</text>
                  <text x="56" y="132">Long-term</text>
                  <text x="124" y="132">server</text>
                  <text x="172" y="132">key:</text>
                  <text x="96" y="148">pk2</text>
                  <text x="28" y="164">ss</text>
                  <text x="48" y="164">=</text>
                  <text x="96" y="164">KeyEx(pk2</text>
                  <text x="164" y="164">sk1)</text>
                  <text x="92" y="180">encryptContent(ss)</text>
                  <text x="208" y="180">-</text>
                  <text x="244" y="228">pk1,</text>
                  <text x="264" y="244">encrypted</text>
                  <text x="272" y="260">content</text>
                  <text x="320" y="308">-</text>
                  <text x="376" y="308">Long-term</text>
                  <text x="444" y="308">server</text>
                  <text x="492" y="308">key:</text>
                  <text x="420" y="324">sk2,</text>
                  <text x="456" y="324">pk2</text>
                  <text x="348" y="340">ss</text>
                  <text x="368" y="340">=</text>
                  <text x="416" y="340">KeyEx(pk1</text>
                  <text x="484" y="340">sk2)</text>
                  <text x="412" y="356">decryptContent(ss)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  +-----------------------+ |           |
  | Long-term client key: | |           |
  |         sk1, pk1      |-|           |
  | Long-term server key: | |           |
  |         pk2           | |           |
  | ss = KeyEx(pk2, sk1)  | |           |
  | encryptContent(ss)    |-|           |
  +-----------------------+ |           |
                            |           |
                            | pk1,      |
                            | encrypted |
                            |   content |
                            |---------->|
                            |           | +------------------------+
                            |           |-| Long-term server key:  |
                            |           | |         sk2, pk2       |
                            |           | | ss = KeyEx(pk1, sk2)   |
                            |           | | decryptContent(ss)     |
                            |           | +------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>The complication with KEMs is that a KEM <tt>Encaps()</tt> is non-deterministic; it involves randomness chosen by the sender of that message. Therefore, in order to perform an AKE, the client must wait for the server to generate the needed randomness and perform <tt>Encaps()</tt> against the client key, which necessarily requires a network round-trip. Therefore, a KEM-based protocol can either be an AKE or a NIKE, but it cannot be both at the same time. Consequently, certain Internet protocols will necessitate a redesign to accommodate this distinction, either by introducing extra network round trips or by making trade-offs in security properties.</t>
        <!-- [rfced] In Figure 5, please review the second box on the left side of the
diagram. There seems to be an extra "-|", and the box is not closed. Would you
like to make any updates here? Please check out the suggested update in these
test files and let us know your thoughts:

https://www.rfc-editor.org/authors/rfc9958-TEST.md
https://www.rfc-editor.org/authors/rfc9958-TEST.txt
https://www.rfc-editor.org/authors/rfc9958-TEST.html
-->

<figure anchor="tab-kem-ake">
          <name>KEM-Based AKE</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="480" width="560" viewBox="0 0 560 480" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,80 L 8,112" fill="none" stroke="black"/>
                <path d="M 8,288 L 8,352" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
                <path d="M 208,80 L 208,112" fill="none" stroke="black"/>
                <path d="M 208,336 L 208,352" fill="none" stroke="black"/>
                <path d="M 224,72 L 224,464" fill="none" stroke="black"/>
                <path d="M 264,32 L 264,64" fill="none" stroke="black"/>
                <path d="M 280,32 L 280,64" fill="none" stroke="black"/>
                <path d="M 320,72 L 320,464" fill="none" stroke="black"/>
                <path d="M 336,176 L 336,224" fill="none" stroke="black"/>
                <path d="M 336,416 L 336,464" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
                <path d="M 552,176 L 552,224" fill="none" stroke="black"/>
                <path d="M 552,416 L 552,464" fill="none" stroke="black"/>
                <path d="M 184,32 L 264,32" fill="none" stroke="black"/>
                <path d="M 280,32 L 360,32" fill="none" stroke="black"/>
                <path d="M 184,64 L 264,64" fill="none" stroke="black"/>
                <path d="M 280,64 L 360,64" fill="none" stroke="black"/>
                <path d="M 8,80 L 208,80" fill="none" stroke="black"/>
                <path d="M 8,112 L 208,112" fill="none" stroke="black"/>
                <path d="M 232,160 L 312,160" fill="none" stroke="black"/>
                <path d="M 336,176 L 552,176" fill="none" stroke="black"/>
                <path d="M 336,224 L 552,224" fill="none" stroke="black"/>
                <path d="M 232,272 L 312,272" fill="none" stroke="black"/>
                <path d="M 8,288 L 200,288" fill="none" stroke="black"/>
                <path d="M 8,352 L 208,352" fill="none" stroke="black"/>
                <path d="M 232,400 L 312,400" fill="none" stroke="black"/>
                <path d="M 336,416 L 552,416" fill="none" stroke="black"/>
                <path d="M 336,464 L 552,464" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="320,400 308,394.4 308,405.6" fill="black" transform="rotate(0,312,400)"/>
                <polygon class="arrowhead" points="320,160 308,154.4 308,165.6" fill="black" transform="rotate(0,312,160)"/>
                <polygon class="arrowhead" points="240,272 228,266.4 228,277.6" fill="black" transform="rotate(180,232,272)"/>
                <g class="text">
                  <text x="220" y="52">Client</text>
                  <text x="316" y="52">Server</text>
                  <text x="36" y="100">pk1,</text>
                  <text x="72" y="100">sk1</text>
                  <text x="96" y="100">=</text>
                  <text x="152" y="100">kemKeyGen()</text>
                  <text x="216" y="100">-</text>
                  <text x="240" y="148">pk1</text>
                  <text x="328" y="196">-</text>
                  <text x="364" y="196">ss1,</text>
                  <text x="400" y="196">ct1</text>
                  <text x="424" y="196">=</text>
                  <text x="492" y="196">kemEncaps(pk1)</text>
                  <text x="364" y="212">pk2,</text>
                  <text x="400" y="212">sk2</text>
                  <text x="424" y="212">=</text>
                  <text x="480" y="212">kemKeyGen()</text>
                  <text x="288" y="260">ct1,pk2</text>
                  <text x="32" y="308">ss1</text>
                  <text x="56" y="308">=</text>
                  <text x="124" y="308">kemDecaps(ct1,</text>
                  <text x="204" y="308">sk1)</text>
                  <text x="236" y="308">-|</text>
                  <text x="36" y="324">ss2,</text>
                  <text x="72" y="324">ct2</text>
                  <text x="96" y="324">=</text>
                  <text x="164" y="324">kemEncaps(pk2)</text>
                  <text x="28" y="340">ss</text>
                  <text x="48" y="340">=</text>
                  <text x="112" y="340">Combiner(ss1,</text>
                  <text x="188" y="340">ss2)</text>
                  <text x="240" y="388">ct2</text>
                  <text x="328" y="436">-</text>
                  <text x="360" y="436">ss2</text>
                  <text x="384" y="436">=</text>
                  <text x="452" y="436">kemDecaps(ct2,</text>
                  <text x="532" y="436">sk2)</text>
                  <text x="356" y="452">ss</text>
                  <text x="376" y="452">=</text>
                  <text x="440" y="452">Combiner(ss1,</text>
                  <text x="516" y="452">ss2)</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
+------------------------+ |           |
| pk1, sk1 = kemKeyGen() |-|           |
+------------------------+ |           |
                           |           |
                           |pk1        |
                           |---------->|
                           |           | +--------------------------+
                           |           |-| ss1, ct1 = kemEncaps(pk1)|
                           |           | | pk2, sk2 = kemKeyGen()   |
                           |           | +--------------------------+
                           |           |
                           |    ct1,pk2|
                           |<----------|
+------------------------+ |           |
| ss1 = kemDecaps(ct1, sk1)|-|         |
| ss2, ct2 = kemEncaps(pk2)|           |
| ss = Combiner(ss1, ss2)| |           |
+------------------------+ |           |
                           |           |
                           |ct2        |
                           |---------->|
                           |           | +--------------------------+
                           |           |-| ss2 = kemDecaps(ct2, sk2)|
                           |           | | ss = Combiner(ss1, ss2)  |
                           |           | +--------------------------+
]]></artwork>
          </artset>
        </figure>
        <t>In the figure above, <tt>Combiner(ss1, ss2)</tt>, often referred to as a KEM combiner, is a cryptographic construction that takes in two shared secrets and returns a single combined shared secret. The simplest combiner is concatenation <tt>ss1 || ss2</tt>, but combiners can vary in complexity depending on the cryptographic properties required. For example, if the combination should preserve IND-CCA2 (see <xref target="INDCCA2"/>) of either input, even if the other is chosen maliciously, then a more complex construct is required. Another consideration for combiner design is the so-called "binding properties" introduced in <xref target="KEEPINGUP"/>, which may require the ciphertexts and recipient public keys to be included in the combiner. KEM combiner security analysis becomes more complicated in hybrid settings where the two KEMs represent different algorithms, for example, where one is ML-KEM and the other is ECDH. For a more thorough discussion of KEM combiners, see <xref target="KEEPINGUP"/>, <xref target="I-D.ounsworth-cfrg-kem-combiners"/>, and <xref target="I-D.irtf-cfrg-hybrid-kems"/>.</t>
      </section>
      <section anchor="security-properties-of-kems">
        <name>Security Properties of KEMs</name>
        <t>The security properties described in this section (IND-CCA2 and binding) are not an exhaustive list of all possible KEM security considerations. They were selected because they are fundamental to evaluating KEM suitability in protocol design and are commonly discussed in current PQC work.</t>
        <section anchor="INDCCA2">
          <name>IND-CCA2</name>
          <t>IND-CCA2 (INDistinguishability under adaptive Chosen-Ciphertext Attack) is an advanced security notion for encryption schemes. It ensures the confidentiality of the plaintext and resistance against chosen-ciphertext attacks. An appropriate definition of IND-CCA2 security for KEMs can be found in <xref target="CS01"/> and <xref target="BHK09"/>. ML-KEM <xref target="ML-KEM"/> and Classic McEliece provide IND-CCA2 security.</t>
          <t>Understanding IND-CCA2 security is essential for individuals involved in designing or implementing cryptographic systems and protocols in order to evaluate the strength of the algorithm, assess its suitability for specific use cases, and ensure that data confidentiality and security requirements are met. Understanding IND-CCA2 security is generally not necessary for developers migrating to using an IETF-vetted key establishment method (KEM) within a given protocol or flow. IND-CCA2 is a widely accepted security notion for public key encryption mechanisms, making it suitable for a broad range of applications. When an IETF specification defines a new KEM, its security considerations should fully describe the relevant cryptographic properties, including IND-CCA2.</t>
        </section>
        <section anchor="binding">
          <name>Binding</name>
          <t>KEMs also have an orthogonal set of properties to consider when designing protocols around them: binding <xref target="KEEPINGUP"/>. This can be "ciphertext binding", "public key binding", "context binding", or any other property that is important to not be substituted between KEM invocations. In general, a KEM is considered to bind a certain value if substitution of that value by an attacker will necessarily result in a different shared secret being derived. As an example, if an attacker can construct two different ciphertexts that will decapsulate to the same shared secret, can construct a ciphertext that will decapsulate to the same shared secret under two different public keys, or can substitute whole KEM exchanges from one session into another, then the construction is not ciphertext binding, public key binding, or context binding, respectively. Similarly, protocol designers may wish to bind protocol state information such as a transaction ID or nonce so that attempts to replay ciphertexts from one session inside a different session will be blocked at the cryptographic level because the server derives a different shared secret and is thus is unable to decrypt the content.</t>
          <!-- [rfced] Will readers understand what "it" in the phrase "pass it through"
refers to here? Does "it" refer to "KEMs", "secrets", or something else?

Original:
   Even though modern KEMs such as ML-KEM produce full-
   entropy shared secrets, it is still advisable for binding reasons to
   pass it through a key derivation function (KDF) and also include all
   values that you wish to bind; then finally you will have a shared
   secret that is safe to use at the protocol level.
-->

<t>The solution to binding is generally achieved at the protocol design level: It is recommended to avoid using the KEM output shared secret directly without integrating it into an appropriate protocol. While KEM algorithms provide key secrecy, they do not inherently ensure source authenticity, protect against replay attacks, or guarantee freshness. These security properties should be addressed by incorporating the KEM into a protocol that has been analyzed for such protections. Even though modern KEMs such as ML-KEM produce full-entropy shared secrets, it is still advisable for binding reasons to pass it through a key derivation function (KDF) and also include all values that you wish to bind; then, you will have a shared secret that is safe to use at the protocol level.</t>
        </section>
      </section>
      <section anchor="hpke">
        <name>HPKE</name>
        <t>Modern cryptography has long used the notion of "hybrid encryption" where an asymmetric algorithm is used to establish a key and then a symmetric algorithm is used for bulk content encryption. The previous sections explained important security properties of KEMs, such as IND-CCA2 security and binding, and emphasized that these properties must be supported by proper protocol design. One widely deployed scheme that achieves this is Hybrid Public Key Encryption (HPKE) <xref target="RFC9180"/>.</t>
        <t>HPKE <xref target="RFC9180"/> works with a combination of KEMs, KDFs, and Authenticated Encryption with Associated Data (AEAD) schemes. HPKE includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a KEM private key. HPKE can be extended to support hybrid post-quantum KEM <xref target="I-D.ietf-hpke-pq"/>. ML-KEM does not support the static-ephemeral key exchange that allows HPKE that is based on DH-based KEMs and its optional authenticated modes as discussed in <xref section="1.5" sectionFormat="of" target="I-D.connolly-cfrg-xwing-kem"/>.</t>
      </section>
    </section>
    <section anchor="pqc-signatures-1">
      <name>PQC Signatures</name>
      <t>Any digital signature scheme that provides a construction defining security under a post-quantum setting falls under this category of PQC signatures.</t>
      <section anchor="security-properties-of-pqc-signatures">
        <name>Security Properties of PQC Signatures</name>
        <section anchor="euf-cma-and-suf-cma">
          <name>EUF-CMA and SUF-CMA</name>
          <t>EUF-CMA (existential unforgeability under chosen message attack) <xref target="GMR88"/> is a security notion for digital signature schemes. It guarantees that an adversary, even with access to a signing oracle, cannot forge a valid signature for an arbitrary message. EUF-CMA provides strong protection against forgery attacks, ensuring the integrity and authenticity of digital signatures by preventing unauthorized modifications or fraudulent signatures. ML-DSA, FN-DSA, and SLH-DSA provide EUF-CMA security.</t>
          <t>SUF-CMA (strong unforgeability under chosen message attack) builds upon EUF-CMA by requiring that an adversary cannot produce a different valid signature for a message that has already been signed by the signing oracle. Like EUF-CMA, SUF-CMA provides robust assurances for digital signature schemes, further enhancing their security posture. ML-DSA, FN-DSA, and SLH-DSA also achieve SUF-CMA security.</t>
          <t>Understanding EUF-CMA and SUF-CMA security is essential for designing or implementing cryptographic systems in order to ensure the security, reliability, and robustness of digital signature schemes. These notions allow for informed decision making, vulnerability analysis, compliance with standards, and designing systems that provide strong protection against forgery attacks. For developers migrating to an IETF-vetted PQC signature scheme within a given protocol or flow, a deep understanding of EUF-CMA and SUF-CMA security may not be necessary, as the schemes vetted by IETF adhere to these stringent security standards.</t>
          <t>EUF-CMA and SUF-CMA are considered strong security benchmarks for public key signature algorithms, making them suitable for most applications. Authors of IETF specifications should include all security concerns in the "Security Considerations" section of the relevant RFC and should not assume that implementers are experts in cryptographic theory.</t>
        </section>
      </section>
      <section anchor="sig-scheme">
        <name>Details of FN-DSA, ML-DSA, and SLH-DSA</name>
        <t>ML-DSA <xref target="ML-DSA"/> is a digital signature algorithm based on the hardness of lattice problems over module lattices (i.e., the Module Learning with Errors (MLWE) problem). The design of the algorithm is based on the "Fiat-Shamir with Aborts" <xref target="Lyu09"/> framework introduced by Lyubashevsky that leverages rejection sampling to render lattice-based Fiat-Shamir (FS) schemes compact and secure. ML-DSA uses uniformly distributed random number sampling over small integers to compute coefficients in error vectors, which makes the scheme easier to implement compared to FN-DSA <xref target="FN-DSA"/>, which  uses Gaussian-distributed numbers, necessitating the need to use floating-point arithmetic during signature generation.</t>
        <t>ML-DSA offers both deterministic and randomized signing and is instantiated with three parameter sets providing different security levels. Security properties of ML-DSA are discussed in <xref section="9" sectionFormat="of" target="RFC9881"/>.</t>
        <t>FN-DSA <xref target="FN-DSA"/> is based on the GPV hash-and-sign lattice-based signature framework introduced by Gentry, Peikert, and Vaikuntanathan, which is a framework that requires a certain class of lattices and a trapdoor sampler technique.</t>
        <t>The main design principle of FN-DSA is compactness, i.e., it was designed in a way that achieves minimal total memory bandwidth requirement (the sum of the signature size plus the public key size). This is possible due to the compactness of NTRU lattices. FN-DSA also offers very efficient signing and verification procedures. The main potential downsides of FN-DSA refer to the non-triviality of its algorithms and the need for floating-point arithmetic support in order to support Gaussian-distributed random number sampling where the other lattice schemes use the less efficient but easier to support uniformly distributed random number sampling.</t>
        <!-- [rfced] Will readers know what "NIST's report" is here? Would a citation
be helpful? If so, please provide the appropriate reference entry.

Original:
   This requirement is extremely
   platform-dependent, as noted in NIST's report.
-->

<t>Implementers of FN-DSA need to be aware that FN-DSA signing is highly susceptible to side-channel attacks unless constant-time 64-bit floating-point operations are used. This requirement is extremely platform-dependent, as noted in NIST's report.</t>
        <t>The performance characteristics of ML-DSA and FN-DSA may differ based on the specific implementation and hardware platform. Generally, ML-DSA is known for its relatively fast signature generation, while FN-DSA can provide more efficient signature verification. The choice may depend on whether the application requires more frequent signature generation or signature verification (see <xref target="LIBOQS"/>). For further clarity on the sizes and security levels, please refer to the tables in Sections <xref target="RecSecurity" format="counter"/> and <xref target="Comparisons" format="counter"/>.</t>
        <t>SLH-DSA <xref target="SLH-DSA"/> utilizes the concept of stateless hash-based signatures, where each signature is unique and unrelated to any previous signature (as discussed in <xref target="hash-based"/>). This property eliminates the need for maintaining state information during the signing process. SLH-DSA was designed to sign up to 2^64 messages under a given key pair, and it offers three security levels. The parameters for each of the security levels were chosen to provide 128 bits of security, 192 bits of security, and 256 bits of security. SLH-DSA offers smaller public key sizes, larger signature sizes, slower signature generation, and slower verification when compared to ML-DSA and FN-DSA. SLH-DSA does not introduce a new hardness assumption beyond those inherent to the underlying hash functions. It builds upon established foundations in cryptography, making it a reliable and robust digital signature scheme for a post-quantum world.</t>
        <t>All of these algorithms (ML-DSA, FN-DSA, and SLH-DSA) include two signature modes: pure mode, where the entire content is signed directly, and pre-hash mode, where a digest of the content is signed.</t>
      </section>
      <section anchor="details-of-xmss-and-lms">
        <name>Details of XMSS and LMS</name>
        <t>The eXtended Merkle Signature Scheme (XMSS) <xref target="RFC8391"/> and Hierarchical Signature Scheme (HSS) / Leighton-Micali Signature (LMS) <xref target="RFC8554"/> are stateful hash-based signature schemes, where the secret key state changes over time. In both schemes, reusing a secret key state compromises cryptographic security guarantees.</t>
        <t>XMSS and LMS can be used for signing a potentially large but fixed number of messages, and the number of signing operations depends upon the size of the tree. XMSS and LMS provide cryptographic digital signatures without relying on the conjectured hardness of mathematical problems, instead leveraging the properties of cryptographic hash functions. Multi-tree XMSS and LMS (i.e., XMSS-MT and HSS, respectively) use a hyper-tree-based hierarchical approach with a Merkle tree at each level of the hierarchy. <xref target="RFC8391"/> describes both single-tree and multi-tree variants of XMSS, while <xref target="RFC8554"/> describes the Leighton-Micali One-Time Signature (LM-OTS) system as well as the LMS and HSS N-time signature systems. Comparison of XMSS and LMS is discussed in <xref section="10" sectionFormat="of" target="RFC8554"/>.</t>
        <t>The number of tree layers in multi-tree XMSS and HSS provides a trade-off between signature size on the one side and key generation and signing speed on the other side. Increasing the number of layers reduces key generation time exponentially and signing time linearly at the cost of increasing the signature size linearly. HSS allows for customization of each subtree, whereas XMSS-MT does not, electing instead to use the same structure for each subtree.</t>
        <t>Due to the complexities described above, XMSS and LMS are not suitable replacements for traditional signature schemes like RSA or ECDSA. Applications that expect a long lifetime of a signature, like firmware update or secure boot, are typical use cases where those schemes can be successfully applied.</t>
        <section anchor="lms-key-and-signature-sizes">
          <name>LMS Key and Signature Sizes</name>
          <t>The LMS scheme is characterized by four distinct parameter sets: the underlying hash function (SHA2-256 or SHAKE-256), the length of the digest (24 or 32 bytes), the LMS tree height parameter that controls a maximal number of signatures that the private key can produce, and the width of the Winternitz coefficients (see <xref section="4.1" sectionFormat="comma" target="RFC8554"/>) that can be used to trade-off signing time for signature size. Parameters can be mixed, providing 80 possible parameterizations of the scheme.</t>
          <t>The public (PK) and private (SK) key size depends on the length of the digest (M). The signature size depends on the digest, the Winternitz parameter (W), the LMS tree height (H), and the length of the digest. The table below provides key and signature sizes for parameterization with the digest size M=32 of the scheme.</t>
          <table>
            <thead>
              <tr>
                <th align="left">PK</th>
                <th align="left">SK</th>
                <th align="left">W</th>
                <th align="left">H=5</th>
                <th align="left">H=10</th>
                <th align="left">H=15</th>
                <th align="left">H=20</th>
                <th align="left">H=25</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">1</td>
                <td align="left">8684</td>
                <td align="left">8844</td>
                <td align="left">9004</td>
                <td align="left">9164</td>
                <td align="left">9324</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">2</td>
                <td align="left">4460</td>
                <td align="left">4620</td>
                <td align="left">4780</td>
                <td align="left">4940</td>
                <td align="left">5100</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">4</td>
                <td align="left">2348</td>
                <td align="left">2508</td>
                <td align="left">2668</td>
                <td align="left">2828</td>
                <td align="left">2988</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">8</td>
                <td align="left">1292</td>
                <td align="left">1452</td>
                <td align="left">1612</td>
                <td align="left">1772</td>
                <td align="left">1932</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="hash-then-sign">
        <name>Hash-then-Sign</name>
        <t>Within the hash-then-sign paradigm, the message is hashed before signing it. By pre-hashing, the onus of resistance to existential forgeries becomes heavily reliant on the collision-resistance of the hash function in use. The hash-then-sign paradigm has the ability to improve application performance by reducing the size of signed messages that need to be transmitted between application and cryptographic module and making the signature size predictable and manageable. As a corollary, hashing remains mandatory even for short messages and assigns a further computational requirement onto the verifier. This makes the performance of hash-then-sign schemes more consistent, but not necessarily more efficient.</t>
        <t>Using a hash function to produce a fixed-size digest of a message ensures that the signature is compatible with a wide range of systems and protocols, regardless of the specific message size or format. Crucially for hardware security modules, Hash-then-Sign also significantly reduces the amount of data that needs to be transmitted and processed by a Hardware Security Module (HSM). Consider scenarios such as a networked HSM located in a different data center from the calling application or a smart card connected over a USB interface. In these cases, streaming a message that is megabytes or gigabytes long can result in notable network latency, on-device signing delays, or even depletion of available on-device memory.</t>
        <t>Note that the vast majority of Internet protocols that sign large messages already perform some form of content hashing at the protocol level, so this tends to be more of a concern with proprietary cryptographic protocols and protocols from non-IETF standards bodies. Protocols like TLS 1.3 and DNSSEC use the Hash-then-Sign paradigm. In TLS 1.3 <xref target="RFC8446"/> CertificateVerify messages, the content that is covered under the signature includes the transcript hash output (<xref section="4.4.1" sectionFormat="of" target="RFC8446"/>) while DNSSEC <xref target="RFC4034"/> uses it to provide origin authentication and integrity assurance services for DNS data. Similarly, the Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> includes a mandatory message digest step before invoking the signature algorithm.</t>
        <t>In the case of ML-DSA, it internally incorporates the necessary hash operations as part of its signing algorithm. ML-DSA directly takes the original message, applies a hash function internally, and then uses the resulting hash value for the signature generation process. In the case of SLH-DSA, it internally performs randomized message compression using a keyed hash function that can process arbitrary length messages. In the case of FN-DSA, the SHAKE-256 hash function is used as part of the signature process to derive a digest of the message being signed.</t>
        <t>Therefore, ML-DSA, FN-DSA, and SLH-DSA offer enhanced security over the traditional Hash-then-Sign paradigm because, by incorporating dynamic key material into the message digest, a pre-computed hash collision on the message to be signed no longer yields a signature forgery. Applications requiring the performance and bandwidth benefits of Hash-then-Sign may still pre-hash at the protocol level prior to invoking ML-DSA, FN-DSA, or SLH-DSA, but protocol designers should be aware that doing so reintroduces the weakness that hash collisions directly yield signature forgeries. Signing the full un-digested message is recommended where applications can tolerate it.</t>
      </section>
    </section>
    <section anchor="RecSecurity">
      <name>NIST Recommendations for Security and Performance Trade-offs</name>
      <t>This information is a reprint of information provided in the NIST PQC project <xref target="NIST"/> as of the time this document is published. <xref target="security-levels-table"/> denotes the five security levels provided by NIST for PQC algorithms. Neither NIST nor the IETF makes any specific recommendations about which security level to use. In general, protocols will include algorithm choices at multiple levels so that users can choose the level appropriate to their policies and data classification, similar to how organizations today choose which size of RSA key to use. The security levels are defined as requiring computational resources comparable to or greater than an attack on AES (128, 192, and 256) and SHA2/SHA3 algorithms, i.e., exhaustive key recovery for AES and optimal collision search for SHA2/SHA3.</t>
      <table anchor="security-levels-table">
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">AES/SHA(2/3) hardness</th>
            <th align="left">PQC Algorithm</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">AES-128 (exhaustive key recovery)</td>
            <td align="left">ML-KEM-512, FN-DSA-512, SLH-DSA-SHA2/SHAKE-128f/s</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">SHA-256/SHA3-256 (collision search)</td>
            <td align="left">ML-DSA-44</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">AES-192 (exhaustive key recovery)</td>
            <td align="left">ML-KEM-768, ML-DSA-65, SLH-DSA-SHA2/SHAKE-192f/s</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">SHA-384/SHA3-384 (collision search)</td>
            <td align="left">No algorithm tested at this level</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">AES-256 (exhaustive key recovery)</td>
            <td align="left">ML-KEM-1024, FN-DSA-1024, ML-DSA-87, SLH-DSA-SHA2/SHAKE-256f/s</td>
          </tr>
        </tbody>
      </table>
      <t>The SLH-DSA-x-yf/s "f/s" in the above table denotes whether SLH-DSA is using SHAKE or SHA-2 as an underlying hash function "x" and whether it is the fast (f) or small (s) version for "y" bit AES security level. Refer to <xref target="RFC9814"/> for further details on SLH-DSA algorithms.</t>
      <t>The following table compares the signature sizes for different SLH-DSA algorithm categories at equivalent security levels using the "simple" version. The categories include "f" for fast signature generation and "s" for smaller signature size and faster verification, although with slower signature generation. Both SHA-256 and SHAKE-256 parameterizations produce the same signature sizes and are therefore included together in the table.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-128f</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">17088</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-128s</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">7856</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-192f</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">35664</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-192s</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">16224</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-256f</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">49856</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-256s</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">29792</td>
          </tr>
        </tbody>
      </table>
      <t>The following table illustrates the impact of performance on different security levels in terms of private key sizes, public key sizes, and ciphertext/signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Ciphertext/signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">ML-KEM-512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">FN-DSA-512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">1312</td>
            <td align="left">2560</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-KEM-768</td>
            <td align="left">1184</td>
            <td align="left">2400</td>
            <td align="left">1088</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4032</td>
            <td align="left">3309</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">FN-DSA-1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1280</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-KEM-1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1588</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">2592</td>
            <td align="left">4896</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
      <!-- [rfced] We note that the title of Section 12 contains the only
abbreviation of KEX in the document. May we rephrase the section title as
follows? Or should "(KEXs)" be left here as is?

Original:
Comparing PQC KEMs/Signatures vs. Traditional KEMs (KEXs)/Signatures

Perhaps:
Comparing PQC KEMs/Signatures and Traditional KEMs/Signatures
-->

</section>
    <section anchor="Comparisons">
      <name>Comparing PQC KEMs/Signatures and Traditional KEMs (KEXs)/Signatures</name>
      <t>This section provides two tables for comparison of different KEMs and signatures, respectively, in the traditional and post-quantum scenarios. These tables focus on the secret key sizes, public key sizes, and ciphertext/signature sizes for the PQC algorithms and their traditional counterparts of similar security levels.</t>
      <t>The first table compares traditional and PQC KEMs in terms of security, public and private key sizes, and ciphertext sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Ciphertext size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">P256_HKDF_SHA-256</td>
            <td align="left">65</td>
            <td align="left">32</td>
            <td align="left">65</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">P521_HKDF_SHA-512</td>
            <td align="left">133</td>
            <td align="left">66</td>
            <td align="left">133</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">X25519_HKDF_SHA-256</td>
            <td align="left">32</td>
            <td align="left">32</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">ML-KEM-512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-KEM-768</td>
            <td align="left">1184</td>
            <td align="left">2400</td>
            <td align="left">1088</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-KEM-1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1568</td>
          </tr>
        </tbody>
      </table>
      <t>The next table compares traditional and PQC signature schemes in terms of security, public, private key sizes, and signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">RSA2048</td>
            <td align="left">256</td>
            <td align="left">256</td>
            <td align="left">256</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">ECDSA-P256</td>
            <td align="left">64</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">FN-DSA-512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">1312</td>
            <td align="left">2560</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4032</td>
            <td align="left">3309</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">FN-DSA-1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1280</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">2592</td>
            <td align="left">4896</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
      <t>As is clear from the above table, PQC KEMs and signature schemes typically have significantly larger keys and ciphertexts/signatures than their traditional counterparts. These increased key and signatures sizes could introduce problems in protocols. As an example, the Internet Key Exchange Protocol Version 2 (IKEv2) uses UDP as the transport protocol for its messages. One challenge with integrating a PQC KEM into IKEv2 is that IKE fragmentation cannot be utilized in the initial IKE_SA_INIT exchange. To address this issue, <xref target="RFC9242"/> introduces a solution by defining a new exchange called the "Intermediate Exchange", which can be fragmented using the IKE fragmentation mechanism. <xref target="RFC9370"/> then uses this Intermediate Exchange to carry out the PQC key exchange after the initial IKEv2 exchange and before the IKE_AUTH exchange. Another example from Section 6.3.3 of <xref target="SP-1800-38C"/> shows that increased key and signature sizes cause protocol key exchange messages to span more network packets, which results in a higher total loss probability per packet. In lossy network conditions, this may increase the latency of the key exchange.</t>
    </section>
    <section anchor="PQT">
      <name>Post-Quantum and Traditional (PQ/T) Hybrid Schemes</name>
      <t>The migration to 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 lifetimes. The traditional algorithms, such as RSA and ECDH, will fall to quantum cryptanalysis, while the post-quantum algorithms face uncertainty about the underlying mathematics, compliance issues, unknown vulnerabilities, and hardware and software implementations that have not had sufficient maturing time to rule out traditional cryptanalytic attacks and implementation bugs.</t>
      <t>During the transition from traditional to post-quantum algorithms, there may be a desire or a requirement for protocols that use both algorithm types. <xref target="RFC9794"/> defines the terminology for PQ/T hybrid schemes.</t>
      <section anchor="pqt-hybrid-confidentiality">
        <name>PQ/T Hybrid Confidentiality</name>
        <t>The PQ/T Hybrid Confidentiality property can be used to mitigate both "harvest now, decrypt now" and HNDL attacks described in <xref target="timeline"/>. If the PQ portion were to have a flaw, the traditional (T) algorithm, which is secure against today's attackers, prevents immediate decryption ("harvest now, decrypt now"). If the T algorithm is broken in the future by CRQCs, the PQ portion, assuming it remains secure, prevents later decryption (i.e., HNDL). A hybrid construction therefore provides confidentiality as long as at least one component remains secure. Two types of hybrid key agreement schemes are discussed below.</t>
        <dl>
          <dt>Concatenated hybrid key agreement scheme:</dt>
          <dd>
            <t>The final shared secret that will be used as an input of the key derivation function is the result of the concatenation of the secrets established with each key agreement scheme. For example, in <xref target="I-D.ietf-tls-hybrid-design"/>, the client uses the TLS supported groups extension to advertise support for a PQ/T hybrid scheme, and the server can select this group if it supports the scheme. The hybrid-aware client and server establish a hybrid secret by concatenating the two shared secrets, which is used as the shared secret in the existing TLS 1.3 key schedule.</t>
          </dd>
          <dt>Cascaded hybrid key agreement scheme:</dt>
          <dd>
            <t>The final shared secret is computed by applying as many iterations of the key derivation function as the number of key agreement schemes composing the hybrid key agreement scheme. For example, <xref target="RFC9370"/> extends IKEv2 to allow one or more PQC algorithms in addition to the traditional algorithm to derive the final IKE Security Association (SA) keys using the cascade method as explained in <xref section="2.2.2" sectionFormat="of" target="RFC9370"/>.</t>
          </dd>
        </dl>
        <t>Various instantiations of these two types of hybrid key agreement schemes have been explored. One must be careful when selecting which hybrid scheme to use. The chosen scheme for protocols like TLS 1.3 <xref target="I-D.ietf-tls-hybrid-design"/> has IND-CCA2 robustness. That is, IND-CCA2 security is guaranteed for the scheme as long as at least one of the component algorithms is IND-CCA2 secure.</t>
      </section>
      <section anchor="pqt-hybrid-authentication">
        <name>PQ/T Hybrid Authentication</name>
        <t>The PQ/T hybrid authentication property provides resilience against catastrophic breaks or unforeseen vulnerabilities in PQC algorithms, allowing systems additional time to stabilize before migrating fully to pure PQ deployments.</t>
        <t>This property ensures authentication using a PQ/T hybrid scheme as long as at least one component algorithm remains secure. For example, a PQ/T hybrid certificate <xref target="I-D.ietf-lamps-pq-composite-sigs"/> can be employed to facilitate a PQ/T hybrid authentication protocol. However, a PQ/T hybrid authentication protocol does not need to use a PQ/T hybrid certificate; separate certificates could be used for individual component algorithms <xref target="RFC9763"/>. When separate certificates are used, it may be possible for attackers to take them apart or put them together in unexpected ways, including enabling cross-protocol attacks. The exact risks this presents are highly dependent on the protocol and use case, so a full security analysis is needed. Best practices for ensuring that pairs of certificates are only used as intended are discussed in more detail in Sections <xref target="COMPOSITE" format="counter"/> and <xref target="REUSE" format="counter"/> of this document.</t>
        <t>The frequency and duration of system upgrades and the time when CRQCs will become widely available need to be weighed to determine whether and when to support the PQ/T Hybrid Authentication property.</t>
      </section>
      <section anchor="hybrid-cryptographic-algorithm-combinations-considerations-and-approaches">
        <name>Hybrid Cryptographic Algorithm Combinations: Considerations and Approaches</name>
        <section anchor="hybrid-cryptographic-combinations">
          <name>Hybrid Cryptographic Combinations</name>
          <t>It is also possible to use more than two algorithms together in a hybrid scheme, with various methods for combining them. For post-quantum transition purposes, the combination of a post-quantum algorithm with a traditional algorithm is the most straightforward and recommended. The use of multiple post-quantum algorithms with different mathematical bases has also been considered. Combining algorithms in a way that requires both to be used together ensures stronger security, while combinations that do not require both will sacrifice security but offer other benefits like backwards compatibility and crypto agility. Including a traditional key alongside a post-quantum key often has minimal bandwidth impact.</t>
        </section>
        <section anchor="COMPOSITE">
          <name>Composite Keys in Hybrid Schemes</name>
          <t>When combining keys in an "and" mode, it may make more sense to consider them to be a single composite key instead of two keys. This generally requires fewer changes to various components of PKI ecosystems, many of which are not prepared to deal with two keys or dual signatures. To those protocol- or application-layer parsers, a "composite" algorithm composed of two "component" algorithms is simply a new algorithm, and support for adding new algorithms generally already exists. Treating multiple "component" keys as a single "composite" key also has security advantages, such as preventing cross-protocol reuse of the individual component keys and guarantees about revoking or retiring all component keys together at the same time, especially if the composite is treated as a single object all the way down into the cryptographic module.</t>
          <t>All that needs to be done is to standardize the formats of how the two keys from the two algorithms are combined into a single data structure and how the two resulting signatures or KEMs are combined into a single signature or KEM. The answer can be as simple as concatenation if the lengths are fixed or easily determined. At the time this document is published, security research is ongoing as to the security properties of concatenation-based composite signatures and KEMs versus more sophisticated signature and KEM combiners and protocol contexts in which those simpler combiners are sufficient.</t>
          <t>One last consideration is the specific pairs of algorithms that can be combined. A recent trend in protocols is to only allow a small number of "known good" configurations that make sense, often referred to in cryptography as a "ciphersuite", instead of allowing arbitrary combinations of individual configuration choices that may interact in dangerous ways. The current consensus is that the same approach should be followed for combining cryptographic algorithms and that "known good" pairs should be explicitly listed ("explicit composite") instead of just allowing arbitrary combinations of any two cryptographic algorithms ("generic composite").</t>
          <t>The same considerations apply when using multiple certificates to transport a pair of related keys for the same subject. Exactly how two certificates should be managed in order to avoid some of the pitfalls mentioned above is still an active area of investigation. Using two certificates keeps the certificate tooling simple and straightforward, but in the end, simply moves the problems with requiring that both certificates are intended to be used as a pair, must produce two signatures that must be carried separately, and both must validate, to the certificate management layer, where addressing these concerns in a robust way can be difficult.</t>
          <t>At least one scheme has been proposed that allows the pair of certificates to exist as a single certificate when being issued and managed but dynamically split into individual certificates when needed (see <xref target="I-D.bonnell-lamps-chameleon-certs"/>).</t>
          <!-- [rfced] This sentence is difficult to follow, especially the phrase "with
requiring...must validate". How may we revise for clarity?

Current:
   Using two certificates keeps the certificate tooling simple and
   straightforward, but in the end simply moves the problems with
   requiring that both certs are intended to be used as a pair, must
   produce two signatures that must be carried separately, and both
   must validate, to the certificate management layer, where addressing
   these concerns in a robust way can be difficult.

Perhaps:
   Using two certificates keeps the certificate tooling simple and
   straightforward, but in the end, this simply moves problems (i.e., problems with
   the requirement that both certificates be used as a pair, that
   two signatures that must be carried separately, and that both
   validate) to the certificate management layer, where addressing
   these concerns in a robust way can be difficult.
-->

<!-- [rfced] Will readers understand "hybrids" and "a hybrid" in these
sentences? The document discusses "hybrid keys", "hybrid schemes", "hybrid
settings", etc.

Original:
   However, key reuse becomes a large security problem within hybrids.
   ...
   Therefore, it is recommended that
   implementers either reuse the entire hybrid key as a whole, or
   perform fresh key generation of all component keys per usage, and
   must not take an existing key and reuse it as a component of a
   hybrid.
   ...
   Another potential application of hybrids bears mentioning, even
   though it is not directly PQC-related.  That is using hybrids to
   navigate inter-jurisdictional cryptographic connections.
   ...
   If "and" mode hybrids become standardized for the reasons mentioned
   above,
-->

</section>
        <section anchor="REUSE">
          <name>Key Reuse in Hybrid Schemes</name>
          <t>An important security note, particularly when using hybrid signature keys, but also to a lesser extent hybrid KEM keys, is key reuse. In traditional cryptography, problems can occur with so-called "cross-protocol attacks" when the same key can be used for multiple protocols; for example, signing TLS handshakes and signing S/MIME emails. While it is not best practice to reuse keys within the same protocol, e.g., using the same key for multiple S/MIME certificates for the same user, it is not generally catastrophic for security. However, key reuse becomes a large security problem within hybrids.</t>
          <t>Consider an {RSA, ML-DSA} hybrid key where the RSA key also appears within a single-algorithm certificate. In this case, an attacker could perform a "stripping attack" where they take some piece of data signed with the {RSA, ML-DSA} key, remove the ML-DSA signature, and present the data as if it was intended for the RSA only certificate. This leads to a set of security definitions called "non-separability properties", which refers to how well the signature scheme resists various complexities of downgrade/stripping attacks <xref target="I-D.ietf-pquip-hybrid-signature-spectrums"/>. Therefore, it is recommended that implementers either reuse the entire hybrid key as a whole or perform fresh key generation of all component keys per usage, and must not take an existing key and reuse it as a component of a hybrid.</t>
        </section>
        <section anchor="future-directions-and-ongoing-research">
          <name>Future Directions and Ongoing Research</name>
          <t>Many aspects of hybrid cryptography are still under investigation. The LAMPS Working Group at IETF is actively exploring the security properties of these combinations, and future standards will reflect the evolving consensus on these issues.</t>
        </section>
      </section>
    </section>
    <section anchor="impact-on-constrained-devices-and-networks">
      <name>Impact on Constrained Devices and Networks</name>
      <!-- [rfced] Please review the parenthetical here. Is the intent of "(e.g.,
LAKE, Core)" to be "(e.g., in the LAKE and CoRE Working Groups)"?

Original:
   In the IoT space, these constraints have historically driven
   significant optimization efforts in the IETF (e.g., LAKE, CoRE) to
   adapt security protocols to resource-constrained environments.

Perhaps:
   In the IoT space, these constraints have historically driven
   significant optimization efforts in the IETF (e.g., in the LAKE and CoRE
   Working Groups) to
   adapt security protocols to resource-constrained environments.
-->

<t>PQC algorithms generally have larger keys, ciphertext, and signature sizes than traditional public key algorithms. This has particular impact on constrained devices that operate with limited data rates. In the Internet of Things (IoT) space, these constraints have historically driven significant optimization efforts in the IETF (e.g., LAKE and CoRE) to adapt security protocols to resource-constrained environments.</t>
      <t>As the transition to PQC progresses, these environments will face similar challenges. Larger message sizes can increase handshake latency, raise energy consumption, and require fragmentation logic. Work is ongoing in the IETF to study how PQC can be deployed in constrained devices (see <xref target="I-D.ietf-pquip-pqc-hsm-constrained"/>).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="cryptanalysis">
        <name>Cryptanalysis</name>
        <t>Traditional cryptanalysis exploits weaknesses in algorithm design, mathematical vulnerabilities, or implementation flaws that are exploitable with classical (i.e., non-quantum) hardware, whereas quantum cryptanalysis harnesses the power of CRQCs to solve specific mathematical problems more efficiently. Quantum side-channel attacks are another form of quantum cryptanalysis. In such attacks, a device under threat is directly connected to a quantum computer, which then injects entangled or superimposed data streams to exploit hardware that lacks protection against quantum side channels. Both pose threats to the security of cryptographic algorithms, including those used in PQC. It is crucial to develop and adopt new cryptographic algorithms resilient against these threats to ensure long-term security in the face of advancing cryptanalysis techniques.</t>
        <t>Recent attacks on the side-channel implementations using deep learning-based power analysis have also shown that one needs to be cautious while implementing the required PQC algorithms in hardware. Two of the most recent works include one attack on ML-KEM <xref target="KyberSide"/> and one attack on Saber <xref target="SaberSide"/>. An evolving threat landscape points to the fact that lattice-based cryptography is indeed more vulnerable to side-channel attacks as in <xref target="SideCh"/> and <xref target="LatticeSide"/>. Consequently, some mitigation techniques for side-channel attacks have been proposed; see <xref target="Mitigate1"/>, <xref target="Mitigate2"/>, and <xref target="Mitigate3"/>.</t>
      </section>
      <section anchor="cryptographic-agility">
        <name>Cryptographic Agility</name>
        <t>Cryptographic agility is recommended for both traditional and quantum cryptanalysis as it enables organizations to adapt to emerging threats, adopt stronger algorithms, comply with standards, and plan for long-term security in the face of evolving cryptanalytic techniques and the advent of CRQCs.</t>
        <t>Several PQC schemes are available that need to be tested; cryptography experts around the world are pushing for the best possible solutions, and the first standards that will ease the introduction of PQC are being prepared. This is of paramount importance and is a call for imminent action for organizations, bodies, and enterprises to start evaluating their cryptographic agility, assess the complexity of implementing PQC into their products, processes, and systems, and develop a migration plan that achieves their security goals to the best possible extent.</t>
        <t>An important and often overlooked step in achieving cryptographic agility is maintaining a cryptographic inventory. Modern software stacks incorporate cryptography in numerous places, making it challenging to identify all instances. Therefore, cryptographic agility and inventory management take two major forms. First, application developers responsible for software maintenance should actively search for instances of hard-coded cryptographic algorithms within applications. When possible, they should design the choice of algorithm to be dynamic, based on application configuration. Second, administrators, policy officers, and compliance teams should take note of any instances where an application exposes cryptographic configurations. These instances should be managed through either organization-wide written cryptographic policies or automated cryptographic policy systems.</t>
        <t>Numerous commercial solutions are available for detecting hard-coded cryptographic algorithms in source code and compiled binaries, as well as providing cryptographic policy management control planes for enterprise and production environments.</t>
      </section>
      <section anchor="jurisdictional-fragmentation">
        <name>Jurisdictional Fragmentation</name>
        <t>Another potential application of hybrids bears mentioning, even though it is not directly related to PQC: using hybrids to navigate inter-jurisdictional cryptographic connections. Traditional cryptography is already fragmented by jurisdiction. Consider that while most jurisdictions support ECDH, those in the United States will prefer the NIST curves while those in Germany will prefer the Brainpool curves. China, Russia, and other jurisdictions have their own national cryptography standards. This situation of fragmented global cryptography standards is unlikely to improve with PQC. If "and" mode hybrids become standardized for the reasons mentioned above, then one could imagine leveraging them to create ciphersuites in which a single cryptographic operation simultaneously satisfies the cryptographic requirements of both endpoints.</t>
      </section>
      <section anchor="hybrid-key-exchange-and-signatures-bridging-the-gap-between-pqt-cryptography">
        <name>Hybrid Key Exchange and Signatures: Bridging the Gap Between PQ/T Cryptography</name>
        <t>Post-quantum algorithms selected for standardization are relatively new and have not been subject to the same depth of study as traditional algorithms. PQC implementations will also be new and therefore more likely to contain implementation bugs than the battle-tested crypto implementations that are relied on today. In addition, certain deployments may need to retain traditional algorithms due to regulatory constraints, e.g., FIPS <xref target="SP-800-56C"/> or Payment Card Industry (PCI) compliance <xref target="PCI"/>. Hybrid key exchange is recommended to enhance security against the HNDL attack. Additionally, hybrid signatures provide for time to react in the case of the announcement of a devastating attack against any one algorithm, while not fully abandoning traditional cryptosystems.</t>
        <t>Hybrid key exchange performs both a classical and a post-quantum key exchange in parallel. It provides security redundancy against potential weaknesses in PQC algorithms, allows for a gradual transition of trust in PQC algorithms, and, in backward-compatible designs, enables gradual adoption without breaking compatibility with existing systems. For instance, in TLS 1.3, a hybrid key exchange can combine a widely supported classical algorithm, such as X25519, with a post-quantum algorithm like ML-KEM. This allows legacy clients to continue using the classical algorithm while enabling upgraded clients to proceed with hybrid key exchange. In contrast, overhead-spreading hybrid designs focus on reducing the PQ overhead. For example, approaches like those described in <xref target="I-D.hale-mls-combiner"/> amortize PQ costs by selectively applying PQ updates in key exchange processes, allowing systems to balance security and efficiency. This strategy ensures a post-quantum secure channel while keeping the overhead manageable, making it particularly suitable for constrained environments.</t>
        <t>While some hybrid key exchange options introduce additional computational and bandwidth overhead, the impact of traditional key exchange algorithms (e.g., key size) is typically small, helping to keep the overall increase in resource usage manageable for most systems. In highly constrained environments, however, those hybrid key exchange protocols may be impractical due to their higher resource requirements compared to pure post-quantum or traditional key exchange approaches. However, some hybrid key exchange designs distribute the PQC overhead, making them more suitable for constrained environments. The choice of hybrid key exchange design depends on the specific system requirements and use case, so the appropriate approach may vary.</t>
      </section>
      <section anchor="caution-ciphertext-commitment-in-kem-vs-dh">
        <name>Caution: Ciphertext Commitment in KEM vs. DH</name>
        <t>The ciphertext generated by a KEM is not necessarily directly linked to the shared secret it produces. KEMs allow for multiple ciphertexts to encapsulate the same shared secret, which enables flexibility in key management without enforcing a strict one-to-one correspondence between ciphertexts and shared secrets. This allows for secret reuse across different recipients, sessions, or operational contexts without the need for new secrets for each use, simplifying key distribution and reducing computational overhead. In contrast, cryptographic schemes like Diffie-Hellman inherently link the public key to the derived shared secret, meaning any change in the public key results in a different shared secret.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="further-reading-and-resources">
      <name>Further Reading and Resources</name>
      <t>A good book on modern cryptography is "Serious Cryptography, 2nd Edition" by Jean-Philippe Aumasson <xref target="Serious-Crypt"/>.</t>
      <t>The Open Quantum Safe (OQS) Project <xref target="OQS"/> is an open-source project that aims to support the transition to quantum-resistant cryptography.</t>
      <t>The IETF's PQUIP Working Group <xref target="PQUIP-WG"/> maintains a list of PQC-related protocol work within the IETF.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.bonnell-lamps-chameleon-certs" to="ENC-PAIR-CERTS"/>
    <displayreference target="I-D.connolly-cfrg-xwing-kem" to="X-WING"/>
    <displayreference target="I-D.hale-mls-combiner" to="PQ-MLS"/>
    <displayreference target="I-D.ietf-hpke-pq" to="PQ-HPKE"/>
    <displayreference target="I-D.ietf-lamps-pq-composite-sigs" to="ML-DSA-X.509"/>
    <displayreference target="I-D.ietf-pquip-hybrid-signature-spectrums" to="HYBRID-SIG-SPECT"/>
    <displayreference target="I-D.ietf-pquip-pqc-hsm-constrained" to="CONSTRAIN-DEV-PCQ"/>
    <displayreference target="I-D.ietf-tls-hybrid-design" to="TLS-HYB-KEY-EXCH"/>
    <displayreference target="I-D.irtf-cfrg-bbs-signatures" to="BBS-SIG-SCHEME"/>
    <displayreference target="I-D.irtf-cfrg-hybrid-kems" to="PQ-KEM"/>
    <displayreference target="I-D.ounsworth-cfrg-kem-combiners" to="KEM-COMBINER"/>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ML-KEM" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="203"/>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
        </reference>
        <reference anchor="ML-DSA" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="204"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.204"/>
        </reference>
        <reference anchor="SLH-DSA" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.pdf">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="NIST FIPS" value="205"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.205"/>
        </reference>
        <reference anchor="Shors" target="https://arxiv.org/pdf/quant-ph/9508027">
          <front>
            <title>Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer</title>
            <author initials="P." surname="Shor" fullname="Peter W. Shor">
              <organization/>
            </author>
            <date year="1996" month="January" day="25"/>
          </front>
          <refcontent>arXiv:quant-ph/9508027v2</refcontent>
        </reference>
        <reference anchor="Grovers" target="https://dl.acm.org/doi/10.1145/237814.237866">
          <front>
            <title>A fast quantum mechanical algorithm for database search</title>
            <author fullname="Lok K. Grover">
              <organization/>
            </author>
            <date year="1996" month="July" day="01"/>
          </front>
          <seriesInfo name="DOI" value="10.1145/237814.237866"/>
          <refcontent>STOC '96: Proceedings of the twenty-eighth annual ACM symposium on Theory of Computing, pp. 212-219</refcontent>
        </reference>
        <reference anchor="RSA" target="https://dl.acm.org/doi/pdf/10.1145/359340.359342">
          <front>
            <title>A Method for Obtaining Digital Signatures and Public-Key Cryptosystems</title>
            <author fullname="Ronald L. Rivest">
              <organization/>
            </author>
            <author initials="A." surname="Shamir">
              <organization/>
            </author>
            <author initials="L." surname="Adleman">
              <organization/>
            </author>
            <date year="1978" month="February"/>
          </front>
          <seriesInfo name="DOI" value="10.1145/359340.359342"/>
          <refcontent>Communications of the ACM, vol. 21, no. 2, pp. 120-126</refcontent>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6090.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8391.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8554.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4034.xml"/>
        <reference anchor="NTRU" target="https://ntru.org/index.shtml">
          <front>
            <title>NTRU</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FrodoKEM" target="https://frodokem.org/">
          <front>
            <title>FrodoKEM</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="ClassicMcEliece" target="https://classic.mceliece.org/">
          <front>
            <title>Classic McEliece</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="FN-DSA" target="https://falcon-sign.info/">
          <front>
            <title>FALCON: Fast Fourier lattice-based compact signatures over NTRU</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8235.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9180.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9881.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9242.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9370.xml"/>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Serious-Crypt">
          <front>
            <title>Serious Cryptography, 2nd Edition</title>
            <author fullname="Jean-Philippe Aumasson">
              <organization/>
            </author>
            <date year="2024" month="August"/>
          </front>
          <refcontent>ISBN 9781718503847</refcontent>
        </reference>
        <reference anchor="Grover-Search" target="https://link.aps.org/doi/10.1103/PhysRevA.60.2746">
          <front>
            <title>Grover's quantum searching algorithm is optimal</title>
            <author fullname="Christof Zalka">
              <organization/>
            </author>
            <date year="1999" month="October"/>
          </front>
          <seriesInfo name="DOI" value="10.1103/PhysRevA.60.2746"/>
          <refcontent>Physical Review A, vol. 60, no. 4, pp. 2746-2751</refcontent>
        </reference>
        <reference anchor="Threat-Report" target="https://globalriskinstitute.org/publications/quantum-threat-timeline-report-2020/">
          <front>
            <title>Quantum Threat Timeline Report 2020</title>
            <author fullname="Michele Mosca">
              <organization/>
            </author>
            <author fullname="Marco Piani">
              <organization/>
            </author>
            <date year="2021" month="January" day="27"/>
          </front>
          <refcontent>Global Risk Institute</refcontent>
        </reference>
        <reference anchor="QC-DNS" target="https://www.icann.org/octo-031-en.pdf">
          <front>
            <title>Quantum Computing and the DNS</title>
            <author fullname="Paul Hoffman">
              <organization/>
            </author>
            <date year="2024" month="April" day="22"/>
          </front>
          <refcontent>ICANN Office of the Chief Technology Officer, OCTO-031v2</refcontent>
        </reference>
        <reference anchor="NIST" target="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization">
          <front>
            <title>Post-Quantum Cryptography Standardization</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Cloudflare" target="https://blog.cloudflare.com/nist-post-quantum-surprise/">
          <front>
            <title>NIST's pleasant post-quantum surprise</title>
            <author fullname="Bas Westerbaan">
              <organization/>
            </author>
            <date year="2022" month="July" day="08"/>
          </front>
          <refcontent>Cloudflare Blog</refcontent>
        </reference>
        <reference anchor="CS01" target="https://eprint.iacr.org/2001/108">
          <front>
            <title>Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack</title>
            <author fullname="Ronald Cramer">
              <organization/>
            </author>
            <author fullname="Victor Shoup">
              <organization/>
            </author>
            <date year="2001"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2001/108</refcontent>
        </reference>
        <reference anchor="BHK09" target="https://eprint.iacr.org/2009/418">
          <front>
            <title>Subtleties in the Definition of IND-CCA: When and How Should Challenge-Decryption be Disallowed?</title>
            <author fullname="Mihir Bellare">
              <organization/>
            </author>
            <author fullname="Dennis Hofheinz">
              <organization/>
            </author>
            <author fullname="Eike Kiltz">
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2009/418</refcontent>
        </reference>
        <reference anchor="GMR88" target="https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Digital%20Signatures/A_Digital_Signature_Scheme_Secure_Against_Adaptive_Chosen-Message_Attack.pdf">
          <front>
            <title>A digital signature scheme secure against adaptive chosen-message attacks</title>
            <author fullname="Shafi Goldwasser">
              <organization/>
            </author>
            <author fullname="Silvio Micali">
              <organization/>
            </author>
            <author fullname="Ronald L. Rivest">
              <organization/>
            </author>
            <date year="1988" month="April"/>
          </front>
          <seriesInfo name="DOI" value="10.1137/0217017"/>
          <refcontent>SIAM Journal on Computing, vol. 17, no. 2, pp. 281-308</refcontent>
        </reference>
        <reference anchor="PQCAPI" target="https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/example-files/api-notes.pdf">
          <front>
            <title>PQC - API notes</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RSA8HRS" target="https://arxiv.org/abs/1905.09749">
          <front>
            <title>How to factor 2048 bit RSA integers in 8 hours using 20 million noisy qubits</title>
            <author fullname="Craig Gidney">
              <organization/>
            </author>
            <author fullname="Martin Ekera">
              <organization/>
            </author>
            <date year="2021" month="April" day="13"/>
          </front>
          <refcontent>arXiv:1905.09749v3</refcontent>
        </reference>
        <reference anchor="RSA10SC" target="https://www.quintessencelabs.com/blog/breaking-rsa-encryption-update-state-art">
          <front>
            <title>Breaking RSA Encryption - an Update on the State-of-the-Art</title>
            <author>
              <organization>QuintessenceLabs</organization>
            </author>
            <date year="2019" month="June" day="13"/>
          </front>
        </reference>
        <reference anchor="RSAShor" target="https://arxiv.org/pdf/quant-ph/0205095.pdf">
          <front>
            <title>Circuit for Shor's algorithm using 2n+3 qubits</title>
            <author fullname="Stephane Beauregard">
              <organization/>
            </author>
            <date year="2003" month="February" day="21"/>
          </front>
          <refcontent>arXiv:quant-ph/0205095v3</refcontent>
        </reference>
        <reference anchor="LIBOQS" target="https://github.com/open-quantum-safe/liboqs">
          <front>
            <title>LibOQS - Open Quantum Safe</title>
            <author>
              <organization/>
            </author>
            <date year="2025" month="November"/>
          </front>
          <refcontent>commit 97f6b86</refcontent>
        </reference>
        <reference anchor="KyberSide" target="https://eprint.iacr.org/2022/1452">
          <front>
            <title>A Side-Channel Attack on a Hardware Implementation of CRYSTALS-Kyber</title>
            <author fullname="Yanning Ji">
              <organization/>
            </author>
            <author fullname="Ruize Wang">
              <organization/>
            </author>
            <author fullname="Kalle Ngo">
              <organization/>
            </author>
            <author fullname="Elena Dubrova">
              <organization/>
            </author>
            <author fullname="Linus Backlund">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/1452</refcontent>
        </reference>
        <reference anchor="SaberSide" target="https://link.springer.com/article/10.1007/s13389-023-00315-3">
          <front>
            <title>A side-channel attack on a masked and shuffled software implementation of Saber</title>
            <author fullname="Kalle Ngo">
              <organization/>
            </author>
            <author fullname="Elena Dubrova">
              <organization/>
            </author>
            <author fullname="Thomas Johansson">
              <organization/>
            </author>
            <date year="2023" month="April" day="25"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/s13389-023-00315-3"/>
          <refcontent>Journal of Cryptographic Engineering, vol. 13, pp. 443-460</refcontent>
        </reference>
        <reference anchor="SideCh" target="https://eprint.iacr.org/2022/919">
          <front>
            <title>Side-Channel Attacks on Lattice-Based KEMs Are Not Prevented by Higher-Order Masking</title>
            <author fullname="Kalle Ngo">
              <organization/>
            </author>
            <author fullname="Ruize Wang">
              <organization/>
            </author>
            <author fullname="Elena Dubrova">
              <organization/>
            </author>
            <author fullname="Nils Paulsrud">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/919</refcontent>
        </reference>
        <reference anchor="LatticeSide" target="https://eprint.iacr.org/2019/948">
          <front>
            <title>Generic Side-channel attacks on CCA-secure lattice-based PKE and KEM schemes</title>
            <author fullname="Prasanna Ravi">
              <organization/>
            </author>
            <author fullname="Sujoy Sinha Roy">
              <organization/>
            </author>
            <author fullname="Anupam Chattopadhyay">
              <organization/>
            </author>
            <author fullname="Shivam Bhasin">
              <organization/>
            </author>
            <date year="2019"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2019/948</refcontent>
        </reference>
        <reference anchor="Mitigate1" target="https://eprint.iacr.org/2022/873">
          <front>
            <title>POLKA: Towards Leakage-Resistant Post-Quantum CCA-Secure Public Key Encryption</title>
            <author fullname="Clément Hoffmann">
              <organization/>
            </author>
            <author fullname="Benoît Libert">
              <organization/>
            </author>
            <author fullname="Charles Momin">
              <organization/>
            </author>
            <author fullname="Thomas Peters">
              <organization/>
            </author>
            <author fullname="François-Xavier Standaert">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/873</refcontent>
        </reference>
        <reference anchor="Mitigate2" target="https://ieeexplore.ieee.org/document/9855226">
          <front>
            <title>Leakage-Resilient Certificate-Based Authenticated Key Exchange Protocol</title>
            <author initials="T." surname="Tsai">
              <organization/>
            </author>
            <author initials="S." surname="Huang">
              <organization/>
            </author>
            <author initials="Y." surname="Tseng">
              <organization/>
            </author>
            <author initials="Y." surname="Chuang">
              <organization/>
            </author>
            <author initials="Y." surname="Hung">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <seriesInfo name="DOI" value="10.1109/OJCS.2022.3198073"/>
          <refcontent>IEEE Open Journal of the Computer Society, vol. 3, pp. 137-148</refcontent>
        </reference>
        <reference anchor="Mitigate3" target="https://eprint.iacr.org/2022/916">
          <front>
            <title>Post-Quantum Authenticated Encryption against Chosen-Ciphertext Side-Channel Attacks</title>
            <author fullname="Melissa Azouaoui">
              <organization/>
            </author>
            <author fullname="Yulia Kuzovkova">
              <organization/>
            </author>
            <author fullname="Tobias Schneider">
              <organization/>
            </author>
            <author fullname="Christine van Vredendaal">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2022/916</refcontent>
        </reference>
        <reference anchor="CNSA2-0" target="https://media.defense.gov/2025/May/30/2003728741/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS.PDF">
          <front>
            <title>Announcing the Commercial National Security Algorithm Suite 2.0</title>
            <author>
              <organization>NSA</organization>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="LattFail1" target="https://link.springer.com/chapter/10.1007/978-3-030-17259-6_19">
          <front>
            <title>Decryption Failure Attacks on IND-CCA Secure Lattice-Based Schemes</title>
            <author fullname="Jan-Pieter D'Anvers">
              <organization/>
            </author>
            <author fullname="Qian Guo">
              <organization/>
            </author>
            <author fullname="Thomas Johansson">
              <organization/>
            </author>
            <author fullname="Alexander Nilsson">
              <organization/>
            </author>
            <author fullname="Frederik Vercauteren">
              <organization/>
            </author>
            <author fullname="Ingrid Verbauwhede">
              <organization/>
            </author>
            <date year="2019" month="April" day="06"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/978-3-030-17259-6_19"/>
          <refcontent>Public-Key Cryptography - PKC 2019, Lecture Notes in Computer Science, vol. 11443, pp. 565-598</refcontent>
        </reference>
        <reference anchor="LattFail2" target="https://link.springer.com/chapter/10.1007/978-3-030-45727-3_1">
          <front>
            <title>(One) Failure Is Not an Option: Bootstrapping the Search for Failures in Lattice-Based Encryption Schemes</title>
            <author fullname="Jan-Pieter D'Anvers">
              <organization/>
            </author>
            <author fullname="Mélissa Rossi">
              <organization/>
            </author>
            <author fullname="Fernando Virdia">
              <organization/>
            </author>
            <date year="2020" month="May" day="01"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/978-3-030-45727-3_1"/>
          <refcontent>Advances in Cryptology - EUROCRYPT 2020, Lecture Notes in Computer Science, vol. 12107, pp. 3-33</refcontent>
        </reference>
        <reference anchor="BSI-PQC" target="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Brochure/quantum-safe-cryptography.html?nn=916626">
          <front>
            <title>Quantum-safe cryptography - fundamentals, current developments and recommendations</title>
            <author>
              <organization>BSI</organization>
            </author>
            <date year="2022" month="May" day="18"/>
          </front>
        </reference>
        <reference anchor="PQRSA" target="https://cr.yp.to/papers/pqrsa-20170419.pdf">
          <front>
            <title>Post-quantum RSA</title>
            <author fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <author fullname="Nadia Heninger">
              <organization/>
            </author>
            <author fullname="Paul Lou">
              <organization/>
            </author>
            <author fullname="Luke Valenta">
              <organization/>
            </author>
            <date year="2017" month="April" day="19"/>
          </front>
        </reference>
        <reference anchor="SP-800-56C" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf">
          <front>
            <title>Recommendation for Key-Derivation Methods in Key-Establishment Schemes</title>
            <author fullname="Elaine Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen">
              <organization/>
            </author>
            <author fullname="Richard Davis">
              <organization/>
            </author>
            <date year="2020" month="August"/>
          </front>
          <seriesInfo name="NIST SP" value="800-56Cr2"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-56Cr2"/>
        </reference>
        <reference anchor="Lyu09" target="https://www.iacr.org/archive/asiacrypt2009/59120596/59120596.pdf">
          <front>
            <title>Fiat-Shamir With Aborts: Applications to Lattice and Factoring-Based Signatures</title>
            <author fullname="Vadim Lyubashevsky">
              <organization/>
            </author>
            <date/>
          </front>
          <refcontent>ASIACRYPT 2009</refcontent>
        </reference>
        <reference anchor="SP-1800-38C" target="https://www.nccoe.nist.gov/sites/default/files/2023-12/pqc-migration-nist-sp-1800-38c-preliminary-draft.pdf">
          <front>
            <title>Migration to Post-Quantum Cryptography Quantum Readiness: Testing Draft Standards, Volume C: Quantum-Resistant Cryptography Technology Interoperability and Performance Report</title>
            <author fullname="William Newhouse">
              <organization/>
            </author>
            <author fullname="Murugiah Souppaya">
              <organization/>
            </author>
            <author fullname="William Barke">
              <organization/>
            </author>
            <author fullname="Chris Brown">
              <organization/>
            </author>
            <author fullname="Panos Kampanakis">
              <organization/>
            </author>
            <author fullname="Jim Goodman">
              <organization/>
            </author>
            <author fullname="Julien Prat">
              <organization/>
            </author>
            <author fullname="Robin Larrieu">
              <organization/>
            </author>
            <author fullname="John Gray">
              <organization/>
            </author>
            <author fullname="Mike Ounsworth">
              <organization/>
            </author>
            <author fullname="Cleandro Viana">
              <organization/>
            </author>
            <author fullname="Hubert Le Van Gong">
              <organization/>
            </author>
            <author fullname="Kris Kwiatkowsk">
              <organization/>
            </author>
            <author fullname="Anthony Hu">
              <organization/>
            </author>
            <author fullname="Robert Burns">
              <organization/>
            </author>
            <author fullname="Christian Paquin">
              <organization/>
            </author>
            <author fullname="Jane Gilbert">
              <organization/>
            </author>
            <author fullname="Gina Scinta">
              <organization/>
            </author>
            <author fullname="Eunkyung Kim">
              <organization/>
            </author>
            <author fullname="Volker Krumme">
              <organization/>
            </author>
            <date year="2023" month="December"/>
          </front>
          <seriesInfo name="NIST SP" value="1800-38C"/>
          <refcontent>Preliminary Draft</refcontent>
        </reference>
        <reference anchor="KEEPINGUP" target="https://eprint.iacr.org/2023/1933">
          <front>
            <title>Keeping Up with the KEMs: Stronger Security Notions for KEMs and automated analysis of KEM-based protocols</title>
            <author fullname="Cas Cremers">
              <organization/>
            </author>
            <author fullname="Alexander Dax">
              <organization/>
            </author>
            <author fullname="Niklas Medinger">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2023/1933</refcontent>
        </reference>
        <reference anchor="NISTFINAL" target="https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards">
          <front>
            <title>NIST Releases First 3 Finalized Post-Quantum Encryption Standards</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
        </reference>
        <reference anchor="ANSSI" target="https://cyber.gouv.fr/sites/default/files/document/follow_up_position_paper_on_post_quantum_cryptography.pdf">
          <front>
            <title>ANSSI views on the Post-Quantum Cryptography transition (2023 follow up)</title>
            <author>
              <organization>ANSSI</organization>
            </author>
            <date year="2023" month="December" day="21"/>
          </front>
        </reference>
        <reference anchor="HQC" target="http://pqc-hqc.org/">
          <front>
            <title>HQC</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="BIKE" target="http://pqc-hqc.org/">
          <front>
            <title>BIKE</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="PQUIP-WG" target="https://datatracker.ietf.org/group/pquip/documents/">
          <front>
            <title>Post-Quantum Use In Protocols (pquip)</title>
            <author>
              <organization>IETF</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="OQS" target="https://openquantumsafe.org/">
          <front>
            <title>Open Quantum Safe Project</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="CRQCThreat" target="https://sam-jaques.appspot.com/quantum_landscape_2024">
          <front>
            <title>Landscape of Quantum Computing</title>
            <author fullname="Sam Jaques">
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="QuantSide" target="https://arxiv.org/pdf/2304.03315">
          <front>
            <title>Exploration of Quantum Computer Power Side-Channels</title>
            <author fullname="Chuanqi Xu">
              <organization/>
            </author>
            <author fullname="Ferhat Erata">
              <organization/>
            </author>
            <author fullname="Jakub Szefer">
              <organization/>
            </author>
            <date year="2023" month="May" day="09"/>
          </front>
          <refcontent>arXiv:2304.03315v2</refcontent>
        </reference>
        <reference anchor="AddSig" target="https://csrc.nist.gov/Projects/pqc-dig-sig/standardization">
          <front>
            <title>Post-Quantum Cryptography: Additional Digital Signature Schemes</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="BPQS" target="https://eprint.iacr.org/2018/658">
          <front>
            <title>Blockchained Post-Quantum Signatures</title>
            <author fullname="Konstantinos Chalkias">
              <organization/>
            </author>
            <author fullname="James Brown">
              <organization/>
            </author>
            <author fullname="Mike Hearn">
              <organization/>
            </author>
            <author fullname="Tommy Lillehagen">
              <organization/>
            </author>
            <author fullname="Igor Nitto">
              <organization/>
            </author>
            <author fullname="Thomas Schroeter">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
          <refcontent>Cryptology ePrint Archive, Paper 2018/658</refcontent>
        </reference>
        <reference anchor="PCI" target="https://docs-prv.pcisecuritystandards.org/PCI%20DSS/Standard/PCI-DSS-v4_0_1.pdf">
          <front>
            <title>Payment Card Industry Data Security Standard</title>
            <author>
              <organization>PCI Security Standards Council</organization>
            </author>
            <date/>
          </front>
          <refcontent>PCI DSS: v4.0.1</refcontent>
        </reference>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.bonnell-lamps-chameleon-certs.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.connolly-cfrg-xwing-kem.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.hale-mls-combiner.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-hpke-pq.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lamps-pq-composite-sigs.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pquip-hybrid-signature-spectrums.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pquip-pqc-hsm-constrained.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-hybrid-design.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-cfrg-bbs-signatures.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.irtf-cfrg-hybrid-kems.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ounsworth-cfrg-kem-combiners.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9941.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9528.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9814.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9794.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9763.xml"/>
      </references>
    </references>
    <?line 1623?>

<!-- [rfced] References

a) FYI - We note that draft-hale-mls-combiner-01 has been replaced with
draft-ietf-mls-combiner-02. Should this reference entry be updated
accordingly? Note that the title has changed.

Original:
   [I-D.hale-mls-combiner]
              Joël, Hale, B., Mularczyk, M., and X. Tian, "Flexible
              Hybrid PQ MLS Combiner", Work in Progress, Internet-Draft,
              draft-hale-mls-combiner-01, 26 September 2024,
              <https://datatracker.ietf.org/doc/html/draft-hale-mls-
              combiner-01>.

Perhaps:
   [PQ-MLS]
              Tian, X., Hale, B., Mularczyk, M., and J. Alwen, "Amortized
              PQ MLS Combiner", Work in Progress, Internet-Draft,
              draft-ietf-mls-combiner-02, 20 October 2025,
              <https://datatracker.ietf.org/doc/html/draft-ietf-mls-combiner-02>.

b) The URLs in both of the following reference entries point to the same
URL. Should the URL for [BIKE] be updated to something else? We do not see
BIKE mentioned at this URL. Note that we found the following page for BIKE
(Bit Flipping Key Encapsulation): https://bikesuite.org/.

Current:
   [BIKE] "BIKE", <http://pqc-hqc.org/>.
   ...
   [HQC]  "HQC", <http://pqc-hqc.org/>.

Perhaps (update URL for [BIKE]):
   [BIKE] "BIKE", <https://bikesuite.org/>.
   ...
   [HQC]  "HQC", <http://pqc-hqc.org/>.

c) We updated many of the reference entries in the references section to
include titles, URLs, and additional publication information that may be
helpful for future readers. Please review and let us know if you have any
concerns or corrections.
-->

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <!-- [rfced] Acknowledgements:

a) Would you like the cite the draft here? If so, please provide the
draftstring so we can create a reference entry.

Original:
   This document leverages text from an earlier draft by Paul Hoffman.


b) Would you like to include a surname for "Florence D" and "Ben S" rather
than just an initial? If so, please provide the surnames.

Original:
   This document leverages text from an earlier draft by Paul Hoffman.
   Thanks to Dan Wing, Florence D, Thom Wiggers, Sophia Grundner-
   Culemann, Panos Kampanakis, Ben S, Sofia Celi, Melchior Aelmans,
   Falko Strenzke, Deirdre Connolly, Hani Ezzadeen, Britta Hale, Scott
   Rose, Hilarie Orman, Thomas Fossati, Roman Danyliw, Mike Bishop,
   Mališa Vučinić, Éric Vyncke, Deb Cooley, Dirk Von Hugo and Daniel Van
   Geest for the discussion, review, and comments.
-->

<t>This document leverages text from an earlier Internet-Draft by <contact fullname="Paul Hoffman"/>. Thanks to <contact fullname="Dan Wing"/>, <contact fullname="Florence D"/>, <contact fullname="Thom Wiggers"/>, <contact fullname="Sophia Grundner-Culemann"/>, <contact fullname="Panos Kampanakis"/>, <contact fullname="Ben S"/>, <contact fullname="Sofia Celi"/>, <contact fullname="Melchior Aelmans"/>, <contact fullname="Falko Strenzke"/>, <contact fullname="Deirdre Connolly"/>, <contact fullname="Hani Ezzadeen"/>, <contact fullname="Britta Hale"/>, <contact fullname="Scott Rose"/>, <contact fullname="Hilarie Orman"/>, <contact fullname="Thomas Fossati"/>, <contact fullname="Roman Danyliw"/>, <contact fullname="Mike Bishop"/>, <contact fullname="Mališa Vučinić"/>, <contact fullname="Éric Vyncke"/>, <contact fullname="Deb Cooley"/>, <contact fullname="Dirk Von Hugo"/>, and <contact fullname="Daniel Van Geest"/> for the discussion, review and comments.</t>
      <t>In particular, the authors would like to acknowledge the contributions to this document by <contact fullname="Kris Kwiatkowski"/>.</t>
      <!-- [rfced] Would you like to make use of <sup> for superscript in this
document? In the HTML and PDF, it appears as superscript. In the text output,
<sup> generates a^b, which was used in the original document. (Note that if
you would like to use <sup>, we will make the update once the file is
converted to RFCXML.)

Instances in document:
 2^{64}
 2^c
 2^{(128−c)/2}
 2^64
-->

<!-- [rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed.  Updates of this nature typically
result in more precise language, which is helpful for readers. For example,
please consider whether "tradition" should be updated for clarity. While the
NIST website
<https://web.archive.org/web/20250214092458/https://www.nist.gov/nist-research-library/nist-technical-series-publications-author-instructions#table1>
indicates that this term is potentially biased, it is also ambiguous.
"Tradition" is a subjective term, as it is not the same for everyone.  -->

<!-- [rfced] Abbreviations

a) We note that KEM is expanded in the following ways in this document:

key encapsulation mechanism (KEM)
key encapsulation method (KEM)
key establishment method (KEM)

Should the latter two (one instance each) be updated to "key encapsulation
mechanism (KEM)" (most common in document) or simply "KEM" (as the
abbreviation was already expanded)? Or should these be handled in some other
way so that the expansion of KEM is consistent in the document?


b) How should "MAC" be expanded? As "Media Access Control (MAC)", "Message
Authentication Code (MAC)", or something else?

Original:
   It is crucial for the reader to understand that when
   the word "PQC" is mentioned in the document, it means asymmetric
   cryptography (or public key cryptography), and not any symmetric
   algorithms based on stream ciphers, block ciphers, hash functions,
   MACs, etc., which are less vulnerable to quantum computers.


c) We have updated the expansion for "AEAD" below as follows. Please review
and let us know any objections.

Original:
   HPKE [RFC9180] works with a combination of KEMs, KDFs, and
   authenticated encryption with additional data (AEAD) schemes.

Current:
   HPKE [RFC9180] works with a combination of KEMs, KDFs, and
   Authenticated Encryption with Associated Data (AEAD) schemes.


d) How should "BIKE" be expanded? As "Bit Flipping Key Encapsulation"?

Original:
  Examples include all the unbroken NIST Round 4 finalists: Classic
  McEliece, HQC (selected by NIST for standardization), and [BIKE].


e) We have added expansions for the following abbreviations upon first
use per Section 3.6 of RFC 7322 ("RFC Style Guide"). Please review each
expansion in the document carefully to ensure correctness.

Security Association (SA)
Trusted Execution Environments (TEEs)
Hash to Obtain Random Subset with Trees (HORST)
Hashed Message Authentication Code (HMAC)
Internet of Things (IoT)
Payment Card Industry (PCI)
-->

<!-- [rfced] We see both of the following forms used in the document. Should
these be uniform? If so, please let us know which form is preferred.

hash-then-sign
Hash-then-Sign
-->

</section>
  </back>
  <!-- ##markdown-source:
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
1pyvNWgQC4rJyys+p73MuqSDmYdlpU1LxyzleMNBQGZJC+7csSV0hWGxa6+t
AL/YkJ2g3TOpWboWWsiD3K3lKoM0NVycuAQNNKBJdLJMlEFAEqrWw5s2s6cI
uKu0sYNIrZPVOI25C2MAtDGkxgO3MIMjMhGS0awrZhphgpvrjqN4jPyb5YaH
mM9GOdWQG7508bHVb0/SAfPftR1Bn3Wi3HzN13zrLutIQMU2+UdIiD5PzSc+
P+g7RC0yDq1sP7irUY+b7qmTex48RISEbtldewtJZ0RcED95hGjK7v29vXu3
3lMn92zv7VjYZ909kHjhTTiIc++Rde6mm+r0pp1HDx5xHKdNDjTrCpaSBwTa
Lu92n65PLuFlW8CBwFxf6aKr+y1oQ45bBH6hrcZWWbPyG5pYQ5m6cS/cshlA
Db6uN1+5Mb5qR/yWLWE/2/6kDT9RBWt++fDu3RatwN26vbe7c8PXWUbaTEsL
fNmt/Yrq4Eq/Hj24pV87D7dv+DrL9vb2PqNf7t383SvaoX25vbu9MhzJrbT9
VkY06dfOvZ22Ic/WKZst8+iGPPRr+2GLJuv7dW91ppN+bUNSfmG/oja70q9H
928er3t3b1lfu7t3H93er/vu4/ir0y6b/XrwyL1Ky607u3fv3/A1L8DPmMf2
fjkVuNmv+23byd26u716Qdqv+58zj+39ihp488ud+49umceHj1b2W9Kve3s7
bVua+9XIbioaNepC3eQADtzh4ApHpAUsMLnu5MMhsg8cwc1PplGZPyoUT5wX
SvGmWF8F4OExed2xkszZ27m5E7sb1Fzd68KvyDVBxIGHvLqEzE2xjnS8wuQH
W8tWJCDJPiA/wHmKmc1FWnaXuVqGNzeHc7TZnG+Hk6juZL+9kdU+ZR/v+AQU
9SbayAXMDvDpmuWiDOAO+Rk1iMBi4/NNPMi2H3Rh1zOO+yV0MRYzNtKF8OjR
MoCXPBT7yxSSEG1J/Y0WqylT4KHm4yBOIdkY6pJrJoqoOlbOUROoYZI1Xtqm
LdG0Yv6Hvo+Hgq19txtVrL+nhmU/B2lXkqu+wPv1+ypYfp/EdzqiM/+XF6+e
Pf/FrEUn+/ZWTpGGZFw9/pqKTGsLWZbd2q/7O9uxX6pkRUWm5fzzD25Tn9KD
prWF2/v10879+9uPmgNm37YNx28br/YWkn5x99tu/scrylHDaunXP1Dxy1ZU
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
qgQeBfkTmELu9f8DzGTvsRf3AQA=

-->

</rfc>
