<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-pquip-hbs-state-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="HBS: State and Backup">Hash-based Signatures: State and Backup Management</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hbs-state-00"/>
    <author initials="T." surname="Wiggers" fullname="Thom Wiggers">
      <organization>PQShield</organization>
      <address>
        <postal>
          <country>The Netherlands</country>
        </postal>
        <email>thom@thomwiggers.nl</email>
      </address>
    </author>
    <author initials="K." surname="Bashiri" fullname="Kaveh Bashiri">
      <organization>BSI</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>kaveh.bashiri.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Kölbl" fullname="Stefan Kölbl">
      <organization>Google</organization>
      <address>
        <postal>
          <country>Switzerland</country>
        </postal>
        <email>kste@google.com</email>
      </address>
    </author>
    <author initials="J." surname="Goodman" fullname="Jim Goodman">
      <organization>Crypto4A Technologies</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>jimg@crypto4a.com</email>
      </address>
    </author>
    <author initials="S." surname="Kousidis" fullname="Stavros Kousidis">
      <organization>BSI</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>kousidis.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="17"/>
    <area>Security</area>
    <workgroup>Post-Quantum Use In Protocols</workgroup>
    <keyword>stateful hash-based signatures</keyword>
    <keyword>XMSS</keyword>
    <keyword>LMS</keyword>
    <keyword>state management</keyword>
    <abstract>
      <?line 167?>

<t>Stateful Hash-Based Signature Schemes (S-HBS) such as LMS, HSS, XMSS and
XMSS<sup>MT</sup> 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, S-HBS have
a state to keep track of which OTS keys have been used, as double-signing with
the same OTS key allows forgeries.</t>
      <t>This document provides guidance and documents security considerations for the
operational and technical aspects of deploying systems that rely on S-HBS.
Management of the state of the S-HBS, including any handling of redundant key
material, is a sensitive topic, and we discuss some approaches to handle the
associated challenges. We also describe the challenges that need to be resolved
before certain approaches should be considered.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://hbs-guidance.github.io/draft-hbs-state/draft-ietf-pquip-hbs-state.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-pquip-hbs-state/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Post-Quantum Use In Protocols 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>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/hbs-guidance/draft-hbs-state"/>.</t>
    </note>
  </front>
  <middle>
    <?line 183?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Stateful Hash-Based Signature Schemes (S-HBS) such as LMS, HSS, XMSS and
XMSS<sup>MT</sup> combine Merkle trees with One-Time Signatures (OTS) in order
to provide digital signature schemes that remain secure even when large-scale
quantum computers become available. Their theoretic security is well understood
and depends only on the security of the underlying hash function. As such, they
can serve as an important building block for quantum-resistant information and
communication technology. S-HBS are specified in <xref target="RFC8391"/>, <xref target="RFC8554"/>,
and NIST <xref target="SP-800-208"/>.</t>
      <t>The private key of an S-HBS is a finite collection of OTS keys and an
associated data structure which keeps track of which OTS keys have been used.
This data structure is typically a simple counter and often called an index; we
refer to it as the <strong>state</strong> of the private key. Each S-HBS private key can be
used to sign a finite number of messages, and the state must be updated with
each generated signature.</t>
      <t>One must not reuse any OTS key that is part of an S-HBS private key. If an
attacker is able to obtain signatures for two different messages created using
the same OTS key, it is computationally feasible for that attacker to create
forgeries <xref target="BH16"/>. As noted in <xref target="MCGREW"/> and <xref target="ETSI-TR-103-692"/>, extreme care
should be taken in order to avoid the risk that an OTS key will be reused
accidentally.</t>
      <t>The statefulness of S-HBS leads to significant challenges in practice:</t>
      <ul spacing="normal">
        <li>
          <t>Implementers must ensure that each creation of a signature updates the state
correctly.</t>
        </li>
        <li>
          <t>If the S-HBS private key is distributed to multiple signers at the same time,
implementers must ensure that they never use the same OTS key. This may
require synchronization between all signers.</t>
        </li>
        <li>
          <t>If key backups are required, implementers must ensure that any backup
mechanism can not lead to re-using a previously used OTS key.</t>
        </li>
      </ul>
      <t>The purpose of this document is to present, recall, and discuss various
strategies for a correct state and backup management for S-HBS.</t>
      <section anchor="when-are-s-hbs-appropriate">
        <name>When are S-HBS appropriate?</name>
        <t>The issues with state management described above, as well as the limited number
of signatures, lead to new requirements that most developers will not be
familiar with and that require careful handling in practice: S-HBS are not
general-purpose signature schemes. Most applications, especially those that may
produce unrestricted numbers of signatures, should use <em>stateless</em> hash-based
signature schemes like SLH-DSA <xref target="FIPS205"/>, which use the same security
assumptions, or schemes based on other assumptions, such as ML-DSA <xref target="FIPS204"/>,
instead. However, if performance, signature or key sizes of stateless
alternatives are prohibitive, and the specific use case allows a very tight
control of the signing environment, using S-HBS may be an appropriate solution.
It seems likely that in many scenarios, this will only be possible when using
purpose-designed hardware, such as hardware-security modules.</t>
      </section>
    </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 anchor="specific-terminology-in-the-context-of-s-hbs">
        <name>Specific terminology in the context of S-HBS</name>
        <t>In this subsection we specify certain notions which are important in the
context of S-HBS.</t>
        <section anchor="state-management">
          <name>State management</name>
          <t>In this document <em>state management</em> refers to the handling and implementation
of the state of the private key.</t>
          <t>This includes mechanisms, which aim:</t>
          <ul spacing="normal">
            <li>
              <t>to securely update the state after each signature,</t>
            </li>
            <li>
              <t>to set up S-HBS with a split state and/or private key, so that signatures can
be generated from either part without risk of state reuse,</t>
            </li>
            <li>
              <t>to enable effective but secure handling of private key and state backup
