<?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.2 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-cms-sha3-hash-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="Using SHA3 with the CMS">Use of the SHA3 One-way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-sha3-hash-00"/>
    <author initials="R." surname="Housley" fullname="Russ Housley">
      <organization abbrev="Vigil Security">Vigil Security, LLC</organization>
      <address>
        <postal>
          <city>Herndon, VA</city>
          <country>US</country>
        </postal>
        <email>housley@vigilsec.com</email>
      </address>
    </author>
    <date year="2023" month="November" day="28"/>
    <area>Security</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 98?>

<t>This document describes the conventions for using the four one-way hash
functions in the SHA3 family with the Cryptographic Message Syntax (CMS).</t>
    </abstract>
  </front>
  <middle>
    <?line 103?>

<section anchor="intro">
      <name>Introduction</name>
      <t>The Cryptographic Message Syntax (CMS) <xref target="RFC5652"/> is used to digitally sign,
digest, authenticate, or encrypt arbitrary message contents.  This
specification describes the use of the four one-way hash functions in the
SHA3 family (SHA3-224, SHA3-256, SHA3-384, and SHA3-512) <xref target="SHA3"/> with the
CMS.  In addition, this specification describes the use of these four
one-way hash functions with the RSASSA PKCS#1 version 1.5 signature
algorithm <xref target="RFC8017"/> and the Elliptic Curve Digital Signature Algorithm
(ECDSA) <xref target="DSS"/> with the CMS signed-data content type.</t>
      <t>This document should not be confused with RFC 8702 <xref target="RFC8702"/>, which defines
conventions for using the the SHAKE family of SHA3-based extensible output
functions with the CMS.</t>
      <section anchor="asn1">
        <name>ASN.1</name>
        <t>CMS values are generated using ASN.1 <xref target="X.680"/>, using the Basic
Encoding Rules (BER) and the Distinguished Encoding Rules (DER) <xref target="X.690"/>.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
        </t>
      </section>
    </section>
    <section anchor="sha3oids">
      <name>Message Digest Algorithms</name>
      <t>One-way hash functions are also referred to as message digest algorithms.<br/>
This section specifies the conventions employed by CMS implementations
that support SHA3-224, SHA3-256, SHA3-384, and SHA3-512 <xref target="SHA3"/>.</t>
      <t>Digest algorithm identifiers are located in the SignedData digestAlgorithms
field, the SignerInfo digestAlgorithm field, the DigestedData digestAlgorithm
field, and the AuthenticatedData digestAlgorithm field.</t>
      <t>Digest values are located in the DigestedData digest field and the Message
Digest authenticated attribute.  In addition, digest values are input to
signature algorithms.</t>
      <t>SHA3-224, SHA3-256, SHA3-384, and SHA3-512 produce output values with
224, 256, 384, and 512 bits, respectively.  The object identifiers for
these four one-way hash functions are as follows:</t>
      <sourcecode type="asn.1"><![CDATA[
   hashAlgs OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
       us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) 2 }

   id-sha3-224 OBJECT IDENTIFIER ::= { hashAlgs 7 }

   id-sha3-256 OBJECT IDENTIFIER ::= { hashAlgs 8 }

   id-sha3-384 OBJECT IDENTIFIER ::= { hashAlgs 9 }

   id-sha3-512 OBJECT IDENTIFIER ::= { hashAlgs 10 }
]]></sourcecode>
      <t>When using the id-sha3-224, id-sha3-s256, id-sha3-384, or id-sha3-512
algorithm identifiers, the parameters field MUST be absent; not NULL
but absent.</t>
    </section>
    <section anchor="signature-algorithms">
      <name>Signature Algorithms</name>
      <t>This section specifies the conventions employed by CMS implementations
that support the four SHA3 one-way hash functions with the RSASSA PKCS#1
version 1.5 signature algorithm <xref target="RFC8017"/> and the Elliptic Curve Digital
Signature Algorithm (ECDSA) <xref target="DSS"/> with the CMS signed-data content type.</t>
      <t>Signature algorithm identifiers are located in the SignerInfo
