<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 2.6.10) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>

<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-ietf-pquip-pqc-hsm-constrained-06" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Adapting Constrained Devices for PQC">Adapting Constrained Devices for Post-Quantum Cryptography</title>

    <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="June" day="24"/>

    <area>Security</area>
    <workgroup>PQUIP</workgroup>
    <keyword>PQC</keyword> <keyword>IoT</keyword> <keyword>TEE</keyword> <keyword>HSM</keyword> <keyword>RoT</keyword>

    <abstract>


<?line 150?>

<t>This document provides guidance on integrating Post-Quantum Cryptography (PQC) into
resource-constrained devices, such as IoT nodes and lightweight Hardware Security Modules
(HSMs). These systems often operate with strict limitations on processing power, RAM, and
flash memory, and may even be battery-powered. The document emphasizes the role of hardware
security as the basis for secure operations, supporting features such as seed-based key
generation to minimize persistent storage, efficient handling of ephemeral keys, and the
offloading of cryptographic tasks in low-resource environments. It also explores the
implications of PQC on firmware update mechanisms in such constrained systems.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <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 161?>

<section anchor="introduction"><name>Introduction</name>

<t>The transition to post-quantum cryptography (PQC) poses significant challenges for
resource-constrained devices, such as Internet of Things (IoT) devices, which are often
equipped with Trusted Execution Environments (TEEs), secure elements, or other forms of
hardware resecurity modules (HSMs).</t>

<t>These devices typically operate under strict limitations on
processing power, RAM, and flash memory, and in some cases are battery-powered. Adopting
PQC algorithms in such environments is difficult due to their substantially larger key
sizes and, in some cases, higher computational demands. Consequently, the migration to
PQC requires careful planning to ensure secure and efficient key management within
constrained platforms.</t>

<t>Constrained devices are often deployed as clients initiating outbound connections, but some also act in server roles or enforce local authentication policies.
As a result, designers may need to consider PQC to address confidentiality, both outbound and inbound authentication, and signature verification used in secure boot, firmware updates, and device attestation.</t>

<t>This document provides guidance and best practices for integrating PQC algorithms into
constrained devices. It reviews strategies for key storage, ephemeral key management,
and performance optimization tailored to low-resource environments. The document also
examines ephemeral key generation in protocols such as TLS, along with techniques to
optimize PQC signature operations to improve performance within constrained cryptographic
modules.</t>

<t>This document focuses on PQC algorithms standardized by NIST or specified by the IRTF CFRG, and that have corresponding IETF protocol specifications, either published as RFCs or progressing through the IETF standards process. Specifically, it covers the following algorithms:</t>

<t><list style="symbols">
  <t>Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) <xref target="FIPS203"/>.</t>
  <t>Module-Lattice-Based Digital Signature Algorithm (ML-DSA) <xref target="FIPS204"/>.</t>
  <t>Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) <xref target="FIPS205"/>.</t>
  <t>Hierarchical Signature System/Leighton-Micali Signature (HSS/LMS) <xref target="RFC8554"/>, and the related eXtended Merkle Signature Scheme (XMSS) <xref target="RFC8391"/>.</t>
</list></t>

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

<t><list style="symbols">
  <t>The Falcon signature scheme <xref target="Falcon"/> has shorter keys and signatures than ML-DSA, though its use of floating point arithmetic may make it challenging to implement on some devices.</t>
  <t>The HQC KEM <xref target="HQC"/> is a code-based KEM, so offers algorithmic diversity to complement lattice-based KEMs, though it is less performant than ML-KEM.</t>
  <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>
</list></t>

<t>This document focuses on device-level adaptations and considerations necessary to implement PQC efficiently on constrained devices.
Actual protocol behaviour is defined in other documents.</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>

<?line -18?>

</section>
<section anchor="key-management-in-constrained-devices-for-pqc"><name>Key Management in Constrained Devices for PQC</name>

<t>The embedded cryptographic components used in constrained devices are designed to securely manage cryptographic keys, often under strict limitations in RAM, flash memory, and computational resources. These limitations are further exhausted by the increased key sizes and computational demands of PQC algorithms.</t>

<t>One mitigation of storage limitations is to store only the seed rather than the full
expanded private key, as the seed is far smaller and can derive the expanded private key
as necessary. <xref target="FIPS204"/> Section 3.6.3 specifies that the seed ξ generated during ML-DSA.KeyGen can be stored for later use with ML-DSA.KeyGen_internal.
To reduce storage requirements on constrained devices, private keys for
Initial Device Identifiers (IDevIDs), Locally Significant Device
Identifiers (LDevIDs), and the optional attestation private key can be
stored as seeds instead of expanded key material.</t>

<section anchor="Seed"><name>Seed Management</name>