material,</t>
            </li>
            <li>
              <t>to guarantee the availability of both the private key and its state across
the lifetime of the key.</t>
            </li>
          </ul>
          <t>Note that in particular implementations of S-HBS, or in alternative signature
mechanisms such as, e.g., puncturable schemes <xref target="BSW16"/>, the state and private
key might be inseparable. However, even in these scenarios, this document's
guidance should still apply.</t>
        </section>
        <section anchor="backup-management">
          <name>Backup management</name>
          <t>In order to mitigate failure of, e.g., devices storing key material and to
facilitate other types of disaster recovery, backups of private keys and their
associated states <bcp14>SHOULD</bcp14> be considered as part of a security architecture.</t>
          <t>In this document, <em>backup management</em> refers to all mechanisms surrounding the
goal to guarantee the availability of the private key and state, but with
special care to avoid state reuse by rolling back to a state in which
already-used OTS keys are still available.</t>
          <t>These mechanisms include procedures and protocols, which aim:</t>
          <ul spacing="normal">
            <li>
              <t>to securely store this private key and state material outside the in-use
signing device,</t>
            </li>
            <li>
              <t>to import an externally stored private key and state to a newly initiated
signing device,</t>
            </li>
            <li>
              <t>allow practicing with backup recovery and to ensure backups are valid.</t>
            </li>
          </ul>
          <t>Backup management can be viewed as a more specific type of state management; we
make this distinction to clarify the aims of our recommendations.</t>
        </section>
        <section anchor="keymovement">
          <name>Key export, key import and key transfer</name>
          <t>As part of state and backup management, we will discuss mechanisms to export,
import or transfer private key and state material. In order to avoid
misunderstandings we now specify these notions more precisely.</t>
          <dl>
            <dt>key export</dt>
            <dd>
              <t>mechanism of exporting secret data, which yields (partial) private
key and state material, from the signing device to external storage. This
external storage may be given in digital or non-digital form.</t>
            </dd>
            <dt>key import</dt>
            <dd>
              <t>mechanism of importing secret data, which loads (partial) private
key and state material, from external storage to the signing device.</t>
            </dd>
            <dt>key transfer</dt>
            <dd>
              <t>a cryptographically protected transfer of ownership of private key and
state material from one signing device to another.</t>
            </dd>
          </dl>
          <t>Systems and architectures relying on key transfer are generally expected to
require fewer operational and manually-executed steps and checks to avoid state
reuse.</t>
          <t>Note that, at times, secure variants of the aforementioned primitives may be
required (e.g., securely importing/exporting the key). In these situations
cryptographic mechanisms <bcp14>SHOULD</bcp14> be utilized to provide assurances related to
the confidentiality (e.g., utilizing symmetric/asymmetric encryption
mechanisms) and/or integrity/authenticity (e.g., utilizing digital signatures,
hash functions, and keyed message authentication codes) of the associated
operations.</t>
        </section>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>An important aspect of the evaluation of various hash-based signature state and
backup management options is to consider the operational costs associated with
the option(s) being evaluated. In the past, a traditional trust infrastructure
solution could utilize straightforward archival procedures to make copies of
the keys, which could then be distributed geographically to ensure their
availability and deliver a sufficiently resilient solution, all the while
enforcing whatever security protocols and procedures were required.
Unfortunately, stateful hash-based signatures introduce an additional
constraint in that they need to ensure the state is never re-used. Hence,
archival procedures used for traditional trust infrastructures have to be
amended/redesigned to be used as viable options.</t>
      <t>One of the most problematic aspects of providing a long-lived resilient
solution is simply managing the physical media on which the keys/state are
stored externally (i.e., outside of the signing device) throughout the course
of their lifetime. Physical media/devices degrade over time, and the more
complex the media/device, the more likely it is to fail at some point in time
(e.g., data stored on a CD vs. data stored on a USB drive vs. data stored in a
Hardware Security Module). Combine that fact with the long lifetimes associated
with stateful hash-based signature keys (e.g., 10-20+ years) and the
difficulties associated with transferring keys between devices, and one finds
them self with a perplexing set of challenges that needs to be accounted for in
any state selection process of a proper state and backup management solution.
Compounding these complexities is the fact any resilient state management
system <bcp14>SHOULD</bcp14> also provide some means to verify the integrity of these long
lived backups to ensure they will be valid when they are required, and to
ensure the operators know how to execute the necessary recovery procedure(s).</t>
      <t>Similarly, many of the prescribed state management options require a high
degree of operator involvement which means one <bcp14>SHOULD</bcp14> consider the costs
associated with training the operator element to ensure processes and procedures
are adhered to and failures caught early and corrected before a catastrophic
loss of security can occur (e.g., accidentally instantiating multiple instances
of a stateful hash-based signature key/state). Note that training is not a
fixed one-time cost either as long lifetimes will necessitate succession
planning amongst the operator element, and training of each successive generation
of participants. Mechanisms also <bcp14>SHOULD</bcp14> be put in place to mitigate the
ever-present insider threat via mechanisms such as M-of-N controls, ensuring
least-privileges amongst participants, and enforcing a segregation of duties to
ensure multiple parties are required to collude to undermine a solution's
security. Note that the segregation of duties <bcp14>MUST</bcp14> persist across successive
generations to ensure participants do not acquire multiple roles over time,
thereby undermining the intended segregation.</t>
      <t>Lastly, costs associated with any external dependencies required by a
particular solution (e.g., access to a public ledger or transparency log,
providing accurate time references and synchronization mechanisms, access to
attestation facilities, etc.) <bcp14>MUST</bcp14> be accounted for as well, particularly if a
system is operating in an offline mode that makes delivering these additional
capabilities all the more complicated and expensive.</t>
    </section>
    <section anchor="requirements-for-secure-state-management">
      <name>Requirements for secure state management</name>
      <t>A system deploying S-HBS <bcp14>SHOULD</bcp14> fulfill certain requirements to allow securely
