<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pquip-pqc-hsm-constrained-08" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Adapting Constrained Devices for PQC">Adapting Constrained Devices for Post-Quantum Cryptography</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqc-hsm-constrained-08"/>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>k.tirumaleswar_reddy@nokia.com</email>
      </address>
    </author>
    <author fullname="Dan Wing">
      <organization abbrev="Citrix">Citrix</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author fullname="Ben Salter">
      <organization>UK National Cyber Security Centre</organization>
      <address>
        <email>ben.s3@ncsc.gov.uk</email>
      </address>
    </author>
    <author fullname="Kris Kwiatkowski">
      <organization>PQShield</organization>
      <address>
        <email>kris@amongbytes.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="15"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <keyword>IoT</keyword>
    <keyword>TEE</keyword>
    <keyword>HSM</keyword>
    <keyword>RoT</keyword>
    <abstract>
      <?line 177?>

<t>This document provides guidance on integrating Post-Quantum Cryptography (PQC) into
resource-constrained devices, such as IoT nodes and dedicated key-storage hardware.
These systems often operate with strict limitations on processing power, RAM, and
flash memory, and may even be battery-powered. The document emphasizes the role of hardware
security as the basis for secure operations, supporting features such as seed-based key
generation to minimize persistent storage, efficient handling of ephemeral keys, and the
offloading of cryptographic tasks in low-resource environments. It also explores the
implications of PQC on firmware update mechanisms in such constrained systems.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-pquip-pqc-hsm-constrained/"/>.
      </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 188?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The transition to post-quantum cryptography (PQC) poses significant challenges for
resource-constrained devices, such as dedicated key-storage hardware and
Internet of Things (IoT) devices.</t>
      <t>These devices typically operate under strict limitations on
processing power, RAM, and flash memory, and in some cases are battery-powered. Adopting
PQC algorithms in such environments is difficult due to their substantially larger key
sizes and, in some cases, higher computational demands. Consequently, the migration to
PQC requires careful planning to ensure secure and efficient key management within
constrained platforms.</t>
      <t>Constrained devices are often deployed as clients initiating outbound connections, but some also act in server roles or enforce local authentication policies.
As a result, designers may need to consider PQC to address confidentiality, both outbound and inbound authentication, and signature verification used in secure boot, firmware updates, and device attestation.</t>
      <t>In this document, "constrained" covers two related cases: constrained devices in the sense of
<xref target="I-D.ietf-iotops-7228bis"/>, and cryptographic modules (for example, secure elements, TPMs, and small hardware
security modules) with limited RAM, storage, or processing capacity, which may be embedded in
hosts that are not themselves constrained.</t>
      <t>This document provides guidance and best practices for integrating PQC algorithms into
constrained devices. It reviews strategies for key storage, ephemeral key management,
and performance optimization tailored to low-resource environments. The document also
examines ephemeral key generation in protocols such as TLS, along with techniques to
optimize PQC signature operations to improve performance within constrained cryptographic
modules.</t>
      <t>This document focuses on PQC algorithms standardized by NIST or specified by the IRTF CFRG, and that have corresponding IETF protocol specifications, either published as RFCs or progressing through the IETF standards process. Specifically, it covers the following algorithms:</t>
      <ul spacing="normal">
        <li>
          <t>Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) <xref target="FIPS203"/>.</t>
        </li>
        <li>
          <t>Module-Lattice-Based Digital Signature Algorithm (ML-DSA) <xref target="FIPS204"/>.</t>
        </li>
        <li>
          <t>Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) <xref target="FIPS205"/>.</t>
        </li>
        <li>
          <t>Hierarchical Signature System/Leighton-Micali Signature (HSS/LMS) <xref target="RFC8554"/>, and the related eXtended Merkle Signature Scheme (XMSS) <xref target="RFC8391"/>.</t>
        </li>
      </ul>
      <t>Additional post-quantum algorithms are expected to be standardised in future, which may also prove suitable for use in constrained devices. Since algorithms may change prior to standardisation (or may end up unstandardised), no concrete guidance is provided on these here, but future specifications may provide guidance on the following algorithms:</t>
      <ul spacing="normal">
        <li>
          <t>The Falcon signature scheme <xref target="Falcon"/> has shorter keys and signatures than ML-DSA, though current specifications require the use of floating point arithmetic which may make it challenging to implement on some devices.</t>
        </li>
        <li>
          <t>The HQC KEM <xref target="HQC"/> is a code-based KEM, so offers algorithmic diversity to complement lattice-based KEMs, though it is expected to be less performant than ML-KEM.</t>
        </li>
        <li>
          <t>Smaller SLH-DSA parameter sets <xref target="Smaller-SPHINCS"/> may be standardised in future, which may make use of SLH-DSA more palatable on constrained devices.</t>
        </li>
      </ul>
      <t>This document focuses on device-level adaptations and considerations necessary to implement PQC efficiently on constrained devices.
Actual protocol behaviour is defined in other documents.</t>
    </section>
    <section anchor="key-management-in-constrained-devices-for-pqc">
      <name>Key Management in Constrained Devices for PQC</name>
      <t>The embedded cryptographic components used in constrained devices are designed to securely manage cryptographic keys, often under strict limitations in RAM, flash memory, and computational resources. These limitations are further exacerbated by the increased key sizes and computational demands of PQC algorithms.</t>
      <t>One mitigation of storage limitations is to store only the seed rather than the full
expanded private key, as the seed is far smaller and can derive the expanded private key
as necessary. <xref target="FIPS204"/> Section 3.6.3 specifies that the seed ξ generated during ML-DSA.KeyGen can be stored for later use with ML-DSA.KeyGen_internal.
To reduce storage requirements on constrained devices, private keys for
Initial Device Identifiers (IDevIDs) and Locally Significant Device
Identifiers (LDevIDs) <xref target="IEEE802.1AR"/>, and the optional attestation private key can be
stored as seeds instead of expanded key material.</t>
      <section anchor="Seed">
        <name>Seed Management</name>
        <t>The following is some additional guidance to aid in compliance with <xref target="FIPS203"/>, <xref target="FIPS204"/>, <xref target="FIPS205"/> and <xref target="REC-KEM"/>:</t>
        <section anchor="seed-storage">
          <name>Seed Storage</name>
          <t>Several post-quantum algorithms use a seed to generate their private keys (e.g., ML-KEM and ML-DSA). Those seeds are smaller than private keys, hence some implementations may choose to retain the seed rather than the full private key to save on storage space. The private key can then be derived from the seed when needed or retained in a cache within the security module.</t>
          <t>The seed is a Critical Security Parameter (CSP) as defined in <xref target="ISO19790"/>, from which the private key can be derived, hence it must be safeguarded with the same
level of protection as a private key. Seeds should be securely stored within a cryptographic module of the device whether hardware or software-based to protect against unauthorized access.</t>
          <t>The choice between storing a seed or an expanded private key involves trade-offs
between storage efficiency and performance. Some constrained cryptographic modules may
store only the seed and derive the expanded private key on demand, whereas others may
prefer storing the full expanded key to reduce computational overhead during key usage.</t>
          <t>The choice between storing the seed or the expanded private key has direct
implications on performance, as key derivation incurs additional computation. The impact
of this overhead varies depending on the algorithm. For instance, ML-DSA key generation,
which primarily involves polynomial operations using the Number Theoretic Transform (NTT)
and hashing, is computationally efficient compared to other post-quantum schemes. In contrast,
SLH-DSA key generation requires constructing a Merkle tree and multiple Winternitz One-Time
Signature (WOTS+) key generations, making it significantly more computationally intensive. In
many embedded deployments, SLH-DSA is expected to be used primarily for firmware verification.
In this case the device holds only the SLH-DSA public key; the corresponding private key is known
solely to the firmware signer, and key generation is performed on the signer's infrastructure
rather than on the device. Consequently, SLH-DSA key generation cost does not impact device
performance. However, in scenarios where the device generates its own SLH-DSA key pairs, the
higher key generation cost may influence seed-storage design decisions and depend on performance
considerations or standards compliance (e.g., <xref target="PKCS11"/>).</t>
          <t>While vulnerabilities like the "Unbindable Kemmy Schmidt" misbinding attack <xref target="BIND"/> demonstrate
the risks of manipulating expanded private keys in environments lacking hardware-backed
protections, these attacks generally assume an adversary has some level of control over
the expanded key format. However, in a hardware-backed protected environment, where private
keys are typically protected from such manipulation, the primary motivation for storing
the seed rather than the expanded key is not directly tied to mitigating such misbinding attacks.</t>
          <t>The expanded private key is derived from the seed using a one-way cryptographic function.