signatureAlgorithm field of SignedData.  Also, signature algorithm
identifiers are located in the SignerInfo signatureAlgorithm field
of countersignature attributes.</t>
      <t>Signature values are located in the SignerInfo signature field of
SignedData.  Also, signature values are located in the SignerInfo
signature field of countersignature attributes.</t>
      <section anchor="rsassa-pkcs1-v15-with-sha3">
        <name>RSASSA PKCS#1 v1.5 with SHA3</name>
        <t>The RSASSA PKCS#1 v1.5 is defined in <xref target="RFC8017"/>}}.  When RSASSA PKCS#1 v1.5 is
used in conjunction with one of the SHA3 one-way hash functions, the
object identifiers are:</t>
        <sourcecode type="asn.1"><![CDATA[
   OID ::= OBJECT IDENTIFIER

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

   id-rsassa-pkcs1-v1-5-with-sha3-224 OID ::= { sigAlgs 13 }

   id-rsassa-pkcs1-v1-5-with-sha3-256 OID ::= { sigAlgs 14 }

   id-rsassa-pkcs1-v1-5-with-sha3-384 OID ::= { sigAlgs 15 }

   id-rsassa-pkcs1-v1-5-with-sha3-512 OID ::= { sigAlgs 16 }
]]></sourcecode>
        <t>The algorithm identifier for RSASSA PKCS#1 v1.5 subject public keys
in certificates is specified in <xref target="RFC3279"/>, and it is repeated here for
convenience:</t>
        <sourcecode type="asn.1"><![CDATA[
   rsaEncryption OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 1 }
]]></sourcecode>
        <t>When the rsaEncryption, id-rsassa-pkcs1-v1-5-with-sha3-224,
id-rsassa-pkcs1-v1-5-with-sha3-256,
id-rsassa-pkcs1-v1-5-with-sha3-384, and
id-rsassa-pkcs1-v1-5-with-sha3-512 algorithm identifier is used,
AlgorithmIdentifier parameters field MUST contain NULL.</t>
        <t>When the rsaEncryption algorithm identifier is used, the RSA public key,
which is composed of a modulus and a public exponent, MUST be encoded
using the RSAPublicKey type as specified in <xref target="RFC3279"/>.  The output of
this encoding is carried in the certificate subject public key.  The
definition of RSAPublicKey is repeated here for convenience:</t>
        <sourcecode type="asn.1"><![CDATA[
   RSAPublicKey ::= SEQUENCE {
      modulus INTEGER, -- n
      publicExponent INTEGER } -- e
]]></sourcecode>
        <t>When signing, the RSASSA PKCS#1 v1.5 signature algorithm generates a
single value, and that value is used directly as the signature value.</t>
      </section>
      <section anchor="ecdsa-with-sha3">
        <name>ECDSA with SHA3</name>
        <t>The Elliptic Curve Digital Signature Algorithm (ECDSA) is defined in
<xref target="DSS"/>.  When ECDSA is used in conjunction with one of the SHA3
one-way hash functions, the object identifiers are:</t>
        <sourcecode type="asn.1"><![CDATA[
   sigAlgs OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
       us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) 3 }

   id-ecdsa-with-sha3-224 OBJECT IDENTIFIER ::= { sigAlgs 9 }

   id-ecdsa-with-sha3-256 OBJECT IDENTIFIER ::= { sigAlgs 10 }

   id-ecdsa-with-sha3-384 OBJECT IDENTIFIER ::= { sigAlgs 11 }

   id-ecdsa-with-sha3-512 OBJECT IDENTIFIER ::= { sigAlgs 12 }
]]></sourcecode>
        <t>When using the id-ecdsa-with-sha3-224, id-ecdsa-with-sha3-256,
