<?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.6.35 (Ruby 3.0.2) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ar-pquip-pqc-engineers-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.4 -->
  <front>
    <title abbrev="PQC for Engineers">Post-Quantum Cryptography for Engineers</title>
    <seriesInfo name="Internet-Draft" value="draft-ar-pquip-pqc-engineers-01"/>
    <author fullname="Aritra Banerjee">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Munich</city>
          <country>Germany</country>
        </postal>
        <email>aritra.banerjee@nokia.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Dimitrios Schoinianakis">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Athens</city>
          <country>Greece</country>
        </postal>
        <email>dimitrios.schoinianakis@nokia-bell-labs.com</email>
      </address>
    </author>
    <author fullname="Timothy Hollebeek">
      <organization>DigiCert</organization>
      <address>
        <postal>
          <city>Pittsburgh</city>
          <country>USA</country>
        </postal>
        <email>tim.hollebeek@digicert.com</email>
      </address>
    </author>
    <date year="2023" month="June" day="26"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <abstract>
      <?line 166?>

<t>The presence of a Cryptographically Relevant Quantum Computer (CRQC) would render state-of-the-art, public-key cryptography deployed today obsolete, since all the assumptions about the intractability of the mathematical problems that offer confident levels of security today no longer apply in the presence of a CRQC.  This means there is a requirement to update protocols and infrastructure to use post-quantum algorithms, which are public-key algorithms designed to be secure against CRQCs as well as classical computers.  These algorithms are just like previous public key algorithms, however the intractable mathematical problems have been carefully chosen, so they are hard for CRQCs as well as classical computers. This document explains why engineers need to be aware of and understand post-quantum cryptography. It emphasizes the potential impact of CRQCs on current cryptographic systems and the need to transition to post-quantum algorithms to ensure long-term security.  The most important thing to understand is that this transition is not like previous transitions from DES to AES or from SHA-1 to SHA2, as the algorithm properties are significantly different from classical algorithms, and a drop-in replacement is not possible.</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-ar-pquip-pqc/"/>.
      </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 170?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Quantum computing is no longer perceived as a conjecture of computational sciences and theoretical physics. Considerable research efforts and enormous corporate and government funding for the development of practical quantum computing systems are being invested currently. For instance, Google’s announcement on achieving quantum supremacy <xref target="Google"/>, IBM’s latest 433-qubit processor Osprey <xref target="IBM"/> or even Nokia Bell Labs' work on topological qubits <xref target="Nokia"/> signify, among other outcomes, the accelerating efforts towards large-scale quantum computers. At the time of writing the document, Cryptographically Relevant Quantum Computers (CRQCs) that can break widely used public-key cryptographic algorithms are not yet available. However, it is worth noting that there is ongoing research and development in the field of quantum computing, with the goal of building more powerful and scalable quantum computers. As quantum technology advances, there is the potential for future quantum computers to have a significant impact on current cryptographic systems.  Forecasting the future is difficult, but the general consensus is that such computers might arrive some time in the 2030s, or might not arrive until 2050 or later.</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. This document aims to provide general guidance to engineers who utilize public-key cryptography in their software. It covers topics such as selecting appropriate post-quantum cryptographic (PQC) algorithms, understanding the differences between PQC Key Encapsulation Mechanisms (KEMs) and traditional Diffie-Hellman style key exchange, and provides insights into expected key sizes and processing time differences between PQC algorithms and traditional ones. Additionally, it discusses the potential threat to symmetric cryptography from Cryptographically Relevant Quantum Computers (CRQCs).  It is important to remember that asymmetric algorithms are largely used for secure communications between organizations 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.</t>
      <t>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 algorithms from the Symmetric side based on stream, block ciphers, etc. It 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 or Quantum Key Generation, which use quantum hardware to exploit quantum effects to protect communications and generate keys, respectively.  Post-quantum cryptography is based on standard math and software and can be run on any general purpose computer.</t>
      <t>Please note: This document does not go into the deep mathematics 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.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="contributing-to-this-document">
      <name>Contributing to This Document</name>
      <t>The guide was inspired by a thread in September 2022 on the <eref target="mailto:pqc@ietf.org">pqc@ietf.org</eref> mailing list.