As a result, if the seed is not retained at key generation time, it cannot be reconstructed
from the expanded key (as the reverse operation is computationally infeasible). Implementations
should account for this non-recoverability when designing seed management.</t>
          <t>A challenge arises when importing an existing private key into a system designed to
store only seeds. When a user attempts to import an already expanded private key, there is
a mismatch between the key format used internally (seed-based) and the expanded private
key. This issue arises because the internal format is designed for efficient key storage
by deriving the private key from the seed, while the expanded private key is already fully
computed. As NIST has not defined a single private key format for PQC algorithms, this
creates a potential gap in interoperability. To address this, the private key formats for
ML-DSA <xref target="RFC9881"/> and ML-KEM <xref target="RFC9935"/> recommend retaining and exporting the seed.</t>
        </section>
        <section anchor="efficient-key-derivation">
          <name>Efficient Key Derivation</name>
          <t>When storing only the seed in a constrained cryptographic module, it is crucial that
the device is capable of deriving the private key efficiently whenever required. However,
repeatedly re-deriving the private key for every
cryptographic operation may introduce significant performance overhead. In scenarios where
performance is a critical consideration, it may be more efficient to store the expanded
private key directly (in addition to the seed). Implementations may choose to
retain (cache) several recently-used or frequently-used private keys to avoid the computational
overhead and delay of deriving private keys from their seeds for each operation.</t>
          <t>The key derivation process, such as ML-KEM.KeyGen_internal for ML-KEM or similar
functions for other PQC algorithms, must be implemented in a way that can securely operate
within the resource constraints of the device. If using the seed-only model, the derived
private key should exist only transiently, held for the duration of the cryptographic operation,
and any state derived from it should be securely erased or otherwise made
unrecoverable as soon as it is no longer needed. However, storing the expanded private key may be a
more practical solution in time-sensitive applications or for devices that frequently
perform cryptographic operations.</t>
        </section>
        <section anchor="exporting-seeds-and-private-keys">
          <name>Exporting Seeds and Private Keys</name>
          <t>Given the potential for hardware failures or the end-of-life of devices containing keys, it
is essential to plan for backup and recovery of cryptographic seeds and private keys.
Constrained devices should support secure seed- or key-backup mechanisms, leveraging protections such as encrypted storage and ensuring that security measures are in place so that the backup data is protected from unauthorized access.</t>
          <t>When exporting a seed or private key, the key-encryption key or the key protecting the secure channel used for direct transfer should provide a security strength at least matching the PQ security level of the exported key. Using the security level mapping in <xref target="RFC9958"/>, Level 1 corresponds to AES-128, Level 3 to AES-192, and Level 5 to AES-256; for example, an ML-KEM-1024 or ML-DSA-87 key (Level 5) should be protected using AES-256.</t>
          <t>There are two distinct approaches to exporting private keys or seeds from a constrained device:</t>
          <section anchor="direct-transfer">
            <name>Direct Transfer Over a Secure Channel</name>
            <t>In scenarios where the constrained device can establish a secure channel to a peer, the device can transfer encrypted private key material directly to another cryptographic module over that channel. The secure channel needs to provide mutual authentication of both endpoints, confidentiality and integrity protection of the transferred material, and end-to-end protection. A mutually authenticated TLS 1.3 <xref target="RFC9846"/> connection is one example of a protocol providing these properties; DTLS 1.3 <xref target="RFC9147"/> offers the same properties over datagram transport and may be more suitable for some constrained deployments.</t>
            <t>Since private key material is a long-lived secret, its transfer is particularly exposed to the "harvest now, decrypt later" (HNDL) attack: an attacker records the protected traffic today and decrypts it once a "cryptographically relevant
quantum computer" (CRQC) is available. To mitigate this threat, the secure channel must be established with a key exchange that provides post-quantum security; for (D)TLS 1.3, this can be achieved with a hybrid key exchange combining ECDHE with ML-KEM <xref target="RFC10024"/> or with a standalone ML-KEM key exchange <xref target="I-D.ietf-tls-mlkem"/>. Post-quantum key exchange alone is sufficient to protect against HNDL, as authentication cannot be broken retroactively; however, once CRQCs are available, an attacker could impersonate an endpoint during channel establishment, so post-quantum authentication, e.g., with ML-DSA <xref target="I-D.ietf-tls-mldsa"/>, should additionally be used.</t>
          </section>
          <section anchor="encrypted-export">
            <name>Export of Encrypted Seeds and Private Keys</name>
            <t>In more common constrained device scenarios for secure exporting of seeds and private keys, a strong symmetric encryption algorithm, such as AES Key Wrap with Padding (<xref target="RFC5649"/>), should be used to encrypt the seed or private key before export. <xref target="RFC5649"/> adds padding to handle key material whose length is not a multiple of 8 octets, such as an expanded private key that does not fall on that boundary.</t>
            <t>Operationally, the exported data and the symmetric key used for encryption must both be protected against unauthorized access or modification.</t>
          </section>
          <section anchor="security-requirements-for-export-operations">
            <name>Security Requirements for Export Operations</name>
            <t>The encryption and decryption of seeds and private keys must occur entirely within the cryptographic modules to reduce the risk of exposure and ensure compliance to established security standards.</t>
          </section>
        </section>
      </section>
      <section anchor="ephemeral-key-management">
        <name>Ephemeral Key Management</name>
        <t>Given the increased size of PQC key material, ephemeral key management will have to
be optimized for both security and performance.</t>
        <t>For PQC KEMs, ephemeral key pairs are generated from an ephemeral seed, that is used
immediately during key generation and then discarded. Furthermore, once the shared secret is
derived, the ephemeral private key will have to be deleted. Since the private key resides in the
constrained cryptographic module, removing it optimizes memory usage, reducing the footprint of
PQC key material in the cryptographic module. This also ensures that no unnecessary secrets
persist beyond their intended use.</t>
        <t>Additionally, ephemeral keys, whether from traditional ECDH or PQC KEM algorithms, are intended