handling the state. The system <bcp14>MUST</bcp14> ensure that no two signing operations can
ever be issued from the same state. In addition, the generation of a signature
and update of the state <bcp14>SHOULD</bcp14> appear to be an <em>atomic transaction</em>. This means
that the system <bcp14>MUST NOT</bcp14> release a signature without irrevocably and correctly
updating the state.</t>
      <t>These requirements impose significant restrictions on the underlying technical
approach and a careful implementation of how the state will be updated or
synchronized. The abstraction layers of modern systems can make it particularly
difficult to guarantee that no two versions of the same state are present. The
main concerns here are</t>
      <ul spacing="normal">
        <li>
          <t>how the actual storage for the state is implemented,</t>
        </li>
        <li>
          <t>how it is modified,</t>
        </li>
        <li>
          <t>how an accidental/intentional failure/glitch might affect the state security,
and</t>
        </li>
        <li>
          <t>cloning.</t>
        </li>
      </ul>
      <t>A system may have a version of the private key stored in non-volatile memory
(e.g. a disk) and will load it into volatile memory (e.g. RAM) while
processing. Here, an implementer <bcp14>MUST</bcp14> ensure that these are always perfectly
synchronized <xref target="MCGREW"/>, meaning that no parts of the system are allowed to read
any version of the key during procedures which load, write or modify keys. This can be particularly challenging if there are
additional abstraction layers present in the system, like additional caches
which may affect reading/writing the state and its potential existence in
multiple locations.</t>
      <t>Cloning is another concern, as it can easily lead to re-using the same state.
This can happen for instance if a process which issues a signing operation is
forked, and no proper synchronization is enforced in the implementation to
guarantee correct state update. Virtual machine (VM) cloning is another
potential security risk here, as both backing up a VM into non-volatile memory
or live cloning of a VM can easily lead to a state re-use <xref target="MCGREW"/>. With users
shifting workloads to cloud service providers, the issue of VM cloning may
become more prevalent.</t>
      <t>Using dedicated cryptographic hardware is <bcp14>RECOMMENDED</bcp14> to enforce these
requirements, ensure correct behavior and handle the complexity of state
management. In particular, this enables implementing rollback resistant
counters which can be difficult to achieve in a software-only fashion.</t>
      <t>On the verifier side, no state management is required. However, the verifier
needs to trust the signer to not have re-used the state. A verifier <bcp14>MAY</bcp14> want to
check that no state re-use happened in the past by a signer, before accepting a
signature.</t>
      <t>In practice, this can be done if the verifier has access to all signatures
issued by the signer. As the signatures contain the index of the OTS key used,
detecting if an index was used more than once becomes trivial. In practice,
such a (public) data structure which contains all signatures <bcp14>MAY</bcp14> already be
present in some use cases (e.g. certificate transparency <xref target="RFC9162"/>) or could
be built. It is worth noting that while trusting the signer to not re-use the
state is a strong assumption, other signature schemes like ECDSA introduce
similar assumptions for the verifier, by requiring the signer to never re-use
the nonce.</t>
    </section>
    <section anchor="potential-solutions">
      <name>Potential Solutions</name>
      <t>A variety of potential solutions have been proposed both within the
<xref target="SP-800-208"/> specification, as well as from external sources. This section
describes a number of approaches and their potential advantages/disadvantages.</t>
      <section anchor="multiple-public-keys-sp-800-208">
        <name>Multiple Public Keys (SP-800-208)</name>
        <t>The <xref target="SP-800-208"/> proposes generating multiple S-HBS keypairs and configuring
devices and clients to accept signatures created by any of these keys.</t>
        <t>This negatively impacts one of the advantages of using S-HBS by increasing the
public key footprint within the client, which can be problematic if it has
limited public key storage capacity. <xref target="SP-800-208"/> addresses this concern by
suggesting using a mechanism such as that proposed in <xref target="RFC8649"/> to update
the stored public key by having the current key endorse the next key that is to
be installed. Unfortunately, for many constrained devices the public key is
embedded in immutable ROM or fuses due to security reasons, so it cannot be
updated in this manner.</t>
        <t>The proposal of using multiple S-HBS keypairs for a single instance also
generates questions as to how to establish that approach in existing public key
infrastructures. For example, issueing multiple certificates adds the storage
needs of the certificate material to the public key footprint. In order to
alternatively issue multiple public keys encoded inside a single certificate
one would need a standardized format if interoperability is a concern.</t>
      </section>
      <section anchor="nist-dist-multi-tree">
        <name>Distributed Multi-trees (SP-800-208)</name>
        <t>The <xref target="SP-800-208"/> also proposes creating multiple S-HBS keys across multiple
cryptographic modules using a distributed multi-tree approach that is a variant
of the standard hyper-tree based S-HBS schemes HSS and XMSS<sup>MT</sup>. In
this approach trees are instantiated on a root device (HSM<sub>root</sub>), as
well as one or more subordinate devices (HSM<sub>sub[i]</sub>), and the root
tree is used to sign the root nodes of the subordinate trees to synthesize a
multi-level S-HBS key. The root device is only ever used to sign subordinate
device root nodes, while the subordinate device(s) is(are) used to sign
messages. This is relatively straightforward to do using HSS, and <xref target="SP-800-208"/>
describes the necessary algorithmic modifications when using XMSS<sup>MT</sup>.</t>
        <t>One drawback of this approach is the increased signature size as an additional