The document is being collaborated on through a <eref target="https://github.com/tireddy2/pqc-for-engineers">GitHub repository</eref>.</t>
      <t>The editors actively encourage contributions to this document. Please consider writing a section on a topic that you think is missing. Short of that, writing a paragraph or two on an issue you found when writing code that uses PQC would make this document more useful to other coders. Opening issues that suggest new material is fine too, but relying on others to write the first draft of such material is much less likely to happen than if you take a stab at it yourself.</t>
    </section>
    <section anchor="traditional-cryptographic-primitives-that-could-be-replaced-by-pqc">
      <name>Traditional Cryptographic Primitives that Could Be Replaced by PQC</name>
      <t>Any asymmetric cryptographic algorithm based on integer factorization, finite field discrete logarithms or elliptic curve discrete logarithms will be vulnerable to attacks using Shor's Algorithm on a sufficiently large general-purpose quantum computer, known as a CRQC. This document focuses on the principal functions of asymmetric cryptography:</t>
      <ul spacing="normal">
        <li>Key Agreement:  Key Agreement schemes are used to establish a shared cryptographic key for secure communication. They are one of the mechanisms that can replaced by PQC, as this is based on public key cryptography and is therefore vulnerable to the Shor's algorithm. An CRQC can find the prime factors of the large public key, which can used to derive the private key.</li>
        <li>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. Signatures, similar to KEMs also depend on public-private key pair and hence a break in public key cryptography will also affect traditional digital signatures, hence the importance of developing post quantum digital signatures.</li>
      </ul>
    </section>
    <section anchor="invariants-of-post-quantum-cryptography">
      <name>Invariants of Post-Quantum Cryptography</name>
      <t>In the context of PQC, symmetric-key cryptographic algorithms are generally not directly impacted by quantum computing advancements. Symmetric-key cryptography, such as block ciphers (e.g., AES) and hash functions (e.g., HMAC-SHA2), rely on secret keys shared between the sender and receiver. HMAC is a specific construction that utilizes a cryptographic hash function (such as SHA-2) and a secret key shared between the sender and receiver to produce a message authentication code. CRQCs, in theory, do not offer substantial advantages in breaking symmetric-key algorithms compared to classical computers (see <xref target="symmetric"/> for more details).</t>
    </section>
    <section anchor="nist-pqc-algorithms">
      <name>NIST PQC Algorithms</name>
      <t>In 2016, the National Institute of Standards and Technology (NIST) started a process to solicit, evaluate, and standardize one or more quantum-resistant public-key cryptographic algorithms, as seen <eref target="https://csrc.nist.gov/projects/post-quantum-cryptography">here</eref>. The first set of algorithms for standardization (https://csrc.nist.gov/publications/detail/nistir/8413/final) were selected in July 2022.</t>
      <t>NIST announced as well that they will be <eref target="https://csrc.nist.gov/csrc/media/Projects/post-quantum-cryptography/documents/round-4/guidelines-for-submitting-tweaks-fourth-round.pdf">opening a fourth round</eref> to standardize an alternative KEM, and a <eref target="https://csrc.nist.gov/csrc/media/Projects/pqc-dig-sig/documents/call-for-proposals-dig-sig-sept-2022.pdf">call</eref> for new candidates for a post-quantum signature algorithm.</t>
      <t>These algorithms are not a drop-in replacement for classical asymmetric cryptographic algorithms.  RSA <xref target="RSA"/> and ECC <xref target="RFC6090"/> can be used for both key encapsulation and signatures, while for post-quantum algorithms, a different algorithm is needed for each.  When upgrading protocols, it is important to replace the existing use of classical algorithms with either a PQC key encapsulation method or a PQC signature method, depending on how RSA and/or ECC was previously being used.</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>
              <eref target="https://pq-crystals.org/kyber/">CRYSTALS-Kyber</eref>: Kyber is a module learning with errors (MLWE)-based key encapsulation mechanism (<xref target="lattice-based"/>).</li>
          </ul>
        </section>
        <section anchor="pqc-signatures">
          <name>PQC Signatures</name>
          <ul spacing="normal">
            <li>
              <eref target="https://pq-crystals.org/dilithium/">CRYSTALS-Dilithium</eref>: CRYSTALS-Dilithium is a lattice signature scheme (<xref target="lattice-based"/> and <xref target="sig-scheme"/>).</li>
            <li>
              <eref target="https://falcon-sign.info/">Falcon</eref>: Falcon is a lattice signature scheme (<xref target="lattice-based"/> and <xref target="sig-scheme"/>).</li>
            <li>
              <eref target="https://sphincs.org/">SPHINCS+</eref>: SPHINCS+ is a stateless hash-based signature scheme (<xref target="hash-based"/> and <xref target="sig-scheme"/>).</li>
          </ul>
        </section>
      </section>
      <section anchor="candidates-advancing-to-the-fourth-round-for-standardization-at-nist">
        <name>Candidates advancing to the fourth-round for standardization at NIST</name>
        <t>The fourth-round of the NIST process only concerns with KEMs.
The candidates still advancing for standardization are:</t>
        <ul spacing="normal">
          <li>
            <eref target="https://classic.mceliece.org/">Classic McEliece</eref></li>
          <li>
            <eref target="https://bikesuite.org/">BIKE</eref></li>
          <li>
            <eref target="http://pqc-hqc.org/">HQC</eref></li>
          <li>
            <eref target="https://sike.org/">SIKE</eref> (Broken): Supersingular Isogeny Key Encapsulation (SIKE) is a specific realization of the SIDH (Supersingular Isogeny Diffie-Hellman) protocol. Recently, a <eref target="https://eprint.iacr.org/2022/975.pdf">mathematical attack</eref> based on the "glue-and-split" theorem from 1997 from Ernst Kani was found against the underlying chosen starting curve and torsion information. In practical terms, this attack allows for the efficient recovery of the private key. NIST announced that SIKE was no longer under consideration, but the authors of SIKE had asked for it to remain in the list so that people are aware that it is broken.</li>
        </ul>
      </section>
    </section>
    <section anchor="threat-of-crqcs-on-cryptography">
      <name>Threat of CRQCs on Cryptography</name>
      <t>Post-quantum cryptography or quantum-safe cryptography refers to cryptographic algorithms that are secure against cryptographic attacks from both CRQCs and classic computers.</t>
      <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>
      <section anchor="symmetric">
        <name>Symmetric cryptography</name>
        <t>Grover's algorithm is a quantum search algorithm that provides a theoretical quadratic speedup for searching an unstructured database compared to classical algorithms. Grover’s algorithm theoretically requires doubling the key sizes of the algorithms that one deploys today to achieve quantum resistance. 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, 2^{64} operations performed in parallel are feasible for modern classical computers, but 2^{64} quantum operations performed serially in a quantum computer are not. 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 1/16, 1024 quantum computers will only reduce runtime by 1/32 and so forth ​(see <xref target="NIST"/> and <xref target="Cloudflare"/>​).</t>
        <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 CRQCs is known  to break the security properties of these classes of algorithms.</t>
        <t>How can someone be sure then that an improved algorithm won’t outperform Grover's algorithm at some point in time? Christof Zalka has shown that Grover's algorithm (and in particular its non-parallel nature) achieves the best possible complexity for unstructured search <xref target="Grover-search"/>.</t>
        <t>Finally, in their evaluation criteria for PQC, NIST is considering a security level equivalent to that of AES-128, meaning that NIST has confidence in standardizing parameters for PQC that offer similar levels of security as AES-128 does <xref target="NIST"/>​. As a result, 128-bit algorithms should be considered quantum-safe for many years to come.</t>
      </section>
      <section anchor="asymmetric-cryptography">
        <name>Asymmetric cryptography</name>
        <t>“Shor’s algorithm” on the other side, efficiently solves the integer factorization problem (and the related discrete logarithm problem), which offer the foundations of the 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 - ECC) and the accompanying digital signatures schemes and protocols would need to be replaced by algorithms and protocols that can offer cryptanalytic resistance against CRQCs. Note that Shor’s algorithm doesn’t run on any classic computer, it needs a CRQC.</t>
        <t>For example, to provide some context, one would need 20 million noisy qubits to break RSA-2048 in 8 hours <xref target="RSA8HRS"/> or 4099 stable qubits to break it in 10 seconds <xref target="RSA10SC"/>.</t>
        <t>For structured data such as public-key and signatures, instead, CRQCs can fully solve the underlying hard problems used in classic cryptography (see Shor's Algorithm). Because an increase of the size of the key-pair would not provide a secure solution in this case, 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 classic 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>
    <section anchor="timeline-for-transition">
      <name>Timeline for transition</name>
      <t>A malicious actor with adequate resources can launch an attack to store sensitive encrypted data today that can be decrypted 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 being deciphered in the future.</t>
      <figure anchor="Mosca">
        <name>Mosca model</name>
        <artwork><![CDATA[
+------------------------+----------------------------+
|                        |                            |
|         y              |           x                |
+------------------------+----------+-----------------+
|                                   |
|               z                   |
+-----------------------------------+

]]></artwork>
      </figure>
      <t>These challenges are illustrated nicely by the so called Mosca model discussed in ​<xref target="Threat-Report"/>. In the <xref target="Mosca"/>, "x" denotes the time that our systems and data need to remain secure, "y" the number of years to migrate to a PQC infrastructure and "z" the time until a CRQC that can break current cryptography is available. The model assumes that encrypted data can be intercepted and stored before the migration is completed in "y" years. 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 are we preparing our IT systems during those "y" years (or in other words, how can one 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 less qubits. As an example, IBM, one of the leading actors in the development of a large-scale quantum computer, has recently published a roadmap committing to new quantum processors supporting more than 1000 qubits by 2025 and networked systems with 10k-100k qubits beyond 2026 <xref target="IBMRoadmap"/>. Innovation often comes in waves, so it is to the industry’s benefit to remain vigilant and prepare as early as possible.</t>
    </section>
    <section anchor="post-quantum-cryptography-categories">
      <name>Post-quantum cryptography categories</name>
      <t>The current set of problems used in post-quantum cryptography can be currently grouped into three different categories: lattice-based, hash-based and code-based.</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 regularly spaced) to build problems that are hard to solve such as the Shortest Vector or Closes Vector Problem, Learning with Errors, and Learning with Rounding. All these problems have good proof for worst-to-average case reduction, thus equating the hardness of the average case to the worst-case.</t>
        <t>The possibility to implement public-key schemes on lattices is tied to the characteristics of the basis used for the lattice. In particular, solving any of the mentioned problems can be easy when using reduced or "good" basis (i.e., as short as possible and as orthogonal as possible), while it becomes computationally infeasible when using "bad" basis (i.e., long vectors not orthogonal). Although the problem might seem trivial, it is computationally hard when considering many dimensions. Therefore, a typical approach is to use "bad" basis for public keys and "good" basis for private keys. The public keys ("bad" basis) let you easily verify signatures by checking, for example, that a vector is the closest or smallest, but do not let you solve the problem (i.e., finding the vector). Conversely, private keys (i.e., the "good" basis) can be used for generating the signatures (e.g., finding the specific vector). Signing is equivalent to solving the lattice problem.</t>
        <t>Lattice-based schemes usually have good performances and average size public keys and signatures, making them good candidates for general-purpose use such as replacing the use of RSA in PKIX certificates.</t>
        <t>Examples of such class of algorithms include Kyber, Falcon and Dilithium.</t>
      </section>
      <section anchor="hash-based">
        <name>Hash-Based Public-Key Cryptography</name>
        <t>Hash based PKC has been around since the 70s, developed by Lamport and Merkle which creates a digital signature algorithm and its security is mathematically based on the security of the selected cryptographic hash function. Many variants of hash based signatures have been developed since the 70s including the recent XMSS, LMS or BPQS schemes. Unlike digital signature techniques, most hash-based signature schemes are stateful, which means that signing necessitates the update of the secret key.</t>
        <t>SPHINCS on the other hand leverages the HORS (Hash to Obtain Random Subset) technique and remains the only hash based signature scheme that is stateless.</t>
        <t>SPHINCS+ is an advancement on SPHINCS which reduces the signature sizes in SPHINCS and makes it more compact. SPHINCS+ was recently standardized by NIST.</t>
      </section>
      <section anchor="code-based">
        <name>Code-Based Public-Key Cryptography</name>
        <t>This area of cryptography stemmed 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 the Goppa codes (used in McEliece cryptosystems), encoding and decoding syndrome codes used in Hamming Quasi-Cyclic (HQC) or Quasi-cyclic Moderate density parity check (QC-MDPC) codes.</t>
        <t>Examples include all the NIST Round 4 (unbroken) finalists: Classic McEliece, HQC, BIKE.</t>
      </section>
    </section>
    <section anchor="kems">
      <name>KEMs</name>
      <section anchor="what-is-a-kem">
        <name>What is a KEM</name>
        <t>Key Encapsulation Mechanism (KEM) is a cryptographic technique used for securely exchanging symmetric keys 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 in one of two ways: (1) Derive a Data Encryption Key (DEK) to encrypt the data (2) Derive a Key Encryption Key (KEK) used to wrap the DEK.</t>
        <t>KEM relies on the following primitives <xref target="PQCAPI"/>:</t>
        <ul spacing="normal">
          <li>def kemKeyGen() -&gt; (pk, sk)</li>
          <li>def kemEncaps(pk) -&gt; (ct, ss)</li>
          <li>def kemDecaps(ct, sk) -&gt; ss</li>
        </ul>
        <t>where pk is public key, sk is secret key, ct is the ciphertext representing an encapsulated key, and ss is shared secret.  The following figure illustrates a sample flow of KEM:</t>
        <artset>
          <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="352" width="544" viewBox="0 0 544 352" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,280 L 8,304" fill="none" stroke="black"/>
              <path d="M 24,88 L 24,112" fill="none" stroke="black"/>
              <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
              <path d="M 208,288 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,184 L 336,208" fill="none" stroke="black"/>
              <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
              <path d="M 536,192 L 536,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 200,80" fill="none" stroke="black"/>
              <path d="M 32,112 L 200,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 344,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 200,272" fill="none" stroke="black"/>
              <path d="M 16,304 L 200,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="208" y="84">\</text>
                <text x="48" y="100">sk,</text>
                <text x="76" y="100">pk</text>
                <text x="96" y="100">=</text>
                <text x="152" y="100">kemKeyGen()</text>
                <text x="236" y="100">-|</text>
                <text x="208" y="116">|</text>
                <text x="244" y="148">pk</text>
                <text x="536" y="180">\</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="300" y="244">ct</text>
                <text x="208" y="276">\</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  |
                      +---------+ +---------+
  -----------------------\ |           |
  | sk, pk = kemKeyGen()   |-|         |
  |----------------------| |           |
                           |           |
                           | pk        |
                           |---------->|
                           |           | -------------------------\
                           |           |-| ss, ct = kemEncaps(pk) |
                           |           | |------------------------|
                           |           |
                           |        ct |
                           |<----------|
-------------------------\ |           |
| ss = kemDecaps(ct, sk) |-|           |
|------------------------| |           |
                           |           |

]]></artwork>
        </artset>
        <section anchor="interactivity-in-pqc-kem-and-diffie-hellman-dh-key-exchange">
          <name>Interactivity in PQC KEM and Diffie-Hellman (DH) Key Exchange</name>
          <t>PQ KEMs are interactive in nature because it involves back-and-forth communication to negotiate and establish the shared secret key and unlike Diffie-Hellman (DH) Key exchange (KEX) which provides non-interactive key exchange (NIKE) property. NIKE is a cryptographic primitive which enables two parties, who know each others public keys, to agree on a symmetric shared key without requiring any interaction. The following figure illustrates a sample flow of DH:</t>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="544" viewBox="0 0 544 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,296 L 8,320" fill="none" stroke="black"/>
                <path d="M 24,88 L 24,112" fill="none" stroke="black"/>
                <path d="M 184,32 L 184,64" fill="none" stroke="black"/>
                <path d="M 208,96 L 208,112" fill="none" stroke="black"/>
                <path d="M 208,304 L 208,320" fill="none" stroke="black"/>
                <path d="M 224,72 L 224,192" fill="none" stroke="black"/>
                <path d="M 224,224 L 224,336" 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,336" fill="none" stroke="black"/>
                <path d="M 336,184 L 336,224" fill="none" stroke="black"/>
                <path d="M 360,32 L 360,64" fill="none" stroke="black"/>
                <path d="M 536,192 L 536,224" 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 200,80" fill="none" stroke="black"/>
                <path d="M 32,112 L 200,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 344,224 L 528,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 16,320 L 200,320" 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,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="208" y="84">\</text>
                  <text x="52" y="100">sk1,</text>
                  <text x="88" y="100">pk1</text>
                  <text x="112" y="100">=</text>
                  <text x="156" y="100">KeyGen()</text>
                  <text x="216" y="100">-</text>
                  <text x="248" y="148">pk1</text>
                  <text x="536" y="180">\</text>
                  <text x="328" y="196">-</text>
                  <text x="364" y="196">sk2,</text>
                  <text x="400" y="196">pk2</text>
                  <text x="424" y="196">=</text>
                  <text x="468" y="196">KeyGen()</text>
                  <text x="356" y="212">ss</text>
                  <text x="376" y="212">=</text>
                  <text x="436" y="212">Combine(pk1,</text>
                  <text x="508" y="212">sk2)</text>
                  <text x="304" y="260">pk2</text>
                  <text x="208" y="292">\</text>
                  <text x="28" y="308">ss</text>
                  <text x="48" y="308">=</text>
                  <text x="108" y="308">Combine(pk2,</text>
                  <text x="180" y="308">sk1)</text>
                  <text x="216" y="308">-</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
                      +---------+ +---------+
                      | Client  | | Server  |
                      +---------+ +---------+
  -----------------------\ |           |
  | sk1, pk1 = KeyGen()  |-|           |
  |----------------------| |           |
                           |           |
                           | pk1       |
                           |---------->|
                           |           | -------------------------\
                           |           |-| sk2, pk2 = KeyGen()    |
                                       | | ss = Combine(pk1, sk2) |
                           |           | |------------------------|
                           |           |
                           |        pk2|
                           |<----------|
