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

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

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

   This document obsoletes RFC 7228.

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

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

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-suit-mti-23"/>
        </reference>
        <reference anchor="RFC10033">
          <front>
            <title>Hash-Based Signatures: State and Backup Management</title>
            <author fullname="T. Wiggers" initials="T." surname="Wiggers"/>
            <author fullname="K. Bashiri" initials="K." surname="Bashiri"/>
            <author fullname="S. Kölbl" initials="S." surname="Kölbl"/>
            <author fullname="J. Goodman" initials="J." surname="Goodman"/>
            <author fullname="S. Kousidis" initials="S." surname="Kousidis"/>
            <date month="September" year="2026"/>
            <abstract>
              <t>Stateful Hash-Based Signature Schemes (Stateful HBS) such as Leighton-Micali Signature (LMS), Hierarchical Signature System (HSS), eXtended Merkle Signature Scheme (XMSS), and XMSS^MT combine Merkle trees with One-Time Signatures (OTSs) to provide signatures that are resistant against attacks using large-scale quantum computers. Unlike conventional stateless digital signature schemes, Stateful HBS have a state to keep track of which OTS keys have been used, as double-signing with the same OTS key allows forgeries.</t>
              <t>This document provides guidance and catalogs security considerations for the operational and technical aspects of deploying systems that rely on Stateful HBS. Management of the state of the Stateful HBS, including any handling of redundant key material, is a sensitive topic. This document describes some approaches to handle the associated challenges. It also describes the challenges that need to be resolved before certain approaches should be considered.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10033"/>
          <seriesInfo name="DOI" value="10.17487/RFC10033"/>
        </reference>
        <reference anchor="RFC9794">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
            <author fullname="M. Parsons" initials="M." surname="Parsons"/>
            <author fullname="B. Hale" initials="B." surname="Hale"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9794"/>
          <seriesInfo name="DOI" value="10.17487/RFC9794"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA819+3Lb6JXn/3gKjLt2IiUkJVIXS+7KbtS+tDW2246ljrOz
s+sByY8iYhBgAFCy2u19kX2hfaw9v3POdwNB253aqZrUVI8MAt/13K/D4TBp
87Ywj9IHF/Ns3eblTfq4Kpu2zvLSzNMn5jafmSZdVHX6pmra4Z83WdluVunj
+n7dVjd1tl7eP0iy6bQ2t980yJ8fP0hmWWtuqvr+UZqXiypJ5tWszFa0iHmd
LdphbtrFcP33Tb6m/86Gy2Y1nPnhhgV93bRJs5mu8qbJq7K9X9O3l0+vnyXl
ZjU19aNkTu88SvCVKZtN8yht641JaIVHSVabjFZ6ZWabOm9p8XdV/eGmrjZr
evrmzz9fvnmQfDD39HT+KEmGWDH997K6pv9eP31K/31+9Yr++5aeJLem3NBE
aWoH4GU/oAeyqAfvaHCcx4/4Hc9XWV7we7M/YZ+jqr7B46yeLenxsm3XzaOD
A7yFR/mtGdnXDvDgYFpXd405oO8PHiRJ02bl/H1WVCVNdm+aZJ0/Sv9HW80G
aVPVbW0WDf11v9I/2jqftYN0Vq1WpmzpCZ38KluvaYX/M0myTbus6PDSIS0o
TRebopBruc7rzSorTHOX1elbM5/f8wu0pqzMf8lauoNH6U/Vhzzj5zM61kfp
D1l5QwurDT+rzQ2/9SKry6zNPuib1aZsAQeX5Vw/NnpAH0ZtMOv7GrP+qcQc
I1o+bX1rlU+yMn1HO+lZ2+Ocdv6Rf7CgGjxyq/i5zFuC16sWEJZWi/RiZejE
4oXNs/KOZvnTDf69ay0/mDK9yorW1D2r+flF+hP/mRXp43uC19QCY/qYrkVP
zM43NeWoOfpTOWtmo5vqdrT58GB7vhd13qQv7vKs/UDg8SHvmfXNn6+WuSnm
8SnTd3/KVlV5M72nPet2yqpe0Ve3DNnPLt9cTQ6P6HxfX47Gh6PTw8nZwU+X
V9cj/DKin9xLx7tfOnYvnex+6SRJQBCCya/enB0eDieHZz0fXb0Z6Y/04uXV
6/H5w/PDR7w9S9Mu7WhVmTZ6xgT+OHP/T8KgdF3nt9nsnv5/1ZoZvz/0t1Ib
wuraMM4wFZt56pfP0lU13xCYPpCps/rGtI9Si8l3d3ejvKkYgRlbs3p+cDY5
nhyNlu2qEJi0iMf/G+LiHmFH/IBJWfrMTOtNVt+nk8PJCT3/4fKnJ/Fefy6n
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
o+T/AWqiaV/V0QAA

-->

</rfc>
