<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-x509-slhdsa-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="SLH-DSA for X.509">Internet X.509 Public Key Infrastructure: Algorithm Identifiers for SLH-DSA</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-x509-slhdsa-01"/>
    <author initials="K." surname="Bashiri" fullname="Kaveh Bashiri">
      <organization>BSI</organization>
      <address>
        <email>kaveh.bashiri.ietf@gmail.com</email>
      </address>
    </author>
    <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>CryptoNext Security</organization>
      <address>
        <email>daniel.vangeest@cryptonext-security.com</email>
      </address>
    </author>
    <author initials="S." surname="Kousidis" fullname="Stavros Kousidis">
      <organization>BSI</organization>
      <address>
        <email>kousidis.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="05"/>
    <area>sec</area>
    <workgroup>LAMPS - Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>SLH-DSA</keyword>
    <keyword>SPHINCS+</keyword>
    <keyword>PQ Signatures</keyword>
    <keyword>post-quantum X.509</keyword>
    <abstract>
      <?line 91?>

<t>Digital signatures are used within X.509 Public Key Infrastructure such as X.509 certificates, Certificate Revocation Lists (CRLs), and to sign messages.  This document describes the conventions for using the Stateless Hash-Based Digital Signature Standard (SLH-DSA) in X.509 Public Key Infrastructure.  The conventions for the associated signatures, subject public keys, and private key are also described.</t>
      <t>[EDNOTE: This draft is not expected to be finalized before the NIST PQC Project has standardized FIPS 205 Stateless Hash-Based Digital Signature Standard.  The current FIPS draft was published August 24, 2023 for public review.  Final versions are expected by April 2024. This specification will use object identifiers for the new algorithms that are assigned by NIST, and will use placeholders until these are released.]</t>
      <!-- End of Abstract -->



    </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-ietf-lamps-x509-slhdsa/"/>.
      </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-x509-slhdsa"/>.</t>
    </note>
  </front>
  <middle>
    <?line 99?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Stateless Hash-Based Digital Signatures (SLH-DSA) is a quantum-resistant digital signature scheme standardized in <xref target="FIPS205"/> [EDNOTE: <xref target="FIPS205-ipd"/> until officially published] by the US National Institute of Standards and Technology (NIST) PQC project <xref target="NIST-PQC"/>. This document specifies the use of the SLH-DSA algorithm in Public Key Infrastructure X.509 (PKIX) certificates and Certificate Revocation Lists (CRLs).</t>
      <t>SLH-DSA offers three security levels.  The parameters for each of the security levels were chosen to provide 128 bits of security, 192 bits of security, and 256 bits of security. There are small (s) or fast (f) version of the algorithm, and the option to use SHA-256 <xref target="FIPS180"/> or SHAKE256 <xref target="FIPS202"/>. The fast versions are optimized for key generation and signing speed, they are actually slower at verification than the small parameter sets. For example, id-alg-slh-dsa-shake-256s represents the 256-bit security level, the small version of the algorithm, and the use of SHAKE256.</t>
      <t>Separate algorithm identifiers have been assigned for SLH-DSA at each of these security levels, fast vs small, and SHA-256 vs SHAKE256.</t>
      <t>This specification includes conventions for the encoding of SLH-DSA digital signatures and public keys in the X.509 Public Key Infrastructure.</t>
      <!-- End of introduction section -->

</section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<!-- EDNOTE: [DVG] I added this to my own (unpublished) draft based on draft-ietf-lamps-cms-sphincs-plus. draft-ietf-lamps-dilithium-certificates, on which we are basing this draft doesn't have such an extensive overview section. If draft-ietf-lamps-cms-sphincs-plus gets reduced in scope and refers more to this draft, we could add this text.-->
<!--
# SLH-DSA Hash-based Signature Algorithm Overview

SLH-DSA is a hash-based signature scheme which consists of a few time signature construction, namely Forest of Random Subsets (FORS) and a hypertree.  FORS signs a message with a private key.  The corresponding FORS public keys are the leaves in k binary trees.  The roots of these trees are hashed together to form a FORS root.  SLH-DSA uses a one-time signature scheme called WOTS+. The FORS tree roots are signed by a WOTS+ one-time signature private key.  The corresponding WOTS+ public keys form the leaves in d-layers of Merkle subtrees in the SLH-DSA hypertree.  The bottom layer of that hypertree signs the FORS roots with WOTS+. The root of the bottom Merkle subtrees are then signed with WOTS+ and the corresponding WOTS+ public keys form the leaves of the next level up subtree.  Subtree roots are consequently signed by their corresponding subtree layers until we reach the top subtree.  The top layer subtree forms the hypertree root which is trusted at the verifier.