OTS needs to be generated, effectively doubling the overall signature size.
Another concern is the single point of failure nature of relying on the root
tree module to sign all of the subordinate trees; if the root tree device fails
then no new subordinate trees can be signed. <xref target="SP-800-208"/> suggested that as
many subordinate trees as possible be generated during the initial root key
generation and subordinate-signing procedure. Unfortunately, this can incur a
large capital expenditure to procure all of the necessary devices, many of
which may not be used for a long period of time, if at all. The subordinate
tree root node signing process <bcp14>MUST</bcp14> also be carefully managed to ensure top
level trees are only ever used to sign the root nodes of trusted/approved
subordinate trees to ensure that no malicious signing request is accepted,
which would effectively give a rogue entity the ability to generate valid
signatures, thereby undermining the security of the entire system.</t>
        <t>The <xref target="SP-800-208"/> also suggests combining distributed multi-trees with multiple
root public keys as a means to mitigate some of the concerns regarding having a
single point of failure in the root tree. However, even if a system operator
does everything right, use cases with exceptionally long lifetimes of 10-20+
years (e.g., automotive and aerospace/satellite applications) will require
system operators to rely on devices well beyond their expected lifetimes of
5-10 years, which may constitute an unacceptable business risk.</t>
      </section>
      <section anchor="sectorization">
        <name>Sectorization</name>
        <t>Distributed multi-trees attempt to partition a S-HBS signing space amongst
multiple cryptographic modules by breaking up the signing space along the
boundaries of the subordinate trees generated during the multi-tree key
generation process. An alternative approach would be to use only a single tree,
and partition its signature space along some power-of-2 less than the total
number of leaves in the tree (e.g., 2<sup>s</sup> for a tree of height h &gt; s),
creating N = 2<sup>h-s</sup> partitions or sectors, which are instantiated as N
height-s Merkle trees whose root nodes are considered interior nodes of the
overall height-h Merkle tree. Hence, there is no additional OTS required to
sign their root nodes; their values are used as-is in the underlying S-HBS
scheme's tree ascent mechanism, yielding a common public key (i.e., root node)
for all sectors. Care <bcp14>MUST</bcp14> be taken to ensure that each sector uses the same
root tree identifier (i.e., the "I" value for HSS/LMS and "root" value for
XMSS/XMSS<sup>MT</sup>).</t>
        <t>Each of the N sectors' OTS private key values can be generated pseudo-randomly
from a unique seed value generated from an appropriate source of randomness. The
private keys from different sectors are independent when generated by this process. This
requires that the path information for each sector's root node (i.e., all off-path nodes
between the sector root node and the top level node value) be stored with each
sector's private key at key generation time since a sector will not know the
seed information required to compute any of the other sectors' root nodes
during the tree ascent phase of a signature generation operation. During
signature generation the signer appends the stored path information to the path
information it computes to ascend from the leaf OTS to the sector's root node
(which it can compute given that it knows its own seed value).</t>
        <t>Hence, sectorized key generation results in a single public key value and
2<sup>h-s</sup> private key values, each capable of generating 2<sup>s</sup>
signatures, after which the sectorized key is exhausted.</t>
        <t>In addition to avoiding an increased signature size; when unique seeds are
utilized sectorization breaks a given S-HBS key/state into multiple independent
fragments that can be managed as independent objects. As a result, system
operators <bcp14>MAY</bcp14> distribute sectors to multiple cryptographic devices, allowing
for performance scaling, and resiliency/availability, while only requiring them
to manage the uniqueness of each sector instead of having to co-ordinate state
usage between devices since in this scenario a sector cannot generate
signatures from another sector's signature space.</t>
      </section>
      <section anchor="keystate-transfer">
        <name>Key/State Transfer</name>
        <t>S-HBS key/state transfer between cryptographic modules entails having a means
to migrate one instance of a S-HBS key/state on a source device to a separate
destination device, while ensuring that any copy of the key/state is deleted
from the source device.</t>
        <t>This capability may help alleviate the aforementioned concern regarding
operating devices beyond their expected lifetimes by allowing operators to
migrate S-HBS key/state to a newer device when the original device begins to
approach its end-of-life. However, it still leaves the operator vulnerable to
having the source device fail before the key/state can be transferred,
effectively causing the loss of the key/state. Hence, it will not be of much
help addressing the single point of failure issue identified for root trees,
but may be useful for managing subordinate trees.</t>
        <t>A more elaborate variant of key transfer, going beyond what <xref target="SP-800-208"/>
allows, can be found described in <xref target="alt-backup-mgmt"/> where key transfer is
accomplished using a two-step export and import process with hash-based
transfer validation to yield a more robust transfer mechanism.</t>
      </section>
      <section anchor="key-rotation">
        <name>Key Rotation</name>
        <t>Key rotation, such as that defined in <xref target="RFC8649"/>, would generate new S-HBS
keys on an as-needed basis, and provide a means to transition the system on to
using this new S-HBS key, while generating the next key in the chain in
preparation of a future rotation/update. However, this just shifts the problem
to the PKI and certificate handling.</t>
        <t>Key rotation is not foolproof since in most use cases it will require
redundancy to ensure there is at least one S-HBS signing key available to
attest to newly generated keys. In addition, for many applications the device
keys cannot be updated due to engineering constraints or security reasons.</t>
      </section>
      <section anchor="variable-length-signature-chains">
        <name>Variable-length Signature Chains</name>
        <t>A variant of the key rotation approach is to simply have an available signing
tree endorse a new subordinate tree when it is about to become exhausted (e.g.,
use its final OTS to sign the root node of a new subordinate tree, creating a
{n+1}-layer multi-tree from an {n}-layer multi-tree). This process can in
theory be repeated as many times as necessary. However, this entails having a
multi-tree scheme with a variable number of levels, and hence, variable length
signatures.</t>
        <t>In addition to departing quite significantly from the current S-HBS
