<?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.39 (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-03" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="PQC for Engineers">Post-Quantum Cryptography for Engineers</title>
    <seriesInfo name="Internet-Draft" value="draft-ar-pquip-pqc-engineers-03"/>
    <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="August" day="10"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <abstract>
      <?line 177?>

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

<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. It might be worth mentioning that recently NSA released an article on Future Quantum-Resistant (QR) Algorithm Requirements for National Security Systems <xref target="CNSA2-0"/> based on the need to protect against deployments of CRQCs in the future.</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 be 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 be 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. Similar to Key Agreement, signatures 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 message authentication mechanisms (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 focuses only on KEMs. The goal of that round is to select an althernative algorithm that is based on different hard problem than Kyber.
The candidates still advancing for standardization are:</t>
        <ul spacing="normal">
          <li>
            <eref target="https://classic.mceliece.org/">Classic McEliece</eref>: Based on the hardness of syndrome decoding of Goppa codes. Goppa codes are a class of error-correcting codes that can correct a certain number of errors in a transmitted message. The decoding problem involves recovering the original message from the received noisy codeword.</li>
          <li>
            <eref target="https://bikesuite.org/">BIKE</eref>: Based on the the hardness of syndrome decoding of QC-MDPC codes. Quasi-Cyclic Moderate Density Parity Check (QC-MDPC) code are a class of error correcting codes that leverages bit flipping technique to efficiently correct errors.</li>
          <li>
            <eref target="http://pqc-hqc.org/">HQC</eref> : Based on the hardness of syndrome decoding of Quasi-cyclic concatenated Reed Muller Reed Solomon (RMRS) codes in the Hamming metric. Reed Muller (RM) codes are a class of block error correcting codes used especially in wireless and deep space communications. Reed Solomon (RS) are a class of block error correcting codes that are used to detect and correct multiple bit errors.</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 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) 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                   |   Security gap
+-----------------------------------+

]]></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>
        <t>It is noteworthy that, lattice-based encryption schemes are often prone to decryption failures, meaning that valid encryptions are decrypted incorrectly; as such, an attacker could significantly reduce the security of lattice-based schemes that have a relatively high failure rate. However, for most of the NIST Post-Quantum Proposals, the number of required oracle queries is above practical limits, as has been shown in <xref target="LattFail1"/>. More recent works have improved upon the results in <xref target="LattFail1"/>, showing that the cost of searching for additional failing ciphertexts after one or more have already been found, can be sped up dramatically <xref target="LattFail2"/>. Nevertheless, at this point in time (July 2023), the PQC candidates by NIST are considered secure under these attacks and we suggest constant monitoring as cryptanalysis research is ongoing.</t>
      </section>
      <section anchor="hash-based">
        <name>Hash-Based Public-Key Cryptography</name>
        <t>Hash based PKC has been around since the 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 <xref target="RFC8391"/>, HSS/LMS <xref target="RFC8554"/> 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" stroke-linecap="round">
              <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" stroke-linecap="round">
                <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. 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 arbitrary message. EUF-CMA provides strong protection against forgery attacks, ensuring the integrity and authenticity of digital signatures by preventing unauthorized modifications or fraudulent signatures. 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 as well makes it more resistant to side-channel attacks.</t>
        <t>Falcon's signing operations require constant-time, 64-bit floating point operations to avoid catastrophic side channel vulnerabilities. Doing this correctly (which is also platform-dependent to an extreme degree) is very difficult, as NIST's report noted. Providing a masked implementation of Falcon also seems impossible, per the authors at the RWPQC 2023 symposium earlier this year.</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. 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="details-of-xmss-and-lms">
        <name>Details of XMSS and LMS</name>
        <t>The eXtended Merkle Signature Scheme (XMSS) <xref target="RFC8391"/> and Leighton-Micali Signature (LMS) <xref target="RFC8554"/> are stateful hash-based signature schemes, where the secret key changes over time. In both schemes, reusing a secret key state compromises cryptographic security guarantees.</t>
        <t>Multi-Tree XMSS and LMS can be used for signing a potentially large but fixed number of messages and the number of signing operations depends upon the size of the tree. XMSS and LMS provide cryptographic digital signatures without relying on the conjectured hardness of mathematical problems, instead leveraging the properties of cryptographic hash functions. XMSS and Hierarchical Signature System (HSS) use a hierarchical approach with a Merkle tree at each level of the hierarchy. <xref target="RFC8391"/> describes both single-tree and multi-tree variants of XMSS, while <xref target="RFC8554"/> describes the Leighton-Micali One-Time Signature (LM-OTS) system as well as the LMS and HSS N-time signature systems. Comparison of XMSS and LMS is discussed in Section 10 of <xref target="RFC8554"/>.</t>
        <t>The number of tree layers in XMSS^MT provides a trade-off between signature size on the one side and key generation and signing speed on the other side. Increasing the number of layers reduces key generation time exponentially and signing time linearly at the cost of increasing the signature size linearly.</t>
        <t>XMSS and LMS can be applied in various scenarios where digital signatures are required, such as software updates.</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. In case of SPHINCS+, it internally performs randomized message compression using a keyed hash function that can process arbitrary length messages. In case of Falcon, a hash function is used as part of the signature process, it uses the SHAKE-256 hash function to derive a digest of the message being signed. Therefore, the hash-then-sign paradigm is not needed for Dilithium, SPHINCS+ and Falcon.</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 SHA2/SHA3 algorithms, i.e., exhaustive key recovery for AES and optimal collision search for SHA2/SHA3.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">AES/SHA(2/3) hardness</th>
            <th align="left">PQC Algorithm</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">Atleast as hard as to break AES-128 (exhaustive key recovery)</td>
            <td align="left">Kyber512, Falcon512, Sphincs+SHA-256 128f/s</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">Atleast as hard as to break SHA-256/SHA3-256 (collision search)</td>
            <td align="left">Dilithium2</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">Atleast as hard as to break AES-192 (exhaustive key recovery)</td>
            <td align="left">Kyber768, Dilithium3, Sphincs+SHA-256 192f/s</td>
          </tr>
          <tr>
            <td align="left">4</td>
            <td align="left">Atleast as hard as to break SHA-384/SHA3-384 (collision search)</td>
            <td align="left">No algorithm tested at this level</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">Atleast as hard as to break AES-256 (exhaustive key recovery)</td>
            <td align="left">Kyber1024, Falcon1024, Dilithium5, Sphincs+SHA-256 256f/s</td>
          </tr>
        </tbody>
      </table>
      <t>Please note the Sphincs+SHA-256 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 signature size differences for similar SPHINCS+ algorithm security levels with the "simple" version but for different categories i.e., (f) for fast verification and (s) for compactness/smaller. Both SHA-256 and SHAKE-256 parametrisation output the same signature sizes, so both have been included.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">SPHINCS+-{SHA2,SHAKE}-128f</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">17088</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">SPHINCS+-{SHA2,SHAKE}-128s</td>
            <td align="left">32</td>
            <td align="left">64</td>
            <td align="left">7856</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SPHINCS+-{SHA2,SHAKE}-192f</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">35664</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">SPHINCS+-{SHA2,SHAKE}-192s</td>
            <td align="left">48</td>
            <td align="left">96</td>
            <td align="left">16224</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SPHINCS+-{SHA2,SHAKE}-256f</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">49856</td>
          </tr>
          <tr>
            <td align="left">5</td>
            <td align="left">SPHINCS+-{SHA2,SHAKE}-256s</td>
            <td align="left">64</td>
            <td align="left">128</td>
            <td align="left">29792</td>
          </tr>
        </tbody>
      </table>
      <t>The following table discusses the impact of performance on different security levels in terms of private key sizes, public key sizes and ciphertext/signature sizes.</t>
      <table>
        <thead>
          <tr>
            <th align="left">PQ Security Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Public key size (in bytes)</th>
            <th align="left">Private key size (in bytes)</th>
            <th align="left">Ciphertext/Signature size (in bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">1</td>
            <td align="left">Kyber512</td>
            <td align="left">800</td>
            <td align="left">1632</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">Falcon512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">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">1280</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_SHA-256</td>
            <td align="left">65</td>
            <td align="left">32</td>
            <td align="left">65</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">P521_HKDF_SHA-512</td>
            <td align="left">133</td>
            <td align="left">66</td>
            <td align="left">133</td>
          </tr>
          <tr>
            <td align="left">Traditional</td>
            <td align="left">X25519_HKDF_SHA-256</td>
            <td align="left">32</td>
            <td align="left">32</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">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">1</td>
            <td align="left">Falcon512</td>
            <td align="left">897</td>
            <td align="left">1281</td>
            <td align="left">666</td>
          </tr>
          <tr>
            <td align="left">2</td>
            <td align="left">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">1280</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. Two types of hybrid key agreement schemes are discussed below:</t>
        <ol spacing="normal" type="1"><li>Concatenate hybrid key agreement scheme: The final shared secret that will be used as an input of the key derivation function is the result of the concatenation of the secrets established with each key agreement scheme. For example, in <xref target="I-D.ietf-tls-hybrid-design"/>, the client uses the TLS supported groups extension to advertise support for a PQ/T hybrid scheme, and the server can select this group if it supports the scheme. The hybrid-aware client and server establish a hybrid secret by concatenating the two shared secrets, which is used as the shared secret in the existing TLS 1.3 key schedule.</li>
          <li>Cascade hybrid key agreement scheme: The final shared secret is computed by applying as many iterations of the key derivation function as the number of key agreement schemes composing the hybrid key agreement scheme. For example, <xref target="RFC9370"/> extends the Internet Key Exchange Protocol Version 2 (IKEv2) to allow one or more PQC algorithms in addition to the traditional algorithm to derive the final IKE SA keys using the cascade method as explained in Section 2.2.2 of <xref target="RFC9370"/>.</li>
        </ol>
      </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 anchor="additional-considerations">
        <name>Additional Considerations</name>
        <t>It is also possible to use more than two algorithms together in a hybrid scheme, and there are multiple possible ways those algorithms can be combined.  For the purposes of a post-quantum transition, the simple combination of a post-quantum algorithm with a single classical algorithm is the most straightforward, but the use of multiple post-quantum algorithms with different hard math problems has also been considered.  When combining algorithms, it is possible to require that both algorithms validate (the so-called "and" mode) or that only one does (the "or" mode), or even some more complicated scheme.  Schemes that do not require both algorithms to validate only have the strength of the weakest algorithm, and therefore offer little or no security benefit.  Since such schemes generally also require both keys to be distributed (e.g. https://datatracker.ietf.org/doc/html/draft-truskovsky-lamps-pq-hybrid-x509-01), there are substantial performance costs in some scenarios.  This combination of properties makes optionally including post-quantum keys without requiring their use to be generally unattractive in most use cases.</t>
        <t>When combining keys in an "and" mode, it may make more sense to consider them to be a single composite key, instead of two keys.  This generally requires fewer changes to various components of PKI ecosystems, many of which are not prepared to deal with two keys or dual signatures.  To them, a "composite" algorithm composed of two other algorithms is simply a new algorithm, and support for adding new algorithms generally already exists.  All that needs to be done is to standardize the formats of how the two keys from the two algorithms are combined into a single data structure, and how the two resulting signatures are combined into a single signature.  The answer can be as simple as concatenation, if the lengths are fixed or easily determined.</t>
        <t>One last consideration is the pairs of algorithms that can be combined.  A recent trends in protocols is to only allow a small number of "known good" configurations that make sense, instead of allowing arbitrary combinations of individual configuration choices that may interact in dangerous ways.  The current consensus is that the same approach should be followed for combining cryptographic algorithms, and that "known good" pairs should be explicitly listed ("explicit composite"), instead of just allowing arbitrary combinations of any two crypto algorithms ("generic composite").</t>
        <t>The same considerations apply when using multiple certificates to transport a pair of related keys for the same subject.  Exactly how two certificates should be managed in order to avoid some of the pitfalls mentioned above is still an active area of investigation.  Using two certificates keeps the certificate tooling simple and straightforward, but in the end simply moves the problems with requiring that both certs are intended to be used as a pair, and both must validate, to the certificate management layer, where they still need to be addressed.</t>
        <t>At least one scheme has been proposed that allows the pair of certificates to exist as a single certificate when being issued and managed, but dynamically split into individual certificates when needed (https://datatracker.ietf.org/doc/draft-bonnell-lamps-chameleon-certs/).</t>
        <t>Many of these points are still being actively explored and discussed, and the consensus may change over time.</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 anchor="contributors">
      <name>Contributors</name>
      <t>The following individuals have contributed to this document:</t>
      <t>Kris Kwiatkowski</t>
      <t>PQShield, LTD</t>
      <t>United Kingdom.</t>
      <t>kris@amongbytes.com</t>
    </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, Sofia Celi, 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="RFC8391">
          <front>
            <title>XMSS: eXtended Merkle Signature Scheme</title>
            <author fullname="A. Huelsing" initials="A." surname="Huelsing"/>
            <author fullname="D. Butin" initials="D." surname="Butin"/>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
            <author fullname="J. Rijneveld" initials="J." surname="Rijneveld"/>
            <author fullname="A. Mohaisen" initials="A." surname="Mohaisen"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature. This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS. Both XMSS and XMSS^MT use WOTS+ as a main building block. XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems. Instead, it is proven that it only relies on the properties of cryptographic hash functions. XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken. It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks. Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8391"/>
          <seriesInfo name="DOI" value="10.17487/RFC8391"/>
        </reference>
        <reference anchor="RFC8554">
          <front>
            <title>Leighton-Micali Hash-Based Signatures</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Curcio" initials="M." surname="Curcio"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This note describes a digital-signature system based on cryptographic hash functions, following the seminal work in this area of Lamport, Diffie, Winternitz, and Merkle, as adapted by Leighton and Micali in 1995. It specifies a one-time signature scheme and a general signature scheme. These systems provide asymmetric authentication without using large integer mathematics and can achieve a high security level. They are suitable for compact implementations, are relatively simple to implement, and are naturally resistant to side-channel attacks. Unlike many other signature systems, hash-based signatures would still be secure even if it proves feasible for an attacker to build a quantum computer.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF. This has been reviewed by many researchers, both in the research group and outside of it. The Acknowledgements section lists many of them.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8554"/>
          <seriesInfo name="DOI" value="10.17487/RFC8554"/>
        </reference>
      </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="CNSA2-0" target="https://media.defense.gov/2022/Sep/07/2003071834/-1/-1/0/CSA_CNSA_2.0_ALGORITHMS_.PDF">
          <front>
            <title>Announcing the Commercial National Security Algorithm Suite 2.0</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="LattFail1" target="https://link.springer.com/chapter/10.1007/978-3-030-17259-6_19#chapter-info">
          <front>
            <title>Decryption Failure Attacks on IND-CCA Secure Lattice-Based Schemes</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="LattFail2" target="https://link.springer.com/chapter/10.1007/978-3-030-45727-3_1">
          <front>
            <title>(One) Failure Is Not an Option: Bootstrapping the Search for Failures in Lattice-Based Encryption Schemes.</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="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="7" month="August" 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-02"/>
        </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="9" month="July" 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.

   Note to RFC Editor: SPHINCS+ is described and noted as a part of the
   2022 PQC Selected Digital Signature Algorithims
   (https://csrc.nist.gov/Projects/post-quantum-cryptography/selected-
   algorithms-2022) As a result, this document should not be proceed to
   AUTH48 until NIST completes paramter tuning and selection as a part
   of the PQC (https://csrc.nist.gov/projects/post-quantum-cryptography)
   standardization process.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-sphincs-plus-01"/>
        </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="RFC9370">
          <front>
            <title>Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="CJ. Tjhai" initials="CJ." surname="Tjhai"/>
            <author fullname="M. Tomlinson" initials="M." surname="Tomlinson"/>
            <author fullname="G. Bartlett" initials="G." surname="Bartlett"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="May" year="2023"/>
            <abstract>
              <t>This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow multiple key exchanges to take place while computing a shared secret during a Security Association (SA) setup.</t>
              <t>This document utilizes the IKE_INTERMEDIATE exchange, where multiple key exchanges are performed when an IKE SA is being established. It also introduces a new IKEv2 exchange, IKE_FOLLOWUP_KE, which is used for the same purpose when the IKE SA is being rekeyed or is creating additional Child SAs.</t>
              <t>This document updates RFC 7296 by renaming a Transform Type 4 from "Diffie-Hellman Group (D-H)" to "Key Exchange Method (KE)" and renaming a field in the Key Exchange Payload from "Diffie-Hellman Group Num" to "Key Exchange Method". It also renames an IANA registry for this Transform Type from "Transform Type 4 - Diffie- Hellman Group Transform IDs" to "Transform Type 4 - Key Exchange Method Transform IDs". These changes generalize key exchange algorithms that can be used in IKEv2.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9370"/>
          <seriesInfo name="DOI" value="10.17487/RFC9370"/>
        </reference>
        <reference anchor="I-D.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="26" month="June" 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-01"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA92963Ic2ZEm+D+fIhZlMw2sMhJIALyArZYEAmSRS4JEEawu
9XCryyIzTwIhREakIiIBQqxa088xm3/7b81mzeZZ5lH0JOufu59bZCRISj2a
noVJLCAzLn78+PH7JU3TQZu3hXmSbJ1XTZt+t8rKdrVITuq7ZVtd1tny6i6Z
V3XyrLzMS2PqZmuQTSa1ucEd3510v5tmrbms6rsnSV7Oq8FgVk3LbEGPn9XZ
vE2zOl3+cZUv6d9pauxtg2Y1WeRNk1dle7eki18+e/98UK4WE1M/GczokU8G
06psTNmsmidJW6/MgN5/MMhqkxEcF2a6qvP2bmtwW9XXl3W1WjJ037883xpc
mzv6dPZkkKQJATxIBoMbU67okUliL2WYtugDef3WD/SYvLxMvsX3+HyR5QVf
N/1dbtr5qKov8XFWT6/o46u2XTZPdndxFT7Kb8zIXraLD3YndXXbmF26fxf3
DQZNm5Wzn7KiKul9d6YZLPMnyYe2mg6Tpqrb2swb+u1uob+0dT5th8m0WixM
2dInhNdFtlwSkD8OBtmqvapqrJCenSTzVVEI0o8JK3WWPM1KU//BGP6WYMrK
/E9ZS9h+kryprvOMP58SAp8kZ6syn17JB9WqbLGT35p6kZV3/KFRTGT85NFE
n/y7Es8ZEXxb61C8z+vVIitMc5vVyTszm919ASAE8yWhpxaga3PJV73K6jJr
s+sshvBlOdObLXzXVTlr8/p3l/h7A1yn+YIWkVdNcjG9qvIyz8rsOm82AZcE
0B23V0SMHTTVxkxNBMXMvmHUhG8QbKUTUxRpkU2ajXhbVC0dvxdVUZiJMdc9
kJ3ml/mJqdsAtvO8bZvJqr7sbOP3F8cRcG2+GF3ZR/9uRg+a0oMElsGgrGjT
W6LkJ4MBjrL/K8GxuDF12himf35oYrnIySj5T1lxnQ2Tv/z5v8qFf/nz/9Mk
f1TGIjfhcGUFMYq8vVokeZNUSwInK4Z/+fP/m5xf3TX5NCuIVm5yc5scD5Ob
qhglD/eGyXI5SvYfHT5M9x89GA+T8dHR0WhLIcjqS9M+kW1KmGsk86xosCXv
r4hTtOk7s6TD1YHYsjy5Blg3BfGlRC5O9vf29zpvsOf9sqgmWVHnDTGLhh63
ag0f+eVqUtACsEPNri48bQWEVh+f1vz4FI/f7QP55dOzDqD0SfJ9eWPyokkO
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
yDEt1s2QmhjoCJnfGK7/S8Dr6SFaqadp74gzpXTghpx36PI2+YFAki0inPKR
9cY927eEh4XhA6SQhMn0jUYme4oP6bn6Wsk1sweJTg2XRaCssOFSA8vpAwnU
SPOSiU8sIVRGShvzXaS/3RFCRV/jVPgBy/jjfqkxGPzlz/8VWkgsldBvTjV7
Sf/AG4eRbdqIca+lgOsJDs4PsB2ks7Gitp7FYK/dsXLKFyawhZC5zAHWYzbk
vNsAhepC7DpiOW0lMRJ71cobgvuLEsRlHlbfGsod0nhqw3uCXVEG8u7ieNjN
Ume/uU3fOGHTZT1t1VeMSjZOULYY5hp0FUp3l3PfaO0rXpChsU/LFqNVReIy
0RHqm5XnrG8906awnCClsqufs2yTjGtVJYXrazuVYVjNwIxJ49FDFrnBYjd0
QfG8lnCbckeVoIHKp0/ah0VKyg73jo4444crjuLbc+aG4z0cw6qc6b1ojyIc
h313/XIqrMPtBDKATJMRtXiBJPWtfCq6hmzoWFTvRl56lEaJzpCw3XQdkqlP
VYWEjCChyRlmehwajmXOrQ6bclKDYrhyGrhljMZJSZdtOaWHDaVKRrSUMHjU
1YV9KIbdfpLKMozjOZsOzgJ5HDZGH9duQ5vrlIcy8ynNOsI2PX47H5nR8PMc
aaj5Zki/SjelX/mLLfuyuVjpplwsx8VGnDrpOmayx8GVHQwGx8SmEZxG/ZJ0
DGLTNZuRqMoY/aSg17AJQFdFtiq5Ys+ZrYhpVmxs8yMJlo4epcZJkLg0M/aC
ShJdLOMLygl7eKRhtwg9bLj5ZTnS15upIdQEmUwK60RySFx7m6CmVIQWir1o
q6SEqsFpZT9bs+SzatOBJCxGi+BkEV9BoDUK6Bz8f+FnMPhVuuFn4xf85eDn
ZMPPxi/4y+C+u833fVy/70vgXL/mHjijV/+6c99v1u77U+99ia8pucyWm4GM
QFLUf3qSfHNWNdNM2mr805b8AUuw2PrFBq2Dej3ue1QUKyEBYlb5FKxhIv4M
MjtgrMOX7J/jSquYAkhv+vQpamFLLN3mP336xPehTHnr4xbRDrf1SlyBr6hs
qzoq02diszJYPXLCNekpd+zUDMIiTs8iq5qjBVzjCH2wU9rIWe5/2vIvlwJP
PYWd4uCeWtW7tZNqFB/cOcM6rjsHU48+J87jeNrmU+AdUCQ5B5GTHRl8bQtg
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

-->

</rfc>