A SLH-DSA signature consists of the FORS signature, the WOTS+ signature in each layer, and the path to the root of each subtree until the root of the hypertree is reached.

A SLH-DSA signature is verified by verifying the FORS signature, the WOTS+ signatures and the path to the root of each subtree.  When reaching the root of the hypertree, the signature verifies only if it hashes to the pre-trusted root of the SLH-DSA hypertree.

SLH-DSA is a stateless hash-based signature algorithm.  Stateful hash-based signature schemes require that the WOTS+ private key (generated by using a state index) is never reused or the scheme loses it security.  Although its security decreases, FORS which is used at the bottom of the SLH-DSA hypertree does not collapse if the same private key used to sign two or more different messages like in stateful hash-based signature schemes.  Without the need for state kept by the signer to ensure it is not reused, SLH-DSA is much less fragile.

SLH-DSA was designed to sign up to 2^64 messages and offers three security levels.  The parameters of the SLH-DSA hypertree include the security parameter, the hash function, the tree height, the number of layers of subtrees, the Winternitz parameter of WOTS+, the number of FORS trees and leaves in each.  The parameters for each of the security levels were chosen to provide 128 bits of security, 192 bits of security, and 256 bits of security.
-->

</section>
    <section anchor="sec-alg-ids">
      <name>Algorithm Identifiers</name>
      <t>This specification uses placeholders for object identifiers until the identifiers for the new algorithms are assigned by NIST.</t>
      <t>The AlgorithmIdentifier type, which is included herein for convenience, is defined as follows:</t>
      <artwork><![CDATA[
    AlgorithmIdentifier  ::=  SEQUENCE  {
        algorithm   OBJECT IDENTIFIER,
        parameters  ANY DEFINED BY algorithm OPTIONAL
    }

    |  NOTE: The above syntax is from [RFC5280] and matches the
    |  version used therein, i.e., the 1988 ASN.1 syntax.  See
    |  [RFC5912] for ASN.1 copmatible with the 2015 ASN.1 syntax.
]]></artwork>
      <t>The fields in AlgorithmIdentifier have the following meanings:</t>
      <ul spacing="normal">
        <li>
          <t>algorithm identifies the cryptographic algorithm with an object identifier.</t>
        </li>
        <li>
          <t>parameters, which are optional, are the associated parameters for the algorithm identifier in the algorithm field.</t>
        </li>
      </ul>
      <t>The OIDs are:</t>
      <artwork><![CDATA[
   nistAlgorithms OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
     country(16) us(840) organization(1) gov(101) csor(3) 4 }

   sigAlgs OBJECT IDENTIFIER ::= { nistAlgorithms 3 }

   id-alg-slh-dsa-sha2-128s OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-sha2-128f OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-sha2-192s OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-sha2-192f OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-sha2-256s OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-sha2-256f OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-shake-128s OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-shake-128f OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-shake-192s OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-shake-192f OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-shake-256s OBJECT IDENTIFIER ::= { sigAlgs TBD }

   id-alg-slh-dsa-shake-256f OBJECT IDENTIFIER ::= { sigAlgs TBD }
]]></artwork>
      <t>The contents of the parameters component for each algorithm are absent.</t>
    </section>
    <section anchor="slh-dsa-signatures-in-pkix">
      <name>SLH-DSA Signatures in PKIX</name>
      <t>SLH-DSA is a digital signature scheme built upon hash functions. The security of SLH-DSA relies on the presumed difficulty of finding preimages for hash functions as well as several related properties of the same hash functions.</t>
      <t>Signatures are used in a number of different ASN.1 structures.  As shown in the ASN.1 representation from <xref target="RFC5280"/> below, in an X.509 certificate, a signature is encoded with an algorithm identifier in the signatureAlgorithm attribute and a signatureValue attribute that contains the actual signature.</t>
      <artwork><![CDATA[
    Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }
]]></artwork>
      <t>Signatures are also used in the CRL list ASN.1 representation from <xref target="RFC5280"/> below.  In a X.509 CRL, a signature is encoded with an algorithm identifier in the signatureAlgorithm attribute and a signatureValue attribute that contains the actual signature.</t>
      <artwork><![CDATA[
    CertificateList  ::=  SEQUENCE  {
        tbsCertificate       TBSCertList,
        signatureAlgorithm   AlgorithmIdentifier,
        signatureValue       BIT STRING  }
]]></artwork>
      <t>The identifiers defined in <xref target="sec-alg-ids"/> can be used as the AlgorithmIdentifier in the signatureAlgorithm field in the sequence Certificate/CertificateList and the signature field in the sequence TBSCertificate/TBSCertList in certificates CRLs, respectively, <xref target="RFC5280"/>.  The parameters of these signature algorithms are absent, as explained in <xref target="sec-alg-ids"/>.</t>
      <t>The signatureValue field contains the corresponding SLH-DSA signature computed upon the ASN.1 DER encoded tbsCertificate <xref target="RFC5280"/>.</t>
      <t>Conforming Certification Authority (CA) implementations <bcp14>MUST</bcp14> specify the algorithms explicitly by using the OIDs specified in <xref target="sec-alg-ids"/> when encoding SLH-DSA signatures in certificates and CRLs.  Conforming client implementations that process certificates and CRLs using SLH-DSA <bcp14>MUST</bcp14> recognize the corresponding OIDs. Encoding rules for SLH-DSA signature values are specified <xref target="sec-alg-ids"/>.</t>
      <t>When any of the id-alg-slh-dsa-* 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, the id-alg-slh-dsa-* OID.</t>
    </section>
    <section anchor="sec-pub-keys">
      <name>SLH-DSA Public Keys in PKIX</name>
      <t>In the X.509 certificate, the subjectPublicKeyInfo field has the SubjectPublicKeyInfo type, which has the following ASN.1 syntax:</t>
      <artwork><![CDATA[
    SubjectPublicKeyInfo  ::=  SEQUENCE  {
        algorithm         AlgorithmIdentifier,
        subjectPublicKey  BIT STRING
    }
]]></artwork>
      <t>The fields in SubjectPublicKeyInfo have the following meanings:</t>
      <ul spacing="normal">
        <li>
          <t>algorithm is the algorithm identifier and parameters for the public key (see above).</t>
        </li>
        <li>
          <t>subjectPublicKey contains the byte stream of the public key.</t>
        </li>
      </ul>
      <t><xref target="I-D.draft-ietf-lamps-cms-sphincs-plus"/> defines the following public key identifiers for SLH-DSA:</t>
      <artwork><![CDATA[
   pk-slh-dsa-sha2-128s PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-sha2-128s
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-sha2-128f PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-sha2-128f
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-sha2-192s PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-sha2-192s
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-sha2-192f PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-sha2-192f
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-sha2-256s PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-sha2-256s
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-sha2-256f PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-sha2-256f
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-shake-128s PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-shake-128s
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-shake-128f PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-shake-128f
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-shake-192s PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-shake-192s
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-shake-192f PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-shake-192f
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-shake-256s PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-shake-256s
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   pk-slh-dsa-shake-256f PUBLIC-KEY ::= {
      IDENTIFIER id-alg-slh-dsa-shake-256f
      -- KEY no ASN.1 wrapping --
      CERT-KEY-USAGE
         { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
      -- PRIVATE-KEY no ASN.1 wrapping -- }

   SLH-DSA-PublicKey ::= OCTET STRING
]]></artwork>
      <t>Section 9.1 of <xref target="FIPS205"/> defines the raw octet string encoding of an SLH-DSA
public key as the concatenation of the PK.seed and PK.root values. The octet
string length is 2*n bytes, where n is 16, 24, or 32, depending on the parameter
set. When used in a SubjectPublicKeyInfo type, the subjectPublicKey BIT STRING
contains the raw octet string encodings of the public keys.</t>
      <t><xref target="I-D.draft-ietf-lamps-cms-sphincs-plus"/> defines the SLH-DSA-PublicKey ASN.1 OCTET STRING type for encoding a public key
when not used in a SubjectPublicKeyInfo. The OCTET STRING is mapped to a
subjectPublicKey (a value of type BIT STRING) as follows: the most significant
bit of the OCTET STRING value becomes the most significant bit of the BIT
STRING value, and so on; the least significant bit of the OCTET STRING
becomes the least significant bit of the BIT STRING.</t>
      <t>The id-alg-slh-dsa-* identifiers defined in <xref target="sec-alg-ids"/> <bcp14>MUST</bcp14> be used as the algorithm field in the SubjectPublicKeyInfo sequence <xref target="RFC5280"/> to identify a SLH-DSA public key.</t>
      <t>The following is an example of a [TODO: pick an OID] public key encoded using the textual encoding defined in <xref target="RFC7468"/>.</t>
      <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
TODO
-----END PUBLIC KEY-----
]]></artwork>
      <t>Conforming CA implementations <bcp14>MUST</bcp14> specify the X.509 public key algorithm explicitly by using the OIDs specified in <xref target="sec-alg-ids"/> when using SLH-DSA public keys in certificates and CRLs.  Conforming client implementations that process SLH-DSA public keys when processing certificates and CRLs <bcp14>MUST</bcp14> recognize the corresponding OIDs.</t>
    </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; see Section 4.2.1.3 of <xref target="RFC5280"/>.  If the keyUsage extension is present in a certificate that indicates an id-alg-slh-dsa-* identifier in the SubjectPublicKeyInfo, then the at least one of following <bcp14>MUST</bcp14> be present:</t>
      <artwork><![CDATA[
    digitalSignature; or
    nonRepudiation; or
    keyCertSign; or
    cRLSign.
]]></artwork>
      <t>Requirements about the keyUsage extension bits defined in <xref target="RFC5280"/> still apply.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC5280"/> applies accordingly.</t>
      <t>Implementations <bcp14>MUST</bcp14> protect the private keys.  Compromise of the
