<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.23 (Ruby 3.2.3) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pquip-pqc-engineers-08" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="PQC for Engineers">Post-Quantum Cryptography for Engineers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-engineers-08"/>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="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>
          <country>USA</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="2025" month="February" day="11"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <abstract>
      <?line 233?>

<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), detailing 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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-pquip-pqc-engineers/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        pquip Working Group mailing list (<eref target="mailto:pqc@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/pqc/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/pqc/"/>.
      </t>
    </note>
  </front>
  <middle>
    <?line 237?>

<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 public-key cryptographic 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, so too will quantum computers have a niche set of problems on which they excel. Unfortunately for cryptographers, integer factorization and discrete logarithms, the mathematical problems underpinning much of modern cryptography, happen to fall within the niche that quantum computers are expected to excel at. As such, 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.</t>
      <t>Extensive research has produced several post-quantum cryptographic (PQC) 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.</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 and ECC. 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.</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, understanding the differences between PQC key encapsulation mechanisms (KEMs) and traditional Diffie-Hellman and RSA style key exchanges, and provides insights into expected key sizes and processing time differences between PQC and traditional algorithms. Additionally, it discusses the potential threat to symmetric cryptography 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 co-exist 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"/> which largely aligns with United States National Institute of Standards and Technology (NIST) and NSA guidance, but differs on some of the guidance.</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, which can break widely-used public key schemes like RSA and ECC. Symmetric cryptography and hash functions also face some risk from Grover's algorithm, although the impact is less severe and can typically be mitigated by doubling key lengths. 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. This document does not cover such topics as when traditional algorithms might become vulnerable (for that, see documents such as <xref target="QC-DNS"/> and others). It also 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 (that is, not quantum) math and software and 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>
      <t>There is ongoing discussion about whether to use the term "post-quantum", "quantum ready", or "quantum resistant", to describe algorithms that resist CRQCs, and a consensus has not yet been reached. It is important to clarify that "post-quantum" refers to algorithms designed to withstand attacks by CRQCs and classical computers alike. These algorithms are based on mathematically hard cryptographic problems that neither CRQCs nor classical computers are expected to break. This document uses any of these terms interchangeably to refer to such
algorithms.</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>Despite the fact that large-scale quantum computers do not yet exist to experiment on, the theoretical properties of quantum computation are very well understood. This allows us to reason today about the upper limits of quantum-enhanced computation, and indeed to design cryptographic algorithms that are resistant to any conceivable for 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.</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 today to counter the quadratic speedup and maintain 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, whereas 2^{64} classical operations can be efficiently parallelized, 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>
        <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, 192, and 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 National Agency for the Security of Information Systems (ANSSI), recommend the use of AES-256 <xref target="ANSSI"/>.</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 cryptography algorithms (e.g., RSA, Diffie-Hellman and elliptic curve cryptography, as well as less commonly-used variants such as ElGamal and Schnorr signatures) 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, to provide some context, one would need around 20 million noisy qubits to break RSA-2048 in 8 hours <xref target="RSAShor"/> and <xref target="RSA8HRS"/> or 4099 stable (or logical) qubits to break it <xref target="RSA10SC"/>.</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>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. 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>
      </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 sufficiently large general-purpose quantum computer, known as a CRQC. This document focuses on the principal functions of asymmetric cryptography:</t>
      <ul spacing="normal">
        <li>
          <t>Key agreement and key transport: 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 this is based on public key cryptography and is 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 case of RSA), which in turn can be exploited to derive the private key. In the case of Diffie-Hellman, a CRQC has the potential to calculate the exponent or discrete logarithm of the (short or long-term) Diffie-Hellman public key. This, in turn, would reveal the secret required to derive the symmetric encryption key.</t>
        </li>
        <li>
          <t>Digital signatures: 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, and hence a break in public key cryptography will also affect traditional digital signatures, hence the importance of developing post-quantum digital signatures.</t>
        </li>
        <li>
          <t>BBS signatures: BBS (Boneh-Boyen-Shacham) 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 quantum attacks. A CRQC can break the data authenticity security property of BBS but not the data confidentiality (Section 6.9 of <xref target="I-D.irtf-cfrg-bbs-signatures"/>).</t>
        </li>
        <li>
          <t>Content encryption: 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>
        </li>
      </ul>
    </section>
    <section anchor="invariants-of-pqc-necessitating-compliance-adjustments">
      <name>Invariants of PQC: Necessitating Compliance Adjustments</name>
      <t>In the context of PQC, symmetric-key cryptographic algorithms are generally not directly impacted by quantum computing advancements. Symmetric-key cryptography, which includes keyed primitives such as block ciphers (e.g., AES) and message authentication mechanisms (e.g., HMAC-SHA2), 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. HMAC is a specific construction that utilizes a cryptographic hash function (such as SHA-2) and a secret key shared between the sender and receiver to produce a message authentication code.</t>
      <t>Grover's algorithm does not pose a practical threat to symmetric cryptography (see <xref target="symmetric"/> for more details). As a result, CRQCs offer no substantial advantages in breaking symmetric-key algorithms compared to classical computers. However, for compliance purposes, such as meeting the standards of CNSA 2.0 (Commercial National Security Algorithm Suite 2.0) <xref target="CNSA2-0"/>, AES-256 must be used to ensure the highest level of security against both traditional and quantum threats.</t>
    </section>
    <section anchor="nist-pqc-algorithms">
      <name>NIST PQC Algorithms</name>
      <t>At time of writing, NIST have standardized three PQC algorithms, with more expected to be standardised in the future (<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 as 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>
        <section anchor="pqc-key-encapsulation-mechanisms-kems">
          <name>PQC Key Encapsulation Mechanisms (KEMs)</name>
          <ul spacing="normal">
            <li>
              <t><xref target="ML-KEM"/>: Module-Lattice-based Key-Encapsulation Mechanism Standard (FIPS-203).</t>
            </li>
          </ul>
        </section>
        <section anchor="pqc-signatures">
          <name>PQC Signatures</name>
          <ul spacing="normal">
            <li>
              <t><xref target="ML-DSA"/>: Module-Lattice-Based Digital Signature Standard (FIPS-204).</t>
            </li>
            <li>
              <t><xref target="SLH-DSA"/>: Stateless Hash-Based Digital Signature (FIPS-205).</t>
            </li>
            <li>
              <t><xref target="FN-DSA"/>: FN-DSA is a lattice signature scheme (<xref target="lattice-based"/> and <xref target="sig-scheme"/>).</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="candidates-advancing-to-the-fourth-round-for-standardization-at-nist">
        <name>Candidates Advancing to the Fourth Round for Standardization at NIST</name>
        <t>The fourth-round of the NIST process focuses only on KEMs. The goal of that round is to select an alternative algorithm that is based on different hard problem than ML-KEM.
The candidates still advancing for standardization are:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="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.</t>
          </li>
          <li>
            <t><xref target="BIKE"/>: Based on the hardness of syndrome decoding of Quasi-Cyclic Moderate Density Parity Check (QC-MDPC) codes. QC-MDPC codes are a class of error-correcting codes that leverages bit flipping techniques to efficiently correct errors.</t>
          </li>
          <li>
            <t><xref target="HQC"/>: Based on the hardness of syndrome decoding of Quasi-cyclic concatenated Reed Muller Reed Solomon (RMRS) codes in the Hamming metric. Reed Muller (RM) codes are a class of block error-correcting codes used especially in wireless and deep space communications. Reed Solomon (RS) are a class of block error correcting codes that are used to detect and correct multiple bit errors.</t>
          </li>
          <li>
            <t><xref target="SIKE"/> (Broken): Supersingular Isogeny Key Encapsulation (SIKE) is a specific realization of the SIDH (Supersingular Isogeny Diffie-Hellman) protocol. Recently, a mathematical attack <xref target="SIDH-Attack"/> based on the "glue-and-split" theorem from 1997 from Ernst Kani was found against the underlying chosen starting curve and torsion information. In practical terms, this attack allows for the efficient recovery of the private key. NIST announced that SIKE was no longer under consideration, but the authors of SIKE had asked for it to remain in the list so that people are aware that it is broken. While SIKE is broken, isogenies in general remain an active area of cryptographic research due to their very attractive bandwidth usage, and yet more cryptographic primitives in the future may appear from this research area.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="timeline">
      <name>Timeline for Transition</name>
      <t>The timeline, and driving motivation for transition differs 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" 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 smartcards. Even for short-lived signatures 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>
        <artwork><![CDATA[
+------------------------+----------------------------+
|                        |                            |
|           y            |             x              |
+------------------------+----------+-----------------+
|                                   | <--------------->
|               z                   |   Security gap
+-----------------------------------+

]]></artwork>
      </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 remain 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 under-estimated, like 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. Bear in mind also 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.</t>
      <t>Organizations should also consider carefully and honestly what their migration timeline "y" actually is. If you think only 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, TEEs, Secure Enclaves, and other cryptographic co-processors. Smartcard applications will require replacement of the cards as well as of the readers which can come in many form-factors: tap-for-entry door and turnstile readers, PIN pad machines, laptops with built-in smartcard readers, and many others.</t>
      <t>Included in "y" is not only the deployment time, but also preparation time: integration, testing, auditing, and re-certification of cryptographic environments. Consider also upstream effects that contribute to "y", including lead-times for your 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 or decades for even most moderately-sized organizations.</t>
    </section>
    <section anchor="pqc-categories">
      <name>PQC Categories</name>
      <t>The post-quantum cryptographic schemes standardized by NIST, along with the ongoing Round 4 candidates, 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.</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 schemes usually have good performances and average size public keys and signatures (average within the PQC primitives at least; they are still several orders of magnitude larger than e.g., RSA or ECC signatures), 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 and ML-DSA.</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; as such, 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 has been 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 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 mathematically based on the security of the selected cryptographic hash function. Many variants of hash-based signatures (HBS) have been developed since the 70s including the recent XMSS <xref target="RFC8391"/>, HSS/LMS <xref target="RFC8554"/> or 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 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 with 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, and therefore 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 HBS 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 leverages the HORST (hash to obtain random subset with trees) technique and remains the only hash based signature scheme that is stateless, thus avoiding the complexities associated with state management.</t>
        <t>SLH-DSA is an advancement on SPHINCS which reduces the signature sizes in SPHINCS and makes it more compact. SLH-DSA was recently standardized by NIST.</t>
      </section>
      <section anchor="code-based">
        <name>Code-Based Public-Key Cryptography</name>
        <t>This area of cryptography started in the 1970s and 80s 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 Hamming quasi-cyclic (HQC), or quasi-cyclic moderate density parity check (QC-MDPC) codes.</t>
        <t>Examples include all the NIST Round 4 (unbroken) finalists: Classic McEliece, HQC, BIKE.</t>
      </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>Derive a data encryption key (DEK) to encrypt the data</t>
        </li>
        <li>
          <t>Derive a key encryption key (KEK) used to wrap a DEK</t>
        </li>
      </ul>
      <t>These techniques are often referred to as "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 / 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 / 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:</t>
      <t>KEM relies on the following 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>
        <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 target="I-D.draft-ietf-lake-edhoc"/>. However, 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 Diffie-Hellman (DH) Key exchange:</t>
        <figure anchor="tab-dh-ake">
          <name>Diffie-Hellman 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>
        <t>What's important to note about the sample flow above is 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) which 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 Diffie-Hellman key exchange which is an AKE, since both parties are using long-term keys which 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>Diffie-Hellman 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 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>
        <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>Here, <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 of either input even if the other is chosen maliciously, then a more complex construct is required. Another consideration for combiner design is 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.draft-ounsworth-cfrg-kem-combiners"/>, and <xref target="I-D.draft-connolly-cfrg-xwing-kem"/>.</t>
      </section>
      <section anchor="security-properties-of-kems">
        <name>Security Properties of KEMs</name>
        <section anchor="ind-cca2">
          <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. IETF specification authors should include all security concerns in the "Security Considerations" section of the relevant RFC and not rely on implementers being experts in cryptographic theory.</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 which will decapsulate to the same shared secret; or can construct a ciphertext which 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>
          <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 finally 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.</t>
        <t>HPKE (hybrid public key encryption) <xref target="RFC9180"/> is a specific instantiation of this which works with a combination of KEMs, KDFs and AEAD (authenticated encryption with additional data) 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 key encapsulation mechanism (KEM) private key. HPKE can be extended to support hybrid post-quantum KEM <xref target="I-D.draft-connolly-cfrg-xwing-kem"/>. ML-KEM does not support the static-ephemeral key exchange that allows HPKE based on DH based KEMs and its optional authenticated modes as discussed in section 1.5 of <xref target="I-D.draft-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 PQ signatures.</t>
      <section anchor="security-properties-of-pqc-signatures">
        <name>Security Properties of PQC Signatures</name>
      </section>
      <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 using 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. IETF specification authors 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 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 (part of the CRYSTALS suite) based on the hardness of lattice problems over module lattices (i.e., the Module Learning with Errors problem (MLWE)). 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 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 with FN-DSA <xref target="FN-DSA"/> which uses Gaussian-distributed numbers.</t>
        <t>ML-DSA offers both deterministic and randomized signing and is instantiated with 3 parameter sets providing different security levels. Security properties of ML-DSA are discussed in Section 9 of <xref target="I-D.ietf-lamps-dilithium-certificates"/>.</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>
        <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"/> and <xref target="Comparisons"/>.</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 changes over time. In both schemes, reusing a secret key state compromises cryptographic security guarantees.</t>
        <t>Multi-tree 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. XMSS and HSS use a 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 Section 10 of <xref target="RFC8554"/>.</t>
        <t>The number of tree layers in multi-tree XMSS 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.</t>
        <t>Due to the complexities described above, the XMSS and LMS are not a suitable replacement 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 target="RFC8554"/>, section 4.1) 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 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 (Section 4.4.1 of <xref target="RFC8446"/>), while DNSSEC <xref target="RFC4033"/> 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 re-introduces 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>Recommendations for Security / Performance Tradeoffs</name>
      <t>The table below denotes the five security levels provided by NIST for PQC algorithms. Neither NIST nor the IETF make 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. This information is a re-print of information provided in the NIST PQC project <xref target="NIST"/> as of time this document is published.</t>
      <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="I-D.ietf-lamps-cms-sphincs-plus"/> for further details on SLH-DSA algorithms.</t>
      <t>The following table discusses the signature size differences for similar SLH-DSA algorithm security levels with the "simple" version but for different categories i.e., (f) for fast verification and (s) for compactness/smaller. Both SHA-256 and SHAKE-256 parameterization output the same signature sizes, so both have been included.</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 discusses 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">2528</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">4000</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">4864</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Comparisons">
      <name>Comparing PQC KEMs/Signatures vs 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 vs. 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 vs. 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">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">2528</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4000</td>
            <td align="left">3293</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">4864</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, IKEv2 uses UDP as the transport 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 <xref target="SP-1800-38C"/> section 6.3.3 shows that increased key and signature sizes cause protocol key exchange messages to span more network packets, therefore it 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="post-quantum-and-traditional-hybrid-schemes">
      <name>Post-Quantum and Traditional 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="I-D.ietf-pquip-pqt-hybrid-terminology"/> defines the terminology for the post-quantum and traditional 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 protect from a "harvest now, decrypt later" attack described in <xref target="timeline"/>, which refers to an attacker collecting encrypted data now and waiting for quantum computers to become powerful enough to break the encryption later. Two types of hybrid key agreement schemes are discussed below:</t>
        <ul spacing="normal">
          <li>
            <t>Concatenate hybrid key agreement scheme: 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>
          </li>
          <li>
            <t>Cascade hybrid key agreement scheme: 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 the Internet Key Exchange Protocol Version 2 (IKEv2) to allow one or more PQC algorithms in addition to the traditional algorithm to derive the final IKE SA keys using the cascade method as explained in Section 2.2.2 of <xref target="RFC9370"/>.</t>
          </li>
        </ul>
        <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 can be utilized in scenarios where an on-path attacker possesses network devices equipped with CRQCs, capable of breaking traditional authentication protocols, or where an attacker can attack long-lived authenticated data such as CA certificates or signed software images. This property ensures authentication through a PQ/T hybrid scheme or a PQ/T hybrid protocol, as long as at least one component algorithm remains secure to provide the intended security level. For instance, a PQ/T hybrid certificate <xref target="I-D.ietf-pq-composite-keys"/> 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="I-D.ietf-lamps-cert-binding-for-multi-auth"/>. 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 12.3.2 and 12.3.3 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-keys-in-hybrid-schemes">
          <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 vs more sophisticated signature and KEM combiners, and in which protocol contexts 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 certs are intended to be used as a pair, must produce two signatures which 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 (<xref target="I-D.draft-bonnell-lamps-chameleon-certs"/>.</t>
        </section>
        <section anchor="key-reuse-in-hybrid-schemes">
          <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, for example 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.draft-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="jurisdictional-fragmentation">
          <name>Jurisdictional Fragmentation</name>
          <t>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. Traditional cryptography is already fragmented by jurisdiction: consider that while most jurisdictions support Elliptic Curve Diffie-Hellman, 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="future-directions-and-ongoing-research">
          <name>Future Directions and Ongoing Research</name>
          <t>Many aspects of hybrid cryptography are still under investigation. LAMPS WG 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="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. Another form of quantum cryptanalysis is "quantum side-channel" attacks. 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. Developing and adopting new cryptographic algorithms resilient against these threats is crucial for ensuring 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"/>, <xref target="LatticeSide"/>. Consequently, there were some mitigation techniques for side channel attacks that have been proposed as in <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. It is of paramount importance and 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 either through organization-wide written cryptographic policies or automated cryptographic policy systems.</t>
        <t>Numerous commercial solutions are available for both 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="hybrid-key-exchange-and-signatures-bridging-the-gap-between-post-quantum-and-traditional-cryptography">
        <name>Hybrid Key Exchange and Signatures: Bridging the Gap Between Post-Quantum and Traditional Cryptography</name>
        <t>Post-quantum algorithms selected for standardization are relatively new and they 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, for example FIPS <xref target="SP-800-56C"/> or PCI compliance. Hybrid key exchange is recommended to enhance security against the "harvest now, decrypt later" 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 increases computational and bandwidth costs by performing both a classical and a post-quantum key exchange in parallel. However, it provides security redundancy against potential weaknesses in PQ algorithms and allows for a gradual transition to PQC without breaking compatibility with existing systems. While hybrid key exchange introduces some additional overhead, the impact of traditional key exchange algorithms is quite small (e.g., key size), making the overall increase in resource usage manageable for most systems. In highly constrained environments, however, hybrid key exchange may be impractical due to its higher resource requirements compared to either pure PQ or traditional key exchange.</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="further-reading-resources">
      <name>Further Reading &amp; Resources</name>
      <t>A good book on modern cryptography is Serious Cryptography, 2nd Edition, by Jean-Philippe Aumasson, ISBN 9781718503847.</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>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="Grover-search">
        <front>
          <title>C. Zalka, “Grover’s quantum searching algorithm is optimal,” Physical Review A, vol. 60, pp. 2746-2751, 1999.</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="Threat-Report" target="https://globalriskinstitute.org/publications/quantum-threat-timeline-report-2020/">
        <front>
          <title>Quantum Threat Timeline Report 2020</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="QC-DNS" target="https://www.icann.org/octo-031-en.pdf">
        <front>
          <title>Quantum Computing and the DNS</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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/>
          </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>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="ML-KEM" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
        <front>
          <title>FIPS-203: Module-Lattice-based Key-Encapsulation Mechanism Standard</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="ML-DSA" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
        <front>
          <title>FIPS-204: Module-Lattice-Based Digital Signature Standard</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="SLH-DSA" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.pdf">
        <front>
          <title>FIPS-205: Stateless Hash-Based Digital Signature Standard</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="FN-DSA" target="https://falcon-sign.info/">
        <front>
          <title>Fast Fourier lattice-based compact signatures over NTRU</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="PQCAPI" target="https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/example-files/api-notes.pdf">
        <front>
          <title>PQC - API notes</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="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>
            <organization/>
          </author>
          <date/>
        </front>
      </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/>
          </author>
          <date/>
        </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>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="LIBOQS" target="https://github.com/open-quantum-safe/liboqs">
        <front>
          <title>LibOQS - Open Quantum Safe</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="Mitigate2" target="https://ieeexplore.ieee.org/document/9855226">
        <front>
          <title>Leakage-Resilient Certificate-Based Authenticated Key Exchange Protocol</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="CNSA2-0" target="https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF">
        <front>
          <title>Announcing the Commercial National Security Algorithm Suite 2.0</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="LattFail1" target="https://link.springer.com/chapter/10.1007/978-3-030-17259-6_19#chapter-info">
        <front>
          <title>Decryption Failure Attacks on IND-CCA Secure Lattice-Based Schemes</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date/>
        </front>
      </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/>
          </author>
          <date year="2022" month="May"/>
        </front>
      </reference>
      <reference anchor="PQRSA" target="https://cr.yp.to/papers/pqrsa-20170419.pdf">
        <front>
          <title>Post-quantum RSA</title>
          <author>
            <organization/>
          </author>
          <date year="2017" month="April"/>
        </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>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="Lyu09" target="https://www.iacr.org/archive/asiacrypt2009/59120596/59120596.pdf">
        <front>
          <title>V. Lyubashevsky, “Fiat-Shamir With Aborts: Applications to Lattice and Factoring-Based Signatures“, ASIACRYPT 2009</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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: Quantum-Resistant Cryptography Technology Interoperability and Performance Report</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </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>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </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/>
          </author>
          <date>n.d.</date>
        </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</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="HQC" target="http://pqc-hqc.org/">
        <front>
          <title>HQC</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="BIKE" target="http://pqc-hqc.org/">
        <front>
          <title>BIKE</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="ClassicMcEliece" target="https://classic.mceliece.org/">
        <front>
          <title>Classic McEliece</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="SIKE" target="https://sike.org/">
        <front>
          <title>SIKE – Supersingular Isogeny Key Encapsulation</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="SIDH-Attack" target="https://eprint.iacr.org/2022/975.pdf">
        <front>
          <title>An efficient key recovery attack on SIDH</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="PQUIP-WG" target="https://datatracker.ietf.org/group/pquip/documents/">
        <front>
          <title>Post-Quantum Use In Protocols (pquip) Working Group</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="OQS" target="https://openquantumsafe.org/">
        <front>
          <title>Open Quantum Safe Project</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="I-D.irtf-cfrg-bbs-signatures">
        <front>
          <title>The BBS Signature Scheme</title>
          <author fullname="Tobias Looker" initials="T." surname="Looker">
            <organization>MATTR</organization>
          </author>
          <author fullname="Vasilis Kalos" initials="V." surname="Kalos">
            <organization>MATTR</organization>
          </author>
          <author fullname="Andrew Whitehead" initials="A." surname="Whitehead">
            <organization>Portage</organization>
          </author>
          <author fullname="Mike Lodder" initials="M." surname="Lodder">
            <organization>CryptID</organization>
          </author>
          <date day="23" month="September" year="2024"/>
          <abstract>
            <t>   This document describes the BBS Signature scheme, a secure, multi-
   message digital signature protocol, supporting proving knowledge of a
   signature while selectively disclosing any subset of the signed
   messages.  Concretely, the scheme allows for signing multiple
   messages whilst producing a single, constant size, digital signature.
   Additionally, the possessor of a BBS signatures is able to create
   zero-knowledge, proofs-of-knowledge of a signature, while selectively
   disclosing subsets of the signed messages.  Being zero-knowledge, the
   BBS proofs do not reveal any information about the undisclosed
   messages or the signature it self, while at the same time,
   guarantying the authenticity and integrity of the disclosed messages.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-bbs-signatures-07"/>
      </reference>
      <reference anchor="RFC6090">
        <front>
          <title>Fundamental Elliptic Curve Cryptography Algorithms</title>
          <author fullname="D. McGrew" initials="D." surname="McGrew"/>
          <author fullname="K. Igoe" initials="K." surname="Igoe"/>
          <author fullname="M. Salter" initials="M." surname="Salter"/>
          <date month="February" year="2011"/>
          <abstract>
            <t>This note describes the fundamental algorithms of Elliptic Curve Cryptography (ECC) as they were defined in some seminal references from 1994 and earlier. These descriptions may be useful for implementing the fundamental algorithms without using any of the specialized methods that were developed in following years. Only elliptic curves defined over fields of characteristic greater than three are in scope; these curves are those used in Suite B. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6090"/>
        <seriesInfo name="DOI" value="10.17487/RFC6090"/>
      </reference>
      <reference anchor="RFC8391">
        <front>
          <title>XMSS: eXtended Merkle Signature Scheme</title>
          <author fullname="A. Huelsing" initials="A." surname="Huelsing"/>
          <author fullname="D. Butin" initials="D." surname="Butin"/>
          <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
          <author fullname="J. Rijneveld" initials="J." surname="Rijneveld"/>
          <author fullname="A. Mohaisen" initials="A." surname="Mohaisen"/>
          <date month="May" year="2018"/>
          <abstract>
            <t>This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature. This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS. Both XMSS and XMSS^MT use WOTS+ as a main building block. XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems. Instead, it is proven that it only relies on the properties of cryptographic hash functions. XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken. It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks. Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8391"/>
        <seriesInfo name="DOI" value="10.17487/RFC8391"/>
      </reference>
      <reference anchor="RFC8554">
        <front>
          <title>Leighton-Micali Hash-Based Signatures</title>
          <author fullname="D. McGrew" initials="D." surname="McGrew"/>
          <author fullname="M. Curcio" initials="M." surname="Curcio"/>
          <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
          <date month="April" year="2019"/>
          <abstract>
            <t>This note describes a digital-signature system based on cryptographic hash functions, following the seminal work in this area of Lamport, Diffie, Winternitz, and Merkle, as adapted by Leighton and Micali in 1995. It specifies a one-time signature scheme and a general signature scheme. These systems provide asymmetric authentication without using large integer mathematics and can achieve a high security level. They are suitable for compact implementations, are relatively simple to implement, and are naturally resistant to side-channel attacks. Unlike many other signature systems, hash-based signatures would still be secure even if it proves feasible for an attacker to build a quantum computer.</t>
            <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF. This has been reviewed by many researchers, both in the research group and outside of it. The Acknowledgements section lists many of them.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8554"/>
        <seriesInfo name="DOI" value="10.17487/RFC8554"/>
      </reference>
      <reference anchor="RFC9180">
        <front>
          <title>Hybrid Public Key Encryption</title>
          <author fullname="R. Barnes" initials="R." surname="Barnes"/>
          <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
          <author fullname="B. Lipp" initials="B." surname="Lipp"/>
          <author fullname="C. Wood" initials="C." surname="Wood"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
            <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9180"/>
        <seriesInfo name="DOI" value="10.17487/RFC9180"/>
      </reference>
      <reference anchor="I-D.draft-ietf-lake-edhoc">
        <front>
          <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson AB</organization>
          </author>
          <date day="22" month="January" year="2024"/>
          <abstract>
            <t>   This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a
   very compact and lightweight authenticated Diffie-Hellman key
   exchange with ephemeral keys.  EDHOC provides mutual authentication,
   forward secrecy, and identity protection.  EDHOC is intended for
   usage in constrained scenarios and a main use case is to establish an
   OSCORE security context.  By reusing COSE for cryptography, CBOR for
   encoding, and CoAP for transport, the additional code size can be
   kept very low.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-23"/>
      </reference>
      <reference anchor="I-D.draft-ounsworth-cfrg-kem-combiners">
        <front>
          <title>Combiner function for hybrid key encapsulation mechanisms (Hybrid KEMs)</title>
          <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
            <organization>Entrust Limited</organization>
          </author>
          <author fullname="Aron Wussler" initials="A." surname="Wussler">
            <organization>Proton AG</organization>
          </author>
          <author fullname="Stavros Kousidis" initials="S." surname="Kousidis">
            <organization>BSI</organization>
          </author>
          <date day="31" month="January" year="2024"/>
          <abstract>
            <t>   The migration to post-quantum cryptography often calls for performing
   multiple key encapsulations in parallel and then combining their
   outputs to derive a single shared secret.

   This document defines a comprehensible and easy to implement Keccak-
   based KEM combiner to join an arbitrary number of key shares, that is
   compatible with NIST SP 800-56Cr2 [SP800-56C] when viewed as a key
   derivation function.  The combiners defined here are practical split-
   key PRFs and are CCA-secure as long as at least one of the ingredient
   KEMs is.

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

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-connolly-cfrg-xwing-kem-06"/>
      </reference>
      <reference anchor="I-D.ietf-lamps-dilithium-certificates">
        <front>
          <title>Internet X.509 Public Key Infrastructure: Algorithm Identifiers for ML-DSA</title>
          <author fullname="Jake Massimo" initials="J." surname="Massimo">
            <organization>AWS</organization>
          </author>
          <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
            <organization>AWS</organization>
          </author>
          <author fullname="Sean Turner" initials="S." surname="Turner">
            <organization>sn3rd</organization>
          </author>
          <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
            <organization>Cloudflare</organization>
          </author>
          <date day="2" month="February" year="2025"/>
          <abstract>
            <t>   Digital signatures are used within X.509 certificates, Certificate
   Revocation Lists (CRLs), and to sign messages.  This document
   describes the conventions for using FIPS 204, the Module-Lattice-
   Based Digital Signature Algorithm (ML-DSA) in Internet X.509
   certificates and certificate revocation lists.  The conventions for
   the associated signatures, subject public keys, and private key are
   also described.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-dilithium-certificates-07"/>
      </reference>
      <reference anchor="RFC8446">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="RFC4033">
        <front>
          <title>DNS Security Introduction and Requirements</title>
          <author fullname="R. Arends" initials="R." surname="Arends"/>
          <author fullname="R. Austein" initials="R." surname="Austein"/>
          <author fullname="M. Larson" initials="M." surname="Larson"/>
          <author fullname="D. Massey" initials="D." surname="Massey"/>
          <author fullname="S. Rose" initials="S." surname="Rose"/>
          <date month="March" year="2005"/>
          <abstract>
            <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System. This document introduces these extensions and describes their capabilities and limitations. This document also discusses the services that the DNS security extensions do and do not provide. Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4033"/>
        <seriesInfo name="DOI" value="10.17487/RFC4033"/>
      </reference>
      <reference anchor="RFC5652">
        <front>
          <title>Cryptographic Message Syntax (CMS)</title>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <date month="September" year="2009"/>
          <abstract>
            <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="70"/>
        <seriesInfo name="RFC" value="5652"/>
        <seriesInfo name="DOI" value="10.17487/RFC5652"/>
      </reference>
      <reference anchor="I-D.ietf-lamps-cms-sphincs-plus">
        <front>
          <title>Use of the SLH-DSA Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
          <author fullname="Russ Housley" initials="R." surname="Housley">
            <organization>Vigil Security, LLC</organization>
          </author>
          <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
            <organization>Amazon Web Services</organization>
          </author>
          <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
            <organization>Cloudflare</organization>
          </author>
          <date day="13" month="January" year="2025"/>
          <abstract>
            <t>   SLH-DSA is a stateless hash-based signature scheme.  This document
   specifies the conventions for using the SLH-DSA signature algorithm
   with the Cryptographic Message Syntax (CMS).  In addition, the
   algorithm identifier and public key syntax are provided.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-sphincs-plus-19"/>
      </reference>
      <reference anchor="RFC9242">
        <front>
          <title>Intermediate Exchange in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
          <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
          <date month="May" year="2022"/>
          <abstract>
            <t>This document defines a new exchange, called "Intermediate Exchange", for the Internet Key Exchange Protocol Version 2 (IKEv2). This exchange can be used for transferring large amounts of data in the process of IKEv2 Security Association (SA) establishment. An example of the need to do this is using key exchange methods resistant to Quantum Computers (QCs) for IKE SA establishment. The Intermediate Exchange makes it possible to use the existing IKE fragmentation mechanism (which cannot be used in the initial IKEv2 exchange), helping to avoid IP fragmentation of large IKE messages if they need to be sent before IKEv2 SA is established.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9242"/>
        <seriesInfo name="DOI" value="10.17487/RFC9242"/>
      </reference>
      <reference anchor="RFC9370">
        <front>
          <title>Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
          <author fullname="CJ. Tjhai" initials="CJ." surname="Tjhai"/>
          <author fullname="M. Tomlinson" initials="M." surname="Tomlinson"/>
          <author fullname="G. Bartlett" initials="G." surname="Bartlett"/>
          <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
          <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
          <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
          <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
          <date month="May" year="2023"/>
          <abstract>
            <t>This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow multiple key exchanges to take place while computing a shared secret during a Security Association (SA) setup.</t>
            <t>This document utilizes the IKE_INTERMEDIATE exchange, where multiple key exchanges are performed when an IKE SA is being established. It also introduces a new IKEv2 exchange, IKE_FOLLOWUP_KE, which is used for the same purpose when the IKE SA is being rekeyed or is creating additional Child SAs.</t>
            <t>This document updates RFC 7296 by renaming a Transform Type 4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and renaming a field in the Key Exchange Payload from "Diffie-Hellman Group Num" to "Key Exchange Method". It also renames an IANA registry for this Transform Type from "Transform Type 4 - Diffie- Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Method Transform IDs". These changes generalize key exchange algorithms that can be used in IKEv2.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9370"/>
        <seriesInfo name="DOI" value="10.17487/RFC9370"/>
      </reference>
      <reference anchor="I-D.ietf-pquip-pqt-hybrid-terminology">
        <front>
          <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
          <author fullname="Florence D" initials="F." surname="D">
            <organization>UK National Cyber Security Centre</organization>
          </author>
          <author fullname="Michael P" initials="M." surname="P">
            <organization>UK National Cyber Security Centre</organization>
          </author>
          <author fullname="Britta Hale" initials="B." surname="Hale">
            <organization>Naval Postgraduate School</organization>
          </author>
          <date day="10" month="January" year="2025"/>
          <abstract>
            <t>   One aspect of the transition to post-quantum algorithms in
   cryptographic protocols is the development of hybrid schemes that
   incorporate both post-quantum and traditional asymmetric algorithms.
   This document defines terminology for such schemes.  It is intended
   to be used as a reference and, hopefully, to ensure consistency and
   clarity across different protocols, standards, and organisations.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-06"/>
      </reference>
      <reference anchor="I-D.ietf-tls-hybrid-design">
        <front>
          <title>Hybrid key exchange in TLS 1.3</title>
          <author fullname="Douglas Stebila" initials="D." surname="Stebila">
            <organization>University of Waterloo</organization>
          </author>
          <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
            <organization>Cisco Systems</organization>
          </author>
          <author fullname="Shay Gueron" initials="S." surname="Gueron">
            <organization>University of Haifa and Meta</organization>
          </author>
          <date day="14" month="January" year="2025"/>
          <abstract>
            <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if all but one of the component algorithms is broken.
   It is motivated by transition to post-quantum cryptography.  This
   document provides a construction for hybrid key exchange in the
   Transport Layer Security (TLS) protocol version 1.3.

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

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-12"/>
      </reference>
      <reference anchor="I-D.ietf-pq-composite-keys">
        <front>
          <title>*** BROKEN REFERENCE ***</title>
          <author>
            <organization/>
          </author>
          <date/>
        </front>
      </reference>
      <reference anchor="I-D.ietf-lamps-cert-binding-for-multi-auth">
        <front>
          <title>Related Certificates for Use in Multiple Authentications within a Protocol</title>
          <author fullname="Alison Becker" initials="A." surname="Becker">
            <organization>National Security Agency</organization>
          </author>
          <author fullname="Rebecca Guthrie" initials="R." surname="Guthrie">
            <organization>National Security Agency</organization>
          </author>
          <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
            <organization>National Security Agency</organization>
          </author>
          <date day="10" month="December" year="2024"/>
          <abstract>
            <t>   This document defines a new CSR attribute, relatedCertRequest, and a
   new X.509 certificate extension, RelatedCertificate.  The use of the
   relatedCertRequest attribute in a CSR and the inclusion of the
   RelatedCertificate extension in the resulting certificate together
   provide additional assurance that two certificates each belong to the
   same end entity.  This mechanism is particularly useful in the
   context of non-composite hybrid authentication, which enables users
   to employ the same certificates in hybrid authentication as in
   authentication done with only traditional or post-quantum algorithms.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cert-binding-for-multi-auth-06"/>
      </reference>
      <reference anchor="I-D.draft-bonnell-lamps-chameleon-certs">
        <front>
          <title>A Mechanism for Encoding Differences in Paired Certificates</title>
          <author fullname="Corey Bonnell" initials="C." surname="Bonnell">
            <organization>DigiCert</organization>
          </author>
          <author fullname="John Gray" initials="J." surname="Gray">
            <organization>Entrust</organization>
          </author>
          <author fullname="D. Hook" initials="D." surname="Hook">
            <organization>KeyFactor</organization>
          </author>
          <author fullname="Tomofumi Okubo" initials="T." surname="Okubo">
            <organization>DigiCert</organization>
          </author>
          <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
            <organization>Entrust</organization>
          </author>
          <date day="21" month="October" year="2024"/>
          <abstract>
            <t>   This document specifies a method to efficiently convey the
   differences between two certificates in an X.509 version 3 extension.
   This method allows a relying party to extract information sufficient
   to construct the paired certificate and perform certification path
   validation using the constructed certificate.  In particular, this
   method is especially useful as part of a key or signature algorithm
   migration, where subjects may be issued multiple certificates
   containing different public keys or signed with different CA private
   keys or signature algorithms.  This method does not require any
   changes to the certification path validation algorithm as described
   in RFC 5280.  Additionally, this method does not violate the
   constraints of serial number uniqueness for certificates issued by a
   single certification authority.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-bonnell-lamps-chameleon-certs-05"/>
      </reference>
      <reference anchor="I-D.draft-ietf-pquip-hybrid-signature-spectrums">
        <front>
          <title>Hybrid signature spectrums</title>
          <author fullname="Nina Bindel" initials="N." surname="Bindel">
            <organization>SandboxAQ</organization>
          </author>
          <author fullname="Britta Hale" initials="B." surname="Hale">
            <organization>Naval Postgraduate School</organization>
          </author>
          <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
            <organization>SandboxAQ</organization>
          </author>
          <author fullname="Florence D" initials="F." surname="D">
            <organization>UK National Cyber Security Centre</organization>
          </author>
          <date day="9" month="January" year="2025"/>
          <abstract>
            <t>   This document describes classification of design goals and security
   considerations for hybrid digital signature schemes, including proof
   composability, non-separability of the component signatures given a
   hybrid signature, backwards/forwards compatibility, hybrid
   generality, and simultaneous verification.

   Discussion of this work is encouraged to happen on the IETF PQUIP
   mailing list pqc@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dconnolly/draft-ietf-pquip-hybrid-
   signature-spectrums

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hybrid-signature-spectrums-06"/>
      </reference>
    </references>
    <?line 791?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>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, and 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 Kris Kwiatkowski.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y92XIbaZYmeM+ncGPYWJGdALhqoWKqqyhKCmm0BENUZFTP
9LTSAThITzrcke4OMpBMjdXlXM9cjVnPy+WTzPnO8i8OB0VlZmdVt40yQyIB
X/7l/Gc/3xkOh1tt3hbZs2T7vGra4U/LtGyX8+SsXi3a6rJOF1erZFbVycvy
Mi+zrG62t9LxuM5ucMdPZ93vJmmbXVb16lmSl7Nqa2taTcp0To+f1umsHeZZ
Oxsu/rDMF/T3ZJjZjcOC7mvarWY5nudNk1dlu1rQXW9efnq1VS7n46x+tjWl
a55tTaqyycpm2TxL2nqZbdFAjrbSOktpQBfZZFnn7Wp767aqry/rarngYf78
5nx76zpb0afTZ1vJMKGRb21t3WTlkp6YJHYlj2ybPpC3b/9CT8nLy+QHfI/P
52le8HWTf8ZURlV9iY/TenJFH1+17aJ5treHq/BRfpON7LI9fLA3rqvbJtuj
+/e2aQBNm5bTz2lRlfS2VdZsLfJnyf/WVpNB0lR1W2ezhn5azfWHts4n7SCZ
VPN5Vrb0Ca3uPF0saIj/+9ZWumyvqhrToxElyWxZFLL0p7QkdZo8T8us/n2W
8bc0orTM/5i2tNTPkg/VdZ7y5xNavWfJ+2WZT67kg2pZttjPH7J6npYr/jDT
dUj5yaOxPvmfSzxnROPbXh/Fp7xeztMia27TOvmYTaerBwyExnxJy1PLoOvs
kq96m9Zl2qbXaTzCN+VUb7bxXVfltM3rf77E7xvG9SKf0yTyqkkuJldVXuZp
mV7nzQMGd9peESF2VqnOskkWDWJqLxg14QtksYbjrCiI+sfNxmWbVy2dwddV
UWTjLLvuGdiL/DI/y+o2GNt53rbNeFlfdnbx54vTaHBtPh9d2aP/eUoPmtCD
orHkJR2196Pkx2XZ0AFq5Ykyuvf5ddb5gob2jDgCnc2mTd5h7tmUvzC2od/x
Z0TSWdY+Sw4f7e8nF1VBx6FNPlbpNPnzv/7fycWSbk4O9veDif3YtultOkh+
LFuiviqe3Rkt7dSoYkrje3v4Njn64VE45TkNeVTZkP85k9FgxnQgy4qIvKVz
+2xrCwzM/5aACdxk9bDJ+LTzIxPjnWej5H9Ni2sa15//9b/KhX/+1/+nSf6g
7FRuAitJC2KPeXs1T/ImqRa0/mkx+PO//r/J+dWqySdpQWfjJs9uk9NBclMV
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
dhrOlmTJsuwpmkFCe1XjzE+JpRfVgpVG5pJ1Jm70qXis7lGRxk0+GtNDiST3
Lq5IvE1fVBPSt6vbsqjSabP38sMeDXTvPHSAPa+ryRWt416oIUQ+ndFVOy/+
qSz/kY7c45hJHDwdkX4IqmcVe91iPQ8dOPT1JhW7Hq0Wo7baW4iJsPgDdDni
9k/2jw9OupoSPh/tH49YYF2cD5/u7w8fPe4u/sdo3Zhk4Kt5QTLrxhw1MKaZ
gNiLQ+KAFqa5wtp/5aBs9jNcLDIwlmiN2e1wcT7SgdaHG3W/1dJZoG4ivx3h
cxKdV9lNc71iz+2rPG2HtMfzvE5+IWaVnI6rum2eJaeLhXsvTAU9GUxJr9hs
gKasvMCZX/TEQXJ68eaUNLbzTwmszW0bRZ+/0jixxo720gYfEcmwnfro5IBU
3JPH7gc/3a4idD48wKIcPT3rzvp9TtTH20Sz2OzgtA8/Zuk0L8k+eGYfBRI+
uuNTNrkqKzIcVskb0p1qUo/rdEwSl3g/u02ymt3pZGeok/m+pSgnkyrzZNCQ
xGj2SCSky6LdE1vvENrgwSFiacO5zWrIrslmYfOfDBd1VuTzvEzr1ZBjkBtX
7e3Ll+dvPvzw87msma3Y2yxjPvnzIrkFSYBfQl2Eb62uwOG8kCNGyxTCpwIq
JWaeLttqzhI8DRw29LXqbQvVMPRQPEBMH5EBeXSkTutXbz6cvouHjI9pkeHu
JUb+Kq9JVTiif+n1+R+hKYb7HrJ19QJuGAlvjDuZ2W0zZD254Z8xruO9/afi
HK715WSX08uJ1c/s5bHfOLArzcUNA+r0w8XFm3hO/FGCyEhjZu5m8iXhVja5
VyzXGCMMJ5rG8mY0q3upy+lwswoupc/LxWcaOD/yM3PTz/iBBvBZp/I54u1C
Y69NdDlHw09n6wOC24do+OoPE95fiL03b1/GN+KTh9x5VqRNk0/eT16SqjvJ
4ofol4l9u2Ft5KrRfJLxVfboi7VB4RON00G80CFZFmlNCkd1mZUr0/C9C7//
fQ3H4+wdL14PRefq7H6ZZDNS2Vl/v6YHQ3zfZPUqsElx84OPEGm6T8xXwPkB
w19+iF4ZEdfPDelRpbMFmmSHMwV2kyhBoPfdxGNSIsfJNRGcywXgfIM9fkbg
y6L7nYtCR7Hml0jUO9b7LrgklByhbsiqbg2HwyQdQ+Gj27Y+0cFJpzi34EJp
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
lMBPHkGPUaO/VK8ziLssvaz9A5LoalhtagEA

-->

</rfc>