-------------------------\ |           |
| ss = Combine(pk2, sk1) |-|           |
|------------------------| |           |
                           |           |


]]></artwork>
          </artset>
        </section>
      </section>
      <section anchor="hpke">
        <name>HPKE</name>
        <t>HPKE (Hybrid public key encryption) <xref target="RFC9180"/> deals with a variant of KEM which is essentially a PKE of arbitrary sized plaintexts for a recipient public key. It works with a combination of KEMs, KDFs and AEAD schemes (Authenticated Encryption with Additional Data). 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. Kyber, which is a KEM does not support the static-ephemeral key exchange that allows HPKE based on DH based KEMs its (optional) authenticated modes as discussed in Section 1.2 of <xref target="I-D.westerbaan-cfrg-hpke-xyber768d00-02"/>.</t>
      </section>
      <section anchor="security-property">
        <name>Security property</name>
        <ul spacing="normal">
          <li>IND-CCA2 : IND-CCA2 (INDistinguishability under adaptive Chosen-Ciphertext Attack) is an advanced security notion for encryption schemes. A scheme is IND-CCA2 secure if no adversary has non-negligible advantage of winning this game. It ensures the confidentiality of the plaintext, resistance against chosen-ciphertext attacks, and prevents the adversary from forging new ciphertexts. An appropriate definition of IND-CCA2 security for KEMs can be found in <xref target="CS01"/> and <xref target="BHK09"/>. Kyber, Classic McEliece and Saber provide IND-CCA2 security.</li>
        </ul>
        <t>Understanding IND-CCA2 security is essential for individuals involved in designing or implementing cryptographic systems to evaluate the strength of the algorithm, assess its suitability for specific use cases, and ensure that data confidentiality and security requirements are met.</t>
      </section>
    </section>
    <section anchor="pqc-signatures-1">
      <name>PQC Signatures</name>
      <section anchor="what-is-a-post-quantum-signature">
        <name>What is a Post-quantum Signature</name>
        <t>Any digital signature scheme that provides a construction defining security under post quantum setting falls under this category of PQ signatures.</t>
      </section>
      <section anchor="security-property-1">
        <name>Security property</name>
        <ul spacing="normal">
          <li>EUF-CMA : 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 unknown message. EUF-CMA provides strong protection against forgery attacks, ensuring the integrity and authenticity of digital signatures by preventing unauthorized modifications or fraudulent signatures. Dilithium, Falcon and Sphincs+ provide EUF-CMA security.</li>
        </ul>
        <t>Understanding EUF-CMA security is essential for individual involved in designing or implementing cryptographic systems to ensure the security, reliability, and trustworthiness of digital signature schemes. It allows for informed decision-making, vulnerability analysis, compliance with standards, and designing systems that provide strong protection against forgery attacks.</t>
      </section>
      <section anchor="sig-scheme">
        <name>Details of FALCON, Dilithium, and SPHINCS+</name>
        <t>Dilithium <xref target="Dilithium"/> is a digital signature algorithm (part of the CRYSTALS suite) based on the hardness lattice problems over module lattices (i.e., the Module Learning with Errors problem(MLWE)). The design of the algorithm is based on Fiat Shamir with Abort method that leverages rejection sampling to render lattice based FS schemes compact and secure. Additionally, Dilithium offers both deterministic and randomized signing. Security properties of Dilithium are discussed in Section 9 of <xref target="I-D.ietf-lamps-dilithium-certificates"/>.</t>
        <t>Falcon <xref target="Falcon"/> 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 class of lattices and a trapdoor sampler technique.</t>
        <t>The main design principle of Falcon 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.  Falcon also offers very efficient signing and verification procedures. The main potential downsides of Falcon refer to the non-triviality of its algorithms and the need for floating point arithmetic support.</t>
        <t>Access to a robust floating-point stack in Falcon is essential for accurate, efficient, and secure execution of the mathematical computations involved in the scheme. It helps maintain precision, supports error correction techniques, and contributes to the overall reliability and performance of Falcon's cryptographic operations.</t>
        <t>The performance characteristics of Dilithium and Falcon may differ based on the specific implementation and hardware platform. Generally, Dilithium is known for its relatively fast signature generation, while Falcon can provide more efficient signature verification. The choice may depend on whether the application requires more frequent signature generation or signature verification. For further clarity, please refer to the tables in sections <xref target="RecSecurity"/> and <xref target="Comparisons"/>.</t>
        <t>Sphincs+ <xref target="SPHINCS"/> 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. Other hash-based signature algorithms are stateful, including HSS/LMS <xref target="RFC8554"/> and XMSS <xref target="RFC8391"/>. SPHINCS+ was designed to sign up to 2^64 messages 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.  Sphincs+ offers smaller key sizes, larger signature sizes, slower signature generation, and slower verification when compared to Dilithium and Falcon. SPHINCS+ does not introduce a new intractability assumption. It builds upon established foundations in cryptography, making it a reliable and robust digital signature scheme for a post-quantum world. The advantages and disadvantages of SPHINCS+ over other signature algorithms is disussed in Section 3.1 of <xref target="I-D.draft-ietf-cose-sphincs-plus"/>.</t>
      </section>
      <section anchor="hash-then-sign-versus-sign-then-hash">
        <name>Hash-then-Sign Versus Sign-then-Hash</name>
        <t>Within the hash-then-sign paradigm, the message is hashed before signing it.  Hashing the message before signing it provides an additional layer of security by ensuring that only a fixed-size digest of the message is signed, rather than the entire message itself. By pre-hashing, the onus of resistance to existential forgeries becomes heavily reliant on the collision-resistance of the hash function in use.  As well as this security goal, the hash-then-sign paradigm also has the ability to improve performance by reducing the size of signed messages.  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. 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.  Hash-then-Sign also greatly reduces the amount of data that needs to be processed by a hardware security module, which sometimes have somewhat limited data processing capabilities.</t>
        <t>Protocols like TLS 1.3 and DNSSEC use the Hash-then-Sign paradigm. TLS 1.3 <xref target="RFC8446"/> uses it in the Certificate Verify to proof that the endpoint possesses the private key corresponding to its certificate, while DNSSEC <xref target="RFC4033"/> uses it to provide origin authentication and integrity assurance services for DNS data.</t>
        <t>In the case of Dilithium, it internally incorporates the necessary hash operations as part of its signing algorithm. Dilithium directly takes the original message, applies a hash function internally, and then uses the resulting hash value for the signature generation process. Therefore, the hash-then-sign paradigm is not needed for Dilithium, as it already incorporates hashing within its signing mechanism. In case of SPHINCS+, it internally performs randomized message compression using a keyed hash function that can process arbitrary length messages. Therefore, the hash-then-sign paradigm is also not needed for SPHINCS+.</t>
      </section>
    </section>
    <section anchor="RecSecurity">
      <name>Recommendations for Security / Performance Tradeoffs</name>
      <t>The table below denotes the 5 security levels provided by NIST required for PQC algorithms. Users can leverage the required algorithm based on the security level based on their use case. The security is defined as a function of resources required to break AES and SHA3 algorithms, i.e., optimal key recovery for AES and optimal collision attacks for SHA3.</t>
      <table>
        <thead>
          <tr>
            <th align="left">Security Level</th>
            <th align="left">AES/SHA3 hardness</th>
            <th align="left">PQC Algorithm</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">Find optimal key in AES-128</td>
            <td align="left">Kyber512, Falcon512, Sphincs+SHA256 128f/s</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">Find optimal collision in SHA3-256</td>
            <td align="left">Dilithium2</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">Find optimal key in AES-192</td>
            <td align="left">Kyber768, Dilithium3, Sphincs+SHA256 192f/s</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">Find optimal collision in SHA3-384</td>
            <td align="left">No algorithm tested at this level</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">Find optimal key in AES-256</td>
            <td align="left">Kyber1024, Falcon1024, Dilithium5, Sphincs+SHA256 256f/s</td>
          </tr>
        </tbody>
      </table>
      <t>Please note the Sphincs+SHA256 x"f/s" in the above table denotes whether its the Sphincs+ fast (f) version or small (s) version for "x" bit AES security level. Refer to <xref target="I-D.ietf-lamps-cms-sphincs-plus-02"/> for further details on Sphincs+ algorithms.</t>
      <t>The following table discusses the impact of performance on different security levels in terms of private key sizes, public key sizes and ciphertext/signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">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">Kyber512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">Dilithium2</td>
            <td align="left">1312</td>
            <td align="left">2528</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">Kyber768</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">Falcon1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1330</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">Kyber1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1588</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Comparisons">
      <name>Comparing PQC KEMs/Signatures vs Traditional KEMs (KEXs)/Signatures</name>
      <t>In this section, we provide two tables for comparison of different KEMs and Signatures respectively, in the traditional and Post scenarios. These tables will 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, 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_SHA256</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_SHA512</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_SHA256</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">Kyber512</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">Kyber768</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">Kyber1024</td>
            <td align="left">1568</td>
            <td align="left">3168</td>
            <td align="left">1588</td>
          </tr>
        </tbody>
      </table>
      <t>The next table compares traditional vs. PQC Signature schemes in terms of security, public, private key sizes, and signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">RSA2048</td>
            <td align="left">256</td>
            <td align="left">256</td>
            <td align="left">256</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">P256</td>
            <td align="left">64</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">Dilithium2</td>
            <td align="left">1312</td>
            <td align="left">2528</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">Dilithium3</td>
            <td align="left">1952</td>
            <td align="left">4000</td>
            <td align="left">3293</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">Falcon1024</td>
            <td align="left">1793</td>
            <td align="left">2305</td>
            <td align="left">1330</td>
          </tr>
        </tbody>
      </table>
      <t>As one can clearly observe from the above tables, leveraging a PQC KEM/Signature significantly increases the key sizes and the ciphertext/signature sizes as well as compared to traditional KEM(KEX)/Signatures. But the PQC algorithms do provide the additional security level in case there is an attack from a CRQC, whereas schemes based on prime factorization or discrete logarithm problems (finite field or elliptic curves) would provide no level of security at all against such attacks.</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 elliptic curve, will fall to quantum cryptalanysis, 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 classical cryptanalytic attacks and implementation bugs.</t>
      <t>During the transition from traditional to post-quantum algorithms, there may be a desire or a requirement for protocols that use both algorithm types. <xref target="I-D.ietf-pquip-pqt-hybrid-terminology"/> defines the terminology for the Post-Quantum and Traditional Hybrid Schemes.</t>
      <section anchor="pqt-hybrid-confidentiality">
        <name>PQ/T Hybrid Confidentiality</name>
        <t>The PQ/T Hybrid Confidentiality property can be used to protect from a "Harvest Now, Decrypt Later" attack, which refers to an attacker collecting encrypted data now and waiting for quantum computers to become powerful enough to break the encryption later. 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>
      </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. This property ensures authentication through a PQ/T hybrid scheme or a PQ/T hybrid protocol, as long as at least one component algorithm remains secure to provide the intended security level. For instance, a PQ/T hybrid certificate 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 <xref target="I-D.ounsworth-pq-composite-keys"/>; separate certificates could be used for individual component algorithms <xref target="I-D.ietf-lamps-cert-binding-for-multi-auth"/>.</t>
        <t>The frequency and duration of system upgrades and the time when CRQCs will become widely available need to be weighed in to determine whether and when to support the PQ/T Hybrid Authentication property.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="cryptanalysis">
        <name>Cryptanalysis</name>
        <t>Classical cryptanalysis exploits weaknesses in algorithm design, mathematical vulnerabilities, or implementation flaws, whereas quantum cryptanalysis harnesses the power of CRQCs 