private keys may result in the ability to forge signatures.</t>
      <t>When generating an SLH-DSA key pair, an implementation <bcp14>MUST</bcp14> generate
each key pair independently of all other key pairs in the SLH-DSA
hypertree.</t>
      <t>A SLH-DSA tree <bcp14>MUST NOT</bcp14> be used for more than 2^64 signing
operations.</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, and <xref target="RFC4086"/> offers important guidance
in this area.</t>
      <t>When computing signatures, the same hash function <bcp14>SHOULD</bcp14> be used to
compute the message digest of the content and the signed attributes,
if they are present.</t>
      <t>When computing signatures, implementations <bcp14>SHOULD</bcp14> include protections
against fault injection attacks <xref target="CMP2018"/>,<xref target="SLotH"/>.  Protections against these
attacks include signature verification prior to releasing the
signature value to confirm that no error injected and generating the
signature a few times to confirm that the same signature value is
produced each time.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>For the ASN.1 Module in the Appendix of this document, IANA is
requested to assign an object identifier (OID) for the module
identifier (TBD1) with a Description of "id-mod-x509-slh-dsa-2024". The
OID for the module should be allocated in the "SMI Security for PKIX
Module Identifier" registry (1.3.6.1.5.5.7.0).</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS205">
          <front>
            <title>TBD</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="FIPS205-ipd" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.205.ipd.pdf">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2023" month="August" day="24"/>
          </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"/>
            <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>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="I-D.draft-ietf-lamps-cms-sphincs-plus">
          <front>
            <title>Use of the SLH-DSA 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="3" month="July" year="2024"/>
            <abstract>
              <t>   SLH-DSA is a stateless hash-based signature scheme.  This document
   specifies the conventions for using the SLH-DSA 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-06"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NIST-PQC" target="https://csrc.nist.gov/projects/post-quantum-cryptography">
          <front>
            <title>Post-Quantum Cryptography Project</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2016" month="December" day="20"/>
          </front>
        </reference>
        <reference anchor="CMP2018" target="https://link.springer.com/chapter/10.1007/978-3-319-79063-3_8">
          <front>
            <title>Grafting Trees: A Fault Attack Against the SPHINCS Framework</title>
            <author initials="L." surname="Castelnovi" fullname="Laurent Castelnovi">
              <organization/>
            </author>
            <author initials="" surname="A, Martinelli" fullname="Ange Martinelli">
              <organization/>
            </author>
            <author initials="T." surname="Prest" fullname="Thomas Prest">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="vol 10786"/>
          <seriesInfo name="PQCrypto" value="2018"/>
          <seriesInfo name="Post-Quantum Cryptography" value="pp. 165-184"/>
        </reference>
        <reference anchor="SLotH" target="https://eprint.iacr.org/2024/367.pdf">
          <front>
            <title>Accelerating SLH-DSA by Two Orders of Magnitude with a Single Hash Unit</title>
            <author initials="M-J." surname="Saarinen" fullname="M-J. Saarinen">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="FIPS180" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf">
          <front>
            <title>Secure Hash Standard</title>
            <author fullname="Quynh H. Dang" surname="Dang">
              <organization>Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="July" year="2015"/>
          </front>
          <seriesInfo name="NIST Federal Information Processing Standards Publications" value="180-4"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.180-4"/>
        </reference>
        <reference anchor="FIPS202" target="http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf">
          <front>
            <title>SHA-3 Standard:  Permutation-Based Hash and Extendable-Output Functions</title>
            <author fullname="Morris J. Dworkin" initials="M." surname="Dworkin">
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <author fullname="Morris J. Dworkin" surname="Dworkin">
              <organization>Information Technology Laboratory</organization>
            </author>
            <author>
              <organization abbrev="NIST">National Institute of Standards and Technology</organization>
              <address>
                <postal>
                  <country>US</country>
                  <city>Gaithersburg</city>
                </postal>
              </address>
            </author>
            <date month="August" year="2015"/>
          </front>
          <seriesInfo name="FIPS" value="PUB 202"/>
          <seriesInfo name="NIST Federal Information Processing Standards Publications" value="202"/>
          <seriesInfo name="DOI" value="10.6028/nist.fips.202"/>
          <seriesInfo name="DOI" value="10.6028/NIST.FIPS.202"/>
        </reference>
        <reference anchor="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Schiller" initials="J." surname="Schiller"/>
            <author fullname="S. Crocker" initials="S." surname="Crocker"/>
            <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="I-D.ietf-lamps-dilithium-certificates">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Algorithm Identifiers for ML-DSA</title>
            <author fullname="Jake Massimo" initials="J." surname="Massimo">
              <organization>AWS</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="5" month="February" year="2024"/>
            <abstract>
              <t>   Digital signatures are used within X.509 certificates, Certificate
   Revocation Lists (CRLs), and to sign messages.  This document
   describes the conventions for using the Module-Lattice-Based Digital
   Signatures (ML-DSA) in Internet X.509 certificates and certificate
   revocation lists.  The conventions for the associated signatures,
   subject public keys, and private key are also described.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-dilithium-certificates-03"/>
        </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 425?>

