<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-cms-ml-dsa-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="ML-DSA in CMS">Use of the ML-DSA Signature Algorithm in the Cryptographic Message Syntax (CMS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-ml-dsa-01"/>
    <author fullname="Ben Salter">
      <organization>UK National Cyber Security Centre</organization>
      <address>
        <email>ben.s3@ncsc.gov.uk</email>
      </address>
    </author>
    <author fullname="Adam Raine">
      <organization>UK National Cyber Security Centre</organization>
      <address>
        <email>adam.r@ncsc.gov.uk</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>
    <date year="2024" month="November" day="22"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>cms</keyword>
    <keyword>ml-dsa</keyword>
    <keyword>dilithium</keyword>
    <abstract>
      <?line 94?>

<t>The Module-Lattice-Based Digital Signature Algorithm (ML-DSA), as defined in FIPS 204, is a post-quantum digital signature scheme that aims to be secure against an adversary in possession of a Cryptographically Relevant Quantum Computer (CRQC).
This document specifies the conventions for using the ML-DSA signature algorithm with the Cryptographic Message Syntax (CMS).
In addition, the algorithm identifier and public key syntax are provided.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://lamps-wg.github.io/cms-ml-dsa/draft-ietf-lamps-cms-ml-dsa.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-lamps-cms-ml-dsa/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME 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/lamps-wg/cms-ml-dsa"/>.</t>
    </note>
  </front>
  <middle>
    <?line 101?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Module-Lattice-Based Digital Signature Algorithm (ML-DSA) is a digital signature algorithm standardised by NIST as part of their post-quantum cryptography standardization process.
It is intended to be secure against both "traditional" cryptographic attacks, as well as attacks utilising a quantum computer.
It offers smaller signatures and significantly faster runtimes than SLH-DSA <xref target="FIPS205"/>, an alternative post-quantum signature algorithm also standardised by NIST.
This document specifies the use of the ML-DSA in CMS at three security levels: ML-DSA-44, ML-DSA-65, and ML-DSA-87.  See <xref section="B" sectionFormat="of" target="I-D.ietf-lamps-dilithium-certificates"/> for more information on the security levels and key sizes of ML-DSA.</t>
      <t>Prior to standardisation, ML-DSA was known as Dilithium.  ML-DSA and Dilithium are not compatible.</t>
      <t>For each of the ML-DSA parameter sets, an algorithm identifier OID has been specified.</t>
      <t><xref target="FIPS204"/> also specifies a pre-hashed variant of ML-DSA, called HashML-DSA.
HashML-DSA is not used in CMS.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="ml-dsa-algorithm-identifiers">
      <name>ML-DSA Algorithm Identifiers</name>
      <t>Many ASN.1 data structure types use the AlgorithmIdentifier type to identify cryptographic algorithms.
In CMS, AlgorithmIdentifiers are used to identify ML-DSA signatures in the signed-data content type.
They may also appear in X.509 certificates used to verify those signatures.
The same AlgorithmIdentifiers are used to identify ML-DSA public keys and signature algorithms.
<xref target="I-D.ietf-lamps-dilithium-certificates"/> describes the use of ML-DSA in X.509 certificates.
The AlgorithmIdentifier type is defined as follows:</t>
      <sourcecode type="asn.1"><![CDATA[
AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
        SEQUENCE {
            algorithm   ALGORITHM-TYPE.&id({AlgorithmSet}),
            parameters  ALGORITHM-TYPE.
                   &Params({AlgorithmSet}{@algorithm}) OPTIONAL
        }
]]></sourcecode>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5911"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>. See <xref target="RFC5280"/> for the 1988 ASN.1 syntax.</t>
      </aside>
      <t>The fields in the AlgorithmIdentifier type have the following meanings:</t>
      <dl>
        <dt>algorithm:</dt>
        <dd>
          <t>The algorithm field contains an OID that identifies the cryptographic algorithm in use.
The OIDs for ML-DSA are described below.</t>
        </dd>
        <dt>parameters:</dt>
        <dd>
          <t>The parameters field contains parameter information for the algorithm identified by the OID in the algorithm field.
Each ML-DSA parameter set is identified by its own algorithm OID, so there is no relevant information to include in this field.
As such, parameters <bcp14>MUST</bcp14> be omitted when encoding an ML-DSA AlgorithmIdentifier.</t>
        </dd>
      </dl>
      <t>The object identifiers for ML-DSA are defined in the NIST Computer Security Objects Register <xref target="CSOR"/>, and are reproduced here for convenience.</t>
      <sourcecode type="asn.1"><![CDATA[
sigAlgs OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
    us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) 3 }

id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 }