specifications and <xref target="SP-800-208"/>, this approach has a number of significant
challenges on both the engineering and operational fronts. Firstly, the
variable length nature of the signature can lead to variable length
verification of signatures, which may cause significant issues for use cases
with strict time constraints (e.g., secure booting of a semiconductor device).
From an operational perspective, the ability of a subordinate tree to sign
either messages or new subordinate trees leads to severe security implications
as the rigor around authorizing those two types of operations will vary
dramatically, leading to either a much more onerous message signing operation,
or a much more risky subordinate tree signing operation. This may put the
system operator in an untenable situation where no users are satisfied with the
resulting solution, and hence, <bcp14>SHOULD NOT</bcp14> be considered as a viable solution.</t>
      </section>
      <section anchor="pre-assigning-states">
        <name>Pre-assigning States</name>
        <t>In some applications, individual one-time signatures (or states) can be
pre-assigned to the to-be-signed objects. This may for example be possible if
the signed objects are monotonically increasingly numbered. One example of such
a use case may be software signing. This solution basically externalizes the
state management to the to-be signed messages.</t>
        <t>Expanding on the given example, for software that is released with strictly
increasing, simple single-position version numbers (i.e., versions 1, 2, 3...),
this can be trivially implemented. As versions have a one-to-one correspondence
to an S-HBS signing state, operators <bcp14>MUST</bcp14> ensure that versions can only be
minted a single time. This <bcp14>MAY</bcp14> require skipping version numbers if a release
process failed, to avoid double-signing.</t>
        <t>This scheme can be adapted to more complicated release schemes: for example,
minor update-releases 1.0 to 1.99 can be accommodated by assigning signatures
1-100 for these version numbers, while release 2.0-2.99 would get signatures
101-200. The assignments <bcp14>MUST</bcp14> be fixed as the scheme is set up, and operators
<bcp14>SHOULD</bcp14> take into account that they are strictly limiting the number of update
releases. In the described solution to state management, one <bcp14>MUST</bcp14> move up a
major release number after 99 minor releases, even if this would break, e.g.,
semantic versioning conventions.</t>
        <t>A variant of pre-assigning signatures is doing this on the basis of time, which
we describe in the next section.</t>
      </section>
      <section anchor="time-based-state-management">
        <name>Time-based State Management</name>
        <t>As a variant of pre-assigning one-time signatures based on external counters,
it is in theory possible to base the selection of one-time signature indexes on
the current date and time. For example, if a given S-HBS instance offers 1024
total signatures, they could be broken up into 8 groups of 128 OTS instances
each, with the first 128 allowed to be used in the first time window, the
second 128 in the second time window, and so on, until the signature space is
effectively exhausted after 8 time windows. Note that a time-based approach to
state management will "waste" any OTS keys that are unused in past time
windows. One <bcp14>MUST NOT</bcp14> attempt to use these keys after the time window has gone
by.</t>
        <t>Any time-based approach has a very strict reliance on accurate time-keeping and
synchronization of clocks. In particular, we identify that at least the
following engineering-related challenges need to be considered:</t>
        <ul spacing="normal">
          <li>
            <t>Signing devices <bcp14>MUST</bcp14> have accurate timekeeping (which is a very challenging
engineering problem <xref target="XKCD1883"/>, <xref target="XKCD2867"/>, <xref target="TIMEFALSEHOODS"/>).</t>
          </li>
          <li>
            <t>Time on signing devices <bcp14>MUST NOT</bcp14> be allowed to ever move backwards, as this
can cause double-signing.</t>
          </li>
          <li>
            <t>Within time windows, signers <bcp14>MUST</bcp14> track the number of signatures produced to
ensure it does not exceed the number allowed within the window.</t>
          </li>
          <li>
            <t>Signing devices <bcp14>MUST</bcp14> still operate consistently with the requirements of
state keeping for S-HBS: the signature index within a time window <bcp14>SHOULD</bcp14>
still appear to be updated atomically, and signatures <bcp14>MUST NOT</bcp14> be released
before state changes have been recorded.</t>
          </li>
          <li>
            <t>A system <bcp14>SHOULD</bcp14> be robust against exhaustion of the number of signatures
available in a time window, as in this case it is <bcp14>REQUIRED</bcp14> to wait until the
next time window starts before new messages can be signed.</t>
          </li>
          <li>
            <t>Time on signing devices <bcp14>SHOULD NOT</bcp14> be allowed to be moved forward maliciously
or accidentally, which would allow for a simple denial-of-service attack by
skipping over portions of the signature space.</t>
          </li>
          <li>
            <t>If a signing device needs to be replaced, the replacement device <bcp14>MUST</bcp14> be set
up with its time in sync with or ahead of the device it is to replace. This
implies the current time on signing devices <bcp14>SHOULD</bcp14> be continuously recorded.</t>
          </li>
          <li>
            <t>Rate limiting <bcp14>MAY</bcp14> need to be considered, as exhausting the available
signatures in a given time window may otherwise be easy.</t>
          </li>
          <li>
            <t>It <bcp14>MAY</bcp14> be necessary for signers to keep a separate clock for time-based state
management, and one for not necessarily monotonically increasing "wall-time",
e.g., if signed artifacts are expected to be time-stamped with real-world time.</t>
          </li>
        </ul>
        <t>If these concerns can not be sufficiently addressed, time-based state
management as described in this paragraph <bcp14>SHOULD NOT</bcp14> be used. Note that this
list of concerns is not exhaustive, and other, unmentioned, concerns may also
be relevant to the security of a time-based solution.</t>
        <t>Time-based systems can be backed up by simply recording the private keys and
the configuration of the time windows. In case of loss of a signing device, a
time-based state management system can be recovered by using this information
to bring online a new device in the next time window. This approach <bcp14>MAY</bcp14> also be
used as a recovery mechanism in the case of (suspected) state consistency
problems during a time window. However, the operator <bcp14>MUST NOT</bcp14> allow new
signatures to be produced before the new time window starts, unless they know
the exact state at which the previous device became unavailable and are able to
set up the new device accordingly. Waiting until the start of the next time
window avoids double signing, as the OTS keys assigned to future time windows
are guaranteed to have not yet been used. However, this might incur significant
downtime of the signing systems. Downtime <bcp14>MAY</bcp14> be avoided by forcibly moving the
signing device to the next time window by incrementing its clock; however, this
induced clock drift will then need to be accounted for in the future. If clock
drift is to be avoided, this approach <bcp14>SHOULD</bcp14> account for availability
considerations.</t>
      </section>
    </section>
    <section anchor="alt-backup-mgmt">
      <name>Backup management beyond NIST SP-800-208</name>
      <t>In this section, an alternative backup mechanism for S-HBS is presented in a