to be unique for each key exchange instance and kept separate across connections (e.g., TLS).
Deleting ephemeral keying material after use helps ensure that key material cannot be reused across connections, which would otherwise introduce security and privacy issues.</t>
        <t>Constrained devices implementing PQC ephemeral key management will have to:</t>
        <ul spacing="normal">
          <li>
            <t>Generate ephemeral key pairs on-demand from an ephemeral seed stored temporarily within the cryptographic module.</t>
          </li>
          <li>
            <t>Enforce immediate seed erasure after the key pair is generated and the cryptographic operation is completed.</t>
          </li>
          <li>
            <t>Delete the private key after the shared secret is derived.</t>
          </li>
          <li>
            <t>Prevent key reuse across different algorithm suites or sessions.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sig-mem">
      <name>Optimizing Memory Footprint in Post-Quantum Signature Schemes</name>
      <t>A key consideration when deploying post-quantum cryptography in cryptographic modules is the amount and type of memory available. In constrained devices, it is important to distinguish between volatile memory (RAM), used for intermediate computations during cryptographic operations, and non-volatile storage (e.g., flash), used for storing keys, firmware, and configuration data. For instance, ML-DSA, unlike traditional signature schemes such as RSA or ECDSA, requires significant RAM during signing due to multiple Number Theoretic Transform (NTT) operations, matrix expansions, and rejection sampling loops. These steps involve storing large polynomial vectors and intermediate values, making ML-DSA more memory-intensive.</t>
      <t>Some constrained systems, particularly battery-operated devices, may have limited RAM available for cryptographic operations, even if sufficient non-volatile storage is available. In such cases, straightforward implementations of PQ schemes may exceed available RAM, making them infeasible without optimization.</t>
      <t>Several post-quantum schemes can be optimized to reduce the memory footprint of the algorithm. For instance, SLH-DSA has two flavors: the "f" variants which are parameterized to run as fast as possible, and the "s" variants which produce shorter signatures. Developers wishing to use SLH-DSA may wish to utilize the "s" variants on devices with insufficient RAM to use the "f" variants. Further optimizations may be possible by running the signature algorithm in a "streaming manner" such that constrained device does not need to hold the entire signature in memory at once, as discussed in <xref target="Stream-SPHINCS"/>.</t>
      <t>Implementations may trade off resource usage across CPU, RAM, and non-volatile storage. For example, techniques such as lazy expansion reduce RAM usage at the cost of increased computation, while storing expanded key in non-volatile storage can reduce runtime overhead. Designers should balance these trade-offs based on the target platform.</t>
      <t>Both the ML-KEM and ML-DSA algorithms were selected for general use. Two optimization techniques that can be applied to make ML-DSA more feasible in constrained cryptographic modules are discussed in <xref target="lazy-expansion"/> and <xref target="pre-hashing"/>.</t>
      <section anchor="memory-requirements-of-lattice-based-schemes">
        <name>Memory requirements of Lattice-Based Schemes</name>
        <t>Both ML-KEM and ML-DSA are built on the same lattice structure, and the dominant source of memory usage in either is holding the expanded matrix A and the associated polynomial vectors needed to compute a noisy affine transformation of the form t = A*s + e, where A is a public matrix derived from a seed, and t, s and e are polynomial vectors. In ML-DSA this transformation is written t = A*s1 + s2, with s1 and s2 being the secret polynomial vectors that are part of the private key and are used during signing. The elements of those matrices and vectors are polynomials with 256 integer coefficients modulo Q. For the unpacked representation assumed below, ML-DSA's 23-bit modulus uses 4-byte coefficient words, whereas ML-KEM's 12-bit modulus uses 2-byte coefficient words; packed or otherwise optimized implementations may use different representations. In both schemes the modulus is the same regardless of parametrization. The dimensions of the matrix and vectors, however, do depend on the parameter set.</t>
        <t>The worked example below uses ML-KEM-768 rather than an ML-DSA parameter set, because its dimensions and coefficient size give smaller numbers that are easier to follow; the method of accounting carries over unchanged to ML-DSA. The public matrix A for ML-KEM-768 has dimensions 3x3, with each polynomial having 256 coefficients of 2 bytes each, leading to a size of 3*3*256*2 = 4,608 bytes (approximately 4.5 KB) for the matrix A alone. The polynomial vectors t, s and e also contribute significantly to memory usage, with each vector requiring 3*256*2 = 1,536 bytes (approximately 1.5 KB). Hence, for a straightforward implementation, the amount of memory required is 4,608 + 3*1,536 = 9,216 bytes (approximately 9 KB). The same computation can be done for other instantiations of ML-KEM as well as for ML-DSA. ML-DSA has much higher memory requirements, both because its matrices and vectors are larger and because each coefficient occupies 4 bytes rather than 2. For ML-DSA-87, where A has dimensions 8x7, signing holds A together with the private-key vectors s1, s2 and t0 of 7, 8 and 8 elements respectively. This gives 8*7*256*4 = 57,344 bytes for A and a further 23*256*4 = 23,552 bytes for the vectors, so a straightforward implementation needs at least 79 KB of RAM during signing, before accounting for the per-iteration vectors such as y, w and z.</t>
        <t>It is worth noting that different cryptographic operations may have different memory requirements. For example, during ML-DSA verification, the memory usage is lower since the private key components are not needed.</t>
        <section anchor="lazy-expansion">
          <name>Lazy Expansion as a Memory Optimization Technique</name>
          <t>The lazy expansion technique is an optimization that significantly reduces memory usage by avoiding the need to store the entire expanded matrix A in memory at once. Instead of pre-computing and storing the full matrix, lazy expansion generates parts of it on-the-fly as needed for the process. This approach leverages the fact that not all elements of the matrix are required simultaneously, allowing for a more efficient use of memory.</t>
          <t>As an example, we can look at the computation of matrix-vector multiplication t=A*s. The matrix A is generated from a seed using an extendable-output function (XOF), meaning that any element of A can be computed independently when needed. Similarly, the vector s is expanded from a random seed and a nonce using a pseudo-random function (PRF).</t>
          <t>Lazy expansion first initializes t with e, which can be generated directly into the t buffer. It then generates the first element of the vector s (<tt>s(0)</tt>), iterates over the rows of the first column of A, generates one element at a time and accumulates the products into t. It next generates <tt>s(1)</tt> and repeats the process for the next column, until all elements of s have been processed. For ML-KEM-768, each polynomial takes 512 bytes (256 coefficients of 2 bytes each), so only one element of s (512 bytes), one element of A (512 bytes) and the vector t (3*512 = 1,536 bytes) need to be held in memory at any time, about 2.5 KB in total compared to approximately 9 KB for a straightforward implementation. The savings are even more pronounced for ML-DSA, where combining lazy expansion with keeping the private-key vectors in packed form reduces the memory required for signing from at least 79 KB to a small fraction of that; see <xref target="Gre20"/> and <xref target="BosRS22"/> for measured figures.</t>
          <t>With lazy expansion, the implementation differs slightly from the straightforward version. Also, in some cases, lazy expansion may introduce additional computational overhead. Notably, applying it to ML-DSA signing may require computing the vector y (<xref target="FIPS204"/>, Algorithm 7, line 11) twice. In this case implementers need to weigh the trade-off between memory savings and additional computation.</t>
          <t>This memory optimization was initially described in <xref target="Bot19"/>.</t>
        </section>
      </section>
      <section anchor="pre-hashing">
        <name>Pre-hashing as a Memory Optimization Technique</name>
        <t>To address the memory consumption challenge, algorithms like ML-DSA offer a form of
pre-hash using the μ (message representative) value described in Section 6.2 of <xref target="FIPS204"/>.
The μ value provides an abstraction for pre-hashing by allowing the hash or message
representative to be computed outside the cryptographic module. This feature offers
additional flexibility by enabling the use of different cryptographic modules for the
pre-hashing step, reducing memory consumption within the cryptographic module.
The pre-computed μ value is then supplied to the cryptographic module, eliminating the need to
transmit the entire message for signing. <xref target="RFC9881"/>
discusses leveraging Externalμ-ML-DSA, where the pre-hashing step
(Externalμ-ML-DSA.Prehash) is performed in a software cryptographic module, and only the
pre-hashed message (μ) is sent to the hardware cryptographic module for signing
(Externalμ-ML-DSA.Sign). By implementing Externalμ-ML-DSA.Prehash in software and
Externalμ-ML-DSA.Sign in a hardware cryptographic module, the cryptographic workload
is efficiently distributed, making it practical for high-volume signing operations even
in memory-constrained cryptographic modules.</t>
        <t>The main advantage of this method is that, unlike HashML-DSA, the Externalμ-ML-DSA approach
is interoperable with the standard version of ML-DSA that does not use pre-hashing. This means
a message can be signed using ML-DSA.Sign, and the verifier can independently compute μ and use
Externalμ-ML-DSA.Verify for verification -- or vice versa. In both cases, the verifier
does not need to know whether the signer used internal or external pre-hashing, as the resulting
signature and verification process remain the same.</t>
      </section>
    </section>
    <section anchor="sec-key-sizes">
      <name>Cryptographic Artifact Sizes for Post-Quantum Algorithms</name>
      <t>The sizes of keys, ciphertexts, and signatures of post-quantum algorithms are generally larger than those of traditional
cryptographic algorithms. This increase in size is a significant consideration for
constrained devices, which often have limited memory and storage capacity. For example,
the key sizes for ML-DSA and ML-KEM are larger than those of RSA or ECDSA, which can lead to
increased memory usage and slower performance in constrained environments.</t>
      <t><xref target="artifact-size"/> presents artifact sizes organized by NIST security categories published in
the initial call for proposals <xref target="NISTSecurityCategories"/>. The security categories are defined
as requiring computational resources comparable to or greater than an attack on AES (128, 192, and 256)
and SHA2/SHA3 algorithms, i.e., exhaustive key recovery for AES and optimal collision search for
SHA2/SHA3 schemes. The table lists the sizes of cryptographic artifacts for representative instantiations
of selected post-quantum cryptographic schemes of the lowest available security categories defined for
the respective schemes. X25519 and Ed25519 are included for comparison; they approximately map to NIST
Security Category 1 based on ~128-bit classical security, though this is not an official NIST designation.</t>
      <table anchor="artifact-size">
        <name>Sizes of cryptographic artifacts</name>
        <thead>
          <tr>
            <th align="left">Level</th>
            <th align="left">Algorithm</th>
            <th align="left">Type</th>
            <th align="left">Size (bytes)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">2</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">Public Key</td>
            <td align="left">1312</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">2560</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Signature</td>
            <td align="left">2420</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-SHA2-128s</td>
            <td align="left">Public Key</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Signature</td>
            <td align="left">7856</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">SLH-DSA-SHA2-128f</td>
            <td align="left">Public Key</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Signature</td>
            <td align="left">17088</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">LMS_SHA256_M24_H15_W4</td>
            <td align="left">Public Key</td>
            <td align="left">48</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">44</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Signature</td>
            <td align="left">1620</td>
          </tr>
          <tr>
            <td align="left">3</td>
            <td align="left">XMSS-SHA2_10_192</td>
            <td align="left">Public Key</td>
            <td align="left">48</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">104</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Signature</td>
            <td align="left">1492</td>
          </tr>
          <tr>
            <td align="left">1</td>
            <td align="left">ML-KEM-512</td>
            <td align="left">Public Key</td>
            <td align="left">800</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">1632</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Ciphertext</td>
            <td align="left">768</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Shared Secret</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left">1*</td>
            <td align="left">X25519</td>
            <td align="left">Public Key</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Shared Secret</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left">1*</td>
            <td align="left">Ed25519</td>
            <td align="left">Public Key</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Private Key</td>
            <td align="left">32</td>
          </tr>
          <tr>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Signature</td>
            <td align="left">64</td>
          </tr>
        </tbody>
      </table>
      <t>Corresponding sizes for higher security categories will typically be larger - see <xref target="FIPS203"/>, <xref target="FIPS204"/>, <xref target="FIPS205"/>, <xref target="SP800-208"/>, <xref target="RFC9858"/> for sizes for all parameter sets.</t>
    </section>
    <section anchor="sig-perf">
      <name>Optimizing Performance in PQC Signature Schemes</name>
      <t>When implementing PQC signature algorithms in constrained cryptographic modules,
