<?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.30 (Ruby 3.3.7) -->


<!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-03" 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="January" day="26"/>

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

    <abstract>


<?line 133?>

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

<section anchor="introduction"><name>Introduction</name>
<t>The transition to post-quantum cryptography (PQC) poses significant challenges for
resource-constrained devices, such as Internet of Things (IoT) devices, which are often equipped with Trusted Execution Environments (TEEs), secure elements, or other forms of hardware
security modules (HSMs).
These devices typically operate under strict limitations on
processing power, RAM, and flash memory, and in some cases are battery-powered. Adopting
PQC algorithms in such environments is difficult due to their substantially larger key
sizes and, in some cases, higher computational demands. Consequently, the migration to
PQC requires careful planning to ensure secure and efficient key management within
constrained platforms.</t>

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

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

<t>The focus is on PQC in constrained devices, with particular attention to the three
algorithms standardized by NIST:</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"/>, and</t>
  <t>Stateless Hash-Based Digital Signature Algorithm (SLH-DSA) <xref target="FIPS205"/>.</t>
</list></t>

<t>The Hierarchical Signature System/Leighton–Micali Signature (HSS/LMS) <xref target="RFC8554"/> is
also considered in the context of firmware signing. Future revisions may extend the scope
to additional PQC algorithms, such as the Hamming Quasi-Cyclic (HQC) KEM <xref target="HQC"/> and the Fast
Fourier Transform over NTRU-Lattice-Based Digital Signature Algorithm (FN-DSA) <xref target="FN-DSA"/>.</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="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. This optimization does
not apply to device certificates or trust anchors, which must be stored
in persistent device storage since they are signed public data
structures (see <xref target="RFC5280"/>). The terms IDevIDs and LDevIDs are explained in IEEE Std 802.1AR <xref target="IEEE-802.1AR"/>.</t>

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

<t>To comply with <xref target="FIPS203"/>, <xref target="FIPS204"/>, <xref target="FIPS205"/> and <xref target="REC-KEM"/> guidelines:</t>

<section anchor="seed-storage"><name>Seed Storage</name>

<t>Several post-quantum algorithms use a seed to generate their private keys (e.g., ML-KEM, ML-DSA, and HQC). 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 calls to
Winternitz One-Time Signature (WOTS+) key generation, making it significantly slower due
to the recursive hash computations involved. Designers of constrained systems must
carefully balance storage efficiency and computational overhead based on system
requirements and operational constraints. While constrained systems employ various key
storage strategies, the decision to store full private keys or only seeds depends on
design goals, performance considerations, and 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>If the seed is not securely stored at the time of key generation, it is permanently
lost because the process of deriving an expanded key from the seed relies on a one-way
cryptographic function. This one-way function derives the private key from the seed, but the reverse operation,
deriving the original seed from the expanded key, is computationally infeasible.</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 has sufficient capability to initiate or terminate a mutually-authenticated TLS session, the device can securely transfer encrypted private key material directly to another cryptographic module.</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 of memory available. For instance, ML-DSA, unlike traditional signature schemes such as RSA or ECDSA, requires significant memory 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, i.e. those battery-operated, may have very limited RAM available for cryptographic operations. In such cases, straightforward implementations of PQ schemes may exceed the available memory, making it infeasible to use without optimizations.</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>Both the ML-KEM and ML-DSA algorithms were selected for general use. Two optimization techniques that can be applied to make ML-DSA more feasible in constrained cryptographic modules are discussed in <xref target="lazy-expansion"/> and <xref target="pre-hashing"/>.</t>

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

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

<t>To compute memory requirements, we need to consider the dimensions of the public matrix A and the size of the polynomial vectors. Using ML-KEM-768 as an example, the public matrix A has dimensions 5x5, with each polynomial having 256 coefficients. Each coefficient is stored on 2 bytes (<spanx style="verb">uint16</spanx>), leading to a size of 5 * 5 * 256 * 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 * 256 * 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 * 2,560 = 20,480 bytes (approximately 20 KB). Similar computation can be easily done for other security levels as well as ML-DSA. The ML-DSA has much higher memory requirements due to larger matrix and polynomial sizes (i.e. ML-DSA-87 requires approximately 79 KB of RAM during signing operations).</t>

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

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

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

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