to solve specific mathematical problems more efficiently. 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.
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 Kyber <xref target="KyberSide"/> and one attack on Saber <xref target="SaberSide"/>. 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 relevant for both classical 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.
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>
      </section>
      <section anchor="hybrid-key-exchange-bridging-the-gap-between-post-quantum-and-traditional-cryptography">
        <name>Hybrid Key Exchange : Bridging the Gap Between Post-Quantum and Traditional Cryptography</name>
        <t>Post-quantum algorithms selected for standardization are relatively new and they they have not been subject to the same depth of study as traditional algorithms. In addition, certain deployments may need to retain traditional algorithms due to regulatory constraints, for example FIPS compliance. Hybrid key exchange enables potential security against "Harvest Now, Decrypt Later" attack while not fully abandoning traditional cryptosystems.</t>
      </section>
    </section>
    <section anchor="further-reading-resources">
      <name>Further Reading &amp; Resources</name>
      <section anchor="reading-list">
        <name>Reading List</name>
        <t>(A reading list. <eref target="https://nostarch.com/seriouscrypto">Serious Cryptography</eref>. Pointers to PQC sites with good explanations. List of reasonable Wikipedia pages.)</t>
      </section>
      <section anchor="developer-resources">
        <name>Developer Resources</name>
        <ul spacing="normal">
          <li>
            <eref target="https://openquantumsafe.org/">Open Quantum Safe</eref> and corresponding <eref target="https://github.com/open-quantum-safe">github</eref></li>
        </ul>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>It leverages text from https://github.com/paulehoffman/post-quantum-for-engineers/blob/main/pqc-for-engineers.md. Thanks to Dan Wing, Florence D, Thom Wiggers, Sophia Grundner-Culemann, Melchior Aelmans, and Falko Strenzke for the discussion, review and comments.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="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="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>
      </references>
      <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="IBM" target="https://newsroom.ibm.com/2022-11-09-IBM-Unveils-400-Qubit-Plus-Quantum-Processor-and-Next-Generation-IBM-Quantum-System-Two">
          <front>
            <title>IBM Unveils 400 Qubit-Plus Quantum Processor and Next-Generation IBM Quantum System Two</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Google" target="https://ai.googleblog.com/2019/10/quantum-supremacy-using-programmable.html">
          <front>
            <title>Quantum Supremacy Using a Programmable Superconducting Processor</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="Nokia" target="https://journals.aps.org/prx/pdf/10.1103/PhysRevX.13.011028">
          <front>
            <title>Interference Measurements of Non-Abelian e/4 &amp; Abelian e/2 Quasiparticle Braiding</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="IBMRoadmap" target="https://www.ibm.com/quantum/roadmap">
          <front>
            <title>The IBM Quantum Development Roadmap</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Falcon" target="https://falcon-sign.info/">
          <front>
            <title>Fast Fourier lattice-based compact signatures over NTRU</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="Dilithium" target="https://pq-crystals.org/dilithium/index.shtml">
          <front>
            <title>Cryptographic Suite for Algebraic Lattices (CRYSTALS) - Dilithium</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="SPHINCS" target="https://sphincs.org/index.html">
          <front>
            <title>SPHINCS+</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="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="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="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.westerbaan-cfrg-hpke-xyber768d00-02">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum KEM for HPKE</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="4" month="May" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum KEM,
   for HPKE (RFC9180).  This KEM does not support the authenticated
   modes of HPKE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-westerbaan-cfrg-hpke-xyber768d00-02"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-dilithium-certificates">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Algorithm Identifiers for Dilithium</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="6" month="February" year="2023"/>
            <abstract>
              <t>   Digital signatures are used within X.509 certificates, Certificate
   Revocation Lists (CRLs), and to sign messages.  This document
   describes the conventions for using Dilithium quantum-resistant
   signatures in Internet X.509 certificates and certificate revocation
   lists.  The conventions for the associated post-quantum signatures,
   subject public keys, and private key are also described.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-dilithium-certificates-01"/>
        </reference>
        <reference anchor="I-D.draft-ietf-cose-sphincs-plus">
          <front>
            <title>JOSE and COSE Encoding for SPHINCS+</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>mesur.io</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Transmute</organization>
            </author>
            <author fullname="Rafael Misoczki" initials="R." surname="Misoczki">
              <organization>Google</organization>
            </author>
            <author fullname="Michael Osborne" initials="M." surname="Osborne">
              <organization>IBM</organization>
            </author>
            <author fullname="Christine Cloostermans" initials="C." surname="Cloostermans">
              <organization>NXP</organization>
            </author>
            <date day="12" month="March" year="2023"/>
            <abstract>
              <t>   This document describes JSON and CBOR serializations for SPHINCS+, a
   Post-Quantum Cryptography (PQC) signature suite.

   This document does not define any new cryptography, only
   seralizations of existing cryptographic systems.

   This document registers key types for JOSE and COSE, specifically
   HASH.

   Key types in this document are specified by the cryptographic
   algorithm family in use by a particular algorithm as discussed in
   RFC7517.

   This document registers signature algorithms types for JOSE and COSE,
   specifically SPHINCS+256s and others as required for use of various
   parameterizations of the SPHINCS+ post-quantum signature scheme.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-sphincs-plus-00"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC4033">
          <front>
            <title>DNS Security Introduction and Requirements</title>
            <author fullname="R. Arends" initials="R." surname="Arends"/>
            <author fullname="R. Austein" initials="R." surname="Austein"/>
            <author fullname="M. Larson" initials="M." surname="Larson"/>
            <author fullname="D. Massey" initials="D." surname="Massey"/>
            <author fullname="S. Rose" initials="S." surname="Rose"/>
            <date month="March" year="2005"/>
            <abstract>
              <t>The Domain Name System Security Extensions (DNSSEC) add data origin authentication and data integrity to the Domain Name System.  This document introduces these extensions and describes their capabilities and limitations.  This document also discusses the services that the DNS security extensions do and do not provide.  Last, this document describes the interrelationships between the documents that collectively describe DNSSEC. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4033"/>
          <seriesInfo name="DOI" value="10.17487/RFC4033"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-cms-sphincs-plus-02">
          <front>
            <title>Use of the SPHINCS+ 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="17" month="May" year="2023"/>
            <abstract>
              <t>   SPHINCS+ is a stateless hash-based signature scheme.  This document
   specifies the conventions for using the SPHINCS+ stateless hash-based
   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-02"/>
        </reference>
        <reference anchor="I-D.ietf-pquip-pqt-hybrid-terminology">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="4" month="May" year="2023"/>
            <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.