id-ecdsa-with-sha3-384, and id-ecdsa-with-sha3-512 algorithm identifiers,
the parameters field MUST be absent; not NULL but absent.</t>
        <t>The conventions for ECDSA public keys is as specified in <xref target="RFC5480"/>.  The
ECParameters associated with the ECDSA public key in the signers
certificate SHALL apply to the verification of the signature.</t>
        <t>When signing, the ECDSA algorithm generates two values.  These values
are commonly referred to as r and s.  To easily transfer these two
values as one signature, they MUST be ASN.1 encoded using the
ECDSA-Sig-Value defined in <xref target="RFC3279"/> and repeated here for
convenience:</t>
        <sourcecode type="asn.1"><![CDATA[
   ECDSA-Sig-Value ::= SEQUENCE {
       r  INTEGER,
       s  INTEGER }
]]></sourcecode>
      </section>
    </section>
    <section anchor="message-authentication-codes-using-hmac-and-sha3">
      <name>Message Authentication Codes using HMAC and SHA3</name>
      <t>This section specifies the conventions employed by CMS implementations
that support the HMAC <xref target="RFC2104"/> with SHA3 message authentication code (MAC).</t>
      <t>MAC algorithm identifiers are located in the AuthenticatedData
macAlgorithm field.</t>
      <t>MAC values are located in the AuthenticatedData mac field.</t>
      <t>When HMAC is used in conjunction with one of the SHA3
one-way hash functions, the object identifiers are:</t>
      <sourcecode type="asn.1"><![CDATA[
   hashAlgs OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16)
       us(840) organization(1) gov(101) csor(3) nistAlgorithm(4) 2 }
 
   id-hmacWithSHA3-224 OBJECT IDENTIFIER ::= { hashAlgs 13 }

   id-hmacWithSHA3-256 OBJECT IDENTIFIER ::= { hashAlgs 14 }

   id-hmacWithSHA3-384 OBJECT IDENTIFIER ::= { hashAlgs 15 }

   id-hmacWithSHA3-512 OBJECT IDENTIFIER ::= { hashAlgs 16 }
]]></sourcecode>
      <t>When the id-hmacWithSHA3-224, id-hmacWithSHA3-256,
id-hmacWithSHA3-384, and id-hmacWithSHA3-512 algorithm
identifier is used, the parameters field MUST be absent;
not NULL but absent.</t>
    </section>
    <section anchor="key-derivation-functions">
      <name>Key Derivation Functions</name>
      <section anchor="hkdf-with-sha3">
        <name>HKDF with SHA3</name>
        <t>This section assigns four algorithm identifiers that can be employed by CMS
implementations that support the HMAC-based Extract-and-Expand Key Derivation
Function (HKDF) <xref target="RFC5869"/> with the SHA3 family of hash functions.  The CMS
KEMRecipientInfo structure <xref target="I-D.ietf-lamps-cms-kemri"/> is one place where
algrithim identifiers for key-derivation functions are needed.</t>
        <t>When HKDF is used in conjunction with one of the SHA3
one-way hash functions, the object identifiers are:</t>
        <sourcecode type="asn.1"><![CDATA[
   id-alg OBJECT IDENTIFIER ::= { iso(1) member-body(2)
       us(840) rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) 3 }

   id-alg-hkdf-with-sha3-224 OBJECT IDENTIFIER ::= { id-alg TBD1 }

   id-alg-hkdf-with-sha3-256 OBJECT IDENTIFIER ::= { id-alg TBD2 }

   id-alg-hkdf-with-sha3-384 OBJECT IDENTIFIER ::= { id-alg TBD3 }

   id-alg-hkdf-with-sha3-512 OBJECT IDENTIFIER ::= { id-alg TBD4 }
]]></sourcecode>
        <t>When the id-alg-hkdf-with-sha3-224, id-alg-hkdf-with-sha3-256,
