<?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.6.29 (Ruby 3.1.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-gazdag-x509-hash-sigs-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="Hash-based Signatures for X.509">Internet X.509 Public Key Infrastructure: Algorithm Identifiers for Hash-based Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-gazdag-x509-hash-sigs-01"/>
    <author initials="S." surname="Fluhrer" fullname="Scott Fluhrer">
      <organization>Cisco Systems</organization>
      <address>
        <email>sfluhrer@cisco.com</email>
      </address>
    </author>
    <author initials="S." surname="Gazdag" fullname="Stefan Gazdag">
      <organization>genua GmbH</organization>
      <address>
        <email>ietf@gazdag.de</email>
      </address>
    </author>
    <author initials="D." surname="Van Geest" fullname="Daniel Van Geest">
      <organization>ISARA Corporation</organization>
      <address>
        <email>daniel.vangeest@isara.com</email>
      </address>
    </author>
    <author initials="S." surname="Kousidis" fullname="Stavros Kousidis">
      <organization>BSI</organization>
      <address>
        <email>stavros.kousidis@bsi.bund.de</email>
      </address>
    </author>
    <date year="2023" month="April" day="26"/>
    <area>sec</area>
    <workgroup>LAMPS - Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies algorithm identifiers and ASN.1 encoding formats for the
Hash-Based Signature (HBS) schemes Hierarchical Signature System (HSS), eXtended
Merkle Signature Scheme (XMSS), and XMSS^MT, a multi-tree variant of XMSS, as
well as SPHINCS+, the latter being the only stateless scheme. This specification
applies to the Internet X.509 Public Key infrastructure (PKI) when those digital
signatures are used in Internet X.509 certificates and certificate revocation
lists.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-gazdag-x509-hash-sigs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        LAMPS Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/x509-hbs/draft-gazdag-x509-hash-sigs"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Hash-Based Signature (HBS) Schemes combine Merkle trees with One/Few Time
Signatures (OTS/FTS) in order to provide digital signature schemes that remain
secure even when quantum computers become available. There 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 computer
resistant information and communication technology.</t>
      <t>The private key of HSS, XMSS and XMSS^MT is a finite collection of OTS keys,
hence only a limited number of messages can be signed and the private key's
state must be updated and persisted after signing to prevent reuse of OTS keys.
Due to thise statefulness of the private key and the limited number of
signatures that can be created, these signature algorithms might not be
appropriate for use in interactive protocols. While the right selection of
algorithm parameters would allow a private key to sign a virtually unbounded
number of messages (e.g. 2^60), this is at the cost of a larger signature size
and longer signing time. Since these algorithms are already known to be secure
against quantum attacks, and because roots of trust are generally long-lived and
can take longer to be deployed than end-entity certificates, these signature
algorithms are more appropriate to be used in root and subordinate CA
certificates. They are also appropriate in non-interactive contexts such as code
signing. In particular, there are multi-party IoT ecosystems where publicly
trusted code signing certificates are useful.</t>
      <t>The private key of SPHINCS+ is a finite but very large collection of FTS keys
and hence stateless. This typically comes at the cost of larger signatures
compared to the stateful HBS variants. Thus SPHINCS+ is suitable for more
use-cases if the signature sizes fit the requirements.</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>
      <t>The parameter 'n' is the security parameter, given in bytes. In practice this
is typically aligned to the standard output length of the hash function in use,
i.e. either 24, 32 or 64 bytes. The height of a single tree is typically given
by the parameter 'h'. The number of levels of trees is either called 'L' (HSS)
or 'd' (XMSS, XMSS^MT, SPHINCS+).</t>
    </section>
    <section anchor="subject-public-key-algorithms">
      <name>Subject Public Key Algorithms</name>
      <t>Certificates conforming to <xref target="RFC5280"/> can convey a public key for any public key
algorithm. The certificate indicates the algorithm through an algorithm
identifier. An algorithm identifier consists of an OID and optional parameters.</t>
      <t>In this document, we define new OIDs for identifying the different hash-based
signature algorithms. An additional OID is defined in <xref target="RFC8708"/> and repeated
here for convenience. For all of the OIDs, the parameters <bcp14>MUST</bcp14> be absent.</t>
      <section anchor="hss-public-keys">
        <name>HSS Public Keys</name>
        <t>The object identifier and public key algorithm identifier for HSS is defined in
<xref target="RFC8708"/>. The definitions are repeated here for reference.</t>
        <t>The object identifier for an HSS public key is <tt>id-alg-hss-lms-hashsig</tt>:</t>
        <artwork><![CDATA[
id-alg-hss-lms-hashsig  OBJECT IDENTIFIER ::= {
   iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
   smime(16) alg(3) 17 }
]]></artwork>
        <t>Note that the <tt>id-alg-hss-lms-hashsig</tt> algorithm identifier is also referred to
as <tt>id-alg-mts-hashsig</tt>. This synonym is based on the terminology used in an
early draft of the document that became <xref target="RFC8554"/>.</t>
        <t>The HSS public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-HSS-LMS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-hss-lms-hashsig
   KEY HSS-LMS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The HSS public key is defined as follows:</t>
        <artwork><![CDATA[
HSS-LMS-HashSig-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="RFC8554"/> for more information on the contents and format of an HSS public
key. Note that the single-tree signature scheme LMS is instantiated as HSS with
level L=1.</t>
      </section>
      <section anchor="xmss-public-keys">
        <name>XMSS Public Keys</name>
        <t>The object identifier for an XMSS public key is <tt>id-alg-xmss-hashsig</tt>:</t>
        <artwork><![CDATA[
id-alg-xmss-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmss(13) 0 }
]]></artwork>
        <t>The XMSS public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-XMSS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmss-hashsig
   KEY XMSS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The XMSS public key is defined as follows:</t>
        <artwork><![CDATA[
XMSS-HashSig-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="RFC8391"/> for more information on the contents and format of an XMSS public
key.</t>
      </section>
      <section anchor="xmssmt-public-keys">
        <name>XMSS^MT Public Keys</name>
        <t>The object identifier for an XMSS^MT public key is <tt>id-alg-xmssmt-hashsig</tt>:</t>
        <artwork><![CDATA[
id-alg-xmssmt-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmssmt(14) 0 }
]]></artwork>
        <t>The XMSS^MT public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-XMSSMT-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmssmt-hashsig
   KEY XMSSMT-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The XMSS^MT public key is defined as follows:</t>
        <artwork><![CDATA[
XMSSMT-HashSig-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="RFC8391"/> for more information on the contents and format of an XMSS^MT
public key.</t>
      </section>
      <section anchor="sphincs-public-keys">
        <name>SPHINCS+ Public Keys</name>
        <t>The object and public key algorithm identifiers for SPHINCS+ are defined in
<xref target="I-D.ietf-lamps-cms-sphincs-plus"/>. The definitions are repeated here for
reference.</t>
        <artwork><![CDATA[
id-alg-sphincs-plus-128 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-192 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-256 OBJECT IDENTIFIER ::= {
   TBD }
]]></artwork>
        <t>The SPHINCS+ public key identifier is as follows:</t>
        <artwork><![CDATA[
pk-sphincs-plus-128 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-128
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
     { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

pk-sphincs-plus-192 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-192
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
     { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

pk-sphincs-plus-256 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-256
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }
]]></artwork>
        <t>The SPHINCS+ public key is defined as follows:</t>
        <artwork><![CDATA[
SPHINCS-Plus-PublicKey ::= OCTET STRING
]]></artwork>
        <t>See <xref target="SP-Sub"/> for more information on the contents and format of a SPHINCS+
public key.</t>
      </section>
    </section>
    <section anchor="key-usage-bits">
      <name>Key Usage Bits</name>
      <t>The intended application for the key is indicated in the keyUsage certificate
extension.</t>
      <t>If the keyUsage extension is present in an end-entity certificate that
indicates id-alg-xmss-hashsig or id-alg-xmssmt-hashsig in SubjectPublicKeyInfo,
then the keyUsage extension <bcp14>MUST</bcp14> contain one or both of the following values:</t>
      <artwork><![CDATA[
nonRepudiation; and
digitalSignature.
]]></artwork>
      <t>If the keyUsage extension is present in a certification authority certificate
that indicates id-alg-xmss-hashsig or id-alg-xmssmt-hashsig, then the keyUsage
extension <bcp14>MUST</bcp14> contain one or more of the following values:</t>
      <artwork><![CDATA[
nonRepudiation;
digitalSignature;
keyCertSign; and
cRLSign.
]]></artwork>
      <t><xref target="RFC8708"/> defines the key usage for id-alg-hss-lms-hashsig, which is the same
as for the keys above.</t>
    </section>
    <section anchor="signature-algorithms">
      <name>Signature Algorithms</name>
      <t>This section identifies OIDs for signing using HSS, XMSS, XMSS^MT, and
SPHINCS+. When these algorithm identifiers appear in the algorithm field as an
AlgorithmIdentifier, the encoding <bcp14>MUST</bcp14> omit the parameters field. That is, the
AlgorithmIdentifier <bcp14>SHALL</bcp14> be a SEQUENCE of one component, one of the OIDs
defined below.</t>
      <t>The data to be signed is prepared for signing. For the algorithms used in this
document, the data is signed directly by the signature algorithm, the data is
not hashed before processing. Then, a private key operation is performed to
generate the signature value. For HSS, the signature value is described in
section 6.4 of <xref target="RFC8554"/>. For XMSS and XMSS^MT the signature values are
described in sections B.2 and C.2 of <xref target="RFC8391"/>, respectively. For SPHINCS+ the
signature values are described in <xref target="SP-Sub"/>. The octet string representing the
signature is encoded directly in the BIT STRING without adding any additional
ASN.1 wrapping. For the Certificate and CertificateList structures, the
signature value is wrapped in the "signatureValue" BIT STRING field.</t>
      <section anchor="hss-signature-algorithm">
        <name>HSS Signature Algorithm</name>
        <t>The HSS public key OID is also used to specify that an HSS signature was
generated on the full message, i.e. the message was not hashed before being
processed by the HSS signature algorithm.</t>
        <artwork><![CDATA[
id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= {
   iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
   smime(16) alg(3) 17 }
]]></artwork>
        <t>The HSS signature is defined as follows:</t>
        <artwork><![CDATA[
HSS-LMS-HashSig-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="RFC8554"/> for more information on the contents and format of an HSS
signature.</t>
      </section>
      <section anchor="xmss-signature-algorithm">
        <name>XMSS Signature Algorithm</name>
        <t>The XMSS public key OID is also used to specify that an XMSS signature was
generated on the full message, i.e. the message was not hashed before being
processed by the XMSS signature algorithm.</t>
        <artwork><![CDATA[
id-alg-xmss-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmss(13) 0 }
]]></artwork>
        <t>The XMSS signature is defined as follows:</t>
        <artwork><![CDATA[
XMSS-HashSig-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="RFC8391"/> for more information on the contents and format of an XMSS
signature.</t>
      </section>
      <section anchor="xmssmt-signature-algorithm">
        <name>XMSS^MT Signature Algorithm</name>
        <t>The XMSS^MT public key OID is also used to specify that an XMSS^MT signature
was generated on the full message, i.e. the message was not hashed before being
processed by the XMSS^MT signature algorithm.</t>
        <artwork><![CDATA[
id-alg-xmssmt-hashsig  OBJECT IDENTIFIER ::= {
   itu-t(0) identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmssmt(14) 0 }
]]></artwork>
        <t>The XMSS^MT signature is defined as follows:</t>
        <artwork><![CDATA[
XMSSMT-HashSig-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="RFC8391"/> for more information on the contents and format of an XMSS^MT
signature.</t>
      </section>
      <section anchor="sphincs-signature-algorithm">
        <name>SPHINCS+ Signature Algorithm</name>
        <t>The SPHINCS+ public key OID is also used to specify that a SPHINCS+ signature
was generated on the full message, i.e. the message was not hashed before being
processed by the SPHINCS+ signature algorithm.</t>
        <artwork><![CDATA[
id-alg-sphincs-plus-128 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-192 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-256 OBJECT IDENTIFIER ::= {
   TBD }
]]></artwork>
        <t>The SPHINCS+ signature is defined as follows:</t>
        <artwork><![CDATA[
SPHINCS-Plus-Signature ::= OCTET STRING
]]></artwork>
        <t>See <xref target="SP-Sub"/> for more information on the contents and format of a SPHINCS+
signature.</t>
      </section>
    </section>
    <section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <t>For reference purposes, the ASN.1 syntax is presented as an ASN.1 module here.
This ASN.1 Module builds upon the conventions established in <xref target="RFC5911"/>.</t>
      <artwork><![CDATA[
--
-- ASN.1 Module
--

<CODE STARTS>

Hashsigs-pkix-0 -- TBD - IANA assigned module OID

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  PUBLIC-KEY, SIGNATURE-ALGORITHM
  FROM AlgorithmInformation-2009
    {iso(1) identified-organization(3) dod(6) internet(1) security(5)
    mechanisms(5) pkix(7) id-mod(0) id-mod-algorithmInformation-02(58)} ;

--
-- Object Identifiers
--

-- id-alg-hss-lms-hashsig is defined in [RFC8708]

id-alg-hss-lms-hashsig OBJECT IDENTIFIER ::= { iso(1)
   member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
   smime(16) alg(3) 17 }

id-alg-xmss-hashsig  OBJECT IDENTIFIER ::= { itu-t(0)
   identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmss(13) 0 }

id-alg-xmssmt-hashsig  OBJECT IDENTIFIER ::= { itu-t(0)
   identified-organization(4) etsi(0) reserved(127)
   etsi-identified-organization(0) isara(15) algorithms(1)
   asymmetric(1) xmssmt(14) 0 }

id-alg-sphincs-plus-128 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-192 OBJECT IDENTIFIER ::= {
   TBD }

id-alg-sphincs-plus-256 OBJECT IDENTIFIER ::= {
   TBD }

--
-- Signature Algorithms and Public Keys
--

-- sa-HSS-LMS-HashSig is defined in [RFC8708]

sa-HSS-LMS-HashSig SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-hss-lms-hashsig
   PARAMS ARE absent
   PUBLIC-KEYS { pk-HSS-LMS-HashSig }
   SMIME-CAPS { IDENTIFIED BY id-alg-hss-lms-hashsig } }

sa-XMSS-HashSig SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-xmss-hashsig
   PARAMS ARE absent
   PUBLIC-KEYS { pk-XMSS-HashSig }
   SMIME-CAPS { IDENTIFIED BY id-alg-xmss-hashsig } }

sa-XMSSMT-HashSig SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-xmssmt-hashsig
   PARAMS ARE absent
   PUBLIC-KEYS { pk-XMSSMT }
   SMIME-CAPS { IDENTIFIED BY id-alg-xmssmt-hashsig } }

-- sa-sphincs-plus-128 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

sa-sphincs-plus-128 SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-sphincs-plus-128
   PARAMS ARE absent
   PUBLIC-KEYS { pk-sphincs-plus-128 }
   SMIME-CAPS { IDENTIFIED BY id-alg-sphincs-plus-128 } }

-- sa-sphincs-plus-192 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

sa-sphincs-plus-192 SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-sphincs-plus-192
   PARAMS ARE absent
   PUBLIC-KEYS { pk-sphincs-plus-192 }
   SMIME-CAPS { IDENTIFIED BY id-alg-sphincs-plus-192 } }

-- sa-sphincs-plus-256 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

sa-sphincs-plus-256 SIGNATURE-ALGORITHM ::= {
   IDENTIFIER id-alg-sphincs-plus-256
   PARAMS ARE absent
   PUBLIC-KEYS { pk-sphincs-plus-256 }
   SMIME-CAPS { IDENTIFIED BY id-alg-sphincs-plus-256 } }

-- pk-HSS-LMS-HashSig is defined in [RFC8708]

pk-HSS-LMS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-hss-lms-hashsig
   KEY HSS-LMS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

HSS-LMS-HashSig-PublicKey ::= OCTET STRING

pk-XMSS-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmss-hashsig
   KEY XMSS-HashSig-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

XMSS-HashSig-PublicKey ::= OCTET STRING

pk-XMSSMT-HashSig PUBLIC-KEY ::= {
   IDENTIFIER id-alg-xmssmt-hashsig
   KEY XMSSMT-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

XMSSMT-HashSig-PublicKey ::= OCTET STRING

-- pk-sphincs-plus-128 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

pk-sphincs-plus-128 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-128
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

-- pk-sphincs-plus-192 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

pk-sphincs-plus-192 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-192
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

-- pk-sphincs-plus-256 is defined in [I-D.ietf-lamps-cms-sphincs-plus]

pk-sphincs-plus-256 PUBLIC-KEY ::= {
   IDENTIFIER id-alg-sphincs-plus-256
   KEY SPHINCS-Plus-PublicKey
   PARAMS ARE absent
   CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign } }

SPHINCS-Plus-PublicKey ::= OCTET STRING

END

<CODE ENDS>
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="algorithm-security-considerations">
        <name>Algorithm Security Considerations</name>
        <t>The cryptographic security of the signatures generated by the algorithms
mentioned in this document depends only on the hash algorithms used within the
signature algorithms and the pre-hash algorithm used to create an X.509
certificate's message digest. Grover's algorithm [Grover96] is a quantum search
algorithm which gives a quadratic improvement in search time to brute-force
pre-image attacks. The results of [BBBV97] show that this improvement is
optimal, however [Fluhrer17] notes that Grover's algorithm doesn't parallelize
well. Thus, given a bounded amount of time to perform the attack and using a
conservative estimate of the performance of a real quantum computer, the
pre-image quantum security of SHA-256 is closer to 190 bits. All parameter
sets for the signature algorithms in this document currently use SHA-256
internally and thus have at least 128 bits of quantum pre-image resistance, or
190 bits using the security assumptions in [Fluhrer17].</t>
        <t>[Zhandry15] shows that hash collisions can be found using an algorithm with a
lower bound on the number of oracle queries on the order of 2^(n/3) on the
number of bits, however [DJB09] demonstrates that the quantum memory
requirements would be much greater. Therefore a parameter set using SHA-256
would have at least 128 bits of quantum collision-resistance as well as the
pre-image resistance mentioned in the previous paragraph.</t>
        <t>Given the quantum collision and pre-image resistance of SHA-256 estimated
above, the current parameter sets used by <tt>id-alg-hss-lms-hashsig</tt>,
<tt>id-alg-xmss-hashsig</tt> and <tt>id-alg-xmssmt-hashsig</tt> provide 128 bits or more of
quantum security. This is believed to be secure enough to protect X.509
certificates for well beyond any reasonable certificate lifetime.</t>
      </section>
      <section anchor="implementation-security-considerations">
        <name>Implementation Security Considerations</name>
        <t>Implementations <bcp14>MUST</bcp14> protect the private keys. Compromise of the private keys
may result in the ability to forge signatures. Along with the private key, the
implementation <bcp14>MUST</bcp14> keep track of which leaf nodes in the tree have been used.
Loss of integrity of this tracking data can cause a one-time key to be used
more than once. As a result, when a private key and the tracking data are
stored on non- volatile media or stored in a virtual machine environment, care
must be taken to preserve confidentiality and integrity.</t>
        <t>The generation of private keys relies on random numbers. The use of inadequate
pseudo-random number generators (PRNGs) to generate these values can result in
little or no security. An attacker may find it much easier to reproduce the
PRNG environment that produced the keys, searching the resulting small set of
possibilities, rather than brute force searching the whole key space. The
generation of quality random numbers is difficult. <xref target="RFC4086"/> offers important
guidance in this area.</t>
        <t>The generation of hash-based signatures also depends on random numbers. While
the consequences of an inadequate pseudo-random number generator (PRNG) to
generate these values is much less severe than the generation of private keys,
the guidance in <xref target="RFC4086"/> remains important.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign a module OID from the "SMI for PKIX Module
Identifier" registry for the ASN.1 module in Section 6.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC5911">
          <front>
            <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and S/MIME</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) format, and many associated formats, are expressed using ASN.1.  The current ASN.1 modules conform to the 1988 version of ASN.1.  This document updates those ASN.1 modules to conform to the 2002 version of ASN.1.  There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5911"/>
          <seriesInfo name="DOI" value="10.17487/RFC5911"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet.  An overview of this approach and model is provided as an introduction.  The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms.  Standard certificate extensions are described and two Internet-specific extensions are defined.  A set of required certificate extensions is specified.  The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions.  An algorithm for X.509 certification path validation is described.  An ASN.1 module and examples are provided in the appendices.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC8391">
          <front>
            <title>XMSS: eXtended Merkle Signature Scheme</title>
            <author fullname="A. Huelsing" initials="A." surname="Huelsing">
              <organization/>
            </author>
            <author fullname="D. Butin" initials="D." surname="Butin">
              <organization/>
            </author>
            <author fullname="S. Gazdag" initials="S." surname="Gazdag">
              <organization/>
            </author>
            <author fullname="J. Rijneveld" initials="J." surname="Rijneveld">
              <organization/>
            </author>
            <author fullname="A. Mohaisen" initials="A." surname="Mohaisen">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="M. Curcio" initials="M." surname="Curcio">
              <organization/>
            </author>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <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="I-D.ietf-lamps-cms-sphincs-plus">
          <front>
            <title>Use of the SPHINCS+ Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Amazon Web Services</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="21" month="November" year="2022"/>
            <abstract>
              <t>   SPHINCS+ is a stateless hash-based signature scheme.  This document
   specifies the conventions for using the SPHINCS+ stateless hash-based
   signature algorithm with the Cryptographic Message Syntax (CMS).  In
   addition, the algorithm identifier and public key syntax are
   provided.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-sphincs-plus-01"/>
        </reference>
        <reference anchor="SP-Sub">
          <front>
            <title>SPHINCS+ - Submission to the 3rd round of the NIST post-quantum project. v3.1</title>
            <author initials="J." surname="Aumasson">
              <organization/>
            </author>
            <author initials="D. J." surname="Bernstein">
              <organization/>
            </author>
            <author initials="W." surname="Beullens">
              <organization/>
            </author>
            <author initials="C." surname="Dobraunig">
              <organization/>
            </author>
            <author initials="M." surname="Eichlseder">
              <organization/>
            </author>
            <author initials="S." surname="Fluhrer">
              <organization/>
            </author>
            <author initials="S." surname="Gazdag">
              <organization/>
            </author>
            <author initials="A." surname="Huelsing">
              <organization/>
            </author>
            <author initials="P." surname="Kampanakis">
              <organization/>
            </author>
            <author initials="S." surname="Koelb">
              <organization/>
            </author>
            <author initials="T." surname="Lange">
              <organization/>
            </author>
            <author initials="M. M." surname="Lauridsen">
              <organization/>
            </author>
            <author initials="F." surname="Mendel">
              <organization/>
            </author>
            <author initials="R." surname="Niederhagen">
              <organization/>
            </author>
            <author initials="C." surname="Rechberger">
              <organization/>
            </author>
            <author initials="J." surname="Rijneveld">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="B." surname="Westerbaan">
              <organization/>
            </author>
            <date year="2021" month="June" day="10"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="RFC3279">
          <front>
            <title>Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="L. Bassham" initials="L." surname="Bassham">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="April" year="2002"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for digital signatures and subject public keys used in the Internet X.509 Public Key Infrastructure (PKI).  Digital signatures are used to sign certificates and certificate revocation list (CRLs).  Certificates include the public key of the named subject.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3279"/>
          <seriesInfo name="DOI" value="10.17487/RFC3279"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd">
              <organization/>
            </author>
            <author fullname="J. Schiller" initials="J." surname="Schiller">
              <organization/>
            </author>
            <author fullname="S. Crocker" initials="S." surname="Crocker">
              <organization/>
            </author>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts.  However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities.  The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult.  This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities.  It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications.  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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </reference>
        <reference anchor="RFC4506">
          <front>
            <title>XDR: External Data Representation Standard</title>
            <author fullname="M. Eisler" initials="M." role="editor" surname="Eisler">
              <organization/>
            </author>
            <date month="May" year="2006"/>
            <abstract>
              <t>This document describes the External Data Representation Standard (XDR) protocol as it is currently deployed and accepted.  This document obsoletes RFC 1832.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="67"/>
          <seriesInfo name="RFC" value="4506"/>
          <seriesInfo name="DOI" value="10.17487/RFC4506"/>
        </reference>
        <reference anchor="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves.  The signature algorithms covered are Ed25519 and Ed448.  The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="RFC8411">
          <front>
            <title>IANA Registration for the Cryptographic Algorithm Object Identifier Range</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <author fullname="R. Andrews" initials="R." surname="Andrews">
              <organization/>
            </author>
            <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>
        <reference anchor="RFC8708">
          <front>
            <title>Use of the HSS/LMS Hash-Based Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document specifies the conventions for using the Hierarchical Signature System (HSS) / Leighton-Micali Signature (LMS) hash-based signature algorithm with the Cryptographic Message Syntax (CMS).  In addition, the algorithm identifier and public key syntax are provided.  The HSS/LMS algorithm is one form of hash-based digital signature; it is described in RFC 8554.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8708"/>
          <seriesInfo name="DOI" value="10.17487/RFC8708"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks for Russ Housley and Panos Kampanakis for helpful suggestions.</t>
      <t>This document uses a lot of text from similar documents (<xref target="RFC3279"/> and
<xref target="RFC8410"/>) as well as <xref target="RFC8708"/>. Thanks go to the authors of those documents.
"Copying always makes things easier and less error prone" - <xref target="RFC8411"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
SFOSK1s+SGpJZHdInEodgcH8BNXFFPKawHFTqMeSHh/2//a6f3HUR4mjAuAW
D/yPpUvSh6ouyAp3N5agE7ZmE4hMFJuNphBu9NtsEzk8NKXGGtW6LBpRWb2q
mWYFYBSPgRqoFOQULrmtbjeURmvfMdwwRlUhfCeo0vM08aXWhMvIbJ3Ud9nm
0vT7EQkyRS9rqmNmHzSTKzOTSRi6SDUa3pooUe3qsELbnnf2kLdVCYzArLUP
NICkdLO+VWSBan7Y2aXPj+D/Ajom4W1cf80lbXeGSzNXGdNQSZrmqCFeRimT
/SZ+JjOuYe0F6gjSNg7NFrMdaLivgFrrStAq/+GgCINU7EnyjMraAAKL/VWF
m5l+p9sUbKemR86mgiG6+n2mNGFnWn2sITSIhoBWoW6rHPIjjthycTSmVda+
GxxKY6XOluep4Erajn0E1L+0NEUyW0GrkLsVulS4stI6ycOwaC1oc9owwsf2
CX7D1xWeuqmYVXt8bEynPl21lXJnsfv/sdY9WsP5IeXPSlBfrPxZaVZVs9ms
IKv1p/toCH3zG6rIynwbdOTPVym9n4rVqoL30q9PLIQ0KRhGhzt1bKW2c181
w8+q3hzUmi+uabUp71K2P2Vt8v4655Tffgutw/LbiuKVOcNGzWtaKX9c9arP
fkPVW59zk+79WUp291O1WvHio4r2eYoXNT2zHe7nSZBjt/SJu7kPepXOE21z
OjtSL2EB+85ZWUu7lrLvI4Jkm55o0efOYLqEYTEyr9AtO8ykxsY1Repkeyvw
wM1bqyCeZ/+r42xf0f9/Obo87gPPetej4V9tjmKcGAjzRr3zdvBzFJfHB72L
HmBu1zwWbTAf89lx/2RwMcD2piEfnF+dDY4gPR31Xg1JNof9V4MLM7D/89Ul
zMZhkfeNeQLD8YlVjqpM1+bDwauL3uj1dd/rnb26vB6MTs/tqJPry/PKvAeV
WL3dnZ39sr723uZ+m3wlBNkgCVrPt023WywzHF00XrWelS4TrLg4IwdPOfKm
9QLhesAI48rxL080obSz23r2cvsD/2ZVLpdmW8A5UliTDozYkPFuaKp5TJZs
02NW0vkFsuSH5mVlhCwj5u8lUFZ52cPD/++XKjf8/zlCS93Omips5O/djboV
y9NirYXnTqtrGN/gvh7Z+7NxX6HylkNQsIa2ow/FSDrM6x31rnBgOfExP/xl
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
RaYpUAdGHcst7nGLCfZB/B/y3oZ87VcAAA==

-->

</rfc>