id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 }

id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 }

]]></sourcecode>
    </section>
    <section anchor="ml-dsa-key-encoding">
      <name>ML-DSA Key Encoding</name>
      <t><xref target="RFC5280"/> defines the SubjectPublicKeyInfo ASN.1 type.
In X.509 certificates <xref target="RFC5280"/> and Certificate Management over CMS <xref target="RFC5272"/>, the SubjectPublicKeyInfo type is used to encode public keys.
It has the following syntax:</t>
      <sourcecode type="asn1"><![CDATA[
  SubjectPublicKeyInfo {PUBLIC-KEY: IOSet} ::= SEQUENCE {
      algorithm        AlgorithmIdentifier {PUBLIC-KEY, {IOSet}},
      subjectPublicKey BIT STRING
  }
]]></sourcecode>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5911"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>. See <xref target="RFC5280"/> for the 1988 ASN.1 syntax.</t>
      </aside>
      <t>The PUBLIC-KEY ASN.1 types for ML-DSA are defined here:</t>
      <sourcecode type="asn.1"><![CDATA[
pk-ml-dsa-44 PUBLIC-KEY ::= {
  IDENTIFIER id-ml-dsa-44
  -- KEY no ASN.1 wrapping --
  CERT-KEY-USAGE
    { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping -- }

pk-ml-dsa-65 PUBLIC-KEY ::= {
  IDENTIFIER id-ml-dsa-65
  -- KEY no ASN.1 wrapping --
  CERT-KEY-USAGE
    { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping -- }

pk-ml-dsa-87 PUBLIC-KEY ::= {
  IDENTIFIER id-ml-dsa-87
  -- KEY no ASN.1 wrapping --
  CERT-KEY-USAGE
    { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping -- }

ML-DSA-PublicKey ::= OCTET STRING (SIZE (1312 | 1952 | 2592))

ML-DSA-PrivateKey ::= OCTET STRING (SIZE (32))
]]></sourcecode>
      <t>Algorithm 22 in Section 7.2 of <xref target="FIPS204"/> defines the raw byte string encoding of an ML-DSA public key.
When used in a SubjectPublicKeyInfo type, the subjectPublicKey BIT STRING contains the raw byte string encoding of the public key.</t>
      <t>When an ML-DSA public key appears outside of a SubjectPublicKeyInfo type in an environment that uses ASN.1 encoding, it can be encoded as an OCTET STRING by using the ML-DSA-PublicKey type.</t>
      <t><xref target="RFC5958"/> describes the Asymmetric Key Package CMS content type, and the OneAsymmetricKey type for encoding asymmetric keypairs.
When an ML-DSA private key or keypair is encoded as a OneAsymmetricKey, it follows the description in <xref section="6" sectionFormat="of" target="I-D.ietf-lamps-dilithium-certificates"/>.</t>
      <t>When the ML-DSA private key appears outside of an Asymmetric Key Package in an environment that uses ASN.1 encoding, it can be encoded as an OCTET STRING by using the ML-DSA-PrivateKey type.</t>
    </section>
    <section anchor="signed-data-conventions">
      <name>Signed-data Conventions</name>
      <section anchor="pure-mode-vs-pre-hash-mode">
        <name>Pure mode vs pre-hash mode</name>
        <t><xref target="RFC5652"/> specifies that digital signatures for CMS are produced using a digest of the message to be signed, and the signer's private key.
At the time of publication of that RFC, all signature algorithms supported in CMS required a message digest to be calculated externally to that algorithm, which would then be supplied to the algorithm implementation when calculating and verifying signatures.
Since then, EdDSA <xref target="RFC8032"/> and SLH-DSA <xref target="FIPS205"/> have also been standardised, and these algorithms support both a "pure" and "pre-hash" mode.
In the pre-hash mode, a message digest (the "pre-hash") is calculated separately and supplied to the signature algorithm as described above.
In the pure mode, the message to be signed or verified is instead supplied directly to the signature algorithm.
ML-DSA also supports a pre-hash and pure mode, though this document follows the convention set by EdDSA in CMS <xref target="RFC8419"/> and SLH-DSA in CMS <xref target="I-D.ietf-lamps-cms-sphincs-plus"/> and only specifies use of the pure mode of ML-DSA in CMS.</t>
      </section>
      <section anchor="signature-generation-and-verification">
        <name>Signature generation and verification</name>
        <t><xref target="RFC5652"/> describes the two methods that are used to calculate and verify signatures in CMS.
One method is used when signed attributes are present in the signedAttrs field of the relevant SignerInfo, and another is used when signed attributes are absent.
Each method produces a different "message digest" to be supplied to the signature algorithm in question, but because the pure mode of ML-DSA is used, the "message digest" is in fact the entire message.
Use of signed attributes is preferred, but the conventions for signed-data without signed attributes is also described below for completeness.</t>
        <t>When signed attributes are absent, ML-DSA (pure mode) signatures are computed over the content of the signed-data.
As described in <xref section="5.4" sectionFormat="of" target="RFC5652"/>, the "content" of a signed-data is the value of the encapContentInfo eContent OCTET STRING.
The tag and length octets are not included.</t>
        <t>When signed attributes are included, ML-DSA (pure mode) signatures are computed over the complete DER encoding of the SignedAttrs value contained in the SignerInfo's signedAttrs field.
As described in <xref section="5.4" sectionFormat="of" target="RFC5652"/>, this encoding includes the tag and length octets, but an EXPLICIT SET OF tag is used rather than the IMPLICIT [0] tag that appears in the final message.
The signedAttrs field <bcp14>MUST</bcp14> at minimum include a content-type attribute and a message-digest attribute.
The message-digest attribute contains a hash of the content of the signed-data, where the content is as described for the absent signed attributes case above.
Recalculation of the hash value by the recipient is an important step in signature verification.</t>
        <t><xref section="4" sectionFormat="of" target="I-D.ietf-lamps-cms-sphincs-plus"/> describes how, when the content of a signed-data is large, performance may be improved by including signed attributes.
This is as true for ML-DSA as it is for SLH-DSA, although ML-DSA signature generation and verification is significantly faster than SLH-DSA.</t>
        <t>ML-DSA has a context string input that can be used to ensure that different signatures are generated for different application contexts.
When using ML-DSA as described in this document, the context string is not used.</t>
      </section>
      <section anchor="signerinfo-content">
        <name>SignerInfo content</name>
        <t>When using ML-DSA, the fields of a SignerInfo are used as follows:</t>
        <dl>
          <dt>digestAlgorithm:</dt>
          <dd>
            <t>Per <xref section="5.3" sectionFormat="of" target="RFC5652"/>, the digestAlgorithm field identifies the message digest algorithm used by the signer, and any associated parameters.
To ensure collision resistance, the identified message digest algorithm <bcp14>SHOULD</bcp14> produce a hash value of a size that is at least twice the collision strength of the internal commitment hash used by ML-DSA.
SHA-512 <xref target="FIPS180"/> <bcp14>MUST</bcp14> be supported for use with the variants of SLH-DSA in this document; however, other hash functions <bcp14>MAY</bcp14> also be supported.  When SHA-512 is used, the id-sha512 <xref target="RFC5754"/> digest algorithm identifier is used and the parameters field <bcp14>MUST</bcp14> be omitted. When signing using ML-DSA without including signed attributes, the algorithm specified in the digestAlgorithm field has no meaning, as ML-DSA computes signatures over entire messages rather than externally computed digests. Nonetheless, it <bcp14>SHOULD</bcp14> specify a digest algorithm that otherwise would have been used if signed attributes were present, such as SHA-512. When processing a SignerInfo signed using ML-DSA, if no signed attributes are present, implementations <bcp14>MUST</bcp14> ignore the content of the digestAlgorithm field.</t>
          </dd>
          <dt>signatureAlgorithm:</dt>
          <dd>
            <t>When signing a signed-data using ML-DSA, the signatureAlgorithm field <bcp14>MUST</bcp14> contain one of the ML-DSA signature algorithm OIDs, and the parameters field <bcp14>MUST</bcp14> be absent. The algorithm OID <bcp14>MUST</bcp14> be one of the following OIDs described in <xref target="ml-dsa-algorithm-identifiers"/>:</t>
          </dd>
        </dl>
        <table anchor="tab-oids">
          <name>Signature algorithm identifier OIDs for ML-DSA</name>
          <thead>
            <tr>
              <th align="left">Signature algorithm</th>
              <th align="left">Algorithm Identifier OID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-DSA-44</td>
              <td align="left">id-ml-dsa-44</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65</td>
              <td align="left">id-ml-dsa-65</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87</td>
              <td align="left">id-ml-dsa-87</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>signature:</dt>
          <dd>
            <t>The signature field contains the signature value resulting from the use of the ML-DSA signature algorithm identified by the signatureAlgorithm field.
 The ML-DSA (pure mode) signature generation operation is specified in Section 5.2 of <xref target="FIPS204"/>, and the signature verification operation is specified in Section 5.3 of <xref target="FIPS204"/>.
 Note that <xref section="5.6" sectionFormat="of" target="RFC5652"/> places further requirements on the successful verification of a signature.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations <xref target="RFC5652"/> and <xref target="I-D.ietf-lamps-dilithium-certificates"/> apply to this specification as well.</t>
      <t>Security of the ML-DSA private key is critical.
Compromise of the private key will enable an adversary to forge arbitrary signatures.</t>
      <t>ML-DSA depends on high quality random numbers that are suitable for use in cryptography.
The use of inadequate pseudo-random number generators (PRNGs) to generate such values can significantly undermine the security properties offered by a cryptographic algorithm.
For instance, an attacker may find it much easier to reproduce the PRNG environment that produced any private keys, searching the resulting small set of possibilities, rather than brute force searching the whole key space.
The generation of random numbers of a sufficient level of quality for use in cryptography is difficult, and <xref target="RFC4086"/> offers important guidance in this area.</t>
      <t>By default ML-DSA signature generation uses randomness from two sources: fresh random data generated during signature generation, and precomputed random data included in the signer's private key.
This is referred to as the "hedged" variant of ML-DSA.
Inclusion of both sources of random can help mitigate against faulty random number generators, side-channel attacks and fault attacks.
<xref target="FIPS204"/> also permits creating deterministic signatures using just the precomputed random data in the signer's private key.
The same verification algorithm is used to verify both hedged and deterministic signatures, so this choice does not affect interoperability.
The signer <bcp14>SHOULD NOT</bcp14> use the deterministic variant of ML-DSA on platforms where side-channel attacks or fault attacks are a concern.
Side channel attacks and fault attacks against ML-DSA are an active area of research <xref target="WNGD2023"/> <xref target="KPLG2024"/>.
Future protection against these styles of attack may involve interoperable changes to the implementation of ML-DSA's internal functions.
Implementers <bcp14>SHOULD</bcp14> consider implementing such protection measures if it would be beneficial for their particular use cases.</t>
      <t>To avoid algorithm substitution attacks, the CMSAlgorithmProtection attribute defined in <xref target="RFC6211"/> <bcp14>SHOULD</bcp14> be included in signed attributes.</t>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <t>If ML-DSA signing is implemented in a hardware device such as hardware security module (HSM) or portable cryptographic token, implementers might want to avoid sending the full content to the device for performance reasons.
By including signed attributes, which necessarily include the message-digest attribute and the content-type attribute as described in Section 5.3 of <xref target="RFC5652"/>, the much smaller set of signed attributes are sent to the device for signing.</t>
      <t>This approach addresses the use case for HashML-DSA, and is one reason why HashML-DSA is not specified for use with CMS in this document.
Additionally, the pure variant of ML-DSA does support a form of pre-hash via the <em>mu</em> "message representative" value described in Section 6.2 of <xref target="FIPS204"/>.
This value may "optionally be computed in a different cryptographic module" and supplied to the hardware device, rather than requiring the entire message to be transmitted.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>For the ASN.1 module found in <xref target="asn1"/>, IANA is requested to assign an object identifier for the module identifier (TBD) with a description of "id-mod-ml-dsa-2024".
This should be allocated in the "SMI Security for S/MIME Module Identifier" registry (1.2.840.113549.1.9.16.0).</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document was heavily influenced by <xref target="RFC8419"/>, <xref target="I-D.ietf-lamps-cms-sphincs-plus"/>, and <xref target="I-D.ietf-lamps-dilithium-certificates"/>.  Thanks go to the authors of those documents.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.204"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <reference anchor="CSOR" target="https://csrc.nist.gov/projects/computer-security-objects-register/algorithm-registration">
          <front>
            <title>Computer Security Objects Register</title>
            <author initials="" surname="NIST" fullname="National Institute of Standards and Technology">
              <organization/>
            </author>
            <date year="2024" month="August" day="20"/>
          </front>
        </reference>
        <reference anchor="RFC5652">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </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="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="4" month="November" 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 FIPS 204, the Module-Lattice-
   Based Digital Signature Algorithm (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-05"/>
        </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="RFC5754">
          <front>
            <title>Using SHA2 Algorithms with Cryptographic Message Syntax</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document describes the conventions for using the Secure Hash Algorithm (SHA) message digest algorithms (SHA-224, SHA-256, SHA-384, SHA-512) with the Cryptographic Message Syntax (CMS). It also describes the conventions for using these algorithms with the CMS and the Digital Signature Algorithm (DSA), Rivest Shamir Adleman (RSA), and Elliptic Curve DSA (ECDSA) signature algorithms. Further, it provides SMIMECapabilities attribute values for each algorithm. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5754"/>
          <seriesInfo name="DOI" value="10.17487/RFC5754"/>
        </reference>
        <reference anchor="RFC6211">
          <front>
            <title>Cryptographic Message Syntax (CMS) Algorithm Identifier Protection Attribute</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="April" year="2011"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS), unlike X.509/PKIX certificates, is vulnerable to algorithm substitution attacks. In an algorithm substitution attack, the attacker changes either the algorithm being used or the parameters of the algorithm in order to change the result of a signature verification process. In X.509 certificates, the signature algorithm is protected because it is duplicated in the TBSCertificate.signature field with the proviso that the validator is to compare both fields as part of the signature validation process. This document defines a new attribute that contains a copy of the relevant algorithm identifiers so that they are protected by the signature or authentication process. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6211"/>
          <seriesInfo name="DOI" value="10.17487/RFC6211"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="FIPS180">
          <front>
            <title>Secure hash standard</title>
            <author>
              <organization/>
            </author>
            <date year="1993"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.180"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="FIPS205">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.205"/>
          <refcontent>National Institute of Standards and Technology</refcontent>
        </reference>
        <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"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <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="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information Technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation. ITU-T Recommendation X.680 (2021) | ISO/IEC 8824-1:2021.</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
        </reference>
        <reference anchor="KPLG2024" target="https://ia.cr/2024/138">
          <front>
            <title>Correction Fault Attacks on Randomized CRYSTALS-Dilithium</title>
            <author initials="E." surname="Krahmer">
              <organization/>
            </author>
            <author initials="P." surname="Pessl">
              <organization/>
            </author>
            <author initials="G." surname="Land">
              <organization/>
            </author>
            <author initials="T." surname="Güneysu">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
          <format type="PDF" target="https://eprint.iacr.org/2024/138.pdf"/>
        </reference>
        <reference anchor="WNGD2023" target="https://ia.cr/2023/1931">
          <front>
            <title>Single-Trace Side-Channel Attacks on CRYSTALS-Dilithium: Myth or Reality?</title>
            <author initials="R." surname="Wang">
              <organization/>
            </author>
            <author initials="K." surname="Ngo">
              <organization/>
            </author>
            <author initials="J." surname="Gärtner">
              <organization/>
            </author>
            <author initials="E." surname="Dubrova">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
          <format type="PDF" target="https://eprint.iacr.org/2023/1931.pdf"/>
        </reference>
        <reference anchor="RFC5272">
          <front>
            <title>Certificate Management over CMS (CMC)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <date month="June" year="2008"/>
            <abstract>
              <t>This document defines the base syntax for CMC, a Certificate Management protocol using the Cryptographic Message Syntax (CMS). This protocol addresses two immediate needs within the Internet Public Key Infrastructure (PKI) community:</t>
              <t>1. The need for an interface to public key certification products and services based on CMS and PKCS #10 (Public Key Cryptography Standard), and</t>
              <t>2. The need for a PKI enrollment protocol for encryption only keys due to algorithm or hardware design.</t>
              <t>CMC also requires the use of the transport document and the requirements usage document along with this document for a full definition. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5272"/>
          <seriesInfo name="DOI" value="10.17487/RFC5272"/>
        </reference>
        <reference anchor="RFC5958">
          <front>
            <title>Asymmetric Key Packages</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5958"/>
          <seriesInfo name="DOI" value="10.17487/RFC5958"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8419">
          <front>
            <title>Use of Edwards-Curve Digital Signature Algorithm (EdDSA) Signatures in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies the conventions for using the Edwards-curve Digital Signature Algorithm (EdDSA) for curve25519 and curve448 in the Cryptographic Message Syntax (CMS). For each curve, EdDSA defines the PureEdDSA and HashEdDSA modes. However, the HashEdDSA mode is not used with the CMS. In addition, no context string is used with the CMS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8419"/>
          <seriesInfo name="DOI" value="10.17487/RFC8419"/>
        </reference>
        <reference anchor="I-D.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="18" month="November" 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-16"/>
        </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>
      </references>
    </references>
    <?line 352?>

<section anchor="asn1">
      <name>ASN.1 Module</name>
      <sourcecode type="asn.1"><![CDATA[
<CODE BEGINS>
ML-DSA-Module-2024
  { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs9(9)
    id-smime(16) id-mod(0) id-mod-ml-dsa-2024(TBD) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS PUBLIC-KEY, SIGNATURE-ALGORITHM, SMIME-CAPS
  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) } ;

--
-- Object Identifiers
--

sigAlgs OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
    us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) 3 }

id-ml-dsa-44 OBJECT IDENTIFIER ::= { sigAlgs 17 }

id-ml-dsa-65 OBJECT IDENTIFIER ::= { sigAlgs 18 }

id-ml-dsa-87 OBJECT IDENTIFIER ::= { sigAlgs 19 }

--
-- Signature Algorithm Identifiers
--

sa-ml-dsa-44 SIGNATURE-ALGORITHM ::= {
  IDENTIFIER id-ml-dsa-44
  PARAMS ARE absent
  PUBLIC-KEYS { pk-ml-dsa-44 }
  SMIME-CAPS { IDENTIFIED BY id-ml-dsa-44 } }

sa-ml-dsa-65 SIGNATURE-ALGORITHM ::= {
  IDENTIFIER id-ml-dsa-65
  PARAMS ARE absent
  PUBLIC-KEYS { pk-ml-dsa-65 }
  SMIME-CAPS { IDENTIFIED BY id-ml-dsa-65 } }

sa-ml-dsa-87 SIGNATURE-ALGORITHM ::= {
  IDENTIFIER id-ml-dsa-87
  PARAMS ARE absent
  PUBLIC-KEYS { pk-ml-dsa-87 }
  SMIME-CAPS { IDENTIFIED BY id-ml-dsa-87 } }

--
-- Public Keys
--

pk-ml-dsa-44 PUBLIC-KEY ::= {
  IDENTIFIER id-ml-dsa-44
  -- KEY no ASN.1 wrapping --
  CERT-KEY-USAGE
    { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping -- }

pk-ml-dsa-65 PUBLIC-KEY ::= {
  IDENTIFIER id-ml-dsa-65
  -- KEY no ASN.1 wrapping --
  CERT-KEY-USAGE
    { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping -- }

pk-ml-dsa-87 PUBLIC-KEY ::= {
  IDENTIFIER id-ml-dsa-87
  -- KEY no ASN.1 wrapping --
  CERT-KEY-USAGE
    { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping -- }

ML-DSA-PublicKey ::= OCTET STRING (SIZE (1312 | 1952 | 2592))

ML-DSA-PrivateKey ::= OCTET STRING (SIZE (32))

--
-- Expand the signature algorithm set used by CMS [RFC5911]
--

SignatureAlgorithmSet SIGNATURE-ALGORITHM ::= {
  sa-ml-dsa-44 |
  sa-ml-dsa-65 |
  sa-ml-dsa-87,
  ... }

SMimeCaps SMIME-CAPS ::= {
  sa-ml-dsa-44.&smimeCaps |
  sa-ml-dsa-65.&smimeCaps |
  sa-ml-dsa-87.&smimeCaps,
  ... }

END
<CODE ENDS>
]]></sourcecode>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1cW3PjNpZ+56/AqKsyckqkLd/bucqy7Na0b5HUk/Rm8gCR
sMWYIhWCtFrjdn7LPuzP2KfdP7bnHAAkSNFud6Zqa3ZrUknaJgng4Fy/c3DQ
rus6WZhF4oi13knBkhuWzQS7OHdPxj02Dm9jnuWpYL3oNknDbDZnYUxf9NPV
IktuU76YhT67EFLyW8HGqzjjH1i7fzHeaDl8Ok3FPcysp4Oh8KLl+DwTMN3q
iMkscJwg8WM+BwqClN9kbiiyGzfi84V0/bl055EbSO5udR2ZT+ehlGESZ6sF
fD4cTE6dOJ9PRXrkBDDnkeMnsRSxzOURy9JcOLD4jsNTwYGIsfBz2MKq5SyT
9O42TfIFPD0P52EmAtYLgjCDqXkEm/FnPA7lXLKbJGXXb4c/MR4HbHwxvBi0
nDuxggmCI4cxlwGF9Keikn4MwggYFeZz517EucDv/vhijKm9tn4EmsP4lp3h
VPh8zsMInssFl/PvkWdekt7iC576M3gxy7KFPNrcxO/wUXgvPPPZJj7YnKbJ
UopNmmETR94C3fkUxiruL283SwHg+wh4LDNrbvOdp0Z6YWKN2HxGnN4sm0ct
x+F5NktSYiX8x9hNHkVKF45FzMY8ykRKL4Bo4NLfOXLtiL17yy65ZmB/BfJn
RrisL+IsFTRGKBZNRezJne9jX/rebXLv5XcNy/UCPmcjHsbiH12Ow0xe+onl
TmB2EbG/8pidCeApvQ5jUNsTr/a0Sooyu0vxIStosBcPaF7vnse3OMH3Pn0e
w+eu1J97fjJ3nDhJ5zDlPann6fB6vL21C4tfDb3ulre/tX24eTkcTzx848Er
+Kg/vhod0VoZT28FqIHRAl+mvgcqnOF+Nxdp8qvwM7kJ6yxykF+xsptM6Y2b
ilv4WqSb3HgV/SilXapFlFPq60lKjl+pSdhIT0Jfl3qE/ygeFyIbxhJmg1nQ
u40zsC6eBpKsbALWFydRcrvSQ0kGuHX6nZwK297a3nW3Dt3tLXg4Ou3v7e9t
HzlOGN/Umdg93HqKifCq4PTe05ze00u87nZx0p/2YcZGpi+XSw825YVxtpkK
f3PijgZ99ydvn9Yp+NcaGiqT2NotuKneFPntZ8ZnXyaZ+uoqFqzdG1963Y0j
Nl4IP7wJffUK+DflEvx9rD/22HDyzp2AMEDacwGcpe+IDNYGxnU32Ec2HF9t
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
cI/K44pndnVcn4lZxCT57axWM7Z9VnmWR0k0GLgSs1ZYLe1dKhjb0i7f1/wa
dgnJxQz0RrqLKJd6HFWVS4u2TmAKaqtlNVWkf/XKOoK7FWCkSoULjdUGWfUc
1bCSLRMQCHAi0J7Erh4WGmEZQa3oSZRgW4WapMiYyIy0bHkGzneaY7KmnBGo
N9UUrJJpD74xVRK996L4QP4yxdisM/U4wSLFS9biU1xKV0Y0idoZqvNJPKlD
YlpVA2kZ7XyB5sM+fsthDAFEWBrG+dyUphsFqOhW1rC2MGk/u8H2FXyP+pcW
RuM5upNxfbshxQvYTopTIx1Nx9F2gRoTMwiVzXOREdWqXLoegg4TAAcdtqp4
/Bzzi8O1dsGLjcqRaCrM6WmgsnRNN2EarQsW2VRmqhzglFhiz9vFEYWyaxbr
yVoK9NksCJUV3PMoL2wOQjxf9NUQAoRC/1IJ96o0mHEVICIR32L/h5+JTBYH
g7pMFjzPJvPVH2WUEgc7gRSojo3Hlm2pPWpoXRbLSuOCCL9mi5/LbAMLkQa9
L+1nmhil1BRw1OCna0jsMAEA/l6d0tfGusGpzWivXBE8vNDf/u3nrb/9Qp8q
x6XBn94XZDKAhwqzmTR6GipOwth5GIfzfF7UNYvDG5dAcyEw5X7MrK4OpsVr
tcxTb616NKNwpIX0tKojlMEypP0VmqYtkqJmTMbWoGI+l8IE5JEokI3BaULR
orRD15gh1IaL0KwWI0SCUIquGKLyAjlc+kE70FAGY9SDlOMFAbCMR7Nk2VHO
vMaWNZuNsKOrwxYipbI0wjA8WsOD3jm2t+gaN0nToLYKV3QLhGImtlNXykUS
AX+oHKaO6QhkNV5Y6+N5JvTiLI39Hnabh2cSe6omat37kJmEN4wXuU5OdBJS
1iQlHYaqDMCEsprL0NRpVSk/4xjZNJV6RVkk8bhuyY2KA6jApU4pKovgsqOg
RCnKxxipOusLdbTZ0tGQys7LYQUqqRwKKgvrVQ6CrqmwX/qonYaAUBunnUHt
ZKiGmMt4n8vyNEblRgaWAFqWMvFD4nZ5BgLKVsjKB+JD6j4D+YSI/X0Ni63z
mSeX1sf5GsEYP1JEL049L/qcC/uVwN1yzJ+WoW+8iFkeZKVdsfIC1CGBLhO7
XcOMsDDNbrZrWkfGb3ruXndbpzRdqtWaQ54yp1Otb2Xx1/SlkGgtnFzRpq/Q
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

-->

</rfc>