id-alg-hkdf-with-sha3-384, and id-alg-hkdf-with-sha3-512 algorithm
identifier is used, the parameters field MUST be absent;
not NULL but absent.</t>
      </section>
      <section anchor="kdf2-and-kdf3-with-sha3">
        <name>KDF2 and KDF3 with SHA3</name>
        <t>This section specifies the conventions employed by CMS implementations
that employ either the KDF2 or KDF3 functions defined in <xref target="ANS-X9.44"/>.
The CMS KEMRecipientInfo structure <xref target="I-D.ietf-lamps-cms-kemri"/> is one
place where algorithm identifiers for key-derivation functions are needed.</t>
        <t>When KDF2 and KDF3 are used, they are identified by the id-kdf-kdf2
and id-kdf-kdf3 object identifiers, respectively.  The algorithm identifier
parameters carries an algorithm identifier to indicate which hash function
is being employed.  To support SHA3, an algorithm identifier from
<xref target="sha3oids"/> is carried in the parameter.</t>
        <sourcecode type="asn.1"><![CDATA[
   x9-44 OBJECT IDENTIFIER ::= { iso(1) identified-organization(3)
       tc68(133) country(16) x9(840) x9Standards(9) x9-44(44) }

   x9-44-components OBJECT IDENTIFIER ::= { x9-44 components(1) }

   id-kdf-kdf2 OBJECT IDENTIFIER ::= { x9-44-components kdf2(1) }

   id-kdf-kdf3 OBJECT IDENTIFIER ::= { x9-44-components kdf3(2) }
]]></sourcecode>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Implementations must protect the signer's private key.  Compromise of the
signer's private key permits masquerade.</t>
      <t>When more than two parties share the same message-authentication key,
data origin authentication is not provided.  Any party that knows the
message-authentication key can compute a valid MAC, therefore the content
could originate from any one of the parties.</t>
      <t>Implementations must randomly generate message-authentication keys and
one-time values, such as the k value when generating a ECDSA signature.
In addition, the generation of public/private key pairs relies on a
random numbers.  The use of inadequate pseudo-random number generators
(PRNGs) to generate cryptographic such 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.  RFC 4086 <xref target="RFC4086"/>
offers important guidance in this area, and Appendix 3 of FIPS Pub 186-4
<xref target="DSS"/> provides some PRNG techniques.</t>
      <t>Implementers should be aware that cryptographic algorithms become weaker
with time.  As new cryptanalysis techniques are developed and computing
performance improves, the work factor to break a particular cryptographic
algorithm will reduce.  Therefore, cryptographic algorithm
implementations should be modular allowing new algorithms to be readily
inserted.  That is, implementers should be prepared to regularly update
the set of algorithms in their implementations.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is asked to assign one object identifier for the ASN.1 module in <xref target="asn1mod"/>
in the "SMI Security for S/MIME Module Identifiers (1.2.840.113549.1.9.16.0)"
registry <xref target="IANA-MOD"/>:</t>
      <sourcecode type="asn1"><![CDATA[
   id-mod-sha3-oids-2023 OBJECT IDENTIFIER ::= {
      iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
      pkcs-9(9) smime(16) mod(0) TBD0 }
]]></sourcecode>
      <t>IANA is asked to assign four object identifiers for the HKDF using SHA3 algorithm