performance optimization becomes a critical consideration. Transmitting the entire message
to the cryptographic module for signing can lead to significant overhead, especially for
large payloads. To address this, implementers can leverage techniques that reduce the data
transmitted to the cryptographic module, thereby improving efficiency and scalability.</t>
      <t>One effective approach involves sending only a message digest to the cryptographic module
for signing. By signing the digest of the content rather than the entire content, the
communication between the application and the cryptographic module is minimized, enabling
better performance. This method is applicable for any PQC signature algorithm, whether it
is ML-DSA, SLH-DSA, or any future signature scheme. For such algorithms, a mechanism is
often provided to pre-hash or process the message in a way that avoids sending the entire
raw message for signing. In particular, algorithms like SLH-DSA present challenges due to
their construction, which requires two passes over the message during the
signing process. The signer must therefore either retain the message for the second pass
or receive it twice. This differs from traditional algorithms like RSA or ECDSA,
which allow for more efficient processing of the message, without requiring multiple
passes or intermediate processing of the digest.</t>
      <section anchor="mldsa-rej-sampling">
        <name>Impact of rejection sampling in ML-DSA Signing on performance</name>
        <t>In constrained and battery-powered IoT devices that perform ML-DSA signing, the rejection-sampling
loop introduces variability in signing latency and energy consumption due to the probabilistic
nature of the signing process. While this results in a variable number of iterations in the signing
algorithm, the expected number of attempts for the standardized ML-DSA parameter sets is quantified
below.</t>
        <t>The analysis in this section follows the algorithmic structure and assumptions defined in
<xref target="FIPS204"/>. The results characterize the expected behavior of ML-DSA rather than any particular
implementation.</t>
        <t>The ML-DSA signature scheme uses the Fiat-Shamir with Aborts construction <xref target="Lyu09"/>. As a
result, the signature generation algorithm is built around a rejection-sampling loop. This
section examines the rejection-sampling behavior of ML-DSA, as rejection sampling is not
commonly used as a core mechanism in traditional digital signature schemes.</t>
        <t>Rejection sampling is used to ensure that intermediate and output values follow the
distributions required by the security proof. In particular, after computing candidate signature
components, the signer checks whether certain norm bounds are satisfied. If any of these bounds
are violated, the entire signing attempt is discarded and restarted with fresh pseudorandom values.</t>
        <t>The purpose of rejection sampling is twofold: First, it prevents leakage of information about the
secret key through out-of-range values that could otherwise bias the distribution of signatures.
Second, it ensures that the distribution of valid signatures is statistically close to the ideal
distribution assumed in the security reduction, namely the zero-knowledge property underlying the
reduction to the SelfTargetMSIS problem (see Section 6.2.1 of <xref target="Dilithium"/>).</t>
        <t>The number of rejections during signature generation depends on three factors:</t>
        <ul spacing="normal">
          <li>
            <t>the message representative μ, which depends on the message, the context string (see <xref target="FIPS204"/>, Section 5.2) and the public key</t>
          </li>
          <li>
            <t>the secret key material</t>
          </li>
          <li>
            <t>when hedged signing is used (see <xref target="FIPS204"/>, Section 3.4), the random seed</t>
          </li>
        </ul>
        <t>As a result, some message-key combinations may lead to a higher number of
rejection iterations than others.</t>
        <t>Each signing attempt can be modeled as an independent Bernoulli trial: an attempt
either succeeds or is rejected, with a fixed per-attempt acceptance probability p.
Under this assumption, the number of attempts until success follows a geometric
distribution, and the expected number of attempts is 1/p.</t>
        <t>The values below are taken from <xref target="KWI2026"/>, assuming a random bit generator
(RBG) as specified in <xref target="FIPS204"/> (Section 3.6.1).</t>
        <table anchor="Expected_Attempts">
          <name>Per-attempt acceptance probability and expected number of attempts for the given ML-DSA variant.</name>
          <thead>
            <tr>
              <th align="left">ML-DSA Variant</th>
              <th align="left">Per-attempt Acceptance</th>
              <th align="left">Expected Number of Attempts</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-DSA-44</td>
              <td align="left">0.2293</td>
              <td align="left">4.361</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65</td>
              <td align="left">0.1947</td>
              <td align="left">5.137</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87</td>
              <td align="left">0.2561</td>
              <td align="left">3.905</td>
            </tr>
          </tbody>
        </table>
        <t>The cumulative distribution function (CDF) follows directly from the geometric
model. <xref target="MLDSA_Sign_CDF"/> shows, for each ML-DSA variant, the probability that
signing completes within a given number of iterations. The first rows matter
most in practice: more than half of all signing operations complete within 3
iterations (4 for ML-DSA-65).</t>
        <table anchor="MLDSA_Sign_CDF">
          <name>Probability of completing the signing process within the given number of iterations, for each ML-DSA variant.</name>
          <thead>
            <tr>
              <th align="left">Iteration</th>
              <th align="left">ML-DSA-44</th>
              <th align="left">ML-DSA-65</th>
              <th align="left">ML-DSA-87</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">1</td>
              <td align="left">0.2293</td>
              <td align="left">0.1947</td>
              <td align="left">0.2561</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">0.4060</td>
              <td align="left">0.3514</td>
              <td align="left">0.4466</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">0.5423</td>
              <td align="left">0.4777</td>
              <td align="left">0.5883</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">0.6472</td>
              <td align="left">0.5794</td>
              <td align="left">0.6937</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">0.7281</td>
              <td align="left">0.6612</td>
              <td align="left">0.7722</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">0.7905</td>
              <td align="left">0.7272</td>
              <td align="left">0.8305</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">0.8385</td>
              <td align="left">0.7803</td>
              <td align="left">0.8739</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">0.8755</td>
              <td align="left">0.8231</td>
              <td align="left">0.9062</td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">0.9041</td>
              <td align="left">0.8575</td>
              <td align="left">0.9302</td>
            </tr>
            <tr>
              <td align="left">10</td>
              <td align="left">0.9261</td>
              <td align="left">0.8852</td>
              <td align="left">0.9481</td>
            </tr>
            <tr>
              <td align="left">11</td>
              <td align="left">0.9430</td>
              <td align="left">0.9076</td>
              <td align="left">0.9614</td>
            </tr>
            <tr>
              <td align="left">12</td>
              <td align="left">0.9561</td>
              <td align="left">0.9256</td>
              <td align="left">0.9713</td>
            </tr>
          </tbody>
        </table>
        <t>Inverting the CDF gives the minimum number of iterations n required to reach a
desired completion probability, n &gt;= ln(1 - target) / ln(1 - p). This is the
figure implementations need when budgeting for worst-case latency or energy
rather than for the average case.</t>
        <table anchor="MLDSA_Sign_Quantiles">
          <name>Iterations required to reach a given probability of completing the signing process, for each ML-DSA variant.</name>
          <thead>
            <tr>
              <th align="left">Target</th>
              <th align="left">ML-DSA-44</th>
              <th align="left">ML-DSA-65</th>
              <th align="left">ML-DSA-87</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">90%</td>
              <td align="left">9</td>
              <td align="left">11</td>
              <td align="left">8</td>
            </tr>
            <tr>
              <td align="left">95%</td>
              <td align="left">12</td>
              <td align="left">14</td>
              <td align="left">11</td>
            </tr>
            <tr>
              <td align="left">99%</td>
              <td align="left">18</td>
              <td align="left">22</td>
              <td align="left">16</td>
            </tr>
          </tbody>
        </table>
        <t>Every variant reaches at least 90% within 11 iterations, but the tail is long:
