<?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.5 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wiggers-hbs-state-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.19.4 -->
  <front>
    <title abbrev="HBS: State and Backup">Hash-based Signatures: State and Backup Management</title>
    <seriesInfo name="Internet-Draft" value="draft-wiggers-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="2024" month="February" day="19"/>
    <keyword>stateful hash-based signatures</keyword>
    <keyword>XMSS</keyword>
    <keyword>LMS</keyword>
    <keyword>state management</keyword>
    <abstract>
      <?line 159?>

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

<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>These issues lead to new requirements that most developers will not be familiar
with and that require careful handling in practice. Due to these challenges,
most applications should use stateless alternatives like SLH-DSA <xref target="FIPS205"/>
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>
      <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>
    <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>direct and cryptographically protected migration of private key
and state material from one signing device to another signing device.</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 <bcp14>MUST</bcp14> 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 human involvement which means one <bcp14>SHOULD</bcp14> consider the costs
associated with training the human 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 human 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"/>. 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 can be generated with a unique seed value to
cryptographically isolate the sectors from each other, though 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}.</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>
      <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>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 800-208" value=""/>
        </reference>
        <reference anchor="FIPS205" target="https://doi.org/10.6028/NIST.FIPS.205.ipd">
          <front>
            <title>FIPS 205 (draft): Stateless Hash-Based Digital Signature Standard</title>
            <author initials="" surname="National Institute of Standards and Technology">
              <organization/>
            </author>
            <date year="2023" month="August" day="24"/>
          </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 811?>