identifiers in the "SMI Security for S/MIME Algorithms (1.2.840.113549.1.9.16.3)"
registry <xref target="IANA-ALG"/>:</t>
      <sourcecode type="asn1"><![CDATA[
   id-alg-hkdf-with-sha3-224 OBJECT IDENTIFIER ::= { id-alg TBD1 }

   id-alg-hkdf-with-sha3-256 OBJECT IDENTIFIER ::= { id-alg TBD2 }

   id-alg-hkdf-with-sha3-384 OBJECT IDENTIFIER ::= { id-alg TBD3 }

   id-alg-hkdf-with-sha3-512 OBJECT IDENTIFIER ::= { id-alg TBD4 }
]]></sourcecode>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="ANS-X9.44">
          <front>
            <title>Public Key Cryptography for the Financial Services Industry -- Key Establishment Using Integer Factorization Cryptography</title>
            <author>
              <organization>American National Standards Institute</organization>
            </author>
            <date year="2007"/>
          </front>
          <seriesInfo name="American National Standard" value="X9.44"/>
        </reference>
        <reference anchor="RFC2104" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
          <front>
            <title>HMAC: Keyed-Hashing for Message Authentication</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="M. Bellare" initials="M." surname="Bellare"/>
            <author fullname="R. Canetti" initials="R." surname="Canetti"/>
            <date month="February" year="1997"/>
            <abstract>
              <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2104"/>
          <seriesInfo name="DOI" value="10.17487/RFC2104"/>
        </reference>
        <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"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <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="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="RFC5480">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC8017">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </reference>
        <reference anchor="SHA3" 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>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="202"/>
        </reference>
        <reference anchor="DSS" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf">
          <front>
            <title>Digital Signature Standard (DSS) version 4</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2013" month="July"/>
          </front>
          <seriesInfo name="FIPS PUB" value="186-4"/>
        </reference>
        <reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology -- Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="IANA-ALG" target="https://www.iana.org/assignments/smi-numbers/">
          <front>
            <title>SMI Security for for S/MIME Algorithms (1.2.840.113549.1.9.16.3)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-MOD" target="https://www.iana.org/assignments/smi-numbers/">
          <front>
            <title>SMI Security for S/MIME Module Identifier (1.2.840.113549.1.9.16.0)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.ietf-lamps-cms-kemri">
          <front>
            <title>Using Key Encapsulation Mechanism (KEM) Algorithms in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <author fullname="Tomofumi Okubo" initials="T." surname="Okubo">
              <organization>DigiCert, Inc.</organization>
            </author>
            <date day="21" month="October" year="2023"/>
            <abstract>
              <t>   The Cryptographic Message Syntax (CMS) supports key transport and key
   agreement algorithms.  In recent years, cryptographers have been
   specifying Key Encapsulation Mechanism (KEM) algorithms, including
   quantum-secure KEM algorithms.  This document defines conventions for
   the use of KEM algorithms by the originator and recipients to encrypt
   and decrypt CMS content.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-kemri-06"/>
        </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="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</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 Public Key Infrastructure using X.509 (PKIX) certificate 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="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="RFC8702">
          <front>
            <title>Use of the SHAKE One-Way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <date month="January" year="2020"/>
            <abstract>
              <t>This document updates the "Cryptographic Message Syntax (CMS) Algorithms" (RFC 3370) and describes the conventions for using the SHAKE family of hash functions in the Cryptographic Message Syntax as one-way hash functions with the RSA Probabilistic Signature Scheme (RSASSA-PSS) and Elliptic Curve Digital Signature Algorithm (ECDSA). The conventions for the associated signer public keys in CMS are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8702"/>
          <seriesInfo name="DOI" value="10.17487/RFC8702"/>
        </reference>
      </references>
    </references>
    <?line 418?>

<section numbered="false" anchor="asn1mod">
      <name>Appendix.  ASN.1 Module</name>
      <t>This section contains the ASN.1 module for the algorithm identifiers using SHA3