ML-DSA-65 needs 22 iterations for 99%, against an expected 5.1.</t>
        <t><xref target="FIPS204"/> Appendix C bounds the signing loop at 814 iterations for a
failure probability of at most 2^-256, based on the expected repetition
counts in <xref target="FIPS204"/> Table 1. A more precise computation of these counts
(see <xref target="Expected_Attempts"/>) gives 5.137 for ML-DSA-65, the parameter set
with the highest repetition count, which yields a limit of 820 iterations;
with 814, the probability that signing fails to complete is about
2^-254.2, slightly short of the 2^-256 target. This does not affect the
security of ML-DSA, as such a failure only requires signing to be
retried. The FIPS 204 potential updates <xref target="FIPS204_errata"/> also conclude
that 814 is too low, but compute the limit from the rounded count 5.14,
giving 821. This is one iteration above the minimum derived here, so it
also meets the 2^-256 target. For FIPS compliance, implementations that
bound the loop should use the limit specified in <xref target="FIPS204"/>, or in a
published update to it.</t>
        <section anchor="practical-implications-for-constrained-cryptographic-modules">
          <name>Practical Implications for Constrained Cryptographic Modules</name>
          <t>As shown above, the rejection-sampling loop in ML-DSA signing leads to a probabilistic runtime
with a geometrically distributed number of iterations. While the expected execution time is
small, the tail of the distribution implies that, with low probability, a signing operation
may require significantly more iterations than average. This unfavorable tail behavior represents
a practical concern for ML-DSA deployments on constrained devices with limited execution
capability and may require additional consideration.</t>
          <t>As discussed in <xref target="Seed"/>, in many deployment scenarios, constrained devices primarily perform signature verification, while signature generation is performed on more capable systems (e.g., firmware signing infrastructure). Therefore, the impact of rejection sampling is primarily relevant for devices that perform ML-DSA signing.</t>
          <t>Devices that only verify signatures are not affected, as those operations do not involve rejection sampling and have deterministic execution times.</t>
        </section>
        <section anchor="suggestions-for-benchmarking-ml-dsa-signing-performance">
          <name>Suggestions for benchmarking ML-DSA Signing Performance</name>
          <t>When benchmarking ML-DSA signing performance in constrained cryptographic modules, it is
important to account for the probabilistic nature of the rejection-sampling loop. Reporting
only a single timing measurement or a best-case execution time may lead to misleading conclusions
about practical performance.</t>
          <t>Libraries implementing ML-DSA should provide a mechanism to report the number of
rejection-sampling iterations used during the most recent signing operation. This enables
benchmarking tools to accurately compute average signing times across multiple signing operations.</t>
          <t>To provide a more comprehensive assessment of ML-DSA signing performance, benchmarks may report
all or some of the following metrics:</t>
          <ol spacing="normal" type="1"><li>
              <t>Single-iteration signing time:
The signing time for a signature operation that completes within a single iteration of the
rejection-sampling loop. This metric includes the fixed setup cost incurred once per signing
call (such as matrix expansion, message digest computation, and similar precomputations), plus
the cost of one loop operation. It reflects the best-case performance of the signing algorithm
and provides insight into the efficiency of the core signing operation.</t>
            </li>
            <li>
              <t>Average signing time:
Since the iteration count follows a geometric distribution (as described in <xref target="mldsa-rej-sampling"/>),
the expected signing time can be computed analytically as the fixed setup cost plus the per-iteration
cost multiplied by the expected number of iterations from <xref target="Expected_Attempts"/>.
Implementations may also measure average signing time empirically over a sufficiently large number of
signing operations, using independent messages and, where applicable, independent randomness, to validate
against the analytical model on the target hardware.</t>
            </li>
          </ol>
          <t>Rather than relying on ad hoc random inputs, benchmarks may use a standardized input data set covering
best-case, average, and worst-case vectors with documented occurrence probabilities, to ensure
reproducibility and comparability across implementations. This requires identifying message, key and randomness
combinations that result in the target iteration counts, e.g., a single iteration for the best case, the
expected count rounded to the nearest integer for the average case, and a high quantile such as the 99% value
from <xref target="MLDSA_Sign_Quantiles"/> for the worst case.</t>
        </section>
      </section>
    </section>
    <section anchor="additional-considerations-for-pqc-use-in-constrained-devices">
      <name>Additional Considerations for PQC Use in Constrained Devices</name>
      <section anchor="key-rotation-and-renewal">
        <name>Key Rotation and Renewal</name>
        <t>In constrained devices, managing the lifecycle of cryptographic
keys including periodic key rotation and renewal is critical for maintaining long-term
security and supporting cryptographic agility. While constrained devices may rely on
dedicated key-storage hardware for secure key storage and operations, the
responsibility for orchestrating key rotation typically resides in the application layer
or external device management infrastructure.</t>
        <t>Although the underlying cryptographic module may offer primitives to securely generate new
key pairs, store fresh seeds, or delete obsolete keys, these capabilities must be
integrated into the device's broader key management framework. This process is especially
important in the context of PQC, where evolving research may lead to changes in
recommended algorithms, parameters, and key management practices.</t>
        <t>The security of PQC schemes continues to evolve, with potential risks arising from
advances in post-quantum algorithms, cryptanalytic or implementation vulnerabilities. As a
result, constrained devices should be designed to support flexible and updatable key
management policies. This includes the ability to:</t>
        <ul spacing="normal">
          <li>
            <t>Rotate keys periodically to limit the impact of a key compromise,</t>
          </li>
          <li>
            <t>Update algorithm choices or key sizes based on emerging security guidance,</t>
          </li>
          <li>
            <t>Reconfigure cryptographic profile of the device via firmware updates.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="post-quantum-firmware-upgrades-for-constrained-devices">
      <name>Post-quantum Firmware Upgrades for Constrained Devices</name>
      <t>Constrained devices deployed in the field require periodic firmware upgrades to patch
security vulnerabilities, introduce new cryptographic algorithms, and improve overall
functionality. However, if not designed to withstand attacks from a CRQC, the firmware update
process itself can become a critical attack vector. If an adversary compromises the update mechanism,
they could introduce malicious firmware, undermining all other security properties of the
cryptographic modules. Therefore, ensuring a post-quantum firmware upgrade process is critical
for the security of deployed constrained devices.</t>
      <t>CRQCs pose an additional risk by breaking traditional digital signatures (e.g., RSA,
ECDSA) used to authenticate firmware updates. If firmware verification relies on
traditional signature algorithms, attackers could generate forged signatures in the future
and distribute malicious updates.</t>
      <section anchor="post-quantum-firmware-authentication">
        <name>Post-Quantum Firmware Authentication</name>
        <t>To ensure the integrity and authenticity of firmware updates, constrained devices will have to adopt PQC digital signature schemes for code signing.
These algorithms must provide long-term security, operate efficiently in low-resource environments, and be compatible with secure update mechanisms, such as the firmware update architecture for IoT described in <xref target="RFC9019"/>.</t>
        <t><xref target="I-D.ietf-suit-mti"/> defines mandatory-to-implement cryptographic algorithms for IoT devices, and recommends use of HSS/LMS <xref target="RFC8554"/> to secure software updates. The SUIT working group may consider adding post-quantum algorithms, such as SLH-DSA and ML-DSA, in future specifications.</t>
        <t>Stateful hash-based signature schemes, such as HSS/LMS or the similar XMSS <xref target="RFC8391"/>, are good candidates for signing firmware updates. Those schemes offer efficient verification times, making them more practical choices for constrained environments where performance and memory usage are key concerns.
Their security is based on the security of the underlying hash function, which is well-understood.
A major downside of stateful hash-based signatures is the requirement to keep track of which One-Time Signature (OTS) keys have been used, since reuse of a single OTS key allows for signature forgeries.
However, in the case of firmware updates, the OTS keys will be signing versioned updates, which may make state management easier.
<xref target="RFC10033"/> discusses various strategies for a correct state and backup management for stateful hash-based signatures.</t>
        <t>Other post-quantum signature algorithms may also be viable for firmware signing:</t>
        <ul spacing="normal">
          <li>
            <t>SLH-DSA, a stateless hash-based signature specified in <xref target="FIPS205"/>, also has well-understood security based on the security of its underlying hash function, and additionally doesn't have the complexities associated with state management that HSS and XMSS have.</t>
          </li>
        </ul>
        <t>However, signature generation and verification are comparatively slow, and signature sizes are generally larger than other post-quantum algorithms.
SLH-DSA's suitability as a firmware signing algorithm will depend on the capabilities of the underlying hardware.</t>
        <ul spacing="normal">
          <li>
            <t>ML-DSA is a lattice-based signature algorithm specified in <xref target="FIPS204"/>.