generic form, which makes the strategy applicable for both multi-tree instances
XMSS<sup>MT</sup> and HSS.  However, following the same arguments as in
<xref target="sectorization"/>, with minor modifications, the presented strategy is also
applicable for single-tree instances such as XMSS and LMS.</t>
      <t>The strategy presented in this section builds upon the multi-tree variant
approach from <xref target="SP-800-208"/>, and aims to mitigate its limitations described in
<xref target="nist-dist-multi-tree"/>.  Thus, it is assumed that already a top-level Merkle
tree (for signing the root-nodes of sub-trees) and several bottom-level Merkle
trees (for signing messages) are initiated.  These bottom-level trees <bcp14>MAY</bcp14> be
implemented on different hardware modules in order to obtain redundancy and
improve availability.  Let R be the number of these already initiated
bottom-level trees.  Let h<sub>0</sub> be the height of the top-level-tree.  It
is assumed that R + 1 is strictly smaller than 2<sup>h<sub>0</sub></sup>, the
number of leaves of the top-level tree.</t>
      <t>In this new strategy, after the completed key generation procedure from the
multi-tree variant approach from <xref target="SP-800-208"/>, further bottom-level trees are
generated, one by one, in one of the hardware modules.  These new  bottom-level
trees are each generated from a different seed, which is chosen uniformly at
random.  For the sake of clarity, let us introduce some notation:</t>
      <ul spacing="normal">
        <li>
          <t>S denotes the number of these newly generated bottom-level trees.  Note that
at most 2<sup>h<sub>0</sub></sup> - R new bottom-level trees can be
generated, i.e. S is lower or equal to 2<sup>h<sub>0</sub></sup> - R.  In the
following we suppose that S is <em>strictly smaller</em> than
2<sup>h<sub>0</sub></sup> - R.</t>
        </li>
        <li>
          <t>I<sub>new</sub> denotes the set of indices that belong to these newly
generated bottom-level trees, i.e. I<sub>new</sub> = {R, R+1, ..., R+S-1}. I<sub>new</sub> is zero-indexed here.</t>
        </li>
      </ul>
      <t>For each new bottom-level tree, after it has been generated, the following
steps <bcp14>MUST</bcp14> be performed:</t>
      <ul spacing="normal">
        <li>
          <t>sign the corresponding root node with an unused OTS key from the top-level
tree,</t>
        </li>
        <li>
          <t>securely <em>key export</em> (as decribed in <xref target="keymovement"/>) the seed, which was
used to generate the bottom-level tree,</t>
        </li>
        <li>
          <t>export the signature of the root node, the corresponding OTS key index and
finally the hash of the seed, using appropriate domain separation (i.e.
ensuring there is no domain overlap with the hashes in the S-HBS scheme, and
the hash of the seed includes the public key and leaf index to mitigate
multi-target attacks),</t>
        </li>
        <li>
          <t>irreversibly delete the seed and the bottom-level tree from the hardware
module.</t>
        </li>
      </ul>
      <t>The newly generated bottom-level trees (i.e. those bottom-level trees, whose
indices belong to I<sub>new</sub>) are only used in order to guarantee
availability in the <em>worst-case scenario</em>, where at the same time both</t>
      <ul spacing="normal">
        <li>
          <t>none of the R bottom-level Merkle trees (which were generated according to
the multi-tree variant approach from <xref target="SP-800-208"/>) are available for signing
messages and</t>
        </li>
        <li>
          <t>the top-level Merkle tree (which is used for signing the root-nodes of
sub-trees) is also not available any more.</t>
        </li>
      </ul>
      <t>This scenario may, for example, happen if all hardware modules are broken at
the same time.</t>
      <t>As soon as this worst-case scenario occurs, the newly generated bottom-level
trees (i.e. those bottom-level trees, whose indices belong to I<sub>new</sub>)
need to be initiated in order to ensure availability. In order to do this the
following steps <bcp14>MUST</bcp14> be performed:</t>
      <ul spacing="normal">
        <li>
          <t>initiate a new hardware module</t>
        </li>
        <li>
          <t>securely <em>key import</em> (as decribed in <xref target="keymovement"/>) the first unused seed
into this hardware module</t>
        </li>
        <li>
          <t>generate the bottom-level tree corresponding to the seed</t>
        </li>
        <li>
          <t>irreversibly delete the seed from the backup medium</t>
        </li>
        <li>
          <t>perform a correctness check by letting the hardware module output the hash of
the seed</t>
        </li>
      </ul>
      <t>Now this bottom-level tree can be used to sign messages. As soon as no more OTS
on the bottom-level tree are available or as soon as the hardware module is
broken, the above steps with a new seed from the backup medium can be repeated.</t>
      <t>Note that the resulting signatures generated from these backed up seeds do not