<t>The following is some additional guidance to aide 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 which
case key generation is performed offline and does not impact device performance. However,
in scenarios where the device generates its own SLH-DSA key pairs, the higher key generation
cost may influence seed-storage design decisions and depend on performance considerations
or standards compliance (e.g., PKCS#11).</t>

<t>While vulnerabilities like the "Unbindable Kemmy Schmidt" misbinding attack <xref target="BIND"/> demonstrate
the risks of manipulating expanded private keys in environments lacking hardware-backed
protections, these attacks generally assume an adversary has some level of control over
the expanded key format. However, in a hardware-backed protected environment, where private
keys are typically protected from such manipulation, the primary motivation for storing
the seed rather than the expanded key is not directly tied to mitigating such misbinding attacks.</t>

<t>The expanded private key is derived from the seed using a one-way cryptographic function.
As a result, if the seed is not retained at key generation time, it cannot be reconstructed
from the expanded key (as the reverse operation is computationally infeasible). Implementations
should account for this non-recoverability when designing seed management.</t>

<t>A challenge arises when importing an existing private key into a system designed to
store only seeds. When a user attempts to import an already expanded private key, there is
a mismatch between the key format used internally (seed-based) and the expanded private
key. This issue arises because the internal format is designed for efficient key storage
by deriving the private key from the seed, while the expanded private key is already fully
computed. As NIST has not defined a single private key format for PQC algorithms, this
creates a potential gap in interoperability.</t>

</section>
<section anchor="efficient-key-derivation"><name>Efficient Key Derivation</name>

<t>When storing only the seed in a constrained cryptographic module, it is crucial that
the device is capable of deriving the private key efficiently whenever required. However,
repeatedly re-deriving the private key for every
cryptographic operation may introduce significant performance overhead. In scenarios where
performance is a critical consideration, it may be more efficient to store the expanded
private key directly (in addition to the seed). Implementations may choose to
retain (cache) several recently-used or frequently-used private keys to avoid the computational
overhead and delay of deriving private keys from their seeds with each request.</t>

<t>The key derivation process, such as ML-KEM.KeyGen_internal for ML-KEM or similar
functions for other PQC algorithms, must be implemented in a way that can securely operate
within the resource constraints of the device. If using the seed-only model, the derived
private key should only be temporarily held in memory during the cryptographic operation
and discarded immediately after use. However, storing the expanded private key may be a
more practical solution in time-sensitive applications or for devices that frequently
perform cryptographic operations.</t>

</section>
<section anchor="exporting-seeds-and-private-keys"><name>Exporting Seeds and Private Keys</name>

<t>Given the potential for hardware failures or the end-of-life of devices containing keys, it
is essential to plan for backup and recovery of cryptographic seeds and private keys.
Constrained devices should support secure seed- or key-backup mechanisms, leveraging protections such as encrypted storage and ensuring that security measures are in place so that the backup data is protected from unauthorized access.</t>

<t>There are two distinct approaches to exporting private keys or seeds from a constrained device:</t>

<section anchor="direct-transfer-over-tls"><name>Direct Transfer Over TLS</name>

<t>In scenarios where the constrained device supports mutually authenticated TLS with a peer, the device can securely transfer encrypted private key material directly to another cryptographic module over a mutually authenticated TLS connection.</t>

</section>
<section anchor="export-of-encrypted-seeds-and-private-keys"><name>Export of Encrypted Seeds and Private Keys</name>

<t>In more common constrained device scenarios for secure exporting of seeds and private keys, a strong symmetric encryption algorithm, such as AES in key-wrap mode (<xref target="RFC3394"/>), should be used to encrypt the seed or private key before export. This ensures that the key remains protected even if the export process is vulnerable to quantum attacks.</t>

<t>Operationally, the exported data and the symmetric key used for encryption must both be protected against unauthorized access or modification.</t>

</section>
<section anchor="security-requirements-for-export-operations"><name>Security Requirements for Export Operations</name>

<t>The encryption and decryption of seeds and private keys must occur entirely within the cryptographic modules to reduce the risk of exposure and ensure compliance to established security standards.</t>

</section>
</section>
</section>
<section anchor="ephemeral-key-management"><name>Ephemeral Key Management</name>

<t>Given the increased size of PQC key material, ephemeral key management will have to
be optimized for both security and performance.</t>

<t>For PQC KEMs, ephemeral key pairs are generated from an ephemeral seed, that is used
immediately during key generation and then discarded. Furthermore, once the shared secret is
derived, the ephemeral private key will have to be deleted. Since the private key resides in the
constrained cryptographic module, removing it optimizes memory usage, reducing the footprint of
PQC key material in the cryptographic module. This also ensures that that no unnecessary secrets
persist beyond their intended use.</t>

<t>Additionally, ephemeral keys, whether from traditional ECDH or PQC KEM algorithms, are intended
to be unique for each key exchange instance and kept separate across connections (e.g., TLS).
Deleting ephemeral keying material after use helps ensure that key material cannot be reused across connections, which would otherwise introduce security and privacy issues.</t>

<t>Constrained devices implementing PQC ephemeral key management will have to:</t>

<t><list style="symbols">
  <t>Generate ephemeral key pairs on-demand from an ephemeral seed stored temporarily within the cryptographic module.</t>
  <t>Enforce immediate seed erasure after the key pair is generated and the cryptographic operation is completed.</t>
  <t>Delete the private key after the shared secret is derived.</t>
  <t>Prevent key reuse across different algorithm suites or sessions.</t>
</list></t>

</section>
</section>
<section anchor="optimizing-memory-footprint-in-post-quantum-signature-schemes"><name>Optimizing Memory Footprint in Post-Quantum Signature Schemes</name>

<t>A key consideration when deploying post-quantum cryptography in cryptographic modules is the amount and type of memory available. In constrained devices, it is important to distinguish between volatile memory (RAM), used for intermediate computations during cryptographic operations, and non-volatile storage (e.g., flash), used for storing keys, firmware, and configuration data. For instance, ML-DSA, unlike traditional signature schemes such as RSA or ECDSA, requires significant RAM during signing due to multiple Number Theoretic Transform (NTT) operations, matrix expansions, and rejection sampling loops. These steps involve storing large polynomial vectors and intermediate values, making ML-DSA more memory-intensive.</t>

<t>Some constrained systems, particularly battery-operated devices, may have limited RAM available for cryptographic operations, even if sufficient non-volatile storage is available. In such cases, straightforward implementations of PQ schemes may exceed available RAM, making them infeasible without optimization.</t>

<t>Several post-quantum schemes can be optimized to reduce the memory footprint of the algorithm. For instance, SLH-DSA has two flavours: the "f" variants which are parameterized to run as fast as possible, and the "s" variants which produce shorter signatures. Developers wishing to use SLH-DSA may wish to utilize the "s" variants on devices with insufficient RAM to use the "f" variants. Further optimizations may be possible by running the signature algorithm in a "streaming manner" such that constrained device does not need to hold the entire signature in memory at once, as discussed in <xref target="Stream-SPHINCS"/>.</t>

<t>Implementations may trade off resource usage across CPU, RAM, and non-volatile storage. For example, techniques such as lazy expansion reduce RAM usage at the cost of increased computation, while storing expanded key in non-volatile storage can reduce runtime overhead. Designers should balance these trade-offs based on the target platform.</t>

<t>Both the ML-KEM and ML-DSA algorithms were selected for general use. Two optimization techniques that can be applied to make ML-DSA more feasible in constrained cryptographic modules are discussed in <xref target="lazy-expansion"/> and <xref target="pre-hashing"/>.</t>

<section anchor="memory-requirements-of-lattice-based-schemes"><name>Memory requirements of Lattice-Based Schemes</name>

<t>The dominant source of memory usage in ML-DSA comes from holding the expanded matrix A and the associated polynomial vectors needed to compute the noisy affine transformation t = A*s1 + s2, where A is a large public matrix derived from a seed, and t, s1, s2 are polynomial vectors involved in the signing process. The elements of those matrices and vectors are polynomials with integer coefficients modulo Q. ML-DSA uses a 23-bit long modulus Q, where in case of ML-KEM it is 12 bits, regardless of parametrization. Conversely, the sizes of those matrices depend on the parametrization of ML-KEM.</t>

<t>To compute memory requirements, we need to consider the dimensions of the public matrix A and the size of the polynomial vectors. Using ML-KEM-768 as an example, the public matrix A has dimensions 5x5, with each polynomial having 256 coefficients. Each coefficient is stored on 2 bytes (<spanx style="verb">uint16</spanx>), leading to a size of 5 <em>5</em> 256 <em>2 = 12,800 bytes (approximately 12.5 KB) for the matrix A alone. The polynomial vectors t, s1, and s2 also contribute significantly to memory usage, with each vector requiring 5</em> 256 <em>2 = 2,560 bytes (approximately 2.5 KB) each. Hence, for straightforward implementation, the minimal amount of memory required for these vectors is 12,800 + 3</em> 2,560 = 20,480 bytes (approximately 20 KB). Similar computation can be easily done for other instantiations of ML-KEM as well as ML-DSA. The ML-DSA has much higher memory requirements due to larger matrix and polynomial sizes (i.e. ML-DSA-87 requires approximately 79 KB of RAM during signing operations).</t>

<t>It is worth noting that different cryptographic operations may have different memory requirements. For example, during ML-DSA verification, the memory usage is lower since the private key components are not needed.</t>

<section anchor="lazy-expansion"><name>Lazy Expansion as a Memory Optimization Technique</name>

<t>The lazy expansion technique is an optimization that significantly reduces memory usage by avoiding the need to store the entire expanded matrix A in memory at once. Instead of pre-computing and storing the full matrix, lazy expansion generates parts of it on-the-fly as needed for the process. This approach leverages the fact that not all elements of the matrix are required simultaneously, allowing for a more efficient use of memory.</t>

<t>As an example, we can look at the computation of matrix-vector multiplication t=A*s1. The matrix A is generated from a seed using a pseudo-random function (PRF), meaning that any element of A can be computed independently when needed. Similarly, the vector s1 is expanded from random seed and a nonce using a PRF.</t>

<t>The lazy expansion would first generate first element of a vector s1 (<spanx style="verb">s1(0)</spanx>) and then iterate over each row of matrix A in a first column. This approach generates partial result, that is a vector t. To finalize the computation of a vector t, the next element of s1 (<spanx style="verb">s1(1)</spanx>) is generated, and the process is repeated for each column of A until all elements of s1 have been processed. This method requires significantly less memory, in case of ML-KEM-768, size of element s1 (512 bytes) and a vector t (2560 bytes) is 256 <em>2 = 512 bytes, meaning that only 512 bytes + one row of matrix A (5</em> 256 <em>2 = 2560 bytes) + one element of t (5</em> 2 = 10 bytes) need to be stored in memory at any time, leading to a total of approximately 3 KB of memory usage, compared to the approximately 20 KB required for a straightforward implementation. The savings are even more pronounced for bigger ML-DSA parameters, such as ML-DSA-87, where lazy expansion can reduce memory usage from approximately 79 KB to around 12 KB.</t>

<t>With lazy expansion, the implementation differs slightly from the straightforward version. Also, in some cases, lazy expansion may introduce additional computational overhead. Notably, applying it to ML-DSA signing operation may require to recompute vector y (<xref target="FIPS204"/>, Algorithm 7, line 11) twice. In this case implementers need to weigh the trade-off between memory savings and additional computation.</t>

<t>This memory optimization was initially described in <xref target="Bot19"/>. Other optimizations can be found in <xref target="Gre20"/> and <xref target="BosRS22"/>.</t>

</section>
</section>
<section anchor="pre-hashing"><name>Pre-hashing as a Memory Optimization Technique</name>

<t>To address the memory consumption challenge, algorithms like ML-DSA offer a form of
pre-hash using the μ (message representative) value described in Section 6.2 of <xref target="FIPS204"/>.
The μ value provides an abstraction for pre-hashing by allowing the hash or message
representative to be computed outside the cryptographic module. This feature offers
additional flexibility by enabling the use of different cryptographic modules for the
pre-hashing step, reducing memory consumption within the cryptographic module.
The pre-computed μ value is then supplied to the cryptographic module, eliminating the need to
transmit the entire message for signing. <xref target="RFC9881"/>
discusses leveraging Externalμ-ML-DSA, where the pre-hashing step
(Externalμ-ML-DSA.Prehash) is performed in a software cryptographic module, and only the
pre-hashed message (μ) is sent to the hardware cryptographic module for signing
(Externalμ-ML-DSA.Sign). By implementing Externalμ-ML-DSA.Prehash in software and
Externalμ-ML-DSA.Sign in an hardware cryptographic module, the cryptographic workload
is efficiently distributed, making it practical for high-volume signing operations even
in memory-constrained cryptographic modules.</t>

<t>The main advantage of this method is that, unlike HashML-DSA, the Externalμ-ML-DSA approach
is interoperable with the standard version of ML-DSA that does not use pre-hashing. This means
a message can be signed using ML-DSA.Sign, and the verifier can independently compute μ and use
Externalμ-ML-DSA.Verify for verification -- or vice versa. In both cases, the verifier
does not need to know whether the signer used internal or external pre-hashing, as the resulting
signature and verification process remain the same.</t>

</section>
</section>
<section anchor="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>

<texttable title="Sizes of cryptographic artifacts" anchor="artifact-size">
      <ttcol align='left'>Level</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Size (bytes)</ttcol>
      <c>2</c>
      <c>ML-DSA-44</c>
      <c>Public Key</c>
      <c>1312</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>2560</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>2420</c>
      <c>1</c>
      <c>SLH-DSA-SHA2-128s</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>64</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>7856</c>
      <c>1</c>
      <c>SLH-DSA-SHA2-128f</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>64</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>17088</c>
      <c>3</c>
      <c>LMS_SHA256_M24_H15_W4</c>
      <c>Public Key</c>
      <c>48</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>44</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>2004</c>
      <c>3</c>
      <c>XMSS-SHA2_10_192</c>
      <c>Public Key</c>
      <c>48</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>104</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>1492</c>
      <c>1</c>
      <c>ML-KEM-512</c>
      <c>Public Key</c>
      <c>800</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>1632</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Ciphertext</c>
      <c>768</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Shared Secret</c>
      <c>32</c>
      <c>1*</c>
      <c>X25519</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Shared Secret</c>
      <c>32</c>
      <c>1*</c>
      <c>Ed25519</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>64</c>
</texttable>

<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"/> for sizes for all parameter sets.</t>

</section>
<section anchor="optimizing-performance-in-pqc-signature-schemes"><name>Optimizing Performance in PQC Signature Schemes</name>

<t>When implementing PQC signature algorithms in constrained cryptographic modules,
performance optimization becomes a critical consideration. Transmitting the entire message
to the cryptographic module for signing can lead to significant overhead, especially for
large payloads. To address this, implementers can leverage techniques that reduce the data
transmitted to the cryptographic module, thereby improving efficiency and scalability.</t>

<t>One effective approach involves sending only a message digest to the cryptographic module
for signing. By signing the digest of the content rather than the entire content, the
communication between the application and the cryptographic module is minimized, enabling
better performance. This method is applicable for any PQC signature algorithm, whether it
is ML-DSA, SLH-DSA, or any future signature scheme. For such algorithms, a mechanism is
often provided to pre-hash or process the message in a way that avoids sending the entire
raw message for signing. In particular, algorithms like SLH-DSA present challenges due to</t>

<t>their construction, which requires multiple passes over the message digest during the
signing process. The signer does not retain the entire message or its full digest in
memory at once. Instead, different parts of the message digest are processed sequentially
during the signing procedure. This differs from traditional algorithms like RSA or ECDSA,
which allow for more efficient processing of the message, without requiring multiple
passes or intermediate processing of the digest.</t>

<section anchor="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 retries for the standardized ML-DSA parameter sets is quantified
below.</t>

<t>The analysis in this section follows the algorithmic structure and assumptions defined in <xref target="FIPS204"/>.
Accordingly, the numerical results are analytically derived and characterize the expected behavior
of ML-DSA.</t>

<t>The ML-DSA signature scheme uses the Fiat-Shamir with Aborts construction <xref target="Lyu09"/>. As a
result, the signature generation algorithm is built around a rejection-sampling loop. This
section examines the rejection-sampling behavior of ML-DSA, as rejection sampling is not
commonly used as a core mechanism in traditional digital signature schemes.</t>

<t>Rejection sampling is used to ensure that intermediate and output values follow the
distributions required by the security proof. In particular, after computing candidate signature
components, the signer checks whether certain norm bounds are satisfied. If any of these bounds
are violated, the entire signing attempt is discarded and restarted with fresh randomness.</t>

<t>The purpose of rejection sampling is twofold: First, it prevents leakage of information about the
secret key through out-of-range values that could otherwise bias the distribution of signatures.
Second, it ensures that the distribution of valid signatures is statistically close to the ideal
distribution assumed in the security reduction, namely the zero-knowledge property underlying the
reduction to SelfTargetMSIS problem (see Section 6.2.1 of <xref target="Li32"/>).</t>

<t>The number of rejections during signature generation depends on four factors:</t>

<t><list style="symbols">
  <t>the message (i.e., the value of μ)</t>
  <t>the secret key material</t>
  <t>when hedged signing is used (see <xref target="FIPS204"/>, Section 3.4), the random seed</t>
  <t>the context string (see <xref target="FIPS204"/>, Section 5.2)</t>
</list></t>

<t>As a result, some message-key combinations may lead to a higher number of rejection iterations
than others.</t>

<t>Using Equation (5) from <xref target="Li32"/> and assuming a random bit generator (RBG) as specified in <xref target="FIPS204"/> (Section 3.6.1),
the rejection probability during ML-DSA signing can be computed. These probabilities depend on
the ML-DSA parameter set and are summarized below.</t>

<texttable title="Acceptance probability - per-attempt probability of successful signing for the given ML-DSA variant." anchor="Acceptance_Probabilities">
      <ttcol align='left'>ML-DSA Variant</ttcol>
      <ttcol align='left'>Acceptance Probability</ttcol>
      <c>ML-DSA-44</c>
      <c>0.2350</c>
      <c>ML-DSA-65</c>
      <c>0.1963</c>
      <c>ML-DSA-87</c>
      <c>0.2596</c>
</texttable>

<t>Each signing attempt can be modeled as an independent Bernoulli trial: an attempt either
succeeds or is rejected, with a fixed per-attempt acceptance probability. Under this assumption,
the number of attempts until success follows approximately a geometric distribution, under the
heuristic assumptions of <xref target="Li32"/> Equation 5, and the Table <xref target="MLDSA_Sign_CDF"/> reflects the
CDF of this distribution. The expected number of signing iterations until a successful signature
is generated is the reciprocal of the acceptance probability. Hence, if r denotes the per-iteration
rejection probability and p = 1 - r the acceptance probability, then the expected number of signing
iterations is 1/p. Using this model, the expected number of signing attempts for each ML-DSA variant
is shown below.</t>

<texttable title="Expected Number of Attempts for the given ML-DSA variant." anchor="Expected_Attempts">
      <ttcol align='left'>ML-DSA Variant</ttcol>
      <ttcol align='left'>Expected Number of Attempts</ttcol>
      <c>ML-DSA-44</c>
      <c>4.255</c>
      <c>ML-DSA-65</c>
      <c>5.094</c>
      <c>ML-DSA-87</c>
      <c>3.852</c>
</texttable>

<t>This model also allows computing the probability that the rejection-sampling loop completes
within a given number of iterations. Specifically, the minimum number of iterations n required
to achieve a desired completion probability can be computed as:
n &gt;= ln(1 - desired_probability) / ln(1 - p), where p is the per-iteration acceptance probability.
For example, achieving a 99% probability of completing the signing process for ML-DSA-65 requires
at most 21 iterations of the rejection-sampling loop.</t>

<t>Finally, based on these results, the cumulative distribution function (CDF) can be derived for
each ML-DSA variant. The CDF expresses the probability that the signing process completes within
at most a given number of iterations.</t>

<texttable title="CDF values denote the probability of completing the signing process within the given number of iterations, for each ML-DSA variant." anchor="MLDSA_Sign_CDF">
      <ttcol align='left'>Iterations</ttcol>
      <ttcol align='left'>ML-DSA-44</ttcol>
      <ttcol align='left'>ML-DSA-65</ttcol>
      <ttcol align='left'>ML-DSA-87</ttcol>
      <c>1</c>
      <c>0.2350</c>
      <c>0.1963</c>
      <c>0.2596</c>
      <c>2</c>
      <c>0.4148</c>
      <c>0.3541</c>
      <c>0.4518</c>
      <c>3</c>
      <c>0.5523</c>
      <c>0.4809</c>
      <c>0.5941</c>
      <c>4</c>
      <c>0.6575</c>
      <c>0.5828</c>
      <c>0.6995</c>
      <c>5</c>
      <c>0.7380</c>
      <c>0.6647</c>
      <c>0.7775</c>
      <c>6</c>
      <c>0.7996</c>
      <c>0.7305</c>
      <c>0.8353</c>
      <c>7</c>
      <c>0.8467</c>
      <c>0.7834</c>
      <c>0.8780</c>
      <c>8</c>
      <c>0.8827</c>
      <c>0.8259</c>
      <c>0.9097</c>
      <c>9</c>
      <c>0.9103</c>
      <c>0.8601</c>
      <c>0.9331</c>
      <c>10</c>
      <c>0.9314</c>
      <c>0.8876</c>
      <c>0.9505</c>
      <c>11</c>
      <c>0.9475</c>
      <c>0.9096</c>
      <c>0.9634</c>
</texttable>

<t>Table <xref target="MLDSA_Sign_CDF"/> shows the cumulative probability of completing the signing process within
a given number of iterations. These values follow directly from the geometric distribution of
iteration counts, with per-attempt acceptance probabilities of approximately 20% to 26% (as shown in
table <xref target="Acceptance_Probabilities"/>) and expected iteration counts of roughly 4 to 5 (as shown in
table <xref target="Expected_Attempts"/>). After 11 iterations, each ML-DSA variant achieves over 90% probability
of completing the signing process.</t>

<section anchor="practical-implications-for-constrained-cryptographic-modules"><name>Practical Implications for Constrained Cryptographic Modules</name>

<t>As shown above, the rejection-sampling loop in ML-DSA signing leads to a probabilistic runtime
with a geometrically distributed number of iterations. While the expected execution time is
small, the tail of the distribution implies that, with low probability, a signing operation
may require significantly more iterations than average. This unfavorable tail behavior represents
a practical concern for ML-DSA deployments on constrained devices with limited execution
capability and may require additional consideration.</t>

<t>As discussed in <xref target="Seed"/>, in many deployment scenarios, constrained devices primarily perform signature verification, while signature generation is performed on more capable systems (e.g., firmware signing infrastructure). Therefore, the impact of rejection sampling is primarily relevant for devices that perform ML-DSA signing.</t>

<t>Devices that only verify signatures are not affected, as those operations do not involve rejection sampling and have deterministic execution times.</t>

<t>In firmware update and secure boot scenarios, signature verification is typically performed during early boot stages, where the bootloader has exclusive access to system resources. In such environments, the practical impact of resource constraints on signature verification is reduced compared to general runtime environments.</t>

</section>
<section anchor="suggestions-for-benchmarking-ml-dsa-signing-performance"><name>Suggestions for benchmarking ML-DSA Signing Performance</name>

<t>When benchmarking ML-DSA signing performance in constrained cryptographic modules, it is
important to account for the probabilistic nature of the rejection-sampling loop. Reporting
only a single timing measurement or a best-case execution time may lead to misleading conclusions
about practical performance.</t>

<t>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>

<t><list style="numbers">
  <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>
  <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 Table <xref target="Expected_Attempts"/>.
Implementations may instead 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. This approach requires identifying a message, key,
and randomness combination that results in the expected iteration count.</t>
</list></t>

<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.</t>

</section>
</section>
</section>
<section anchor="additional-considerations-for-pqc-use-in-constrained-devices"><name>Additional Considerations for PQC Use in Constrained Devices</name>

<section anchor="key-rotation-and-renewal"><name>Key Rotation and Renewal</name>

<t>In constrained devices, managing the lifecycle of cryptographic
keys including periodic key rotation and renewal is critical for maintaining long-term
security and supporting cryptographic agility. While constrained devices may rely on
integrated secure elements or lightweight HSMs for secure key storage and operations, the
responsibility for orchestrating key rotation typically resides in the application layer
or external device management infrastructure.</t>

<t>Although the underlying cryptographic module may offer primitives to securely generate new
key pairs, store fresh seeds, or delete obsolete keys, these capabilities must be
integrated into the device's broader key management framework. This process is especially
important in the context of PQC, where evolving research may lead to changes in
recommended algorithms, parameters, and key management practices.</t>

<t>The security of PQC schemes continues to evolve, with potential risks arising from
advances in post-quantum algorithms, cryptanalytic or implementation vulnerabilities. As a
result, constrained devices should be designed to support flexible and updatable key
management policies. This includes the ability to:</t>

<t><list style="symbols">
  <t>Rotate keys periodically to provide forward-secrecy,</t>
  <t>Update algorithm choices or key sizes based on emerging security guidance,</t>
  <t>Reconfigure cryptographic profile of the device via firmware updates.</t>
</list></t>

</section>
</section>
<section anchor="post-quantum-firmware-upgrades-for-constrained-devices"><name>Post-quantum Firmware Upgrades for Constrained Devices</name>

<t>Constrained devices deployed in the field require periodic firmware upgrades to patch
security vulnerabilities, introduce new cryptographic algorithms, and improve overall
functionality. However, if not designed to withstand attacks from a Cryptographically
Relevant Quantum Computer (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 devices. The SUIT working group may consider adding post-quantum algorithms, such as SLH-DSA and ML-DSA, in future specifications.</t>

<t>Stateful hash-based signature schemes, such as HSS/LMS or the similar XMSS <xref target="RFC8391"/>, are good candidates for signing firmware updates. Those schemes offer efficient verification times, making them more practical choices for constrained environments where performance and memory usage are key concerns.
Their security is based on the security of the underlying hash function, which is well-understood.
A major downside of stateful hash-based signatures is the requirement to keep track of which One-Time Signature (OTS) keys have been used, since reuse of a single OTS key allows for signature forgeries.
However, in the case of firmware updates, the OTS keys will be signing versioned updates, which may make state management easier.
<xref target="I-D.ietf-pquip-hbs-state"/> discusses various strategies for a correct state and backup management for stateful hash-based signatures.</t>

<t>Other post-quantum signature algorithms may also be viable for firmware signing:</t>

<t><list style="symbols">
  <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>
</list></t>

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

<t><list style="symbols">
  <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>
</list></t>

<t>This will make it possible to implement on a wider range of constrained devices.
The mathematical problem underpinning ML-DSA, Module Learning With Errors (M-LWE), is believed to be a hard problem by the cryptographic community, and hence ML-DSA is believed to be secure.
Cryptographers are more confident still in the security of hash-based signatures than M-LWE, so developers may wish to factor that in when choosing a firmware signing algorithm.</t>

</section>
<section anchor="hybrid-signature-approaches"><name>Hybrid Signature Approaches</name>

<t>To enable secure migration from traditional to post-quantum security, PQ/T hybrid digital signature methods can be used for firmware authentication, combining a traditional and a post-quantum algorithm using either non-composite or composite constructions as defined in <xref target="RFC9794"/>.</t>

<t>A non-composite approach, where both signatures are generated and carried separately, is simple to implement, requires minimal changes to existing signing, and aligns well with current secure boot and update architectures.</t>

<t>Composite constructions, which combine multiple algorithms into a single signature, require changes to cryptographic processing. In such constructions, the additional cost of including a traditional algorithm is typically small compared to the post-quantum component, and overall resource usage remains dominated by the post-quantum algorithm, particularly in terms of key size, signature size, code size, and verification cost.</t>

<t>Implementations should ensure that verification enforces the intended hybrid authentication property, namely that authentication remains secure as long as at least one component algorithm remains secure.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document requires no IANA actions.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The security considerations for key management in constrained devices for PQC focus on the
secure storage and handling of cryptographic seeds, which are used to derive private keys.
Seeds must be protected with the same security measures as private keys, and key
derivation should be efficient and secure within resource-constrained cryptographic
module. Secure export and backup mechanisms for seeds are essential to ensure recovery in
case of hardware failure, but these processes must be encrypted and protected from
unauthorized access.</t>

<section anchor="side-channel-protection"><name>Side Channel Protection</name>

<t>Side-channel attacks exploit physical leaks during cryptographic operations, such as timing information, power consumption, electromagnetic emissions, or other physical characteristics, to extract sensitive data like private keys or seeds. Given the sensitivity of the seed and private key in PQC key generation, it is critical to consider side-channel protection in cryptographic module design. While side-channel attacks remain an active research topic, their significance in secure hardware design cannot be understated. Cryptographic modules must incorporate strong countermeasures against side-channel vulnerabilities to prevent attackers from gaining insights into secret data during cryptographic operations.</t>

</section>
</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>Thanks to Jean-Pierre Fiset, Richard Kettlewell, Mike Ounsworth, Keegan Dasilva Barbosa, Hannes Tschofenig and Aritra Banerjee for the detailed review.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC2119">
  <front>
    <title>Key words for use in RFCs to Indicate Requirement Levels</title>
    <author fullname="S. Bradner" initials="S." surname="Bradner"/>
    <date month="March" year="1997"/>
    <abstract>
      <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="2119"/>
  <seriesInfo name="DOI" value="10.17487/RFC2119"/>
</reference>
<reference anchor="RFC8174">
  <front>
    <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
    <author fullname="B. Leiba" initials="B." surname="Leiba"/>
    <date month="May" year="2017"/>
    <abstract>
      <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="14"/>
  <seriesInfo name="RFC" value="8174"/>
  <seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC3394">
  <front>
    <title>Advanced Encryption Standard (AES) Key Wrap Algorithm</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="October" year="2002"/>
    <abstract>
      <t>The purpose of this document is to make the AES Key Wrap algorithm 
conveniently available to the Internet community. The United States 
of America has adopted AES as the new encryption standard. The AES 
Key Wrap algorithm will probably be adopted by the USA for 
encryption of AES keys. The authors took most of the text in this 
document from the draft AES Key Wrap posted by NIST.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3394"/>
  <seriesInfo name="DOI" value="10.17487/RFC3394"/>
</reference>
<reference anchor="RFC9019">
  <front>
    <title>A Firmware Update Architecture for Internet of Things</title>
    <author fullname="B. Moran" initials="B." surname="Moran"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="D. Brown" initials="D." surname="Brown"/>
    <author fullname="M. Meriac" initials="M." surname="Meriac"/>
    <date month="April" year="2021"/>
    <abstract>
      <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.</t>
      <t>In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9019"/>
  <seriesInfo name="DOI" value="10.17487/RFC9019"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="FIPS203">
  <front>
    <title>Module-lattice-based key-encapsulation mechanism standard</title>
    <author>
      <organization/>
    </author>
    <date month="August" year="2024"/>
  </front>
  <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
<refcontent>National Institute of Standards and Technology (U.S.)</refcontent></reference>
<reference anchor="FIPS204">
  <front>
    <title>Module-lattice-based digital signature standard</title>
    <author>
      <organization/>
    </author>
    <date month="August" year="2024"/>
  </front>
  <seriesInfo name="DOI" value="10.6028/nist.fips.204"/>
<refcontent>National Institute of Standards and Technology (U.S.)</refcontent></reference>
<reference anchor="FIPS205">
  <front>
    <title>Stateless hash-based digital signature standard</title>
    <author>
      <organization/>
    </author>
    <date month="August" year="2024"/>
  </front>
  <seriesInfo name="DOI" value="10.6028/nist.fips.205"/>
<refcontent>National Institute of Standards and Technology (U.S.)</refcontent></reference>
<reference anchor="SP800-208">
  <front>
    <title>Recommendation for Stateful Hash-Based Signature Schemes</title>
    <author fullname="David A. Cooper" initials="D." surname="Cooper">
      <organization/>
    </author>
    <author fullname="Daniel C. Apon" initials="D." surname="Apon">
      <organization/>
    </author>
    <author fullname="Quynh H. Dang" initials="Q." surname="Dang">
      <organization/>
    </author>
    <author fullname="Michael S. Davidson" initials="M." surname="Davidson">
      <organization/>
    </author>
    <author fullname="Morris J. Dworkin" initials="M." surname="Dworkin">
      <organization/>
    </author>
    <author fullname="Carl A. Miller" initials="C." surname="Miller">
      <organization/>
    </author>
    <date month="October" year="2020"/>
  </front>
  <seriesInfo name="DOI" value="10.6028/nist.sp.800-208"/>
<refcontent>National Institute of Standards and Technology</refcontent></reference>

<reference anchor="ISO19790" target="https://www.iso.org/standard/82423.html">
  <front>
    <title>Information security, cybersecurity, and privacy protection - Security requirements for cryptographic modules</title>
    <author >
      <organization>ISO</organization>
    </author>
    <date year="2025" month="February"/>
  </front>
</reference>
<reference anchor="BIND" target="https://eprint.iacr.org/2024/523.pdf">
  <front>
    <title>Unbindable Kemmy Schmidt: ML-KEM is neither MAL-BIND-K-CT nor MAL-BIND-K-PK</title>
    <author initials="S." surname="Schmieg">
      <organization></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></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></organization>
    </author>
    <author initials="J." surname="Hoffstein">
      <organization></organization>
    </author>
    <author initials="P." surname="Kirchner">
      <organization></organization>
    </author>
    <author initials="V." surname="Lyubashevsky">
      <organization></organization>
    </author>
    <author initials="T." surname="Pornin">
      <organization></organization>
    </author>
    <author initials="T." surname="Prest">
      <organization></organization>
    </author>
    <author initials="T." surname="Ricosset">
      <organization></organization>
    </author>
    <author initials="G." surname="Seiler">
      <organization></organization>
    </author>
    <author initials="W." surname="Whyte">
      <organization></organization>
    </author>
    <author initials="Z." surname="Zhang">
      <organization></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></organization>
    </author>
    <author initials="J." surname="Roth">
      <organization></organization>
    </author>
    <author initials="J." surname="Walde">
      <organization></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></organization>
    </author>
    <author initials="J." surname="Renes">
      <organization></organization>
    </author>
    <author initials="A." surname="Sprenkels">
      <organization></organization>
    </author>
    <date year="2022" month="December"/>
  </front>
</reference>


<reference anchor="REC-KEM">
  <front>
    <title>Recommendations for key-encapsulation mechanisms</title>
    <author fullname="Gorjan Alagic" initials="G." surname="Alagic">
      <organization/>
    </author>
    <author fullname="Elaine Barker" initials="E." surname="Barker">
      <organization/>
    </author>
    <author fullname="Lily Chen" initials="L." surname="Chen">
      <organization/>
    </author>
    <author fullname="Dustin Moody" initials="D." surname="Moody">
      <organization/>
    </author>
    <author fullname="Angela Robinson" initials="A." surname="Robinson">
      <organization/>
    </author>
    <author fullname="Hamilton Silberg" initials="H." surname="Silberg">
      <organization/>
    </author>
    <author fullname="Noah Waller" initials="N." surname="Waller">
      <organization/>
    </author>
    <date month="September" year="2025"/>
  </front>
  <seriesInfo name="DOI" value="10.6028/nist.sp.800-227"/>
<refcontent>National Institute of Standards and Technology (U.S.)</refcontent></reference>
<reference anchor="Lyu09">
  <front>
    <title>Fiat-Shamir with Aborts: Applications to Lattice and Factoring-Based Signatures</title>
    <author fullname="Vadim Lyubashevsky" initials="V." surname="Lyubashevsky">
      <organization/>
    </author>
    <date year="2009"/>
  </front>
  <seriesInfo name="Lecture Notes in Computer Science" value="pp. 598-616"/>
  <seriesInfo name="DOI" value="10.1007/978-3-642-10366-7_35"/>
  <seriesInfo name="ISBN" value="[&quot;9783642103650&quot;, &quot;9783642103667&quot;]"/>
<refcontent>Springer Berlin Heidelberg</refcontent></reference>

<reference anchor="Li32" target="https://pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf">
  <front>
    <title>CRYSTALS-Dilithium: Algorithm Specifications and Supporting Documentation (Version 3.1)</title>
    <author initials="S." surname="Bai">
      <organization></organization>
    </author>
    <author initials="L." surname="Ducas">
      <organization></organization>
    </author>
    <author initials="E." surname="Kiltz">
      <organization></organization>
    </author>
    <author initials="T." surname="Lepoint">
      <organization></organization>
    </author>
    <author initials="V." surname="Lyubashevsky">
      <organization></organization>
    </author>
    <author initials="P." surname="Schwabe">
      <organization></organization>
    </author>
    <author initials="G." surname="Seiler">
      <organization></organization>
    </author>
    <author initials="D." surname="Stehle">
      <organization></organization>
    </author>
    <date year="2021" month="February"/>
  </front>
</reference>
<reference anchor="NISTSecurityCategories" target="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization/evaluation-criteria/security-(evaluation-criteria)">
  <front>
    <title>Post-Quantum Cryptography: Security (Evaluation Criteria)</title>
    <author >
      <organization>NIST</organization>
    </author>
    <date year="2017" month="January"/>
  </front>
</reference>
<reference anchor="Bot19" target="https://eprint.iacr.org/2019/489.pdf">
  <front>
    <title>Memory-Efficient High-Speed Implementation of Kyber on Cortex-M4</title>
    <author initials="L." surname="Botros">
      <organization></organization>
    </author>
    <author initials="M. J." surname="Kannwischer">
      <organization></organization>
    </author>
    <author initials="P." surname="Schwabe">
      <organization></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></organization>
    </author>
    <author initials="Q." surname="Dang">
      <organization></organization>
    </author>
    <date year="2024" month="January"/>
  </front>
</reference>


<reference anchor="RFC8554">
  <front>
    <title>Leighton-Micali Hash-Based Signatures</title>
    <author fullname="D. McGrew" initials="D." surname="McGrew"/>
    <author fullname="M. Curcio" initials="M." surname="Curcio"/>
    <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
    <date month="April" year="2019"/>
    <abstract>
      <t>This note describes a digital-signature system based on cryptographic hash functions, following the seminal work in this area of Lamport, Diffie, Winternitz, and Merkle, as adapted by Leighton and Micali in 1995. It specifies a one-time signature scheme and a general signature scheme. These systems provide asymmetric authentication without using large integer mathematics and can achieve a high security level. They are suitable for compact implementations, are relatively simple to implement, and are naturally resistant to side-channel attacks. Unlike many other signature systems, hash-based signatures would still be secure even if it proves feasible for an attacker to build a quantum computer.</t>
      <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF. This has been reviewed by many researchers, both in the research group and outside of it. The Acknowledgements section lists many of them.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8554"/>
  <seriesInfo name="DOI" value="10.17487/RFC8554"/>
</reference>
<reference anchor="RFC8391">
  <front>
    <title>XMSS: eXtended Merkle Signature Scheme</title>
    <author fullname="A. Huelsing" initials="A." surname="Huelsing"/>
    <author fullname="D. Butin" initials="D." surname="Butin"/>
    <author fullname="S. Gazdag" initials="S." surname="Gazdag"/>
    <author fullname="J. Rijneveld" initials="J." surname="Rijneveld"/>
    <author fullname="A. Mohaisen" initials="A." surname="Mohaisen"/>
    <date month="May" year="2018"/>
    <abstract>
      <t>This note describes the eXtended Merkle Signature Scheme (XMSS), a hash-based digital signature system that is based on existing descriptions in scientific literature. This note specifies Winternitz One-Time Signature Plus (WOTS+), a one-time signature scheme; XMSS, a single-tree scheme; and XMSS^MT, a multi-tree variant of XMSS. Both XMSS and XMSS^MT use WOTS+ as a main building block. XMSS provides cryptographic digital signatures without relying on the conjectured hardness of mathematical problems. Instead, it is proven that it only relies on the properties of cryptographic hash functions. XMSS provides strong security guarantees and is even secure when the collision resistance of the underlying hash function is broken. It is suitable for compact implementations, is relatively simple to implement, and naturally resists side-channel attacks. Unlike most other signature systems, hash-based signatures can so far withstand known attacks using quantum computers.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8391"/>
  <seriesInfo name="DOI" value="10.17487/RFC8391"/>
</reference>
<reference anchor="RFC9881">
  <front>
    <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
    <author fullname="J. Massimo" initials="J." surname="Massimo"/>
    <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
    <author fullname="S. Turner" initials="S." surname="Turner"/>
    <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>Digital signatures are used within X.509 certificates and Certificate Revocation Lists (CRLs), and to sign messages. This document specifies the conventions for using FIPS 204, the Module-Lattice-Based Digital Signature Algorithm (ML-DSA) in Internet X.509 certificates and CRLs. The conventions for the associated signatures, subject public keys, and private key are also described.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9881"/>
  <seriesInfo name="DOI" value="10.17487/RFC9881"/>
</reference>

<reference anchor="I-D.ietf-suit-mti">
   <front>
      <title>Cryptographic Algorithms for Internet of Things (IoT) Devices</title>
      <author fullname="Brendan Moran" initials="B." surname="Moran">
         <organization>Arm Limited</organization>
      </author>
      <author fullname="Øyvind Rønningstad" initials="O." surname="Rønningstad">
         <organization>Nordic Semiconductor</organization>
      </author>
      <author fullname="Akira Tsukamoto" initials="A." surname="Tsukamoto">
         <organization>Openchip &amp; Software Technologies, S.L.</organization>
      </author>
      <date day="22" month="July" year="2025"/>
      <abstract>
	 <t>   The SUIT manifest, as defined in &quot;A Manifest Information Model for
   Firmware Updates in Internet of Things (IoT) Devices&quot; (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
   &quot;A Firmware Update Architecture for Internet of Things&quot; (RFC 9019).

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-suit-mti-23"/>
   
</reference>

<reference anchor="I-D.ietf-pquip-hbs-state">
   <front>
      <title>Hash-based Signatures: State and Backup Management</title>
      <author fullname="Thom Wiggers" initials="T." surname="Wiggers">
         <organization>PQShield</organization>
      </author>
      <author fullname="Kaveh Bashiri" initials="K." surname="Bashiri">
         <organization>BSI</organization>
      </author>
      <author fullname="Stefan Kölbl" initials="S." surname="Kölbl">
         <organization>Google</organization>
      </author>
      <author fullname="Jim Goodman" initials="J." surname="Goodman">
         <organization>Crypto4A Technologies</organization>
      </author>
      <author fullname="Stavros Kousidis" initials="S." surname="Kousidis">
         <organization>BSI</organization>
      </author>
      <date day="27" month="February" year="2026"/>
      <abstract>
	 <t>   Stateful Hash-Based Signature Schemes (Stateful HBS) such as
   Leighton-Micali Signature (LMS), Hierarchical Signature System (HSS),
   eXtended Merkle Signature Scheme (XMSS), and XMSS^MT combine Merkle
   trees with One-Time Signatures (OTS) to provide signatures that are
   resistant against attacks using large-scale quantum computers.
   Unlike conventional stateless digital signature schemes, Stateful HBS
   have a state to keep track of which OTS keys have been used, as
   double-signing with the same OTS key allows forgeries.

   This document provides guidance and catalogs security considerations
   for the operational and technical aspects of deploying systems that
   rely on Stateful HBS.  Management of the state of the Stateful HBS,
   including any handling of redundant key material, is a sensitive
   topic.  This document describes some approaches to handle the
   associated challenges.  It also describes the challenges that need to
   be resolved before certain approaches should be considered.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hbs-state-04"/>
   
</reference>
<reference anchor="RFC9794">
  <front>
    <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
    <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
    <author fullname="M. Parsons" initials="M." surname="Parsons"/>
    <author fullname="B. Hale" initials="B." surname="Hale"/>
    <date month="June" year="2025"/>
    <abstract>
      <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9794"/>
  <seriesInfo name="DOI" value="10.17487/RFC9794"/>
</reference>



    </references>



  </back>

<!-- ##markdown-source:
H4sIAD+hO2oAA819+XLbaHbv/3gKXHclkWZIWtRiS04mM2pZbive1KY8naVS
HpD8KGEMAhwAlKz2OM9yn+U+2T2/c863gaDcPfemKl2JxwaBbz37OhwOkzZv
C/MsfXQ6z1ZtXl6nZ1XZtHWWl2aePje3+cw06aKq08uqaYc/rrOyXS/Ts/p+
1VbXdba6uX+UZNNpbW5/0SA/nj1KZllrrqv6/lmal4sqSebVrMyWtIh5nS3a
YW7axXD1l3W+oj9nw5tmOZz54YYFfd20SbOeLvOmyauyvV/RtxfnVy+Scr2c
mvpZMqd3niX4ypTNunmWtvXaJLTCgySrTUYrnZjZus5bWvxdVX+6rqv1ip5e
/vjh4vJR8snc09P5syQZYsX050V1RX9enZ/Tny8nb+jP9/QkuTXlmiZKUzsA
L/sRPZBFPfqJBsd5/IDf8XyZ5QW/N/sD9jmq6ms8zurZDT2+adtV8+zxY7yF
R/mtGdnXHuPB42ld3TXmMX3/+FGSNG1Wzj9mRVXSZPemSVb5s/Q/2mo2SJuq
bmuzaOhv90v9S1vns3aQzqrl0pQtPaGTX2arFa3wP5MkW7c3FR1eOqQFpeli
XRRyLVd5vV5mhWnusjp9b+bze36B1pSV+c9ZS3fwLH1bfcozfj6jY32Wfp+V
17Sw2vCz2lzzW6+yusza7JO+Wa3LFnBwUc71Y6MH9GnUBrN+rDHrH0rMMaLl
09Y3Vvk8K9OfaCc9azvLaeef+QcLqsEjt4oPZd4SvE5aQFhaLdLTpaETixc2
z8o7muUP1/j3trV8b8p0khWtqXtW8+FV+pb/mhXp2T3Ba2qBMT2ja9ETs/NN
TTlqDv5QzprZ6Lq6Ha0/Pdqc71WdN+mruzxrPxF4fMp7Zr38cXKTm2IenzJ9
94dsWZXX03vas26nrOolfXVLkJ0AQ92/0vTFxeVkf++ATvvdxWi8N3qyt3/8
+O3F5GqEX0b0k3vpcPtLh+6lo+0vHdFLk8vjvb3h/t5xz2uTy5H+SC9eTN6N
T56e7D3j7VmadmEXX5Vpo2dM4I8z9/8kDEpXdX6bze7pf6vWzPj9ob+V2hBW
14ZxhqnYzFO/fJYuq/mawPSRTJ3V16Z9llpMvru7G+VNxQjM2JrV88fH+4f7
B6ObdlkITFrE4/+GuLhn2BE/YFKWvjDTep3V9+n+3j4O5vuLt8/jvX4opzmN
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
fsUFwAAA

-->

</rfc>