<t>The lazy expansion would first generate first element of a vector s1 (s1[0]) 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 (s1[1]) 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 * 2 = 512 bytes, meaning that only 512 bytes + one row of matrix A (5 * 256 * 2 = 2560 bytes) + one element of t (5 * 2 = 10 bytes) need to be stored in memory at any time, leading to a total of approximately 3 KB of memory usage, compared to the approximately 20 KB required for a straightforward implementation. The savings are even more pronounced for higher security levels, such as ML-DSA-87, where lazy expansion can reduce memory usage from approximately 79 KB to around 12 KB.</t>

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

<t>Further memory optimizations to ML-DSA can be found in <xref target="BosRS22"/>.</t>

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

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

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

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

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

<t>One effective approach involves sending only a message digest to the cryptographic module
for signing. By signing the digest of the content rather than the entire content, the
communication between the application and the cryptographic module is minimized, enabling
better performance. This method is applicable for any PQC signature algorithm, whether it
is ML-DSA, SLH-DSA, or any future signature scheme. For such algorithms, a mechanism is
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 multiple passes over the message digest during the
signing process. The signer does not retain the entire message or its full digest in
memory at once. Instead, different parts of the message digest are processed sequentially
during the signing procedure. This differs from traditional algorithms like RSA or ECDSA,
which allow for more efficient processing of the message, without requiring multiple
passes or intermediate processing of the digest.</t>

<section anchor="impact-of-rejection-sampling-in-ml-dsa-signing-on-performance"><name>Impact of rejection sampling in ML-DSA Signing on performance</name>

<t>In constrained and battery-powered IoT devices that perform ML-DSA signing, the rejection-sampling
loop introduces variability in signing latency and energy consumption due to the probabilistic
nature of the signing process. While this results in a variable number of iterations in the signing
algorithm, the expected number of retries for the standardized ML-DSA parameter sets is quantified
below.</t>

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

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

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

<t>The purpose of rejection sampling is twofold. First, it prevents leakage of information about the
secret key through out-of-range values that could otherwise bias the distribution of signatures.
Second, it ensures that the distribution of valid signatures is statistically close to the ideal
distribution assumed in the security reduction.</t>

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

<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 an RBG as specified in <xref target="FIPS204"/> (Section 3.6.1),
the rejection probability during ML-DSA signing can be computed. These probabilities depend on
the ML-DSA parameter set and are summarized below.</t>

<texttable title="Acceptance probability - per-attempt probability of successful signing for the given ML-DSA variant." anchor="AcceptanceProbabilities">
      <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 expected number of iterations until a successful signature is generated is the reciprocal
of the acceptance probability. Hence, if r denotes the per-iteration rejection probability and
p = 1 - r the acceptance probability, then the expected number of signing iterations is 1/p.
Using this model, the expected number of signing attempts for each ML-DSA variant is shown below.</t>

<texttable title="Expected Number of Attempts for the given ML-DSA variant." anchor="ExpectedAttempts">
      <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>The table <xref target="MLDSA_Sign_CDF"/> shows that while acceptance rate is relatively high for ML-DSA, the
probability quickly grows with increasing number of iterations. After 11 iterations,
each ML-DSA variant achieves over 90% probability of completing the signing process.</t>

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

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

<t>This consideration primarily applies to devices that perform ML-DSA signing. Devices that only
generate ML-DSA keys or verify signatures are not affected, as those operations does 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>To provide a more comprehensive assessment of ML-DSA signing performance, benchmarks should
report the following two metrics:</t>

<t><list style="numbers" type="1">
  <t>Single-iteration signing time:
The signing time for a signature operation that completes within a single iteration of the
rejection-sampling loop. This metric reflects the best-case performance of the signing algorithm
and provides insight into the efficiency of the core signing operation without the overhead
of repeated iterations.</t>
  <t>Average signing time:
The average signing time measured over a sufficiently large number of signing operations,
using independent messages and, where applicable, independent randomness. Alternatively, an
implementation MAY report the signing time corresponding to the expected number of iterations
(see <xref target="ExpectedAttempts"/>). This approach requires identifying a message, key, and randomness
combination that results in the expected iteration count.</t>
</list></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>

</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 anchor="sec-key-sizes"><name>Cryptographic Artifact Sizes for Post-Quantum Algorithms</name>