<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:
H4sIAAAAAAAAA81925bbxtXmPZ4C076I+g/JPkhWJCXxn9bJ6tgtyep2nCwv
Ly2QKJKIQIDBoVttL6017zAvMLfzAnM1V5M3mSeZ/e1DVQGk2smam8n/226S
AKpq1z58+1SYTqdJV3Sle5IevMra9XSetS5PL4tVlXV949on6WWXdS7Nqjx9
mi0+9Nv0Iquyldu4qjtIsvm8cde4+enl7qUHyYK+WNXN7ZO0qJZ1kuT1oso2
NFreZMtuelOsVq5pp+t5O21x8/T4OGn7+aZo26KuutstXXr+4uplmn6RZmVb
00hFlbuto3/R+JP0wOVFVzdFVuLD+dlT+k/d0F/vrl4eJFW/mbvmSZLTo58k
i7pqXdX2tKglPcwlNPH7CT24cRk9+NIt+qbobg/oq5u6+bBq6n5L37dukRft
NusW64Pkg7ul3/InSTpNecbLvkzXgXKtpxyu+OvF5SX+++3Fpb8h3Xj60UDX
ruppal+k+J+N+LZuu+l3fVZ1/Sb9vnXpeZW+bequXtRle6AXC3EOfqCZFtUq
/Rr32m+brCjpt+0/Fn8qXLec1c3KfsqaxZp+Wnfdtn1ydIQr8VVx7WZ26RG+
OJo39U3rjugZR3bvqujW/Ty6W76YLerNEbZw1Rd5Vi3ckeyu31W7v6S/2y66
P75ppg8r6vHtR59hltm625QHSZL13bpueEuKijb3apb+INcmNKjw29W63sTf
0jKfpG+/u1wXrszxxaLuqw6MerV26WvXrV1TEifzxU7oSaNs/oR/6UxmVZn4
Qb+ZEdO366IpwqDfZNduHX/Noz69PB8M+LVriCVuo4E+4L7ZXO7jbfnTCr+A
0GHEy1n6zT//Zzkvw4CXxI9ZFX3NA35d16vSDca8vCm6n2WF8bht5/604quH
Q/15hofkNM0w1p+LTfwlj/Ssud129YOz9Mot1lVd1qvCtYOBnxHz51k05t+L
zepPC7kv211g3bcFSV+8xOy6qdvBL/8qWfWWHYp+IexR1R0U3m3dpwui4pqI
U7r03ctnbVpstmWxIEV5m85vU3oMSdwv/0k/nZzef/ApvQftRsN1JEaHrAB/
+S/hx8r/lPg/nyRJdA/xLim48+nzmbD6suzXjWum5aadburGTbdZs5m2rmvl
Snr2o/uPT8KHL798QE9M04tnX7978QO+JwWRNStH0mbC1vXzYl4W9awv57Ou
n+b0TJKjvJvl7qjIj9y2Karu6OT45OH9+/IEsQyi1oPaT2neKVuLpyNrwXd5
ceT/6V4+n6UXi68bdzP8+i1tcbbZ0qM/yFaGn2j3XwoZdr7/Ovs5z1Y7Azzt
u6IafvtnfLtYEyPID2wI0lNa4vTkZHp8Cppdvp0+Oj6enh4/2k+3vC5YK54c
zx4enz46en1+eTW7fDvTm2JKvXPET0QiGobMF9Pp0ozEPoKll4s1kfRuuj2r
660ngonB8+y6yIc/hTvOtnW19/roB736uxn9VK1GV3/X31br+Ae9+mImD2p3
nn9RLNaZK8c/R/fdsKEa31Y3TdGOftSbnhHLFGW5s/RnWVPGv8ievll0Ndl6
2tvTY/66dQ0pHwjZkxRbll5u3YJwQvq2JylYyA7ZHtIdL8/fXp4ef/lv8ADu
mNEts2Kbx1xwgB9oIl+m91icD1WESte2MRs8L8jk0YQiduhId2RNfvB5hnjN
E6e7zquWxutJMuulv7Fl5eO17+2A6U/vT48fTU8f7JDnpctdw49UjVQz3ljQ
fKHo/MNBpqevTh7up5Hoj1mRLRqmFaSMCPbgdLbNlzF93tTbdpKepzlxZNGl
2SorqvT//Nf/lhoCw4reVG56VWxcpF3SnlBfk17d1NMLmhppo/Ss6whptrN9
9PJsw3T7ljRB0wM80iw/7L/mbJa++uf/KrHokbbAyl9cXZ5Pr95NT47vTx8+
Pt1PhJubmxmpaeGW3JWk3JsjfPG+a4gY9x8eH7/Hfx4/5k+PT4+OT2b8/+8f
Hh91jfx4en18gv/bjkl3OUKQrGI8DgUB6Etj7g2xQVYV7Wavfhku/UXfkCoh
q3dFbAol1lf6mDZirsBz90CNwyF7nZBOZRa5/OFzPFIS7WctGIUAFONGmuK2
c6DN7OT4+HdHj3/3aEr0fXg6ffD40eOH0y/fnw5U7Gt3Q/+s2GySvm37smtT
WuzzYrnE1q6m59W2p+/ezJd9K0v4vDSRYnrqSkLAbvj9+QxYiuxSfd2O7NJT
Qpe04oalgdyev355/PjzvDDA1DRlGFqx8Ss2YtOPdPuUHQhyHVoySYxqB+rk
vKLhKtelf53Rxaq/0m/cLQS2ydqu6RcQEGLgkpwtgtGb9Bz+UbEsaJ7BXI+d
uzvUzBDOpv8PVvkvxFRfO8L9Ozd4CEe//PWbZ89PHz383X5KfvywyJlbcMnR
gDj4Ceatc9AWd6zoHZmTvmpqZ8OdPHp0/1eGwyX7hsNQP9fVnRQcjHd1fvHi
5dm3ly9evXnz/HL/qKui7WaRR9UVm+uide5oucizx/N5vlw+epQ/+HKxeHz8
8OTh8cP5g/nj0/uLbGh74NmuCZe36bapV01GeIR4YE6qyJHEZPO67+jiO0lF
DtRfivaf/4OmPp1O6R5isWzRJcm/BGbSe5dTkovDtCXklWYtvN9J+uqS/gV/
GBYqwR9/aPvtVxdXfzjCfwm3b+ZFRTDTNR8IdXcNsUxKXsp6ryW49+aKBujq
hNZIgMNFfje5aVkHnz6lD0RS8qLFxLT0XzEXCuBLbMCUdASN9w/xthOaBmkP
OHfp91VZfHA0seoassRGt/V2PFfj7QdOW1n+JOXlk/tw7ZJMff6uTj84t01B
xw8wbzdrAkwprYK+v235YtojV9HUXD4B1fKa5NxBK1SYLEiRkHpPWwJBdmOa
lSV56ZDwFdvzWZJcrQvcvOjZPih92tTcbAYI9nNLMEBNLoIjBWCA6HzoDBot
Ab40xIE7O0ALsgz0qSU8Bd27THO3LetbzLK9JRdyo3vQOHKXSDUzPWZJ5EDQ
PbwUpo1+4KsmxICLss/xLHLexAfDB7qocTkBAGwnrTzZQAcTnKM7CPSkCOwU
bBO6elssJjzZG0fb1C562q62JqplWyJHRtvUYkPUv8Mqs7atCRt2xM5kjwhZ
knkiDvjBcdCJ1tcummLO10YXyCorR3fR4+bMcHV57fJk7oh+dKlrOmCbaNx2
XfdljouN4C6fiZhtipzmA2+UFH5T56TUYbv+fxM6Wk/d0LwTWrNJ32eFwRhh
AzIwr7mU1FBF/E//igQwUQFMvQASjRa8adcIUZEozBCaKZgtibiEcgLzEgvc
kBkXgNh2pP0SZnMOFAIeCCMyz0UYE5/5lpKZF1Y4XfYV0528qJaJOcFltwki
AoSZoUIBshERqBtWLvO+KJlh52VNwg3J0cVMgwYqImiNvRhALJEqBuwz1R7Q
XxAwmPAcNP+Fww3w+j99mtgncvvpE6+VXZwfgy/7E6sCR1tUXEPKoC1oyZmK
o0jNsqiKDqxIHM2rZuRtSgmPzapYOAjqQaMp3lAlBsXW/ouababqafgc+qa7
3UKr0D7RD4i2OInkEN7HNOplR0/ABS5n6tOuffw9bXrSOIJ9kD94Ei1v6fv3
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
uCDckPxfa8ts5j2YAAA=

-->

</rfc>