It is more performant than SLH-DSA, with significantly faster signing and verification times, as well as shorter signatures.</t>
          </li>
        </ul>
        <t>This will make it possible to implement on a wider range of constrained devices.
The mathematical problem underpinning ML-DSA, Module Learning With Errors (M-LWE), is believed to be a hard problem by the cryptographic community, and hence ML-DSA is believed to be secure.
Cryptographers are more confident still in the security of hash-based signatures than M-LWE, so developers may wish to factor that in when choosing a firmware signing algorithm.</t>
        <t>In firmware update and secure boot scenarios, signature verification is typically performed during early boot stages, where the bootloader has exclusive access to system resources. In such environments, the practical impact of resource constraints on signature verification is reduced compared to general runtime environments.</t>
        <t>Verification does not always occur during early boot. In devices that keep a second firmware image and switch to it only after verifying it, the new image is verified while the current firmware runs, so verification competes with the device's normal workload for CPU, RAM, and energy. The optimizations in <xref target="sig-mem"/> and <xref target="sig-perf"/> are therefore especially relevant when verification runs concurrently with normal operation.</t>
      </section>
      <section anchor="hybrid-signature-approaches">
        <name>Hybrid Signature Approaches</name>
        <t>To enable secure migration from traditional to post-quantum security, PQ/T hybrid digital signature methods can be used for firmware authentication, combining a traditional and a post-quantum algorithm using either non-composite or composite constructions as defined in <xref target="RFC9794"/>.</t>
        <t>A non-composite approach, where both signatures are generated and carried separately, is simple to implement, requires minimal changes to existing signing, and aligns well with current secure boot and update architectures.</t>
        <t>Composite constructions, which combine multiple algorithms into a single signature, require changes to cryptographic processing. In such constructions, the additional cost of including a traditional algorithm is typically small compared to the post-quantum component, and overall resource usage remains dominated by the post-quantum algorithm, particularly in terms of key size, signature size, code size, and verification cost.</t>
        <t>Implementations should ensure that verification enforces the intended hybrid authentication property, namely that authentication remains secure as long as at least one component algorithm remains secure.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requires no IANA actions.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations for key management in constrained devices for PQC focus on the