family of hash functions <xref target="SHA3"/>.  This module imports types from other ASN.1
modules that are defined in <xref target="RFC5912"/>.</t>
      <sourcecode type="asn.1" markers="true"><![CDATA[
   SHA3-OIDs-2023
     { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
       smime(16) modules(0) id-mod-sha3-oids-2023(TBD0) }

   DEFINITIONS IMPLICIT TAGS ::=
   BEGIN

   -- EXPORTS All

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

  mda-sha1, pk-rsa, pk-ec, ECDSA-Sig-Value
    FROM PKIXAlgs-2009  -- [RFC5912]
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-pkix1-algorithms2008-02(56) }

  mda-sha224, mda-sha256, mda-sha384, mda-sha512
    FROM PKIX1-PSS-OAEP-Algorithms-2009  -- [RFC5912]
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-pkix1-rsa-pkalgs-02(54) } ;


   --
   -- Alias
   --

   OID ::= OBJECT IDENTIFIER


   --
   -- Object Identifier Arcs
   --

   nistAlgorithm OID ::= { joint-iso-itu-t(2) country(16)
       us(840) organization(1) gov(101) csor(3) 4 }

   hashAlgs OID ::= { nistAlgorithm 2 }

   sigAlgs OID ::= { nistAlgorithm 3 }

   x9-44 OID ::= { iso(1) identified-organization(3) tc68(133)
       country(16) x9(840) x9Standards(9) x9-44(44) }

   x9-44-components OID ::= { x9-44 components(1) }

   id-alg OID ::= { iso(1) member-body(2) us(840)
       rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) 3 }


   --
   -- Message Digest Algorithms
   --

   id-sha3-224 OID ::= { hashAlgs 7 }

   id-sha3-256 OID ::= { hashAlgs 8 }

   id-sha3-384 OID ::= { hashAlgs 9 }

   id-sha3-512 OID ::= { hashAlgs 10 }

   mda-sha3-224 DIGEST-ALGORITHM ::= {
       IDENTIFIER id-sha3-224
       PARAMS ARE absent }

   mda-sha3-256 DIGEST-ALGORITHM ::= {
       IDENTIFIER id-sha3-256
       PARAMS ARE absent }

   mda-sha3-384 DIGEST-ALGORITHM ::= {
       IDENTIFIER id-sha3-384
       PARAMS ARE absent }

   mda-sha3-512 DIGEST-ALGORITHM ::= {
       IDENTIFIER id-sha3-512
       PARAMS ARE absent }

   HashAlgorithm ::= AlgorithmIdentifier{ DIGEST-ALGORITHM,
                         { HashAlgorithms } }

   HashAlgorithms DIGEST-ALGORITHM ::=  {
       mda-sha3-224 |
       mda-sha3-256 |
       mda-sha3-384 |
       mda-sha3-512,
       ... }


   --
   -- Signature Algorithms
   --

   id-rsassa-pkcs1-v1-5-with-sha3-224 OID ::= { sigAlgs 13 }

   id-rsassa-pkcs1-v1-5-with-sha3-256 OID ::= { sigAlgs 14 }

   id-rsassa-pkcs1-v1-5-with-sha3-384 OID ::= { sigAlgs 15 }

   id-rsassa-pkcs1-v1-5-with-sha3-512 OID ::= { sigAlgs 16 }

   id-ecdsa-with-sha3-224 OID ::= { sigAlgs 9 }

   id-ecdsa-with-sha3-256 OID ::= { sigAlgs 10 }

   id-ecdsa-with-sha3-384 OID ::= { sigAlgs 11 }

   id-ecdsa-with-sha3-512 OID ::= { sigAlgs 12 }

   sa-rsaWithSHA3-224 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-rsassa-pkcs1-v1-5-with-sha3-224
       PARAMS TYPE NULL ARE required
       HASHES { mda-sha3-224 }
       PUBLIC-KEYS { pk-rsa }
       SMIME-CAPS {IDENTIFIED BY 
           id-rsassa-pkcs1-v1-5-with-sha3-224 } }

   sa-rsaWithSHA3-256 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-rsassa-pkcs1-v1-5-with-sha3-256
       PARAMS TYPE NULL ARE required
       HASHES { mda-sha3-256 }
       PUBLIC-KEYS { pk-rsa }
       SMIME-CAPS {IDENTIFIED BY
           id-rsassa-pkcs1-v1-5-with-sha3-256 } }

   sa-rsaWithSHA3-384 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-rsassa-pkcs1-v1-5-with-sha3-384
       PARAMS TYPE NULL ARE required
       HASHES { mda-sha3-384 }
       PUBLIC-KEYS { pk-rsa }
       SMIME-CAPS {IDENTIFIED BY
           id-rsassa-pkcs1-v1-5-with-sha3-384 } }

   sa-rsaWithSHA3-512 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-rsassa-pkcs1-v1-5-with-sha3-512
       PARAMS TYPE NULL ARE required
       HASHES { mda-sha3-512 }
       PUBLIC-KEYS { pk-rsa }
       SMIME-CAPS {IDENTIFIED BY
           id-rsassa-pkcs1-v1-5-with-sha3-512 } }

   sa-ecdsaWithSHA3-224 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-ecdsa-with-sha3-224
       VALUE ECDSA-Sig-Value
       PARAMS ARE absent
       HASHES { mda-sha3-224 }
       PUBLIC-KEYS { pk-ec }
       SMIME-CAPS {IDENTIFIED BY id-ecdsa-with-sha3-224 } }

   sa-ecdsaWithSHA3-256 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-ecdsa-with-sha3-256
       VALUE ECDSA-Sig-Value
       PARAMS ARE absent
       HASHES { mda-sha3-256 }
       PUBLIC-KEYS { pk-ec }
       SMIME-CAPS {IDENTIFIED BY id-ecdsa-with-sha3-256 } }

   sa-ecdsaWithSHA3-384 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-ecdsa-with-sha3-384
       VALUE ECDSA-Sig-Value
       PARAMS ARE absent
       HASHES { mda-sha3-384 }
       PUBLIC-KEYS { pk-ec }
       SMIME-CAPS {IDENTIFIED BY id-ecdsa-with-sha3-384 } }

   sa-ecdsaWithSHA3-512 SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-ecdsa-with-sha3-512
       VALUE ECDSA-Sig-Value
       PARAMS ARE absent
       HASHES { mda-sha3-512 }
       PUBLIC-KEYS { pk-ec }
       SMIME-CAPS {IDENTIFIED BY id-ecdsa-with-sha3-512 } }

   SignatureAlg ::= AlgorithmIdentifier{ SIGNATURE-ALGORITHM,
                         { SignatureAlgs } }
                         
   SignatureAlgs SIGNATURE-ALGORITHM ::= {
       sa-rsaWithSHA3-224 |
       sa-rsaWithSHA3-256 |
       sa-rsaWithSHA3-384 |
       sa-rsaWithSHA3-512 |
       sa-ecdsaWithSHA3-224 |
       sa-ecdsaWithSHA3-256 |
       sa-ecdsaWithSHA3-384 |
       sa-ecdsaWithSHA3-512,
       ... }
   
   
   --
   -- Message Authentication Codes
   --

   id-hmacWithSHA3-224 OID ::= { hashAlgs 13 }

   id-hmacWithSHA3-256 OID ::= { hashAlgs 14 }

   id-hmacWithSHA3-384 OID ::= { hashAlgs 15 }

   id-hmacWithSHA3-512 OID ::= { hashAlgs 16 }

   maca-hmacWithSHA3-224 MAC-ALGORITHM ::= {
       IDENTIFIER id-hmacWithSHA3-224
       PARAMS ARE absent
       IS-KEYED-MAC TRUE
       SMIME-CAPS {IDENTIFIED BY id-hmacWithSHA3-224 } }

   maca-hmacWithSHA3-256 MAC-ALGORITHM ::= {
       IDENTIFIER id-hmacWithSHA3-256
       PARAMS ARE absent
       IS-KEYED-MAC TRUE
       SMIME-CAPS {IDENTIFIED BY id-hmacWithSHA3-256 } }

   maca-hmacWithSHA3-384 MAC-ALGORITHM ::= {
       IDENTIFIER id-hmacWithSHA3-384
       PARAMS ARE absent
       IS-KEYED-MAC TRUE
       SMIME-CAPS {IDENTIFIED BY id-hmacWithSHA3-384 } }

   maca-hmacWithSHA3-512 MAC-ALGORITHM ::= {
       IDENTIFIER id-hmacWithSHA3-512
       PARAMS ARE absent
       IS-KEYED-MAC TRUE
       SMIME-CAPS {IDENTIFIED BY id-hmacWithSHA3-512 } }

   MACAlgorithm ::= AlgorithmIdentifier{ MAC-ALGORITHM,
                       { MACAlgorithms } }

   MACAlgorithms MAC-ALGORITHM ::= {
       maca-hmacWithSHA3-224 |
       maca-hmacWithSHA3-256 |
       maca-hmacWithSHA3-384 |
       maca-hmacWithSHA3-512,
       ... }


   --
   -- Key Derivation Algorithms
   --

   id-alg-hkdf-with-sha3-224 OID ::= { id-alg TBD1 }

   id-alg-hkdf-with-sha3-256 OID ::= { id-alg TBD2 }

   id-alg-hkdf-with-sha3-384 OID ::= { id-alg TBD3 }

   id-alg-hkdf-with-sha3-512 OID ::= { id-alg TBD4 }

   id-kdf-kdf2 OID ::= { x9-44-components kdf2(1) }

   id-kdf-kdf3 OID ::= { x9-44-components kdf3(2) }

   kda-hkdf-with-sha3-224 KEY-DERIVATION ::= {
       IDENTIFIER id-alg-hkdf-with-sha3-224
       PARAMS ARE absent
       -- No S/MIME caps defined -- }

   kda-hkdf-with-sha3-256 KEY-DERIVATION ::= {
       IDENTIFIER id-alg-hkdf-with-sha3-256
       PARAMS ARE absent
       -- No S/MIME caps defined -- }

   kda-hkdf-with-sha3-384 KEY-DERIVATION ::= {
       IDENTIFIER id-alg-hkdf-with-sha3-384
       PARAMS ARE absent
       -- No S/MIME caps defined -- }

   kda-hkdf-with-sha3-512 KEY-DERIVATION ::= {
       IDENTIFIER id-alg-hkdf-with-sha3-512
       PARAMS ARE absent
       -- No S/MIME caps defined -- }

   kda-kdf2 KEY-DERIVATION ::= {
       IDENTIFIER id-kdf-kdf2
       PARAMS TYPE KDF2-HashFunction ARE required
       -- No S/MIME caps defined -- }

   kda-kdf3 KEY-DERIVATION ::= {
       IDENTIFIER id-kdf-kdf3
       PARAMS TYPE KDF3-HashFunction ARE required
       -- No S/MIME caps defined -- }

   KDF2-HashFunction ::= AlgorithmIdentifier { DIGEST-ALGORITHM,
                             { KDF2-HashFunctions } }

   KDF2-HashFunctions DIGEST-ALGORITHM ::= {
      X9-HashFunctions,
      ... }

   KDF3-HashFunction ::= AlgorithmIdentifier { DIGEST-ALGORITHM,
                             { KDF3-HashFunctions } }

   KDF3-HashFunctions DIGEST-ALGORITHM ::= {
      X9-HashFunctions,
      ... }

   X9-HashFunctions DIGEST-ALGORITHM ::= {
       mda-sha1 |
       mda-sha224 |
       mda-sha256 |
       mda-sha384 |
       mda-sha512 |
       mda-sha3-224 |
       mda-sha3-256 |
       mda-sha3-384 |
       mda-sha3-512,
       ... }

   KeyDerivationFunction ::=  AlgorithmIdentifier{ KEY-DERIVATION,
                                  { KeyDevAlgs } }

   KeyDevAlgs KEY-DERIVATION ::= {
       kda-hkdf-with-sha3-224 |
       kda-hkdf-with-sha3-256 |
       kda-hkdf-with-sha3-384 |
       kda-hkdf-with-sha3-512 |
       kda-kdf2 |
       kda-kdf3,
       ... }

   END
]]></sourcecode>
    </section>
  </back>
  <!-- ##markdown-source:
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
7ljEf9rE/0G/+UT+B2WaxLmcXgAA

-->

</rfc>