<t>The sizes of keys, ciphertexts, and signatures of post-quantum algorithms are generally larger than those of traditional
cryptographic algorithms. This increase in size is a significant consideration for
constrained devices, which often have limited memory and storage capacity. For example,
the key sizes for ML-DSA and ML-KEM are larger than those of RSA or ECDSA, which can lead to
increased memory usage and slower performance in constrained environments.</t>

<t>The following table provides the sizes of cryptographic artifacts associated with instantiations of ML-DSA, SLH-DSA, FN-DSA, and ML-KEM, aiming for "Level 1 security", as defined in <xref target="NISTSecurityLevels"/>. For comparision we also include the sizes of cryptographic artifacts associated with X25519 and Ed25519, which
are traditional schemes widely used in constrained environments.</t>

<texttable>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Size (bytes)</ttcol>
      <c>ML-DSA-44</c>
      <c>Public Key</c>
      <c>1312</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>2560</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>2420</c>
      <c>SLH-DSA-SHA2-128s</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>64</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>7856</c>
      <c>SLH-DSA-SHA2-128f</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>64</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>17088</c>
      <c>FN-DSA-512</c>
      <c>Public Key</c>
      <c>897</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>1281</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>666</c>
      <c>ML-KEM-512</c>
      <c>Public Key</c>
      <c>800</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>1632</c>
      <c>&#160;</c>
      <c>Ciphertext</c>
      <c>768</c>
      <c>&#160;</c>
      <c>Shared Secret</c>
      <c>32</c>
      <c>X25519</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>Shared Secret</c>
      <c>32</c>
      <c>Ed25519</c>
      <c>Public Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>Private Key</c>
      <c>32</c>
      <c>&#160;</c>
      <c>Signature</c>
      <c>64</c>
</texttable>

<t>Corresponding sizes for higher security levels will typically be larger - see <xref target="FIPS203"/>, <xref target="FIPS204"/>, <xref target="FIPS205"/>, and <xref target="FN-DSA"/> for sizes for all parameter sets.</t>

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

<t>Constrained devices deployed in the field require periodic firmware upgrades to patch
security vulnerabilities, introduce new cryptographic algorithms, and improve overall
functionality. However, the firmware upgrade process itself can become a critical attack
vector if not designed to be post-quantum. If an adversary compromises the update
mechanism, they could introduce malicious firmware, undermining all other security
properties of the cryptographic modules. Therefore, ensuring a post-quantum firmware
upgrade process is critical for the security of deployed constrained devices.</t>

<t>CRQCs pose an additional risk by breaking traditional digital signatures (e.g., RSA,
ECDSA) used to authenticate firmware updates. If firmware verification relies on
traditional signature algorithms, attackers could generate forged signatures in the future
and distribute malicious updates.</t>

<section anchor="post-quantum-firmware-authentication"><name>Post-Quantum Firmware Authentication</name>

<t>To ensure the integrity and authenticity of firmware updates, constrained devices will have to adopt PQC digital signature schemes for code signing.
These algorithms must provide long-term security, operate efficiently in low-resource environments, and be compatible with secure update mechanisms, such as the firmware update architecture for IoT described in <xref target="RFC9019"/>.</t>

<t><xref target="I-D.ietf-suit-mti"/> defines mandatory-to-implement cryptographic algorithms for IoT devices, and recommends use of HSS/LMS <xref target="RFC8554"/> to secure software devices.</t>

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

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

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

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

<t>To enable secure migration from traditional to post-quantum security, hybrid signature methods can be used for
firmware authentication. Parallel signatures, where a traditional and a post-quantum signature are generated and
attached separately, is simple to implement, requires minimal changes to existing signing, and aligns well with
current secure boot and update architectures.</t>