<section anchor="sec-asn1">
      <name>ASN.1 Module</name>
      <t>RFC EDITOR: Please replace TBD2 with the value assigned by IANA during the publication of <xref target="I-D.draft-ietf-lamps-cms-sphincs-plus"/>.</t>
      <sourcecode markers="true"><![CDATA[
X509-SLH-DSA-Module-2024
  { iso(1) identified-organization(3) dod(6) internet(1) security(5)
    mechanisms(5) pkix(7) id-mod(0) id-mod-x509-slh-dsa-2024(TBD1) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

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

  pk-slh-dsa-sha2-128s, pk-slh-dsa-sha2-128f, pk-slh-dsa-sha2-192s,
  pk-slh-dsa-sha2-192f, pk-slh-dsa-sha2-256s, pk-slh-dsa-sha2-256f,
  pk-slh-dsa-shake-128s, pk-slh-dsa-shake-128f, pk-slh-dsa-shake-192s,
  pk-slh-dsa-shake-192f, pk-slh-dsa-shake-256s, pk-slh-dsa-shake-256f,
  sa-slh-dsa-sha2-128s, sa-slh-dsa-sha2-128f, sa-slh-dsa-sha2-192s,
  sa-slh-dsa-sha2-192f, sa-slh-dsa-sha2-256s, sa-slh-dsa-sha2-256f,
  sa-slh-dsa-shake-128s, sa-slh-dsa-shake-128f, sa-slh-dsa-shake-192s,
  sa-slh-dsa-shake-192f, sa-slh-dsa-shake-256s, sa-slh-dsa-shake-256f
    FROM SLH-DSA-Module-2024  -- in [I-D.draft-ietf-lamps-cms-sphincs-plus]
    { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
      id-smime(16) id-mod(0) id-mod-slh-dsa-2024(TBD2) } ;

--
-- Expand SignatureAlgorithms from RFC 5912
--
SignatureAlgorithms SIGNATURE-ALGORITHM ::= {
   sa-slh-dsa-sha2-128s |
   sa-slh-dsa-sha2-128f |
   sa-slh-dsa-sha2-192s |
   sa-slh-dsa-sha2-192f |
   sa-slh-dsa-sha2-256s |
   sa-slh-dsa-sha2-256f |
   sa-slh-dsa-shake-128s |
   sa-slh-dsa-shake-128f |
   sa-slh-dsa-shake-192s |
   sa-slh-dsa-shake-192f |
   sa-slh-dsa-shake-256s |
   sa-slh-dsa-shake-256f,
   ... }

--
-- Expand PublicKeyAlgorithms from RFC 5912
--
PublicKeyAlgorithms PUBLIC-KEY ::= {
   pk-slh-dsa-sha2-128s |
   pk-slh-dsa-sha2-128f |
   pk-slh-dsa-sha2-192s |
   pk-slh-dsa-sha2-192f |
   pk-slh-dsa-sha2-256s |
   pk-slh-dsa-sha2-256f |
   pk-slh-dsa-shake-128s |
   pk-slh-dsa-shake-128f |
   pk-slh-dsa-shake-192s |
   pk-slh-dsa-shake-192f |
   pk-slh-dsa-shake-256s |
   pk-slh-dsa-shake-256f,
   ... }

END
]]></sourcecode>
    </section>
    <section anchor="security-strengths">
      <name>Security Strengths</name>
      <t>Instead of defining the strength of a quantum algorithm in a traditional manner using precise estimates of the number of bits of security, NIST has instead elected to define a collection of broad security strength categories.  Each category is defined by a comparatively easy-to-analyze reference primitive that cover a range of security strengths offered by existing NIST standards in symmetric cryptography, which NIST expects to offer significant resistance to quantum cryptanalysis.  These categories describe any attack that breaks the relevant security definition that must require computational resources comparable to or greater than those required for: Level 1 - key search on a block cipher with a 128-bit key (e.g., AES128), Level 2 - collision search on a 256-bit hash function (e.g., SHA256/ SHA3-256), Level 3 - key search on a block cipher with a 192-bit key (e.g., AES192), Level 4 - collision search on a 384-bit hash function (e.g.  SHA384/SHA3-384), Level 5 - key search on a block cipher with a 256-bit key (e.g., AES 256).</t>
      <t>The parameter sets defined for NIST security levels 1, 3 and 5 are listed in <xref target="tab-strengths"/>, along with the resulting signature size, public key, and private key sizes in bytes.</t>
      <table anchor="tab-strengths">
        <name>SLH-DSA security strengths</name>
        <thead>
          <tr>
            <th align="left">OID</th>
            <th align="left">NIST Level</th>
            <th align="left">Sig.</th>
            <th align="left">Pub. Key</th>
            <th align="left">Priv. Key</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">id-alg-slh-dsa-sha2-128s</td>
            <td align="left">1</td>
            <td align="left">7856</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-sha2-128f</td>
            <td align="left">1</td>
            <td align="left">17088</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-sha2-192s</td>
            <td align="left">3</td>
            <td align="left">16224</td>
            <td align="left">48</td>
            <td align="left">96</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-sha2-192f</td>
            <td align="left">3</td>
            <td align="left">35664</td>
            <td align="left">48</td>
            <td align="left">96</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-sha2-256s</td>
            <td align="left">5</td>
            <td align="left">29792</td>
            <td align="left">64</td>
            <td align="left">128</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-sha2-256f</td>
            <td align="left">5</td>
            <td align="left">49856</td>
            <td align="left">64</td>
            <td align="left">128</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-shake-128s</td>
            <td align="left">1</td>
            <td align="left">7856</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-shake-128f</td>
            <td align="left">1</td>
            <td align="left">17088</td>
            <td align="left">32</td>
            <td align="left">64</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-shake-192s</td>
            <td align="left">3</td>
            <td align="left">16224</td>
            <td align="left">48</td>
            <td align="left">96</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-shake-192f</td>
            <td align="left">3</td>
            <td align="left">35664</td>
            <td align="left">48</td>
            <td align="left">96</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-shake-256s</td>
            <td align="left">5</td>
            <td align="left">29792</td>
            <td align="left">64</td>
            <td align="left">128</td>
          </tr>
          <tr>
            <td align="left">id-alg-slh-dsa-shake-256f</td>
            <td align="left">5</td>
            <td align="left">49856</td>
            <td align="left">64</td>
            <td align="left">128</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Much of the structure and text of this document is based on <xref target="I-D.ietf-lamps-dilithium-certificates"/>. The remainder comes from <xref target="I-D.draft-ietf-lamps-cms-sphincs-plus"/>. Thanks to those authors, and the ones they based their work on, for making our work earier. "Copying always makes things easier and less error prone" - <xref target="RFC8411"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