secure storage and handling of cryptographic seeds, which are used to derive private keys.
Seeds must be protected with the same security measures as private keys, and key
derivation should be efficient and secure within resource-constrained cryptographic
module. Secure export and backup mechanisms for seeds are essential to ensure recovery in
case of hardware failure, but the exported seeds must be encrypted and protected from
unauthorized access.</t>
      <section anchor="side-channel-protection">
        <name>Side Channel Protection</name>
        <t>Side-channel attacks exploit physical leaks during cryptographic operations, such as timing information, power consumption, electromagnetic emissions, or other physical characteristics, to extract sensitive data like private keys or seeds. Given the sensitivity of the seed and private key in PQC key generation, it is critical to consider side-channel protection in cryptographic module design. While side-channel attacks remain an active research topic, they are a major concern in secure hardware design and must not be overlooked. Cryptographic modules must incorporate strong countermeasures against side-channel vulnerabilities to prevent attackers from gaining insights into secret data during cryptographic operations.</t>
        <t>ML-DSA supports both deterministic and hedged signing. On platforms where side-channel attacks are a concern and cannot be otherwise mitigated, hedged signing should be used, as discussed in Section 3.4 of <xref target="FIPS204"/>.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Jean-Pierre Fiset, Richard Kettlewell, Mike Ounsworth, Russ Housley, Keegan Dasilva Barbosa, Hannes Tschofenig, Aritra Banerjee, Mohamed Boucadair and Ketan Talaulikar for the detailed review.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS203">
          <front>
            <title>Module-lattice-based key-encapsulation mechanism standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="FIPS204">
          <front>
            <title>Module-lattice-based digital signature standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.204"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="FIPS205">
          <front>
            <title>Stateless hash-based digital signature standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.205"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="RFC8554">
          <front>
            <title>Leighton-Micali Hash-Based Signatures</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Curcio" initials="M." surname="Curcio"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This note describes a digital-signature system based on cryptographic hash functions, following the seminal work in this area of Lamport, Diffie, Winternitz, and Merkle, as adapted by Leighton and Micali in 1995. It specifies a one-time signature scheme and a general signature scheme. These systems provide asymmetric authentication without using large integer mathematics and can achieve a high security level. They are suitable for compact implementations, are relatively simple to implement, and are naturally resistant to side-channel attacks. Unlike many other signature systems, hash-based signatures would still be secure even if it proves feasible for an attacker to build a quantum computer.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF. This has been reviewed by many researchers, both in the research group and outside of it. The Acknowledgements section lists many of them.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8554"/>
          <seriesInfo name="DOI" value="10.17487/RFC8554"/>
        </reference>
        <reference anchor="RFC8391">
          <front>
            <title>XMSS: eXtended Merkle Signature Scheme</title>
            <author fullname="A. Huelsing" initials="A." surname="Huelsing"/>
            <author fullname="D. Butin" initials="D." surname="Butin"/>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
            <author fullname="J. Rijneveld" initials="J." surname="Rijneveld"/>
            <author fullname="A. Mohaisen" initials="A." surname="Mohaisen"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature. This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS. Both XMSS and XMSS^MT use WOTS+ as a main building block. XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems. Instead, it is proven that it only relies on the properties of cryptographic hash functions. XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken. It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks. Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8391"/>
          <seriesInfo name="DOI" value="10.17487/RFC8391"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SP800-208">
          <front>
            <title>Recommendation for Stateful Hash-Based Signature Schemes</title>
            <author fullname="David A. Cooper" initials="D." surname="Cooper">
              <organization/>
            </author>
            <author fullname="Daniel C. Apon" initials="D." surname="Apon">
              <organization/>
            </author>
            <author fullname="Quynh H. Dang" initials="Q." surname="Dang">
              <organization/>
            </author>
            <author fullname="Michael S. Davidson" initials="M." surname="Davidson">
              <organization/>
            </author>
            <author fullname="Morris J. Dworkin" initials="M." surname="Dworkin">
              <organization/>
            </author>
            <author fullname="Carl A. Miller" initials="C." surname="Miller">
              <organization/>
            </author>
            <date month="October" year="2020"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-208"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="ISO19790" target="https://www.iso.org/standard/82423.html">
          <front>
            <title>Information security, cybersecurity, and privacy protection - Security requirements for cryptographic modules</title>
            <author>
              <organization>ISO</organization>
            </author>
            <date year="2025" month="February"/>
          </front>
        </reference>
        <reference anchor="BIND" target="https://eprint.iacr.org/2024/523.pdf">
          <front>
            <title>Unbindable Kemmy Schmidt: ML-KEM is neither MAL-BIND-K-CT nor MAL-BIND-K-PK</title>
            <author initials="S." surname="Schmieg">
              <organization/>
            </author>
            <date year="2024" month="April"/>
          </front>
        </reference>
        <reference anchor="HQC" target="https://pqc-hqc.org/doc/hqc_specifications_2025_08_22.pdf">
          <front>
            <title>Hamming Quasi-Cyclic (HQC)</title>
            <author initials="" surname="Gaborit et al">
              <organization/>
            </author>
            <date year="2025" month="August"/>
          </front>
        </reference>
        <reference anchor="Falcon" target="https://falcon-sign.info/falcon.pdf">
          <front>
            <title>Falcon: Fast-Fourier Lattice-based Compact Signatures over NTRU</title>
            <author initials="P.-A." surname="Fouque">
              <organization/>
            </author>
            <author initials="J." surname="Hoffstein">
              <organization/>
            </author>
            <author initials="P." surname="Kirchner">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="T." surname="Pornin">
              <organization/>
            </author>
            <author initials="T." surname="Prest">
              <organization/>
            </author>
            <author initials="T." surname="Ricosset">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="W." surname="Whyte">
              <organization/>
            </author>
            <author initials="Z." surname="Zhang">
              <organization/>
            </author>
            <date year="2020" month="October"/>
          </front>
        </reference>
        <reference anchor="Stream-SPHINCS" target="https://eprint.iacr.org/2021/1072.pdf">
          <front>
            <title>Streaming SPHINCS+ for Embedded Devices using the Example of TPMs</title>
            <author initials="R." surname="Niederhagen">
              <organization/>
            </author>
            <author initials="J." surname="Roth">
              <organization/>
            </author>
            <author initials="J." surname="Walde">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
        <reference anchor="BosRS22" target="https://eprint.iacr.org/2022/323.pdf">
          <front>
            <title>Dilithium for Memory Constrained Devices</title>
            <author initials="J." surname="Bos">
              <organization/>
            </author>
            <author initials="J." surname="Renes">
              <organization/>
            </author>
            <author initials="A." surname="Sprenkels">
              <organization/>
            </author>
            <date year="2022" month="December"/>
          </front>
        </reference>
        <reference anchor="REC-KEM">
          <front>
            <title>Recommendations for key-encapsulation mechanisms</title>
            <author fullname="Gorjan Alagic" initials="G." surname="Alagic">
              <organization/>
            </author>
            <author fullname="Elaine Barker" initials="E." surname="Barker">
              <organization/>
            </author>
            <author fullname="Lily Chen" initials="L." surname="Chen">
              <organization/>
            </author>
            <author fullname="Dustin Moody" initials="D." surname="Moody">
              <organization/>
            </author>
            <author fullname="Angela Robinson" initials="A." surname="Robinson">
              <organization/>
            </author>
            <author fullname="Hamilton Silberg" initials="H." surname="Silberg">
              <organization/>
            </author>
            <author fullname="Noah Waller" initials="N." surname="Waller">
              <organization/>
            </author>
            <date month="September" year="2025"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.sp.800-227"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="Lyu09">
          <front>
            <title>Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures</title>
            <author fullname="Vadim Lyubashevsky" initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <date year="2009"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 598-616"/>
          <seriesInfo name="DOI" value="10.1007/978-3-642-10366-7_35"/>
          <seriesInfo name="ISBN" value="[&quot;9783642103650&quot;, &quot;9783642103667&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
        <reference anchor="Dilithium" target="https://pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf">
          <front>
            <title>CRYSTALS-Dilithium: Algorithm Specifications and Supporting Documentation (Version 3.1)</title>
            <author initials="S." surname="Bai">
              <organization/>
            </author>
            <author initials="L." surname="Ducas">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehle">
              <organization/>
            </author>
            <date year="2021" month="February"/>
          </front>
        </reference>
        <reference anchor="PKCS11" target="https://docs.oasis-open.org/pkcs11/pkcs11-spec/v3.2/os/">
          <front>
            <title>PKCS #11 Specification Version 3.2</title>
            <author>
              <organization>OASIS</organization>
            </author>
            <date year="2026" month="June"/>
          </front>
        </reference>
        <reference anchor="NISTSecurityCategories" target="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization/evaluation-criteria/security-(evaluation-criteria)">
          <front>
            <title>Post-Quantum Cryptography: Security (Evaluation Criteria)</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2017" month="January"/>
          </front>
        </reference>
        <reference anchor="Bot19" target="https://eprint.iacr.org/2019/489.pdf">
          <front>
            <title>Memory-Efficient High-Speed Implementation of Kyber on Cortex-M4</title>
            <author initials="L." surname="Botros">
              <organization/>
            </author>
            <author initials="M. J." surname="Kannwischer">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <date year="2019" month="May"/>
          </front>
        </reference>
        <reference anchor="Gre20">
          <front>
            <title>Compact Dilithium Implementations on Cortex-M3 and Cortex-M4</title>
            <author fullname="Denisa O. C. Greconici" initials="D." surname="Greconici">
              <organization/>
            </author>
            <author fullname="Matthias J. Kannwischer" initials="M." surname="Kannwischer">
              <organization/>
            </author>
            <author fullname="Daan Sprenkels" initials="D." surname="Sprenkels">
              <organization/>
            </author>
            <date month="December" year="2020"/>
          </front>
          <seriesInfo name="IACR Transactions on Cryptographic Hardware and Embedded Systems" value="pp. 1-24"/>
          <seriesInfo name="DOI" value="10.46586/tches.v2021.i1.1-24"/>
          <refcontent>Universitatsbibliothek der Ruhr-Universitat Bochum</refcontent>
        </reference>
        <reference anchor="Smaller-SPHINCS" target="https://eprint.iacr.org/2024/018.pdf">
          <front>
            <title>Smaller Sphincs+ or, Honey, I Shrunk the Signatures</title>
            <author initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <author initials="Q." surname="Dang">
              <organization/>
            </author>
            <date year="2024" month="January"/>
          </front>
        </reference>
        <reference anchor="IEEE802.1AR" target="https://standards.ieee.org/ieee/802.1AR/6995/">
          <front>
            <title>IEEE Standard for Local and Metropolitan Area Networks - Secure Device Identity</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2018"/>
          </front>
          <seriesInfo name="IEEE" value="802.1AR-2018"/>
        </reference>
        <reference anchor="KWI2026" target="https://eprint.iacr.org/2026/2456">
          <front>
            <title>On the Expected Number of Iterations in ML-DSA Signing: A Complete Accounting of the Rejection Conditions</title>
            <author initials="K." surname="Kwiatkowski">
              <organization/>
            </author>
            <date year="2026" month="October"/>
          </front>
        </reference>
        <reference anchor="FIPS204_errata" target="https://csrc.nist.gov/files/pubs/fips/204/final/docs/fips-204-potential-updates.xlsx">
          <front>
            <title>FIPS 204 - Potential Updates (Errata)</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2026" month="July"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-iotops-7228bis">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Mehmet Ersue" initials="M." surname="Ersue">
         </author>
            <author fullname="Ari Keränen" initials="A." surname="Keränen">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Carles Gomez" initials="C." surname="Gomez">
              <organization>Universitat Politecnica de Catalunya</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   The Internet Protocol Suite is increasingly used on small devices
   with severe constraints on power, memory, and processing resources,
   creating constrained-node networks.  This document provides a number
   of basic terms that have been useful in research and standardization
   work for constrained-node networks.

   This document obsoletes RFC 7228.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-iotops-7228bis-10"/>
        </reference>
        <reference anchor="RFC9881">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates and Certificate Revocation Lists (CRLs), and to sign messages. This document specifies the conventions for using FIPS 204, the Module-Lattice-Based Digital Signature Algorithm (ML-DSA) in Internet X.509 certificates and CRLs. The conventions for the associated signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9881"/>
          <seriesInfo name="DOI" value="10.17487/RFC9881"/>
        </reference>
        <reference anchor="RFC9935">
          <front>
            <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for the Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM)</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>The Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) is a quantum-resistant Key Encapsulation Mechanism. This document specifies the conventions for using the ML-KEM in X.509 Public Key Infrastructure. The conventions for the subject public keys and private keys are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9935"/>
          <seriesInfo name="DOI" value="10.17487/RFC9935"/>
        </reference>
        <reference anchor="RFC9958">
          <front>
            <title>Post-Quantum Cryptography for Engineers</title>
            <author fullname="A. Banerjee" initials="A." surname="Banerjee"/>
            <author fullname="T. Reddy.K" initials="T." surname="Reddy.K"/>
            <author fullname="D. Schoinianakis" initials="D." surname="Schoinianakis"/>
            <author fullname="T. Hollebeek" initials="T." surname="Hollebeek"/>
            <author fullname="M. Ounsworth" initials="M." surname="Ounsworth"/>
            <date month="June" year="2026"/>
            <abstract>
              <t>The advent of a cryptographically relevant quantum computer (CRQC) would render state-of-the-art, traditional public key algorithms deployed today obsolete, as the mathematical assumptions underpinning their security would no longer hold. To address this, protocols and infrastructure must transition to post-quantum algorithms, which are designed to resist both traditional and quantum attacks. This document explains why engineers need to be aware of and understand post-quantum cryptography (PQC), and it details the impact of CRQCs on existing systems and the challenges involved in transitioning to post-quantum algorithms. Unlike previous cryptographic updates, this shift may require significant protocol redesign due to the unique properties of post-quantum algorithms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9958"/>
          <seriesInfo name="DOI" value="10.17487/RFC9958"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <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 obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC10024">
          <front>
            <title>Post-Quantum Traditional (PQ/T) Hybrid Key Agreement Mechanisms for TLS 1.3</title>
            <author fullname="K. Kwiatkowski" initials="K." surname="Kwiatkowski"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <author fullname="D. Stebila" initials="D." surname="Stebila"/>
            <date month="August" year="2026"/>
            <abstract>
              <t>This document defines three hybrid key agreement mechanisms for TLS 1.3 -- X25519MLKEM768, SecP256r1MLKEM768, and SecP384r1MLKEM1024 -- that combine the post-quantum ML-KEM (Module-Lattice-Based Key Encapsulation Mechanism) with an ECDHE (Ephemeral Elliptic Curve Diffie-Hellman) exchange.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10024"/>
          <seriesInfo name="DOI" value="10.17487/RFC10024"/>
        </reference>
        <reference anchor="I-D.ietf-tls-mlkem">
          <front>
            <title>ML-KEM Post-Quantum Key Agreement for TLS 1.3</title>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>Selkie Cryptography</organization>
            </author>
            <date day="16" month="September" year="2026"/>
            <abstract>
              <t>   This memo defines ML-KEM-512, ML-KEM-768, and ML-KEM-1024 as
   NamedGroups and registers IANA values in the TLS Supported Groups
   registry for use in TLS 1.3 to achieve post-quantum (PQ) key
   establishment.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-mlkem-11"/>
        </reference>
        <reference anchor="I-D.ietf-tls-mldsa">
          <front>
            <title>Use of ML-DSA in TLS 1.3</title>
            <author fullname="Tim Hollebeek" initials="T." surname="Hollebeek">
              <organization>DigiCert</organization>
            </author>
            <author fullname="Sophie Schmieg" initials="S." surname="Schmieg">
              <organization>Google</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="11" month="September" year="2026"/>
            <abstract>
              <t>   This memo specifies how the post-quantum signature scheme ML-DSA
   (FIPS 204) is used for authentication in TLS 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-mldsa-06"/>
        </reference>
        <reference anchor="RFC5649">
          <front>
            <title>Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="M. Dworkin" initials="M." surname="Dworkin"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document specifies a padding convention for use with the AES Key Wrap algorithm specified in RFC 3394. This convention eliminates the requirement that the length of the key to be wrapped be a multiple of 64 bits, allowing a key of any practical length to be wrapped. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5649"/>
          <seriesInfo name="DOI" value="10.17487/RFC5649"/>
        </reference>
        <reference anchor="RFC9858">
          <front>
            <title>Additional Parameter Sets for HSS/LMS Hash-Based Signatures</title>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>This document extends HSS/LMS (RFC 8554) by defining parameter sets that use alternative hash functions. These include hash functions that result in signatures with significantly smaller sizes than the signatures that use the RFC 8554 parameter sets and should have sufficient security.</t>
              <t>This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the consensus of the Crypto Forum Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9858"/>
          <seriesInfo name="DOI" value="10.17487/RFC9858"/>
        </reference>
        <reference anchor="RFC9019">
          <front>
            <title>A Firmware Update Architecture for Internet of Things</title>
            <author fullname="B. Moran" initials="B." surname="Moran"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="M. Meriac" initials="M." surname="Meriac"/>
            <date month="April" year="2021"/>
            <abstract>
              <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.</t>
              <t>In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9019"/>
          <seriesInfo name="DOI" value="10.17487/RFC9019"/>
        </reference>
        <reference anchor="I-D.ietf-suit-mti">
          <front>
            <title>Cryptographic Algorithms for Internet of Things (IoT) Devices</title>
            <author fullname="Brendan Moran" initials="B." surname="Moran">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
              <organization>Nordic Semiconductor</organization>
            </author>
            <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
              <organization>Openchip &amp; Software Technologies, S.L.</organization>
            </author>
            <date day="22" month="July" year="2025"/>
            <abstract>
              <t>   The SUIT manifest, as defined in "A Manifest Information Model for
   Firmware Updates in Internet of Things (IoT) Devices" (RFC 9124),
   provides a flexible and extensible format for describing how firmware
   and software updates are to be fetched, verified, decrypted, and
   installed on resource-constrained devices.  To ensure the security of
   these update processes, the manifest relies on cryptographic
   algorithms for functions such as digital signature verification,
   integrity checking, and confidentiality.

   This document defines cryptographic algorithm profiles for use with
   the Software Updates for Internet of Things (SUIT) manifest.  These
   profiles specify sets of algorithms to promote interoperability
   across implementations.

   Given the diversity of IoT deployments and the evolving cryptographic
   landscape, algorithm agility is essential.  This document groups
   algorithms into named profiles to accommodate varying levels of
   device capabilities and security requirements.  These profiles
   support the use cases laid out in the SUIT architecture, published in
   "A Firmware Update Architecture for Internet of Things" (RFC 9019).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-mti-23"/>
        </reference>
        <reference anchor="RFC10033">
          <front>
            <title>Hash-Based Signatures: State and Backup Management</title>
            <author fullname="T. Wiggers" initials="T." surname="Wiggers"/>
            <author fullname="K. Bashiri" initials="K." surname="Bashiri"/>
            <author fullname="S. Kölbl" initials="S." surname="Kölbl"/>
            <author fullname="J. Goodman" initials="J." surname="Goodman"/>
            <author fullname="S. Kousidis" initials="S." surname="Kousidis"/>
            <date month="September" year="2026"/>
            <abstract>
              <t>Stateful Hash-Based Signature Schemes (Stateful HBS) such as Leighton-Micali Signature (LMS), Hierarchical Signature System (HSS), eXtended Merkle Signature Scheme (XMSS), and XMSS^MT combine Merkle trees with One-Time Signatures (OTSs) to provide signatures that are resistant against attacks using large-scale quantum computers. Unlike conventional stateless digital signature schemes, Stateful HBS have a state to keep track of which OTS keys have been used, as double-signing with the same OTS key allows forgeries.</t>
              <t>This document provides guidance and catalogs security considerations for the operational and technical aspects of deploying systems that rely on Stateful HBS. Management of the state of the Stateful HBS, including any handling of redundant key material, is a sensitive topic. This document describes some approaches to handle the associated challenges. It also describes the challenges that need to be resolved before certain approaches should be considered.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10033"/>
          <seriesInfo name="DOI" value="10.17487/RFC10033"/>
        </reference>
        <reference anchor="RFC9794">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
            <author fullname="M. Parsons" initials="M." surname="Parsons"/>
            <author fullname="B. Hale" initials="B." surname="Hale"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9794"/>
          <seriesInfo name="DOI" value="10.17487/RFC9794"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA819e3PbVpbn//gUGKd2WuomKZF6O9W7rch2rLEdO5bS7p2d