<t>Other hybrid techniques, such as cross-linked signatures (where signatures cover each other's values), composite signatures (which combine multiple signatures into a single structured signature), or counter-signatures (where one signature signs over another) introduce more complexity and are not yet typical in resource-constrained firmware workflows.</t>

</section>
</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 numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

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

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

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



<reference anchor="RFC3394">
  <front>
    <title>Advanced Encryption Standard (AES) Key Wrap Algorithm</title>
    <author fullname="J. Schaad" initials="J." surname="Schaad"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <date month="September" year="2002"/>
  </front>
  <seriesInfo name="RFC" value="3394"/>
  <seriesInfo name="DOI" value="10.17487/RFC3394"/>
</reference>
<reference anchor="RFC9019">
  <front>
    <title>A Firmware Update Architecture for Internet of Things</title>
    <author fullname="B. Moran" initials="B." surname="Moran"/>
    <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
    <author fullname="D. Brown" initials="D." surname="Brown"/>
    <author fullname="M. Meriac" initials="M." surname="Meriac"/>
    <date month="April" year="2021"/>
    <abstract>
      <t>Vulnerabilities in Internet of Things (IoT) devices have raised the need for a reliable and secure firmware update mechanism suitable for devices with resource constraints. Incorporating such an update mechanism is a fundamental requirement for fixing vulnerabilities, but it also enables other important capabilities such as updating configuration settings and adding new functionality.</t>
      <t>In addition to the definition of terminology and an architecture, this document provides the motivation for the standardization of a manifest format as a transport-agnostic means for describing and protecting firmware updates.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9019"/>
  <seriesInfo name="DOI" value="10.17487/RFC9019"/>
</reference>



    </references>

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



<reference anchor="IEEE-802.1AR">
  <front>
    <title>IEEE Standard for Local and Metropolitan Area Networks - Secure Device Identity</title>
    <author>
      <organization/>
    </author>
    <date month="July" year="2018"/>
  </front>
  <seriesInfo name="DOI" value="10.1109/ieeestd.2018.8423794"/>
  <seriesInfo name="ISBN" value="[&quot;9781504450195&quot;]"/>
<refcontent>IEEE</refcontent></reference>
<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="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="FN-DSA" 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="Wälde">
      <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="Stehlé">
      <organization></organization>
    </author>
    <date year="2021" month="February"/>
  </front>
</reference>
<reference anchor="NISTSecurityLevels" target="https://csrc.nist.gov/projects/post-quantum-cryptography/post-quantum-cryptography-standardization/evaluation-criteria/security-(evaluation-criteria)">
  <front>
    <title>Post-Quantum Cryptography: Security (Evaluation Criteria)</title>
    <author >
      <organization>NIST</organization>
    </author>
    <date year="2017" month="January"/>
  </front>
</reference>


<reference anchor="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="RFC5280">
  <front>
    <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
    <author fullname="D. Cooper" initials="D." surname="Cooper"/>
    <author fullname="S. Santesson" initials="S." surname="Santesson"/>
    <author fullname="S. Farrell" initials="S." surname="Farrell"/>
    <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
    <author fullname="R. Housley" initials="R." surname="Housley"/>
    <author fullname="W. Polk" initials="W." surname="Polk"/>
    <date month="May" year="2008"/>
    <abstract>
      <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5280"/>
  <seriesInfo name="DOI" value="10.17487/RFC5280"/>
</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="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="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="16" month="December" year="2025"/>
      <abstract>
	 <t>   Stateful Hash-Based Signature Schemes (Stateful HBS) such as LMS,
   HSS, 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-02"/>
   
</reference>



    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA819S3McR5LmPX9FLmU7DUxXFfEgSIBjvdMQCIockhKEgprz
sDFNVlUUKsWszOrMLIAlSmZ92dMeZy9738v+jvkn/UvWP3ePV1YWSK3tYdqs
JSgrM8LDw9/u4TEcDpM2bwvzPH10PstWbV7ephdV2bR1lpdmlr4wd/nUNOm8
qtOrqmmH36+zsl0v04t6s2qr2zpbLTaPkmwyqc3dFw3y/cWjZJq15raqN8/T
vJxXSTKrpmW2JCBmdTZvh7lp58PVn9f5iv45HS6a5XDqhxseHCfNerLMmyav
ynazou9eX968TMr1cmLq58mMRn+e4AtTNuvmedrWa5MQdMdJVpuMoByb6brO
WwL8vqo/3NbVekVPr77/4fXVo+SD2dDT2fMkHQJa/Ot1dYN/3Vxe4l+vxu/w
r2t6mCR3plzTbGlqR2G4H9EDgezRe5oBCPkGv+P5MssLfm/6Ryx0VNW3eJzV
0wU9XrTtqnn++DHewqP8zozsa4/x4PGkru4b85i+f/yIAGjarJz9mBVVSbNt
TJOs8ufpv7TVdJA2Vd3WZt7QX5ul/tHW+bQdpNNquTRlS08I98tstSIQ/zVJ
snW7qGosnSBK0/m6KGRjbvJ6vcwK09xndXptZrMNv0BAZWX+c9bSTjxPv60+
5Bk/nxJyn6dfZ+UtAVYbflabW37rTVaXWZt90DerddmCEl6XM/3YKIY+jNpg
1h9rzPrHEnOMCPxH20C+yMr0PS2kB7SLnBb+kX+wtBo8ckD8UOYtEey4JRJq
0mqeni8NISyCa5aV9zTJH2/xn4BkG5CvTZmOs6I1dQ8oP7xJv+U/syK92BDF
ppYc0wvaEsWWTjYx5ag5/mM5baaj2+putP6wPdubOm/SN/d51n4gyviQ98x5
9f14kZtiFg79gT77Y7asytvJhlbLK0nKql7SN3dE0gl40/1XSjx2eTk8PTga
HZ5fE66/ez06PBgdHh6cPcYv45sXo6ODw9PR6ZOj42dnT+iDl6+vxkcHx+7d
pwdHp4+/fT2+GeEXevvYvfRk90t+pJPdL50AvvF3h2fPzg6e8yKtVHttF1GV
aaN4JvIH3v1/Egelqzq/y6Yb+nfVmim//9e//E+/N7Uhxq4Ncw1LsqmXgPk0
XVazNRHqI5k8q29N+zy1zHx/fz/Km4p5mPk1q2ePT48IU6NFuyyELC3r8f+G
2MDnWBM/YJGWvjSTep3Vm/To4Agr/vr1ty/i1f5QTnIafVKY9I1ZLjfpeLpY
5jMC5d3b4ZvLdylRSmnydkFU9+787RAjDN8ML25S2vjwydWb/pUYQlPZjvJs
WvNqCJInj09oHavZvHcZeUkCeDwSQMxtsJpzGqrAUrDDr76/0G/sUl5lyyXk
JimcJh9ebKYFYXmP3tt/pC92QGNV8ecpg0VC7TH9/WOzMtN8TgyM/Wx+BN5+
PDj98ejIwdsB2EL8TTapaNtT06ZZMZIfFez17bpp7Ra8/Hb4YnzeAf1lVkzB
dS8zUpgvK6IfQvfbrG1JCw4nWUMS5qJarrJpm47zWxKG6xrS5o7e+vbm+ocd
65vzqMOGvhiBNfXBjpXoOq6G56OUQPjz2kTP/2GUvqrm86Y1eRl/MErf5KRm
SpVd9vmfRunbzZqAX5i75sMm+u1mRLZBXXZGwlNaV9t9eJ1Pq6Yx8fNviEJM
XnQmfT9K3y9IOEUP/3mU/vMiUymvm/LdtK0gSWlXDuj5mKRothyOr169/vZi
3Nkd+RGkpb//ntn5koyH2SywVtYN3iFWSS8/ZssVsRTpg5urd01nfx49wBuH
jw8PnjGxPdq9R9ej9NvczEy9yG5N2d2m66pddJ+9/4//XcxMP1UeQjBUzfX4
6Kiz8Bd5QZyfk/GG9b4zS7LA+uy037C+o8fHwvt9ywshJoi2H16b0nQfE7mO
V7UpP5iiCRf4wkzNUrf4iH64vryAQOtRCeOr0enBwfDo6Bm9RjR7cOa11cHB
s8dnz06Hx8OnT46GhwfHT58On/14DE5+mx93EXZx/U/jm/O346HDHMFX3EIw
LJYEZihbWIeM16sV2VygmxfVdA1dIZpn70+kbvDH8eiwK78eeQE2JJ1C+qFo
RIjZWR8TCjL/n8NIqg3Jrixnx0NsPVH/6WeIjUTx11kePXo7Sl+sp1kTPbyE
HCjan7vc+9asKqKCL5YNVyz677OJ+QJ+f0FPW7Mo/uP/hFsfqj1QN3bZquW3
5o4IJVaCO/2U516b713eZcVaNueCnpCVl+3HKs/ty7Spp6Myb1pYYI/JPviJ
7IPm8QrT/FmmGQbGwGb3L0Or/NUwe2wcFPSeQPHYmiXDvZ5fFcZwZ9VUAFYC
7foPWak4O3yWJMPhkOxeMPq0TZKbBZkBMyVQGDx3+YwE3u06J9t2SnKupO0g
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

-->

</rfc>

