<?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.31 (Ruby 2.6.10) -->
<?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-05" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <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-05"/>
    <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="April" day="01"/>
    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword>
    <keyword>IoT</keyword>
    <keyword>TEE</keyword>
    <keyword>HSM</keyword>
    <keyword>RoT</keyword>
    <abstract>
      <?line 151?>

<t>This document provides guidance on integrating Post-Quantum Cryptography (PQC) into
resource-constrained devices, such as IoT nodes and lightweight Hardware Security Modules
(HSMs). 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 162?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The transition to post-quantum cryptography (PQC) poses significant challenges for
resource-constrained devices, such as Internet of Things (IoT) devices, which are often equipped with Trusted Execution Environments (TEEs), secure elements, or other forms of hardware
security modules (HSMs).
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 PQ solutions 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 its use of floating point arithmetic 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 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="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="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 exhausted 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), Locally Significant Device
Identifiers (LDevIDs), 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>To comply with <xref target="FIPS203"/>, <xref target="FIPS204"/>, <xref target="FIPS205"/> and <xref target="REC-KEM"/> guidelines:</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 which
case key generation is performed offline and 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 with each request.</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 only be temporarily held in memory during the cryptographic operation
and discarded immediately after use. 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>There are two distinct approaches to exporting private keys or seeds from a constrained device:</t>
          <section anchor="direct-transfer-over-tls">
            <name>Direct Transfer Over TLS</name>
            <t>In scenarios where the constrained device supports mutually authenticated TLS with a peer, the device can securely transfer encrypted private key material directly to another cryptographic module over a mutually authenticated TLS connection.</t>
          </section>
          <section anchor="export-of-encrypted-seeds-and-private-keys">
            <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 in key-wrap mode (<xref target="RFC3394"/>), should be used to encrypt the seed or private key before export. This ensures that the key remains protected even if the export process is vulnerable to quantum attacks.</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 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="optimizing-memory-footprint-in-post-quantum-signature-schemes">
      <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 flavours: 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>The dominant source of memory usage in ML-DSA comes from holding the expanded matrix A and the associated polynomial vectors needed to compute the noisy affine transformation t = A*s1 + s2, where A is a large public matrix derived from a seed, and t, s1, s2 are polynomial vectors involved in the signing process. The elements of those matrices and vectors are polynomials with integer coefficients modulo Q. ML-DSA uses a 23-bit long modulus Q, where in case of ML-KEM it is 12 bits, regardless of security level. Conversely, the sizes of those matrices depend on the security level.</t>
        <t>To compute memory requirements, we need to consider the dimensions of the public matrix A and the size of the polynomial vectors. Using ML-KEM-768 as an example, the public matrix A has dimensions 5x5, with each polynomial having 256 coefficients. Each coefficient is stored on 2 bytes (<tt>uint16</tt>), leading to a size of 5 <em>5</em> 256 <em>2 = 12,800 bytes (approximately 12.5 KB) for the matrix A alone. The polynomial vectors t, s1, and s2 also contribute significantly to memory usage, with each vector requiring 5</em> 256 <em>2 = 2,560 bytes (approximately 2.5 KB) each. Hence, for straightforward implementation, the minimal amount of memory required for these vectors is 12,800 + 3</em> 2,560 = 20,480 bytes (approximately 20 KB). Similar computation can be easily done for other security levels as well as ML-DSA. The ML-DSA has much higher memory requirements due to larger matrix and polynomial sizes (i.e. ML-DSA-87 requires approximately 79 KB of RAM during signing operations).</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*s1. The matrix A is generated from a seed using a PRF, meaning that any element of A can be computed independently when needed. Similarly, the vector s1 is expanded from random seed and a nonce using a PRF.</t>
          <t>The lazy expansion would first generate first element of a vector s1 (<tt>s1(0)</tt>) and then iterate over each row of matrix A in a first column. This approach generates partial result, that is a vector t. To finalize the computation of a vector t, the next element of s1 (<tt>s1(1)</tt>) is generated, and the process is repeated for each column of A until all elements of s1 have been processed. This method requires significantly less memory, in case of ML-KEM-768, size of element s1 (512 bytes) and a vector t (2560 bytes) is 256 <em>2 = 512 bytes, meaning that only 512 bytes + one row of matrix A (5</em> 256 <em>2 = 2560 bytes) + one element of t (5</em> 2 = 10 bytes) need to be stored in memory at any time, leading to a total of approximately 3 KB of memory usage, compared to the approximately 20 KB required for a straightforward implementation. The savings are even more pronounced for higher security levels, such as ML-DSA-87, where lazy expansion can reduce memory usage from approximately 79 KB to around 12 KB.</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 operation may require to recompute 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"/>. Other optimizations can be found in <xref target="Gre20"/> and <xref target="BosRS22"/>.</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 an 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="optimizing-performance-in-pqc-signature-schemes">
      <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</t>
      <t>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</t>
      <t>their construction, which requires multiple passes over the message digest during the