XQ9IXkpogwAbACUrjvez7/mdc+4LBG1naqdquqYyMgjc53k/h8Nh0uZtYR6n
j87n2arNy5v0oiqbts7y0szTJ+Yun5kmXVR1+qZq2uHP66xs18v0on5YtdVN
na1uHx4l2XRam7tvGuTni0fJLGvNTVU/PE7zclElybyaldmSFjGvs0U7zE27
GK7+sc5X9N/Z8LZZDmd+uGFBXzdt0qyny7xp8qpsH1b07eXT62dJuV5OTf04
mdM7jxN8Zcpm3TxO23ptElrhQZLVJqOVXpnZus5bWvx9VX+4qav1ip6++fmX
yzePkg/mgZ7OHyfJECum/15W1/Tf66dP6b/Pr17Rf9/Sk+TOlGuaKE3tALzs
R/RAFvXoHQ2O8/gRv+P5MssLfm/2F+xzVNU3eJzVs1t6fNu2q+bx3h7ewqP8
zozsa3t4sDetq/vG7NH3e4+SpGmzcv4+K6qSJnswTbLKH6f/q61mg7Sp6rY2
i4b+eljqH22dz9pBOquWS1O29IROfpmtVrTC/50k2bq9rejw0iEtKE0X66KQ
a7nO6/UyK0xzn9XpWzOfP/ALtKaszH/NWrqDx+lP1Yc84+czOtbH6Q9ZeUML
qw0/q80Nv/Uiq8uszT7om9W6bAEHl+VcPzZ6QB9GbTDr+xqz/qXEHCNaPm19
Y5VPsjJ9RzvpWdtFTjv/yD9YUA0euVX8UuYtwetVCwhLq0V6vjR0YvHC5ll5
T7P85Qb/3raWH0yZXmVFa+qe1fzyIv2J/8yK9OKB4DW1wJhe0LXoidn5pqYc
NQd/KWfNbHRT3Y3WHx5tzveizpv0xX2etR8IPD7kPbO++fnqNjfFPD5l+u4v
2bIqb6YPtGfdTlnVS/rqjiH72eWbq8n+AZ3v68vReH90vD853fvp8up6hF9G
9JN76XD7S4fupaPtLx0lCQhCMPnVm9P9/eFk/7Tno6s3I/2RXry8ej0+Oznb
f8zbszTt0o5WlWmjZ0zgjzP3/yQMSld1fpfNHuj/V62Z8ftDfyu1IayuDeMM
U7GZp375LF1W8zWB6SOZOqtvTPs4tZh8f38/ypuKEZixNavne6eTw8nB6LZd
FgKTFvH4f0Nc3GPsiB8wKUufmWm9zuqHdLI/OaLnP1z+9CTe6y/lNKfRp4VJ
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
ggvfzwAA

-->

</rfc>
