<?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.29 (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-13" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="PQC for Engineers">Post-Quantum Cryptography for Engineers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-engineers-13"/>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>London</city>
          <country>United Kingdom</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author fullname="Dimitrios Schoinianakis">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Athens</city>
          <country>Greece</country>
        </postal>
        <email>dimitrios.schoinianakis@nokia-bell-labs.com</email>
      </address>
    </author>
    <author fullname="Timothy Hollebeek">
      <organization>DigiCert</organization>
      <address>
        <postal>
          <city>Pittsburgh</city>
          <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="July" day="01"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <abstract>
      <?line 254?>

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

<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 classical public key cryptography, happen to fall within the niche that quantum computers are expected to excel at. As quantum technology advances, there is the potential for future quantum computers to have a significant impact on current cryptographic systems. Predicting the date of emergence of a CRQC is a challenging task, and there is ongoing uncertainty regarding when they will become practically feasible <xref target="CRQCThreat"/>.</t>
      <t>Extensive research has produced several post-quantum cryptographic algorithms that offer the potential to ensure cryptography's survival in the quantum computing era. However, transitioning to a post-quantum infrastructure is not a straightforward task, and there are numerous challenges to overcome. It requires a combination of engineering efforts, proactive assessment and evaluation of available technologies, and a careful approach to product development.</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, ciphertext and signature sizes and processing time differences between PQC and traditional algorithms. Additionally, it discusses the potential threat to symmetric cryptography and hash functions from CRQCs.</t>
      <t>It is important to remember that asymmetric algorithms (also known as public key algorithms) are largely used for secure communications between organizations or endpoints that may not have previously interacted, so a significant amount of coordination between organizations, and within and between ecosystems needs to be taken into account. Such transitions are some of the most complicated in the tech industry and will require staged migrations in which upgraded agents need to 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 face a lower risk from Grover's algorithm, although the impact is less severe and can typically be mitigated by doubling key and digest lengths where the risk applies. It is crucial for the reader to understand that when 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 math (not on quantum mechanics) 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="terminology">
      <name>Terminology</name>
      <t>Quantum computer: A computer that performs computations using quantum-mechanical phenomena such as superposition and entanglement.</t>
      <t>Physical qubit: The basic physical unit in a quantum computer, which is prone to noise and errors.</t>
      <t>Logical qubit: A fault-tolerant qubit constructed from multiple physical qubits using quantum error correction; it is the effective unit for reliable quantum computation.</t>
      <t>Post-Quantum Cryptography (PQC): Cryptographic algorithms designed to be secure against quantum and classical attacks.</t>
      <t>Cryptographically Relevant Quantum Computer (CRQC): A quantum computer with sufficient "logical qubits" to perform cryptographic attacks (e.g., break RSA/ECC).</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 form of quantum cryptanalysis.</t>
      <section anchor="symmetric">
        <name>Symmetric Cryptography</name>
        <t>For unstructured data such as symmetric encrypted data or cryptographic hashes, although CRQCs can search for specific solutions across all possible input combinations (e.g., Grover's algorithm), no quantum algorithm is known to break the underlying security properties of these classes of algorithms.</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 as 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 in 10 seconds <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 <xref target="QuantSide"/>. While a full discussion of quantum side-channel techniques is beyond the scope of this document, implementers of cryptographic hardware should be aware that current best-practices for side-channel resistance may not be sufficient against quantum adversaries.</t>
      </section>
    </section>
    <section anchor="traditional-cryptographic-primitives-that-could-be-replaced-by-pqc">
      <name>Traditional Cryptographic Primitives that Could Be Replaced by PQC</name>
      <t>Any asymmetric cryptographic algorithm based on integer factorization, finite field discrete logarithms or elliptic curve discrete logarithms will be vulnerable to attacks using Shor's algorithm on a CRQC. This document focuses on the principal functions of asymmetric cryptography:</t>
      <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 they are based on existing 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 the 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 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 existing 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 Shor's algorithm. 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-SHA256), relies on secret keys shared between the sender and receiver and remains secure even in a post-quantum world. Symmetric cryptography also includes hash functions (e.g., SHA-256) that are used for secure message digesting without any shared key material. HMAC is a specific construction that utilizes a cryptographic hash function and a secret key shared between the sender and receiver to produce a message authentication code.</t>
      <t>Grover's algorithm 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>
            <li>
              <t><xref target="HQC"/>: This algorithm is based on the hardness of the syndrome decoding problem for quasi-cyclic concatenated Reed-Muller and Reed-Solomon (RMRS) codes in the Hamming metric. Reed-Muller (RM) codes are a class of block error-correcting codes commonly used in wireless and deep-space communications, while Reed-Solomon (RS) codes are widely used to detect and correct multiple-bit errors. HQC has been selected as part of the NIST post-quantum cryptography project but has not yet been standardized.</t>
            </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 (FIPS-206) (<xref target="lattice-based"/> and <xref target="sig-scheme"/>).</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="iso-candidates-selected-for-standardization">
      <name>ISO Candidates Selected for Standardization</name>
      <t>At the time of writing, ISO has standardized three PQC KEM algorithms, which are mentioned in the following subsection.</t>
      <section anchor="pqc-key-encapsulation-mechanisms-kems-1">
        <name>PQC Key Encapsulation Mechanisms (KEMs)</name>
        <ul spacing="normal">
          <li>
            <t><xref target="FrodoKEM"/>: Key Encapsulation mechanism based on the hardness of learning with errors in algebraically unstructured lattices.</t>
          </li>
          <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="NTRU"/>: Key encapsulation mechanism based on the "N-th degree Truncated polynomial Ring Units" (NTRU) lattices.</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 for even most moderately-sized organizations, this long tail should not discourage early action.</t>
      <t>Organizations responsible for protecting long-lived sensitive data or operating critical infrastructure will need to begin transitioning immediately, particularly in scenarios where data is vulnerable to HDNL attacks. PQ/T or PQ key exchange is relatively self-contained, typically requiring changes only to the cryptographic library (e.g., OpenSSL). In contrast, migrating to post-quantum or PQ/T digital signatures involves broader ecosystem changes, including updates to certificates, CAs, Certificate Management Protocols, HSMs, and trust anchors.
Starting early with hybrid key exchange deployments allows organizations to gain operational experience, while prototyping and planning for PQ/T or PQ digital signature integration helps identify ecosystem-wide impacts early. This phased approach reduces long-term migration risks and ensures readiness for more complex updates.</t>
    </section>
    <section anchor="pqc-categories">
      <name>PQC Categories</name>
      <t>The post-quantum cryptographic schemes standardized by NIST, 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. NIST has been calling for additional digital signature proposals to be considered in the PQC standardization process which has completed two rounds in October, 2024 <xref target="AddSig"/>.</t>
      <section anchor="lattice-based">
        <name>Lattice-Based Public-Key Cryptography</name>
        <t>Lattice-based public-key cryptography leverages the simple construction of lattices (i.e., a regular collection of points in a Euclidean space that are evenly spaced) to create "trapdoor" problems. These problems are efficient to compute if you possess the secret information but challenging to compute otherwise. Examples of such problems include the shortest vector, closest vector, short integer solution, learning with errors, module learning with errors, and learning with rounding problems. All of these problems feature strong proofs for worst-to-average case reduction, effectively relating the hardness of the average case to the worst case.</t>
        <t>Lattice-based 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, ML-DSA and FrodoKEM.</t>
        <t>It is noteworthy that lattice-based encryption schemes require a rounding step during decryption which has a non-zero probability of "rounding the wrong way" and leading to a decryption failure, meaning that valid encryptions are decrypted incorrectly; 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 based on the security of the underlying 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 <xref target="BPQS"/> schemes. Unlike many other digital signature techniques, most hash-based signature schemes are stateful, which means that signing necessitates the update and careful tracking of the state of the secret key. Producing multiple signatures using the same secret key state results in loss of security and may ultimately enable signature forgery attacks against that key.</t>
        <t>Stateful hash-based signatures with long service lifetimes require additional operational complexity compared 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, which was standardized by NIST, leverages the HORST (hash to obtain random subset with trees) technique and remains the only standardized hash based signature scheme that is stateless, thus avoiding the complexities associated with state management. SLH-DSA is an advancement on SPHINCS which reduces the signature sizes in SPHINCS and makes it more compact.</t>
      </section>
      <section anchor="code-based">
        <name>Code-Based Public-Key Cryptography</name>
        <t>This area of cryptography started in the 1970s and 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 unbroken NIST Round 4 finalists: Classic McEliece, HQC (selected by NIST for standardization), and 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 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 PQC 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 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 Fiat-Shamir (FS) schemes compact and secure. ML-DSA uses uniformly-distributed random number sampling over small integers to compute coefficients in error vectors, which makes the scheme easier to implement compared with FN-DSA <xref target="FN-DSA"/> which uses Gaussian-distributed numbers, necessitating the need to use floating point arithmetic during signature generation.</t>
        <t>ML-DSA offers both deterministic and randomized signing and is instantiated with 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 state changes over time. In both schemes, reusing a secret key state compromises cryptographic security guarantees.</t>
        <t>XMSS and LMS can be used for signing a potentially large but fixed number of messages and the number of signing operations depends upon the size of the tree. XMSS and LMS provide cryptographic digital signatures without relying on the conjectured hardness of mathematical problems, instead leveraging the properties of cryptographic hash functions. Multi-tree XMSS and LMS (i.e., XMSS-MT and HSS respectively) use a hyper-tree based hierarchical approach with a Merkle tree at each level of the hierarchy. <xref target="RFC8391"/> describes both single-tree and multi-tree variants of XMSS, while <xref target="RFC8554"/> describes the Leighton-Micali One-Time Signature (LM-OTS) system as well as the LMS and HSS N-time signature systems. Comparison of XMSS and LMS is discussed in Section 10 of <xref target="RFC8554"/>.</t>
        <t>The number of tree layers in multi-tree XMSS and HSS provides a trade-off between signature size on the one side and key generation and signing speed on the other side. Increasing the number of layers reduces key generation time exponentially and signing time linearly at the cost of increasing the signature size linearly. HSS allows for customization of each subtree whereas XMSS-MT does not, electing instead to use the same structure for each subtree.</t>
        <t>Due to the complexities described above, 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 digest, the Winternitz parameter (W), the LMS tree height (H), and the length of the digest. The table below provides key and signature sizes for parameterization with the digest size M=32 of the scheme.</t>
          <table>
            <thead>
              <tr>
                <th align="left">PK</th>
                <th align="left">SK</th>
                <th align="left">W</th>
                <th align="left">H=5</th>
                <th align="left">H=10</th>
                <th align="left">H=15</th>
                <th align="left">H=20</th>
                <th align="left">H=25</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">1</td>
                <td align="left">8684</td>
                <td align="left">8844</td>
                <td align="left">9004</td>
                <td align="left">9164</td>
                <td align="left">9324</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">2</td>
                <td align="left">4460</td>
                <td align="left">4620</td>
                <td align="left">4780</td>
                <td align="left">4940</td>
                <td align="left">5100</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">4</td>
                <td align="left">2348</td>
                <td align="left">2508</td>
                <td align="left">2668</td>
                <td align="left">2828</td>
                <td align="left">2988</td>
              </tr>
              <tr>
                <td align="left">56</td>
                <td align="left">52</td>
                <td align="left">8</td>
                <td align="left">1292</td>
                <td align="left">1452</td>
                <td align="left">1612</td>
                <td align="left">1772</td>
                <td align="left">1932</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="hash-then-sign">
        <name>Hash-then-Sign</name>
        <t>Within the hash-then-sign paradigm, the message is hashed before signing it. By pre-hashing, the onus of resistance to existential forgeries becomes heavily reliant on the collision-resistance of the hash function in use. The hash-then-sign paradigm has the ability to improve application performance by reducing the size of signed messages that need to be transmitted between application and cryptographic module, and making the signature size predictable and manageable. As a corollary, hashing remains mandatory even for short messages and assigns a further computational requirement onto the verifier. This makes the performance of hash-then-sign schemes more consistent, but not necessarily more efficient.</t>
        <t>Using a hash function to produce a fixed-size digest of a message ensures that the signature is compatible with a wide range of systems and protocols, regardless of the specific message size or format. Crucially for hardware security modules, Hash-then-Sign also significantly reduces the amount of data that needs to be transmitted and processed by a Hardware Security Module (HSM). Consider scenarios such as a networked HSM located in a different data center from the calling application or a smart card connected over a USB interface. In these cases, streaming a message that is megabytes or gigabytes long can result in notable network latency, on-device signing delays, or even depletion of available on-device memory.</t>
        <t>Note that the vast majority of Internet protocols that sign large messages already perform some form of content hashing at the protocol level, so this tends to be more of a concern with proprietary cryptographic protocols, and protocols from non-IETF standards bodies. Protocols like TLS 1.3 and DNSSEC use the Hash-then-Sign paradigm. In TLS 1.3 <xref target="RFC8446"/> CertificateVerify messages, the content that is covered under the signature includes the transcript hash output (Section 4.4.1 of <xref target="RFC8446"/>), while DNSSEC <xref target="RFC4034"/> uses it to provide origin authentication and integrity assurance services for DNS data. Similarly, the Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> includes a mandatory message digest step before invoking the signature algorithm.</t>
        <t>In the case of ML-DSA, it internally incorporates the necessary hash operations as part of its signing algorithm. ML-DSA directly takes the original message, applies a hash function internally, and then uses the resulting hash value for the signature generation process. In the case of SLH-DSA, it internally performs randomized message compression using a keyed hash function that can process arbitrary length messages. In the case of FN-DSA, the SHAKE-256 hash function is used as part of the signature process to derive a digest of the message being signed.</t>
        <t>Therefore, ML-DSA, FN-DSA, and SLH-DSA offer enhanced security over the traditional Hash-then-Sign paradigm because by incorporating dynamic key material into the message digest, a pre-computed hash collision on the message to be signed no longer yields a signature forgery. Applications requiring the performance and bandwidth benefits of Hash-then-Sign may still pre-hash at the protocol level prior to invoking ML-DSA, FN-DSA, or SLH-DSA, but protocol designers should be aware that doing so 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 compares the signature sizes for different SLH-DSA algorithm categories at equivalent security levels, using the "simple" version. The categories include "(f)" for fast signature generation, and "(s)" for smaller signature size and faster verification, although with slower signature generation. Both SHA-256 and SHAKE-256 parameterizations produce the same signature sizes and are therefore included together in the table.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-128f</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">17088</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-128s</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">7856</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-192f</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">35664</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-192s</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">16224</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-256f</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">49856</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SLH-DSA-{SHA2,SHAKE}-256s</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">29792</td>
          </tr>
        </tbody>
      </table>
      <t>The following table illustrates the impact of performance on different security levels in terms of private key sizes, public key sizes, and ciphertext/signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Ciphertext/signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">ML-KEM-512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">FN-DSA-512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">1312</td>
            <td align="left">2560</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-KEM-768</td>
            <td align="left">1184</td>
            <td align="left">2400</td>
            <td align="left">1088</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4032</td>
            <td align="left">3309</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">FN-DSA-1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1280</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-KEM-1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1588</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">2592</td>
            <td align="left">4896</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
    </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">ECDSA-P256</td>
            <td align="left">64</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">FN-DSA-512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">1312</td>
            <td align="left">2560</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">1952</td>
            <td align="left">4032</td>
            <td align="left">3309</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">FN-DSA-1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1280</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">2592</td>
            <td align="left">4896</td>
            <td align="left">4627</td>
          </tr>
        </tbody>
      </table>
      <t>As is clear from the above table, PQC KEMs and signature schemes typically have significantly larger keys and ciphertexts/signatures than their traditional counterparts. These increased key and signatures sizes could introduce problems in protocols. As an example, 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 (PQ/T) hybrid schemes.</t>
      <section anchor="pqt-hybrid-confidentiality">
        <name>PQ/T Hybrid Confidentiality</name>
        <t>The PQ/T Hybrid Confidentiality property can be used to 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>Concatenated 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>Cascaded 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 example, a PQ/T hybrid certificate <xref target="I-D.ietf-lamps-pq-composite-sigs"/>can be employed to facilitate a PQ/T hybrid authentication protocol. However, a PQ/T hybrid authentication protocol does not need to use a PQ/T hybrid certificate; separate certificates could be used for individual component algorithms <xref target="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 <xref target="PCI"/>. 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 performs both a classical and a post-quantum key exchange in parallel. It provides security redundancy against potential weaknesses in PQ algorithms, allows for a gradual transition of trust in PQC algorithms, and, in backward-compatible designs, enables gradual adoption without breaking compatibility with existing systems. For instance, in TLS 1.3, a hybrid key exchange can combine a widely supported classical algorithm, such as X25519, with a post-quantum algorithm like ML-KEM. This allows legacy clients to continue using the classical algorithm while enabling upgraded clients to proceed with hybrid key exchange. In contrast, overhead-spreading hybrid designs focus on reducing the PQ overhead. For example, approaches like those described in <xref target="I-D.hale-mls-combiner"/> amortize PQ costs by selectively applying PQ updates in key exchange processes, allowing systems to balance security and efficiency. This strategy ensures a post-quantum secure channel while keeping the overhead manageable, making it particularly suitable for constrained environments.</t>
        <t>While some hybrid key exchange options introduce additional computational and bandwidth overhead, the impact of traditional key exchange algorithms (e.g., key size) is typically small, helping to keep the overall increase in resource usage manageable for most systems. In highly constrained environments, however, those hybrid key exchange protocols may be impractical due to their higher resource requirements compared to pure post-quantum or traditional key exchange approaches. However, some hybrid key exchange designs distribute the PQC overhead, making them more suitable for constrained environments. The choice of hybrid key exchange design depends on the specific system requirements and use case, so the appropriate approach may vary.</t>
      </section>
      <section anchor="caution-ciphertext-commitment-in-kem-vs-dh">
        <name>Caution: Ciphertext commitment in KEM vs DH</name>
        <t>The ciphertext generated by a KEM is not necessarily directly linked to the shared secret it produces. KEMs allow for multiple ciphertexts to encapsulate the same shared secret, which enables flexibility in key management without enforcing a strict one-to-one correspondence between ciphertexts and shared secrets. This allows for secret reuse across different recipients, sessions, or operational contexts without the need for new secrets for each use, simplifying key distribution and reducing computational overhead. In contrast, cryptographic schemes like Diffie-Hellman inherently link the public key to the derived shared secret, meaning any change in the public key results in a different shared secret.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA considerations.</t>
    </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="NTRU" target="https://ntru.org/index.shtml">
        <front>
          <title>NTRU</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="FrodoKEM" target="https://frodokem.org/">
        <front>
          <title>FrodoKEM</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="CRQCThreat" target="https://sam-jaques.appspot.com/quantum_landscape_2024">
        <front>
          <title>CRQCThreat</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="QuantSide" target="https://arxiv.org/pdf/2304.03315">
        <front>
          <title>QuantSide</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="AddSig" target="https://csrc.nist.gov/Projects/pqc-dig-sig/standardization">
        <front>
          <title>AddSig</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="BPQS" target="https://eprint.iacr.org/2018/658.pdf">
        <front>
          <title>BPQS</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="PCI" target="https://docs-prv.pcisecuritystandards.org/PCI%20DSS/Standard/PCI-DSS-v4_0_1.pdf">
        <front>
          <title>Payment Card Industry Data Security Standard</title>
          <author>
            <organization/>
          </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="3" month="March" year="2025"/>
          <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 itself, while at the same time,
   guaranteeing the authenticity and integrity of the disclosed
   messages.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-bbs-signatures-08"/>
      </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="3" month="May" year="2025"/>
          <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-07"/>
      </reference>
      <reference anchor="I-D.ietf-lamps-dilithium-certificates">
        <front>
          <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (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="26" month="June" year="2025"/>
          <abstract>
            <t>   Digital signatures are used within X.509 certificates, Certificate
   Revocation Lists (CRLs), and to sign messages.  This document
   specifies 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-12"/>
      </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="RFC4034">
        <front>
          <title>Resource Records for the DNS Security Extensions</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>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of resource records and protocol modifications that provide source authentication for the DNS. This document defines the public key (DNSKEY), delegation signer (DS), resource record digital signature (RRSIG), and authenticated denial of existence (NSEC) resource records. The purpose and format of each resource record is described in detail, and an example of each resource record is given.</t>
            <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4034"/>
        <seriesInfo name="DOI" value="10.17487/RFC4034"/>
      </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="Flo 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="17" month="June" 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-13"/>
      </reference>
      <reference anchor="I-D.ietf-lamps-pq-composite-sigs">
        <front>
          <title>Composite ML-DSA for use in X.509 Public Key Infrastructure</title>
          <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
            <organization>Entrust Limited</organization>
          </author>
          <author fullname="John Gray" initials="J." surname="Gray">
            <organization>Entrust Limited</organization>
          </author>
          <author fullname="Massimiliano Pala" initials="M." surname="Pala">
            <organization>OpenCA Labs</organization>
          </author>
          <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
            <organization>Bundesdruckerei GmbH</organization>
          </author>
          <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
            <organization>Cisco Systems</organization>
          </author>
          <date day="18" month="June" year="2025"/>
          <abstract>
            <t>   This document defines combinations of ML-DSA [FIPS.204] in hybrid
   with traditional algorithms RSASSA-PKCS1-v1_5, RSASSA-PSS, ECDSA,
   Ed25519, and Ed448.  These combinations are tailored to meet security
   best practices and regulatory guidelines.  Composite ML-DSA is
   applicable in any application that uses X.509 or PKIX data structures
   that accept ML-DSA, but where the operator wants extra protection
   against breaks or catastrophic bugs in ML-DSA.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-06"/>
      </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="16" month="April" year="2025"/>
          <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 reconstruct the paired certificate and perform certification path
   validation using the reconstructed 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-06"/>
      </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="Flo D" initials="F." surname="D">
            <organization>UK National Cyber Security Centre</organization>
          </author>
          <date day="20" month="June" 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.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hybrid-signature-spectrums-07"/>
      </reference>
      <reference anchor="I-D.hale-mls-combiner">
        <front>
          <title>Flexible Hybrid PQ MLS Combiner</title>
          <author fullname="Joël" initials="" surname="Joël">
            <organization>AWS</organization>
          </author>
          <author fullname="Britta Hale" initials="B." surname="Hale">
            <organization>Naval Postgraduate School</organization>
          </author>
          <author fullname="Marta Mularczyk" initials="M." surname="Mularczyk">
            <organization>AWS</organization>
          </author>
          <author fullname="Xisen Tian" initials="X." surname="Tian">
            <organization>Naval Postgraduate School</organization>
          </author>
          <date day="26" month="September" year="2024"/>
          <abstract>
            <t>   This document describes a protocol for combining a traditional MLS
   session with a post-quantum (PQ) MLS session to achieve flexible and
   efficient hybrid PQ security that amortizes the computational cost of
   PQ Key Encapsulation Mechanisms and Digital Signature Algorithms.
   Specifically, we describe how to use the exporter secret of a PQ MLS
   session, i.e. an MLS session using a PQ ciphersuite, to seed PQ
   guarantees into an MLS session using a traditional ciphersuite.  By
   supporting on-demand traditional-only key updates (a.k.a.  PARTIAL
   updates) or hybrid-PQ key updates (a.k.a.  FULL updates), we can
   reduce the bandwidth and computational overhead associated with PQ
   operations while meeting the requirement of frequent key rotations.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-hale-mls-combiner-01"/>
      </reference>
    </references>
    <?line 834?>

<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, Scott Rose, Hilarie Orman, Thomas Fossati, 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+y92XIcaZYmdo+ncEPaWANT4YGNZJJM1XSDIJmkuCSSYFa2
pNGwPCI8AC94uEe5ewAZxUpZX+paupLZ6OXqSXS+s/yLhwcIVvVU94yJVUkC
Eb78y/nPfr6TpulOV3Rl/jTZPa/bLv1xlVXdapGcNetlV1822fJqnczrJnlR
XRZVnjft7k42mTT5De748az/3TTr8su6WT9Nimpe7+zM6mmVLejxsyabd2mR
d/N0+cdVsaS/p2luN6ZHJzvtarIo2raoq269pDtev/j4cqdaLSZ583RnRs99
ujOtqzav2lX7NOmaVb5DgzjZyZo8o8Fc5NNVU3Tr3Z3burm+bOrVkof40+vz
3Z3rfE2fzp7uJGlCo97Z2bnJqxU9MUnsSh7VLn0gb9/9mZ5SVJfJ9/geny+y
ouTrpv+EaYzr5hIfZ830ij6+6rpl+/TgAFfho+ImH9tlB/jgYNLUt21+QPcf
7NIA2i6rZp+ysq7obeu83VkWT5P/rauno6Stm67J5y39tF7oD11TTLtRMq0X
i7zq6BNa2UW2XNIQ//ednWzVXdUNpkcjSpL5qixl2U9pSZoseZZVefOHPOdv
aURZVfwp62ipnybv6+si48+ntHpPk7d1Nasr+aBeVR328qeq6PJZ8oZeNqsX
/F2uy5HxC8YTfcE/VXjcmIa5uzmYj0WzWmRl3t5mTfIhn83W9xgPDf2SVqmR
sTf5JV/1JmuqrMuus3igr6uZ3mzjux53wVs/NXjrnYN8XixoRkXdJhfTq7qo
iqzKrov2HiM97a6IOOMBfd/k+TSPRjSzF4zb8AUyqHSSl2VaZpN26xou6o7O
5Ku6LPNJnl8PDOx5cVmc5U0XjO286Lp2smour3o7e3EaDa4rFuMre/Q/zehB
U3pQNJaiouP3bpz8sKpaOlSdPFFG9664zntf0NCeEoeg89p2yVvMPZ/xF8ZG
9Dv+jMg8z7unyfHDw8Pkoi7piHTJhzqbJX/5l/87uVjRzcnR4WEwsR+6LrvN
RskPVUekWMezO6OlnRmJzGh8b47fJCffPwynvKAhj2sb8j/lMhrMmA5pVTcL
WtQb4hQ7YGj+twSM4SZv0jZnDsCPTIyXno2T/zUrr2lcf/mX/yoX/uVf/p82
+aOyV7kJ7CUriV0W3dUiKdqkXtL6Z+XoL//y/ybnV+u2mGYlHZSbIr9NTkfJ
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
vVOLInvn1elxCjWTJkg/v3mBX/ZHatWHKdGqPewdP8C1J6SyrgXywTgG09YV
M59gEL7TICefEvv/hR1AsaxSUeKgR0KQSbUecbZcKksi7iId2s8MGFEV3Z9i
J+yeVCV4bjNyYYIH46P9ZAMgFdTruEl0QOd1X48eJ+feHtCHLCChR4H78vGh
d0K5NXHNzMx44K01y1+0+L3zN/uqy8lK7F3QB6bbO2GuXGp4p97tW7lRxDV6
98rVo/5C+h3c+3nLJu+92vcbMjQEeb2c50mOmKFj25Yh0weq5sBTb6E8NIrO
jKfx7rcnxxsr+Ofk/A1KbPHXz6g5e/Xbh/TPq9+S5OF/5Ldj+e34IUoKuajR
/tIKvTv/obfQgaG/jumvI/rv8aPHD/DP4wf458nhIf9z9Ij/OaEDE9+C/x48
eIQxPHjEQ3nw7WP+58kD/PPw6PCwdwuedHzy4DH+eXjI/zx6xP88PuZ/njx+
3LsFHx8dP+ExPpChPjrif779lv+hkdEtrtcH0hpSsJ+dnZ99K6Qr95X4gzOw
4cuFEISF8wvxNuSuM7vzwxEJPFs7e4QDwyKKV610nXF1LohZB3kqEs6F9LAK
qas8u5EcbISPO69mlqVEnoOHubYEIa8TKFyhyS3T4pwE9ixp3FrCMuhGEzmb
QvfcRNv5eBktarVaZk5Jl1YA3nvJGcOLogvT3MN3cIeBSN+V6J7hwlxvUQpo
sWfFtHNWraDJZ9ye+1RymNBWmSPOuikO836B+HFXa5sB3yEgNjVQ93PJtY7O
McYhMOuNEHpC60o1AvEloCKOHUM+DhaupTVT8TtjUlTr46pWSERKIsOyF5BG
7FtE9oXabTEhBO1rDT9bGKOzj32mii/dMrSD0GnG7hBxLqtJwK0hXXHKYBUS
DMpLMojKoA+ac9Pae4WKmkR8YaRsk94luiM2xXlufUYB0wZacEZnWSIZQ82n
lM5dq2quU3I02g4QqU5i6nKNM3qZjsPF4jTMTBY9pI/rQuwbdPiUeYVqyKHQ
vyOdzNU9hnlEUj7FUQAPjW39F8Pjwr4Zbt3MfaVBK5Xg1AvKe/LTxTMBlpqT
WslWvnhrtG5LGiQLuURpSiBW2i/WdjhPu7BfWI2E5PdlIUSRfPAMhgJu1Ao5
4wxNwg1gjDdax2Pr0YvWp7mDjXft3/yNEiwjqn5fG744Hyw44RfZH1wb8wG4
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
0i3L8NSgRbybkllQKOGSPr10GbSFKarTTg/hGZP6gjbmEr42CwfZ1dJTEk7H
MuwYU5k/O8d+X0J4l3bUfud0Q47NLEaZxieFKn7VAvPsQo1Fzt++L+YasuHK
KklG5ohbw/bXSKMEGB0m4LnYKudjzAnI5oPtpAiXotoJBrRhzMlzl93cCRTN
NH/U8q4XDOR+MN2RcGNIkNNxulYd3mN6cEBH0QAJQpbBkAlOw7TYEWdnUWw6
OFq2mbu9rM+5eyu4RK5CLZyeZ8bj9ybRQbxkIbE9pn/Badt81+ZSe9tK0Evx
N/KZ6rLbZ+O0RkKRTk2T4kTw3lLPLhh/Y1gcNGLVppLd1Yl+lxRrQomuMMBW
/+AYhMYzRuFaexJ80PPe8+KAa1wtD76uHhZ5pRpywQilp1m0RYl1SwOpRLQ7
LRfTkD/y6+lakNJP7GCnC0P4x2V/Jp9cIfmW5pBFz6x3iaRnjGmDbi/FNbjp
8OPwqP72ZwJ/BsCtaeWbKfSSrzBRXYcvatG/QRlT5HwuLoaMMIWcOKfRtcVL
P+s9d4L+sBHdIPsBLVR8OEIb63d68XxGNgmk2Gy4fyKXBf+azkcfs1+urt9d
vbt+//2P1z9dKVj0E50amY8e58XSZd99+jx/Cw656u3Qn2idxH0XaEU1uZ61
XpFHYqVKLLmlkhnXNHZ1CeK8u+QN9WlQhP22o6Pzr+kse2i3fGbect8CCm7w
af5wS0/jc2qMjqpE+M1gKSKem7nCBviFG9C90BUQrjDmZrgAzLd2pezs7uL1
g6CpXfnrmyUFn+7Nv/3p1io6sos426QLCEX25DpUkO8A2AbTMSv2NVmQ5ZJW
NAM8mjUP0w19+YEBIhOQ0HE23Azo/3SZh2q14ozQHDixgt6ewgU6OvPxnkJU
cm0GdNWm7bJ7cu/oPFqjN86IJnGOnyzpF2OKWQfZH65ePEJjbeiwn+hLk6Je
t9kcsPKXNW3tG7KgJVkiWtlNyxHcHe2a7LeXF3JhHd1nhPQOtF3hJ80X7W6X
fWlxKNyhq3BFi2fLwA48N63/CR1LtOYll0VvWJET9ncBxAbiSJ8VVzYlL9it
e640qJfIlF2qaWNcMfF/QIJtgU3jFJV4sS2dhGHmNMHchLNJU7x20mg+7rf0
wf0/ZOPWdLauq8uL/wD5fNAHu3cBAA==

-->

</rfc>