signing process. The signer does not retain the entire message or its full digest in
memory at once. Instead, different parts of the message digest are processed sequentially
during the signing procedure. 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="impact-of-rejection-sampling-in-ml-dsa-signing-on-performance">
        <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 retries 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"/>.
Accordingly, the numerical results are analytically derived and characterize the expected behavior
of ML-DSA.</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 randomness.</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.</t>
        <t>The number of rejections during signature generation depends on four factors:</t>
        <ul spacing="normal">
          <li>
            <t>the message (i.e., the value of μ)</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>
          <li>
            <t>the context string (see <xref target="FIPS204"/>, Section 5.2)</t>
          </li>
        </ul>
        <t>As a result, some message-key combinations may lead to a higher number of rejection iterations
than others.</t>
        <t>Using Equation (5) from <xref target="Li32"/> and assuming an RBG as specified in <xref target="FIPS204"/> (Section 3.6.1),
the rejection probability during ML-DSA signing can be computed. These probabilities depend on
the ML-DSA parameter set and are summarized below.</t>
        <table anchor="AcceptanceProbabilities">
          <name>Acceptance probability - per-attempt probability of successful signing for the given ML-DSA variant.</name>
          <thead>
            <tr>
              <th align="left">ML-DSA Variant</th>
              <th align="left">Acceptance Probability</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-DSA-44</td>
              <td align="left">0.2350</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65</td>
              <td align="left">0.1963</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87</td>
              <td align="left">0.2596</td>
            </tr>
          </tbody>
        </table>
        <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. Under this assumption,
the expected number of iterations until a successful signature is generated is the reciprocal
of the acceptance probability. Hence, if r denotes the per-iteration rejection probability and
p = 1 - r the acceptance probability, then the expected number of signing iterations is 1/p.
Using this model, the expected number of signing attempts for each ML-DSA variant is shown below.</t>
        <table anchor="ExpectedAttempts">
          <name>Expected Number of Attempts for the given ML-DSA variant.</name>
          <thead>
            <tr>
              <th align="left">ML-DSA Variant</th>
              <th align="left">Expected Number of Attempts</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-DSA-44</td>
              <td align="left">4.255</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65</td>
              <td align="left">5.094</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87</td>
              <td align="left">3.852</td>
            </tr>
          </tbody>
        </table>
        <t>This model also allows computing the probability that the rejection-sampling loop completes
within a given number of iterations. Specifically, the minimum number of iterations n required
to achieve a desired completion probability can be computed as:
n &gt;= ln(1 - desired_probability) / ln(1 - p), where p is the per-iteration acceptance probability.
For example, achieving a 99% probability of completing the signing process for ML-DSA-65 requires
at most 21 iterations of the rejection-sampling loop.</t>
        <t>Finally, based on these results, the cumulative distribution function (CDF) can be derived for
each ML-DSA variant. The CDF expresses the probability that the signing process completes within
at most a given number of iterations.</t>
        <table anchor="MLDSA_Sign_CDF">
          <name>CDF values denote the probability of completing the signing process within the given number of iterations, for each ML-DSA variant.</name>
          <thead>
            <tr>
              <th align="left">Iterations</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.2350</td>
              <td align="left">0.1963</td>
              <td align="left">0.2596</td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">0.4148</td>
              <td align="left">0.3541</td>
              <td align="left">0.4518</td>
            </tr>
            <tr>
              <td align="left">3</td>
              <td align="left">0.5523</td>
              <td align="left">0.4809</td>
              <td align="left">0.5941</td>
            </tr>
            <tr>
              <td align="left">4</td>
              <td align="left">0.6575</td>
              <td align="left">0.5828</td>
              <td align="left">0.6995</td>
            </tr>
            <tr>
              <td align="left">5</td>
              <td align="left">0.7380</td>
              <td align="left">0.6647</td>
              <td align="left">0.7775</td>
            </tr>
            <tr>
              <td align="left">6</td>
              <td align="left">0.7996</td>
              <td align="left">0.7305</td>
              <td align="left">0.8353</td>
            </tr>
            <tr>
              <td align="left">7</td>
              <td align="left">0.8467</td>
              <td align="left">0.7834</td>
              <td align="left">0.8780</td>
            </tr>
            <tr>
              <td align="left">8</td>
              <td align="left">0.8827</td>
              <td align="left">0.8259</td>
              <td align="left">0.9097</td>
            </tr>
            <tr>
              <td align="left">9</td>
              <td align="left">0.9103</td>
              <td align="left">0.8601</td>
              <td align="left">0.9331</td>
            </tr>
            <tr>
              <td align="left">10</td>
              <td align="left">0.9314</td>
              <td align="left">0.8876</td>
              <td align="left">0.9505</td>
            </tr>
            <tr>
              <td align="left">11</td>
              <td align="left">0.9475</td>
              <td align="left">0.9096</td>
              <td align="left">0.9634</td>
            </tr>
          </tbody>
        </table>
        <t>The table <xref target="MLDSA_Sign_CDF"/> shows that while acceptance rate is relatively high for ML-DSA, the