require any special processing on the verifier side. The signature stored
alongside the backed up seed, and the signature generated from the bottom-level
trees created from the backed up seed can be combined to match the format of a
signature over the complete tree.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Further security considerations, which are not already covered in this
document, are given in <xref target="SP-800-208"/>, <xref target="MCGREW"/>, <xref target="FIPS205"/>, <xref target="RFC8391"/> and
<xref target="RFC8554"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="MCGREW" target="https://tubiblio.ulb.tu-darmstadt.de/id/eprint/101633">
          <front>
            <title>State Management for Hash-Based Signatures</title>
            <author initials="D." surname="McGrew">
              <organization/>
            </author>
            <author initials="P." surname="Kampanakis">
              <organization/>
            </author>
            <author initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <author initials="S." surname="Gazdag">
              <organization/>
            </author>
            <author initials="D." surname="Butin">
              <organization/>
            </author>
            <author initials="J." surname="Buchmann">
              <organization/>
            </author>
            <date year="2016" month="November" day="02"/>
          </front>
        </reference>
        <reference anchor="SP-800-208" target="https://doi.org/10.6028/NIST.SP.800-208">
          <front>
            <title>NIST SP 800-208: Recommendation for Stateful Hash-Based Signature Schemes</title>
            <author initials="D." surname="Cooper" fullname="David Cooper">
              <organization/>
            </author>
            <author initials="D." surname="Apon" fullname="David Apon">
              <organization/>
            </author>
            <author initials="Q." surname="Dang" fullname="Quynh Dang">
              <organization/>
            </author>
            <author initials="M." surname="Davidson" fullname="Michael Davidson">
              <organization/>
            </author>
            <author initials="M." surname="Dworkin" fullname="Morris Dworkin">
              <organization/>
            </author>
            <author initials="C." surname="Miller" fullname="Carl Miller">
              <organization/>
            </author>
            <date year="2020" month="October"/>
          </front>
          <seriesInfo name="NIST Special Publication" value=""/>
        </reference>
        <reference anchor="FIPS204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>FIPS 204: Module-Lattice-Based Digital Signature Standard</title>
            <author initials="" surname="National Institute of Standards and Technology">
              <organization/>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
          <seriesInfo name="Federal Information Processing Standards" value=""/>
        </reference>
        <reference anchor="FIPS205" target="https://doi.org/10.6028/NIST.FIPS.205">
          <front>
            <title>FIPS 205: Stateless Hash-Based Digital Signature Standard</title>
            <author initials="" surname="National Institute of Standards and Technology">
              <organization/>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
          <seriesInfo name="Federal Information Processing Standards" value=""/>
        </reference>
        <reference anchor="BH16" target="https://eprint.iacr.org/2016/1042.pdf">
          <front>
            <title>Oops, I did it again – Security of One-Time Signatures under Two-Message Attacks.</title>
            <author initials="L." surname="Bruinderink">
              <organization/>
            </author>
            <author initials="A." surname="Hülsing">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="ETSI-TR-103-692" target="https://www.etsi.org/deliver/etsi_tr/103600_103699/103692/01.01.01_60/tr_103692v010101p.pdf">
          <front>
            <title>State management for stateful authentication mechanisms</title>
            <author initials="" surname="European Telecommunications Standards Institute (ETSI)">
              <organization/>
            </author>
            <date year="2021" month="November"/>
          </front>
        </reference>
        <reference anchor="BSW16" target="https://link.springer.com/chapter/10.1007/978-3-662-49896-5_28">
          <front>
            <title>New Negative Results on Differing-Inputs Obfuscation</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="I." surname="Stepanovss">
              <organization/>
            </author>
            <author initials="B." surname="Waters">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="HBSX509" target="https://www.ietf.org/archive/id/draft-gazdag-x509-hash-sigs-02.html">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Algorithm Identifiers for Hash-based Signatures</title>
            <author initials="K." surname="Bashiri">
              <organization/>
            </author>
            <author initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <author initials="S." surname="Gazdag">
              <organization/>
            </author>
            <author initials="D." surname="Van Geest">
              <organization/>
            </author>
            <author initials="S." surname="Kousidis">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="XKCD2867" target="https://xkcd.com/2867/">
          <front>
            <title>xkcd: DateTime</title>
            <author initials="R." surname="Munroe">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="XKCD1883" target="https://xkcd.com/1883/">
          <front>
            <title>xkcd: Timezones</title>
            <author initials="R." surname="Munroe">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="TIMEFALSEHOODS" target="https://gist.github.com/timvisee/fcda9bbdff88d45cc9061606b4b923ca">
          <front>
            <title>Falsehoods programmers believe about time</title>
            <author initials="T." surname="Visée">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </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="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="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="RFC8649">
          <front>
            <title>Hash Of Root Key Certificate Extension</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>This document specifies the Hash Of Root Key certificate extension. This certificate extension is carried in the self-signed certificate for a trust anchor, which is often called a Root Certification Authority (CA) certificate. This certificate extension unambiguously identifies the next public key that will be used at some point in the future as the next Root CA certificate, eventually replacing the current one.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8649"/>
          <seriesInfo name="DOI" value="10.17487/RFC8649"/>
        </reference>
        <reference anchor="RFC8411">
          <front>
            <title>IANA Registration for the Cryptographic Algorithm Object Identifier Range</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="R. Andrews" initials="R." surname="Andrews"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>When the Curdle Security Working Group was chartered, a range of object identifiers was donated by DigiCert, Inc. for the purpose of registering the Edwards Elliptic Curve key agreement and signature algorithms. This donated set of OIDs allowed for shorter values than would be possible using the existing S/MIME or PKIX arcs. This document describes the donated range and the identifiers that were assigned from that range, transfers control of that range to IANA, and establishes IANA allocation policies for any future assignments within that range.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8411"/>
          <seriesInfo name="DOI" value="10.17487/RFC8411"/>
        </reference>
      </references>
    </references>
    <?line 828?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was inspired by discussions at the 2nd Oxford Post-Quantum
Cryptography Summit 2023.</t>
      <t>We gratefully acknowledge Melissa Azouaoui for her input to this document.</t>
      <t>The abstract and the introduction are based on the introduction in <xref target="HBSX509"/>.