About This Document

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

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-ietf-pquip-pqt-hybrid/.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-00"/>
        </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 Amazon Web Services</organization>
            </author>
            <date day="27" month="February" year="2023"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if all but one of the component algorithms is broken.
   It is motivated by transition to post-quantum cryptography.  This
   document provides a construction for hybrid key exchange in the
   Transport Layer Security (TLS) protocol version 1.3.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-06"/>
        </reference>
        <reference anchor="I-D.ounsworth-pq-composite-keys">
          <front>
            <title>Composite Public and Private Keys For Use In Internet PKI</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>CableLabs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>D-Trust GmbH</organization>
            </author>
            <date day="29" month="May" year="2023"/>
            <abstract>
              <t>   The migration to post-quantum cryptography is unique in the history
   of modern digital cryptography in that neither the old outgoing nor
   the new incoming algorithms are fully trusted to protect data for the
   required data lifetimes.  The outgoing algorithms, such as RSA and
   elliptic curve, may fall to quantum cryptalanysis, while the incoming
   post-quantum algorithms face uncertainty about both the underlying
   mathematics as well as hardware and software implementations that
   have not had sufficient maturing time to rule out classical
   cryptanalytic attacks and implementation bugs.

   Cautious implementers may wish to layer cryptographic algorithms such
   that an attacker would need to break all of them in order to
   compromise the data being protected using either a Post-Quantum /
   Traditional Hybrid, Post-Quantum / Post-Quantum Hybrid, or
   combinations thereof.  This document, and its companions, defines a
   specific instantiation of hybrid paradigm called "composite" where
   multiple cryptographic algorithms are combined to form a single key,
   signature, or key encapsulation mechanism (KEM) such that they can be
   treated as a single atomic object at the protocol level.

   This document defines the structures CompositePublicKey and
   CompositePrivateKey, which are sequences of the respective structure
   for each component algorithm.  Explicit pairings of algorithms are
   defined which should meet most Internet needs.

   This document is intended to be coupled with corresponding documents
   that define the structure and semantics of composite signatures and
   encryption, such as [I-D.ounsworth-pq-composite-sigs] and
   [I-D.ounsworth-pq-composite-kem].

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-keys-05"/>
        </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="24" month="February" year="2023"/>
            <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-00"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
