<?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.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wiggers-hbs-state-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title abbrev="HBS: State and Backup">Hash-based Signatures: State and Backup Management</title>
    <seriesInfo name="Internet-Draft" value="draft-wiggers-hbs-state-02"/>
    <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="April" day="01"/>
    <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>Discussion Venues</name>
      <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 a {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:
H4sIAAAAAAAAA9V92ZIbydXefT1FuedCbAtAL1xEUvpHam7D1rBJDrtHI8XE
BKOASgAlFqqgWrrZM8EIv4NfwLd+AV/5ynoTP4nPd5bMrALIkcI39m9LYgOo
XE6e5Ttb1nQ6TbqiK93j9OBl1q6n86x1eXpZrKqs6xvXPk4vu6xzaVbl6ZNs
8aHfphdZla3cxlXdQZLN5427xsNPLnd/epAs6INV3dw+TotqWSdJXi+qbEOz
5U227KY3xWrlmna6nrfTFg9Pj0+Ttp9virYt6qq73dJPz59fvUjTr9KsbGua
qahyt3X0XzT/JD1wedHVTZGV+OP87An9T93Qv95dvThIqn4zd83jJKehHyeL
umpd1fa0qSUN5hJa+N2EBm5cRgNfukXfFN3tAX10UzcfVk3db+nz1i3yot1m
3WJ9kHxwt/Rd/jhJpymveNmX6TpQrvWUwy/+enF5if99dXHpH0g3nn400bWr
elraVyn+z2Z8W7fd9Ls+q7p+k37fuvS8St82dVcv6rI90B8LcQ5+oJUW1Sr9
Bs/ad5usKOm77T8Wfypct5zVzcq+yprFmr5ad922fXx0hF/io+LazeynR/jg
aN7UN607ojGO7NlV0a37efS0fDBb1JsjHOGqL/KsWrgjOV1/qvZ8Sf9uu+j5
+KGZDlbU48ePPsMss3W3KQ+SJOu7dd3wkRQVHe7VLP1BfpvQpMJvV+t6E39K
23ycvv3ucl24MscHi7qvOjDq1dqlr123dk1JnMw/dkJPmmXzJ/yXrmRWlYmf
9NsZMX27LpoiTPptdu3W8cc865PL88GE37iGWOI2mugDnpvN5Tk+lj+t8A0I
HWa8nKXf/vN/lPMyTHhJ/JhV0cc84Td1vSrdYM7Lm6L7WXYYz9t27k8r/vVw
qj/PMEhOywxz/bnYxB/yTE+b221X3ztLr9xiXdVlvSpcO5j4KTF/nkVz/r3Y
rP60kOey3Q3WfVuQ9MVbzK6buh1886+SVR/ZoehXwh5V3UHh3dZ9uiAqrok4
pUvfvXjapsVmWxYLUpS36fw2pWFI4n75I311cnr33qf0DrQbTdeRGB2yAvzl
P4UvK/9V4v/5OEmiZ4h3ScGdT5/NhNWXZb9uXDMtN+10Uzduus2azbR1XSu/
pLEf3n10Ev64f/8ejZimF0+/eff8B3xOCiJrVo6kzYSt6+fFvCzqWV/OZ10/
zWlMkqO8m+XuqMiP3LYpqu7o5Pjkwd27MoJYBlHrQe2ntO6UrcWTkbXgp7w4
8v/pWT6bpReLbxp3M/z4LR1xttnS0B/kKMNXdPovhAw7n3+T/Zxnq50JnvRd
UQ0//TM+XayJEeQLNgTpKW1xenICY0OfXr6dPjw+np4eP9xPt7wuWCueHM8e
HJ8+PHp9fnk1u3w704diSh3gOxowtQHTd444jIhGE5NBY8pdmtnYR8L0crEm
IpOW/xIpn9b11tPFJONZdl3kw6/CE2fbutr7++gL/fV3M/qqWo1+/V1/W63j
L/TXFzMZqN0Z/6JYrDNXjr+Onrth2zV+rG6aoh19qQ89JS4qynJn60+zpoy/
kWN+s+hqMv903KfH/HHrGtJHkLvHqZzU1i0IOqRvexKMBR8ROOLF+dvL0+N7
/wY74IkZPTJgBnyYYhzaU96Xbvoq67pi4fTMnxVk8Wjy6Ow7Uh1Zk3/h8F/z
Iump86qleXoSzHrpH2xZ93jlezvg+dN70+OH05O7O6R44XLX8JCqkGqGGwvX
sp7zgwfS3P/3SXN/H2nuq3IpaapYHP6/JM2TlycP9tNFNOusyBYN0wf6h4h0
73S2zZcxXd7U23aSnqc5CWbRpdkqK6r0f/+X/5oaNsWO3lRuelVsXKR3057w
cJNe3dTTC1oa6en0rOsIg7ezffTy0sN0e0U6sukBq2mVH/b/5myWvvzn/yyx
6ZEexc6fX12eT6/eTU+O704fPDrdT4Sbm5sZGTDhkNyVZPaaI3zwvmuIGHcf
HB+/x/88esR/PTo9Oj6Z8f9//+D4qGvky9Pr4xP8v+2YdJcjbM2q1iN0EIA+
VBlPN8QGWVW0m70Wa7j1531DGpXwwBWxKZR5X+kwbcRcgefugBqHQ/Y6IWvD
LHL5w+d4pCTaz1owCkFLRtS0xG3nQJvZyfHx744e/e7hlOj74HR679HDRw+m
99+fDozPa3dD/1kxoCC70/Zl16a02WfFcomjXU3Pq21Pn72ZL/tWtd1npYn0
8xNXkm/ghp+fz4AyyWLX1+3IYj8h3E07blgayCH86/3jR5/nhYG3QUsGBBH0
s2LzPv1Ij0/ZtSKnqiVjzXh/oEbOK5qucl361xn9WNV4+q27hcA2Wds1/QIC
QgxckhtKDsYmPYfnWCwLWmcAMmO39wtqZgj00/8LvPIXYqpvHHlEOw94cEvf
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
mwAA

-->

</rfc>