Thanks go to the authors of this document. "Copying always makes things easier
and less error-prone" - <xref target="RFC8411"/>.</t>
    </section>
    <section numbered="false" anchor="contributors">
      <name>Contributors</name>
      <ul spacing="normal">
        <li>
          <t>Jeff Andersen (Google)</t>
        </li>
        <li>
          <t>Bruno Couillard (Crypto4A Technologies)</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9W92ZIbydUffl9PUe65ENsC0AsXkZQ+Sc1t2Bo2yWH3aKSY
mGAUUAmgxEIVppZu9kwwwu/gF/CtX8BXvrLexE/i8ztLZlYB5EjhG/vv/6dh
A6hcTp7ld7as6XSadEVXusfpwcusXU/nWevy9LJYVVnXN659nF52WefSrMrT
J9niQ79NL7IqW7mNq7qDJJvPG3eNh59c7v70IFnQB6u6uX2cFtWyTpK8XlTZ
hmbLm2zZTQvXLafbn/piO13P22mL56fHx0nbzzdF2xZ11d1u6dfnz69epOlX
aVa2NU1WVLnbOvofWsIkPXB50dVNkZX44/zsCf2nbuhf765eHCRVv5m75nGS
09CPk0Vdta5qe9rXkgZzCa39bpI1LqNhL92ib4ru9iC5qZsPq6but/Tp27rt
pt/2WdX1m/S71qXnVfq2qbt6UZftQfLB3dKv88dJOk15/cu+TNeBlK0nJX7x
t4vLS/z31cWlfyDdeIIm167qaZlp+i/OnqZCoIPvacVFtUq/xnP4fJMVJX2+
/WnxZ1B5VjcrfJw1izV9vO66bfv46Ai/wkfFtZvZz47wwdG8qW9ad0TPH+G5
VdGt+zmepHNa9UWeVQt3JKfojw4/LOm/bRdNET8wk2FmRT1+9OjzDDFbd5vy
IEmyvlvXDRO6qOgAr2bp98Vq5RqibJoKW12t6038KW3ncfr228t14cocHyzq
vurAj1drl7523do1JTEs/9gJzWiWzZ/xPzcyzqwqEz/pNzPi7XZdNEWY9Jvs
2q3jj3nWJ5fngwm/dg0d9G000Qc8N5vLc0z+P6/wzWxRb8KMl7P0m3/+j3Je
hgkvicuyKvqYJ/y6rlelG8x5eVN0P8sO43nbzv15xb8eTvWXGQbJaZlhrr8U
m/hDnulpc7vt6ntn6ZVbrKu6rFeFawcTPyWWzrNozn8Um9WfF/JctrvBum+L
vGjjLWbXTd0OvvlXyaqP7FD0K2GPqu6g127rPl0QFddEnNKl7148bdNisy2L
BenD23R+m9IwJFG//Im+Ojm9e+9TegdKjKbrSFwOWc/98p/Cl5X/KvH/fJwk
0TMQ7K/S8+mzmXD7suzXjWum5aadburGTbdZs5m2rmvllzT2w7uPTsIf9+/f
oxHT9OLp1++ef4/PSQFkzcqRwJm8df28mJdFPevL+azrpzmNSXKUd7PcHRX5
kds2RdUdnRyfPLh7V0YQAyDaO2j3lNadslF4MjIK/JQXR/7/9CyfzdKLxdeN
uxl+/JaOONtsaegPcpThKzr9F0KGnc+/zn7Os9XOBE/6rqiGn/4Fny7WxAjy
BSv79JS2OD05mR6fgmaXb6cPj4+np8cP99MtrwvWfifHswfHpw+PXp9fXs0u
3870oZhSB/iOBkxtwPSdIw4jotHEZLSYcpdmDPaRML1crInIrME/T8qndb31
dDHJeJZdF/nwq/DE2bau9v4++kJ//e2MvqpWo19/299W6/gL/fXFTAZqd8a/
KBbrzJXjr6Pnbtg2jR+rm6ZoR1/qQ0+Ji4qy3Nn606wp42/kmN8suppMPB33
6TF/3LqG9BHk7nEqJ7V1C4IH6dueBGPBRwSOeHH+9vL0+N6/wQ54YkaPDJgB
H6YYh/aU96Wbvsq6rlg4PfNnBRk9mjw6+45UR9bkXzj817xIeuq8ammengSz
XvoHW9Y9XvneDnj+9N70+OH05O4OKV643DU8pCqkmqHEwrWs5/zggTT3/33S
3N9HmvuqXEqaKhaH/y9J8+TlyYP9dBHNOiuyRcP0gf4hIt07nW3zZUyXN/W2
naTnaU6CWXRptsqKKv3f/+W/poZAsaM3lZteFRsX6d20J8zbpFc39fSClkZ6
Oj3rOoLa7Wwfvbz0MN1ekY5sekBnWuWH/b85m6Uv//k/S2x6pEex8+dXl+fT
q3fTk+O70wePTvcT4ebmZkYGTDgkdyWZveYIH7zvGiLG3QfHx+/xn0eP+K9H
p0fHJzP+/98/OD7qGvny9Pr4BP9vOybd5Qgxs6r1uBsEoA9VxtMNsUFWFe1m
r8Uabv1535BGJTxwRWwKZd5XOkwbMVfguTugxuGQvU7I2jCLXH7/OR4pifaz
FoxC0BKw5IiWuO0caDM7OT7+3dGj3z2cEn0fnE7vPXr46MH0/vvTgfF57W7o
/1YMKMjutH3ZtSlt9lmxXOJoV9PzatvTZ2/my75VbfdZaSL9/MSV5AO44efn
M6BMstj1dTuy2E8Id9OOG5YG8vv+dv/40ed5YeBV0JIBQQT9rNi8Tz/S41N2
mMhVaslYM94fqJHziqarXJf+bUY/VjWefuNuIbBN1nZNv4CAEAOX5G2Sj7FJ
z+EdFsuC1hmAzNi7/YKaGQL99P8Cr/yVmOprR07RzgMe3NI3f/vm6bPThw9+
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

-->

</rfc>