probability quickly grows with increasing number of iterations. After 11 iterations,
each ML-DSA variant achieves over 90% probability of completing the signing process.</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>
        </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>To provide a more comprehensive assessment of ML-DSA signing performance, benchmarks should
report the following two 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 reflects the best-case performance of the signing algorithm
and provides insight into the efficiency of the core signing operation without the overhead
of repeated iterations.</t>
            </li>
            <li>
              <t>Average signing time:
The average signing time measured over a sufficiently large number of signing operations,
using independent messages and, where applicable, independent randomness. Alternatively, an
implementation <bcp14>MAY</bcp14> report the signing time corresponding to the expected number of iterations
(see <xref target="ExpectedAttempts"/>). This approach requires identifying a message, key, and randomness
combination that results in the expected iteration count.</t>
            </li>
          </ol>
          <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>
        </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
integrated secure elements or lightweight HSMs 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 provide forward-secrecy,</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 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>The following table lists the sizes of cryptographic artifacts for representative instantiations of SLH-DSA and ML-KEM at NIST Security Level 1, as defined in <xref target="NISTSecurityLevels"/>, ML-DSA at NIST Security Level 2, and HSS/LMS and XMSS at NIST Security Level 3; these are the lowest defined security levels for the respective schemes.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Algorithm</th>
              <th align="left">Type</th>
              <th align="left">Size (bytes)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <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">Private Key</td>
              <td align="left">2560</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Signature</td>
              <td align="left">2420</td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-128s</td>
              <td align="left">Public Key</td>
              <td align="left">32</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left"> </th>
              <th align="left">Private Key</th>
              <th align="left">64</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left"> </td>
              <td align="left">Signature</td>
              <td align="left">7856</td>
            </tr>
            <tr>
              <td align="left">SLH-DSA-SHA2-128f</td>
              <td align="left">Public Key</td>
              <td align="left">32</td>
            </tr>
          </tbody>
        </table>
        <table>
          <thead>
            <tr>
              <th align="left"> </th>
              <th align="left">Private Key</th>
              <th align="left">64</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left"> </td>
              <td align="left">Signature</td>
              <td align="left">17088</td>
            </tr>
            <tr>
              <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">Private Key</td>
              <td align="left">44</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Signature</td>
              <td align="left">2004</td>
            </tr>
            <tr>
              <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">Private Key</td>
              <td align="left">104</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Signature</td>
              <td align="left">1492</td>
            </tr>
            <tr>
              <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">Private Key</td>
              <td align="left">1632</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Ciphertext</td>
              <td align="left">768</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Shared Secret</td>
              <td align="left">32</td>
            </tr>
            <tr>
              <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">Private Key</td>
              <td align="left">32</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Shared Secret</td>
              <td align="left">32</td>
            </tr>
            <tr>
              <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">Private Key</td>
              <td align="left">32</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">Signature</td>
              <td align="left">64</td>
            </tr>
          </tbody>
        </table>
        <t>Corresponding sizes for higher security levels will typically be larger - see <xref target="FIPS203"/>, <xref target="FIPS204"/>, <xref target="FIPS205"/>, <xref target="SP800-208"/> for sizes for all parameter sets.</t>
      </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, the firmware upgrade process itself can become a critical attack
vector if not designed to be post-quantum. 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 devices. 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 reused, 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, but 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 these processes 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, their significance in secure hardware design cannot be understated. Cryptographic modules must incorporate strong countermeasures against side-channel vulnerabilities to prevent attackers from gaining insights into secret data during cryptographic operations.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Jean-Pierre Fiset, Richard Kettlewell, Mike Ounsworth, 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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC3394">
          <front>
            <title>Advanced Encryption Standard (AES) Key Wrap Algorithm</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2002"/>
          </front>
          <seriesInfo name="RFC" value="3394"/>
          <seriesInfo name="DOI" value="10.17487/RFC3394"/>
        </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="Wälde">
              <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="Stehlé">
              <organization/>
            </author>
            <date year="2021" month="February"/>
          </front>
        </reference>
        <reference anchor="NISTSecurityLevels" 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="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="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="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:
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
p9hZDZslwOYz9TiI/hfbGHPgbrcAAA==

-->

</rfc>
