<?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-07" 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-07"/>
    <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="08"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <keyword>IoT</keyword>
    <keyword>TEE</keyword>
    <keyword>HSM</keyword>
    <keyword>RoT</keyword>
    <abstract>
      <?line 171?>

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

<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>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., PKCS#11).</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.</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="Li32"/>).</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>
          <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="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="I-D.ietf-pquip-hbs-state"/> 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>
      </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 and Aritra Banerjee 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="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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative 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="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="Li32" 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="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://amongbytes.com/posts/rejection-rate-of-mldsa-signing">
          <front>
            <title>The Rejection Rate of ML-DSA Signing: Correcting FIPS-204</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="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>
        <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="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="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="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="I-D.ietf-pquip-hbs-state">
          <front>
            <title>Hash-based Signatures: State and Backup Management</title>
            <author fullname="Thom Wiggers" initials="T." surname="Wiggers">
              <organization>PQShield</organization>
            </author>
            <author fullname="Kaveh Bashiri" initials="K." surname="Bashiri">
              <organization>BSI</organization>
            </author>
            <author fullname="Stefan Kölbl" initials="S." surname="Kölbl">
              <organization>Google</organization>
            </author>
            <author fullname="Jim Goodman" initials="J." surname="Goodman">
              <organization>Crypto4A Technologies</organization>
            </author>
            <author fullname="Stavros Kousidis" initials="S." surname="Kousidis">
              <organization>BSI</organization>
            </author>
            <date day="27" month="February" 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 (OTS) 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.

   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="Internet-Draft" value="draft-ietf-pquip-hbs-state-04"/>
        </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//gUWKd2W+omKZF6O9W7rch2rLGdKJbS6Z2d
XQ9IXkpogwAbACUrjvez7/mdc+4LBG2na6dquqYyMgjc53k/h8Nh0uZtYZ6m
T87n2arNy9v0oiqbts7y0szTZ+Y+n5kmXVR1elU17fCndVa262V6UT+u2uq2
zlZ3j0+SbDqtzf1XDfLTxZNklrXmtqofn6Z5uaiSZF7NymxJi5jX2aId5qZd
DFf/WOcr+u9seNcshzM/3HD/JGnW02XeNHlVto8r+u7y+c2LpFwvp6Z+msxp
9KcJvjBls26epm29Ngmt7iDJapPRKq/NbF3nLS38oarf39bVekVPr376+fLq
SfLePNLT+dMkGWK19N/L6ob+e/P8Of335fUb+u9bepLcm3JNE6WpHYCX/IQe
yKKe/EKD4yy+x+94vszygt+b/QV7HFX1LR5n9eyOHt+17ap5ureHt/Aovzcj
+9oeHuxN6+qhMXv0/d6TJGnarJy/y4qqpMkeTZOs8qfp/2qr2SBtqrqtzaKh
vx6X+kdb57N2kM6q5dKULT2hU19mqxWt8H8nSbZu7yo6vHRIC0rTxboo5Epu
8nq9zArTPGR1+tbM54/8Aq0pK/Nfs5bu4Gn6Q/U+z/j5jI71afpdVt7SwmrD
z2pzy2+9yuoya7P3+ma1LlvAwGU514+NHtD7URvM+q7GrH8pMceIlk9b31jl
s6xMf6Gd9KztIqedf+AfLJgGj9wqfi7zlmD1uiXoadJqkZ4vDZ1YvLB5Vj7Q
LH+5xb+3reU7U6bXWdGaumc1P79Kf+A/syK9eCR4TS0wphd0LXpidr6pKUfN
wV/KWTMb3Vb3o/X7J5vzvarzJn31kGftewKP93nPrFc/Xd/lppjHp0zf/SVb
VuXt9JH2rNspq3pJX90TZCfATvevNH1xeXU92T+g0/7xcjTeHx3vT073fri8
vhnhlxH95F463P7SoXvpaPtLR/TS9dXp/v5wsn/a89r11Uh/pBcvr38cn52c
7T/l7Vl6dmkXX5Vpo2dM4I8z9/8kDEpXdX6fzR7p/1etmfH7Q38rtSGsrg3j
DFOwmad8+SxdVvM1gekTmTqrb037NLWY/PDwMMqbihGYsTWr53unk8PJweiu
XRYCkxbx+H9DXNxT7IgfMClLX5hpvc7qx3SyP8HBfHf5w7N4rz+X05xGnxYm
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

-->

</rfc>
