<?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-cms-kyber-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="ML-KEM in CMS">Use of ML-KEM in the Cryptographic Message Syntax (CMS)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-kyber-04"/>
    <author initials="J." surname="Prat" fullname="Julien Prat">
      <organization>CryptoNext Security</organization>
      <address>
        <postal>
          <street>16, Boulevard Saint-Germain</street>
          <city>Paris</city>
          <code>75005</code>
          <country>France</country>
        </postal>
        <email>julien.prat@cryptonext-security.com</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road -- Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="D." surname="Van Geest" fullname="Daniel Van Geest">
      <organization>CryptoNext Security</organization>
      <address>
        <postal>
          <street>16, Boulevard Saint-Germain</street>
          <city>Paris</city>
          <code>75005</code>
          <country>France</country>
        </postal>
        <email>daniel.vangeest.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2024"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>Key Encapsulation Mechanism (KEM)</keyword>
    <keyword>KEMRecipientInfo</keyword>
    <keyword>ML-KEM</keyword>
    <keyword>Kyber</keyword>
    <abstract>
      <?line 91?>

<t>The Module-Lattice-based Key-Encapsulation Mechanism (ML-KEM) algorithm is a one-pass (store-and-forward) cryptographic mechanism for an originator to securely send keying material to a recipient using the recipient's ML-KEM public key. Three parameters sets for the ML-KEM algorithm are specified by NIST in <xref target="FIPS203-ipd"/> [EDNOTE: Change to <xref target="FIPS203"/> when it is published]. In order of increasing security strength (and decreasing performance), these parameter sets are ML-KEM-512, ML-KEM-768, and ML-KEM-1024. This document specifies the conventions for using ML-KEM with the Cryptographic Message Syntax (CMS) using KEMRecipientInfo as specified in <xref target="I-D.ietf-lamps-cms-kemri"/>.</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-cms-kyber/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME (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/lamps-wg/kyber-certificates"/>.</t>
    </note>
  </front>
  <middle>
    <?line 97?>

<section anchor="sec-introduction">
      <name>Introduction</name>
      <t>ML-KEM is an IND-CCA2-secure key-encapsulation mechanism (KEM) standardized in <xref target="FIPS203"/> by the US NIST PQC Project <xref target="NIST-PQ"/>.</t>
      <t>Native support for Key Encapsulation Mechanisms (KEMs) was added to CMS in <xref target="I-D.ietf-lamps-cms-kemri"/>, which defines the KEMRecipientInfo structure for the use of KEM algorithms for the CMS enveloped-data content type, the CMS authenticated-data content type, and the CMS authenticated-enveloped-data content type. This document specifies the direct use of ML-KEM in the KEMRecipientInfo structure in CMS using each of the three parameter sets from <xref target="FIPS203"/>, namely MK-KEM-512, ML-KEM-768, and ML-KEM-1024.  It does not address or preclude the use of ML-KEM as part of any hybrid scheme.</t>
      <section anchor="sec-intro-terminology">
        <name>Conventions and Terminology</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 BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<!-- End of terminology section -->

</section>
      <section anchor="sec-intro-ml-kem">
        <name>ML-KEM</name>
        <t>ML-KEM is a lattice-based key encapsulation mechanism using Module Learning with Errors as its underlying primitive, which is a structured lattices variant that offers good performance and relatively small and balanced key and ciphertext sizes. ML-KEM was standardized with three parameter sets: ML-KEM-512, ML-KEM-768, and ML-KEM-1024. These were mapped by NIST to the three security levels defined in the NIST PQC Project, Level 1, 3, and 5. These levels correspond to the hardness of breaking AES-128, AES-192 and AES-256 respectively.</t>
        <t>Like all KEM algorithms, ML-KEM provides three functions: KeyGen(), Encapsulate(), and Decapsulate().</t>
        <dl>
          <dt>KeyGen() -&gt; (pk, sk):</dt>
          <dd>
            <t>Generate the public key (pk) and a private key (sk).</t>
          </dd>
          <dt>Encapsulate(pk) -&gt; (ct, ss):</dt>
          <dd>
            <t>Given the recipient's public key (pk), produce a ciphertext (ct) to be passed to the recipient and a shared secret (ss) for use by the originator.</t>
          </dd>
          <dt>Decapsulate(sk, ct) -&gt; ss:</dt>
          <dd>
            <t>Given the private key (sk) and the ciphertext (ct), produce the shared secret (ss) for the recipient.</t>
          </dd>
        </dl>
        <t>The KEM functions defined above correspond to the following functions in <xref target="FIPS203"/>:</t>
        <dl>
          <dt>KeyGen():</dt>
          <dd>
            <t>ML-KEM.KeyGen() from section 6.1.</t>
          </dd>
          <dt>Encapsulate():</dt>
          <dd>
            <t>ML-KEM.Encaps() from section 6.2.</t>
          </dd>
          <dt>Decapsulate():</dt>
          <dd>
            <t>ML-KEM.Decaps() from section 6.3.</t>
          </dd>
        </dl>
        <t>All security levels of ML-KEM use SHA3-256, SHA3-512, SHAKE256, and SHAKE512 internally.</t>
        <!-- End of ML-KEM section -->

<!-- End of introduction section -->

</section>
    </section>
    <section anchor="sec-using">
      <name>Use of the ML-KEM Algorithm in CMS</name>
      <t>The ML-KEM algorithm <bcp14>MAY</bcp14> be employed for one or more recipients in the CMS enveloped-data content type <xref target="RFC5652"/>, the CMS authenticated-data content type <xref target="RFC5652"/>, or the CMS authenticated-enveloped-data content type <xref target="RFC5083"/>. In each case, the KEMRecipientInfo <xref target="I-D.ietf-lamps-cms-kemri"/> is used with the ML-KEM algorithm to securely transfer the content-encryption key from the originator to the recipient.</t>
      <t>Processing ML-KEM with KEMRecipientInfo follows the same steps as Section 2 of <xref target="I-D.ietf-lamps-cms-kemri"/>. To support the ML-KEM algorithm, a CMS originator <bcp14>MUST</bcp14> implement the Encapsulate() function and a CMS responder <bcp14>MUST</bcp14> implement the Decapsulate() function.</t>
      <section anchor="sec-using-recipientInfo">
        <name>RecipientInfo Conventions</name>
        <t>When the ML-KEM algorithm is employed for a recipient, the RecipientInfo alternative for that recipient <bcp14>MUST</bcp14> be OtherRecipientInfo using the KEMRecipientInfo structure as defined in <xref target="I-D.ietf-lamps-cms-kemri"/>.
The fields of the KEMRecipientInfo <bcp14>MUST</bcp14> have the following values:</t>
        <ul empty="true">
          <li>
            <t>version is the syntax version number; it <bcp14>MUST</bcp14> be 0.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>rid identifies the recipient's certificate or public key.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>kem identifies the KEM algorithm; it <bcp14>MUST</bcp14> contain one of id-ML-KEM-512, id-ML-KEM-768, or id-ML-KEM-1024. These identifiers are reproduced in <xref target="sec-identifiers"/>.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>kemct is the ciphertext produced for this recipient.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>kdf identifies the key-derivation algorithm. Note that the Key Derivation Function (KDF) used for CMS RecipientInfo process <bcp14>MAY</bcp14> be different than the KDF used within the ML-KEM algorithm.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>kekLength is the size of the key-encryption key in octets.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>ukm is an optional random input to the key-derivation function. ML-KEM doesn't place any requirements on the ukm contents.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>wrap identifies a key wrapping algorithm used to encrypt the content-encryption key.</t>
          </li>
        </ul>
        <!-- End of recipientinfo conventions section -->

</section>
      <section anchor="sec-using-components">
        <name>Underlying Components</name>
        <t>When ML-KEM is employed in CMS, the security levels of the different underlying components used within the KEMRecipientInfo structure <bcp14>SHOULD</bcp14> be consistent.</t>
        <section anchor="use-of-the-hkdf-based-key-derivation-function">
          <name>Use of the HKDF-based Key Derivation Function</name>
          <t>The HMAC-based Extract-and-Expand Key Derivation Function (HKDF) is defined in <xref target="RFC5869"/>.</t>
          <t>The HKDF function is a composition of the HKDF-Extract and HKDF-Expand functions.</t>
          <artwork><![CDATA[
HKDF(salt, IKM, info, L)
  = HKDF-Expand(HKDF-Extract(salt, IKM), info, L)
]]></artwork>
          <t>HKDF(salt, IKM, info, L) takes the following parameters:</t>
          <dl>
            <dt>salt:</dt>
            <dd>
              <t>optional salt value (a non-secret random value). In this document this parameter is unused, that is it is the zero-length string "".</t>
            </dd>
            <dt>IKM:</dt>
            <dd>
              <t>input keying material. In this document this is the shared secret outputted from the Encapsulate() or Decapsulate() functions.  This corresponds to the IKM KDF input from Section 5 of <xref target="I-D.ietf-lamps-cms-kemri"/>.</t>
            </dd>
            <dt>info:</dt>
            <dd>
              <t>optional context and application specific information. In this document this corresponds to the info KDF input from Section 5 of <xref target="I-D.ietf-lamps-cms-kemri"/>. This is the ASN.1 DER encoding of CMSORIforKEMOtherInfo.</t>
            </dd>
            <dt>L:</dt>
            <dd>
              <t>length of output keying material in octets. This corresponds to the L KDF input from Section 5 of <xref target="I-D.ietf-lamps-cms-kemri"/>, which is identified in the kekLength value from KEMRecipientInfo.</t>
            </dd>
          </dl>
          <t>HKDF may be used with different hash functions, including SHA2-256 or SHA2-512 <xref target="FIPS180"/>. The object identifiers id-alg-hkdf-with-sha256 and id-alg-hkdf-with-sha512 are defined in <xref target="RFC8619"/> (see <xref target="sec-identifiers"/>), and specify the use of HKDF with SHA2-256 and SHA2-512 respectively. The parameter field <bcp14>MUST</bcp14> be absent when one of these algorithm identifiers is used to specify the KDF for ML-KEM in KemRecipientInfo.</t>
        </section>
        <section anchor="use-of-the-kmac-based-key-derivation-function">
          <name>Use of the KMAC-based Key Derivation Function</name>
          <t>KMAC128-KDF and KMAC256-KDF are KMAC-based KDFs specified for use in CMS in <xref target="I-D.ietf-lamps-cms-sha3-hash"/>.  Here, KMAC# indicates the use of either KMAC128-KDF or KMAC256-KDF.</t>
          <t>KMAC#(K, X, L, S) takes the following parameters:</t>
          <dl>
            <dt>K:</dt>
            <dd>
              <t>the input key-derivation key.  In this document this is the shared secret outputted from the Encapsulate() or Decapsulate() functions.  This corresponds to the IKM KDF input from Section 5 of <xref target="I-D.ietf-lamps-cms-kemri"/>.</t>
            </dd>
            <dt>X:</dt>
            <dd>
              <t>the context, corresponding to the info KDF input from Section 5 of <xref target="I-D.ietf-lamps-cms-kemri"/>. This is the ASN.1 DER encoding of CMSORIforKEMOtherInfo.</t>
            </dd>
            <dt>L:</dt>
            <dd>
              <t>the output length, in bits.  This corresponds to the L KDF input from Section 5 of <xref target="I-D.ietf-lamps-cms-kemri"/>, which is identified in the kekLength value from KEMRecipientInfo.  The L KDF input and kekLength values are specified in octets while this L parameter is specified in bits.</t>
            </dd>
            <dt>S:</dt>
            <dd>
              <t>the optional customization label.  In this document this parameter is unused, that is it is the zero-length string "".</t>
            </dd>
          </dl>
          <t>The object identifier for KMAC128-KDF is id-kmac128 (see <xref target="sec-identifiers"/>).</t>
          <t>The object identifier for KMAC256-KDF is id-kmac256 (see <xref target="sec-identifiers"/>).</t>
          <t>Since the customization label to KMAC# is not used, the parameter field <bcp14>MUST</bcp14> be absent when id-kmac128 or id-kmac256 is used as part of an algorithm identifier specifying the KDF to use for ML-KEM in KemRecipientInfo.</t>
        </section>
        <section anchor="components-for-ml-kem-in-cms">
          <name>Components for ML-KEM in CMS</name>
          <t>An implementation <bcp14>MUST</bcp14> support at least one of KMAC# or HMAC as the KDF for ML-KEM in KemRecipientInfo.  It is <bcp14>RECOMMENDED</bcp14> that a CMS recipient supports both. KMAC# is given as an option because ML-KEM uses SHA3 and SHAKE as internal functions, so an implementation may want to use these to reduce code size. HMAC is given as an option because SHA2 is widely supported and the CMS-level code may not have access to underlying KECCAK-based implementations. Note that the KDF used to process the KEMRecipientInfo structure <bcp14>MAY</bcp14> be different from the KDF used in the ML-KEM algorithm.</t>
          <t>For ML-KEM-512, the following underlying components <bcp14>MUST</bcp14> be supported:</t>
          <ul empty="true">
            <li>
              <t>KDF: KMAC128-KDF using id-kmac128 or HMAC with SHA2-256 using id-alg-hkdf-with-sha256</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Key wrapping: 128-bit AES key wrapping using id-aes128-wrap <xref target="RFC3565"/></t>
            </li>
          </ul>
          <t>For ML-KEM-768, the following underlying components <bcp14>MUST</bcp14> be supported:</t>
          <ul empty="true">
            <li>
              <t>KDF: KMAC256-KDF using id-kmac256 or HMAC with SHA2-512 using id-alg-hkdf-with-sha512</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Key wrapping: 256-bit AES key wrapping using id-aes256-wrap <xref target="RFC3565"/></t>
            </li>
          </ul>
          <t>For ML-KEM-1024, the following underlying components <bcp14>MUST</bcp14> be supported:</t>
          <ul empty="true">
            <li>
              <t>KDF: KMAC256-KDF using id-kmac256 or HMAC with SHA2-512 using id-alg-hkdf-with-sha512</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>Key wrapping: 256-bit AES key wrapping using id-aes256-wrap <xref target="RFC3565"/></t>
            </li>
          </ul>
          <t>The above object identifiers are reproduced for convenience in <xref target="sec-identifiers"/>.</t>
          <t>An implementation <bcp14>MAY</bcp14> also support other key-derivation functions and other key-encryption algorithms.</t>
          <t>If underlying components other than those specified above are used, then the following KDF requirements are in effect in addition to those asserted in <xref target="I-D.ietf-lamps-cms-kemri"/>:</t>
          <ul empty="true">
            <li>
              <t>ML-KEM-512 <bcp14>SHOULD</bcp14> be used with a KDF capable of outputting a key with at least 128 bits of security and with a key wrapping algorithm with a key length of at least 128 bits.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>ML-KEM-768 <bcp14>SHOULD</bcp14> be used with a KDF capable of outputting a key with at least 192 bits of security and with a key wrapping algorithm with a key length of at least 192 bits.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>ML-KEM-1024 <bcp14>SHOULD</bcp14> be used with a KDF capable of outputting a key with at least 256 bits of security and with a key wrapping algorithm with a key length of at least 256 bits.</t>
            </li>
          </ul>
          <!-- End of Underlying Components section -->

</section>
      </section>
      <section anchor="sec-using-certs">
        <name>Certificate Conventions</name>
        <t>The conventions specified in this section augment <xref target="RFC5280"/>.</t>
        <t>A recipient who employs the ML-KEM algorithm with a certificate <bcp14>MUST</bcp14> identify the public key in the certificate using the id-ML-KEM-512, id-ML-KEM-768, or id-ML-KEM-1024 object identifiers following the conventions specified in <xref target="I-D.ietf-lamps-kyber-certificates"/> and reproduced in <xref target="sec-identifiers"/>.</t>
        <t>In particular, the key usage certificate extension <bcp14>MUST</bcp14> only contain keyEncipherment (Section 4.2.1.3 of <xref target="RFC5280"/>).</t>
      </section>
      <section anchor="sec-using-smime-caps">
        <name>SMIME Capabilities Attribute Conventions</name>
        <t>Section 2.5.2 of <xref target="RFC8551"/> defines the SMIMECapabilities attribute to announce a partial list of algorithms that an S/MIME implementation can support. When constructing a CMS signed-data content type <xref target="RFC5652"/>, a compliant implementation <bcp14>MAY</bcp14> include the SMIMECapabilities attribute that announces support for one or more of the ML-KEM algorithm identifiers.</t>
        <t>The SMIMECapability SEQUENCE representing the ML-KEM algorithm <bcp14>MUST</bcp14> include one of the ML-KEM object identifiers in the capabilityID field. When the one of the ML-KEM object identifiers appears in the capabilityID field, the parameters <bcp14>MUST NOT</bcp14> be present.</t>
        <!-- End of smime-capabilities-attribute-conventions section -->

<!-- End of use-in-cms section -->

</section>
    </section>
    <section anchor="sec-identifiers">
      <name>Identifiers</name>
      <t>All identifiers used by ML-KEM in CMS are defined elsewhere but reproduced here for convenience:</t>
      <artwork><![CDATA[
  id-TBD-NIST-KEM OBJECT IDENTIFIER ::= { TBD }

  id-ML-KEM-512 OBJECT IDENTIFIER ::= { id-TBD-NIST-KEM TBD }
  id-ML-KEM-768 OBJECT IDENTIFIER ::= { id-TBD-NIST-KEM TBD }
  id-ML-KEM-1024 OBJECT IDENTIFIER ::= { id-TBD-NIST-KEM TBD }

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

  id-alg-hkdf-with-sha256 OBJECT IDENTIFIER ::= { iso(1)
      member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
      smime(16) alg(3) 28 }
  id-alg-hkdf-with-sha512 OBJECT IDENTIFIER ::= { iso(1)
      member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-9(9)
      smime(16) alg(3) 30 }

  id-kmac128 OBJECT IDENTIFIER ::= { hashAlgs 21 }
  id-kmac256 OBJECT IDENTIFIER ::= { hashAlgs 22 }

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

  id-aes128-wrap OBJECT IDENTIFIER ::= { aes 5 }
  id-aes256-wrap OBJECT IDENTIFIER ::= { aes 45 }
]]></artwork>
    </section>
    <section anchor="sec-security-considerations">
      <name>Security Considerations</name>
      <t>[EDNOTE: many of the security considerations below apply to ML-KEM in general and are not specific to ML-KEM within CMS. As this document and draft-ietf-lamps-kyber-certificates approach WGLC, the two Security Consideration sections should be harmonized and duplicate text removed.]</t>
      <t>The Security Considerations sections of <xref target="I-D.ietf-lamps-kyber-certificates"/> and <xref target="I-D.ietf-lamps-cms-kemri"/> apply to this specification as well.</t>
      <t>The ML-KEM variant and the underlying components need to be selected consistent with the desired security level. Several security levels have been identified in the NIST SP 800-57 Part 1 <xref target="NIST.SP.800-57pt1r5"/>. To achieve 128-bit security, ML-KEM-512 <bcp14>SHOULD</bcp14> be used, the key-derivation function <bcp14>SHOULD</bcp14> provide at least 128 bits of security, and the symmetric key-encryption algorithm <bcp14>SHOULD</bcp14> be AES Key Wrap with a 128-bit key. To achieve 192-bit security, ML-KEM-768 <bcp14>SHOULD</bcp14> be used, the key-derivation function <bcp14>SHOULD</bcp14> provide at least 192 bits of security, and the symmetric key-encryption algorithm <bcp14>SHOULD</bcp14> be AES Key Wrap with a 192-bit key or larger. In this case AES Key Wrap with a 256-bit key is typically used because AES-192 is not as commonly deployed. To achieve 256-bit security, ML-KEM-1024 <bcp14>SHOULD</bcp14> be used, the key-derivation function <bcp14>SHOULD</bcp14> provide at least 256 bits of security, and the symmetric key-encryption algorithm <bcp14>SHOULD</bcp14> be AES Key Wrap with a 256-bit key.</t>
      <t>Provided all inputs are well-formed, the key establishment procedure of ML-KEM will never explicitly fail. Specifically, the ML-KEM.Encaps and ML-KEM.Decaps algorithms from <xref target="FIPS203"/> will always output a value with the same data type as a shared secret key, and will never output an error or failure symbol. However, it is possible (though extremely unlikely) that the process will fail in the sense that ML-KEM.Encaps and ML-KEM.Decaps will produce different outputs, even though both of them are behaving honestly and no adversarial interference is present. In this case, the sender and recipient clearly did not succeed in producing a shared
secret key. This event is called a decapsulation failure. Estimates for the decapsulation failure probability (or rate) for each of the ML-KEM parameter sets are provided in Table 1 [EDNOTE: make sure this doesn't change] of <xref target="FIPS203"/> and reproduced here in <xref target="tab-fail"/>.</t>
      <table anchor="tab-fail">
        <name>ML-KEM decapsulation failures rates</name>
        <thead>
          <tr>
            <th align="left">Parameter set</th>
            <th align="left">Decapsulation failure rate</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ML-KEM-512</td>
            <td align="left">2^(-139)</td>
          </tr>
          <tr>
            <td align="left">ML-KEM-768</td>
            <td align="left">2^(-164)</td>
          </tr>
          <tr>
            <td align="left">ML-KEM-1024</td>
            <td align="left">2^(-174)</td>
          </tr>
        </tbody>
      </table>
      <t>Implementations <bcp14>MUST</bcp14> protect the ML-KEM private key, the key-encryption key, the content-encryption key, message-authentication key, and the content-authenticated-encryption key. Disclosure of the ML-KEM private key could result in the compromise of all messages protected with that key. Disclosure of the key-encryption key, the content- encryption key, or the content-authenticated-encryption key could result in compromise of the associated encrypted content. Disclosure of the key-encryption key, the message-authentication key, or the content-authenticated-encryption key could allow modification of the associated authenticated content.</t>
      <t>Additional considerations related to key management may be found in <xref target="NIST.SP.800-57pt1r5"/>.</t>
      <t>The security of the ML-KEM algorithm depends on a quality random number generator. For further discussion on random number generation, see <xref target="RFC4086"/>.</t>
      <t>ML-KEM encapsulation and decapsulation only outputs a shared secret and ciphertext. Implementations <bcp14>SHOULD NOT</bcp14> use intermediate values directly for any purpose.</t>
      <t>Implementations <bcp14>SHOULD NOT</bcp14> reveal information about intermediate values or calculations, whether by timing or other "side channels", otherwise an opponent may be able to determine information about the keying data and/or the recipient's private key. Although not all intermediate information may be useful to an opponent, it is preferable to conceal as much information as is practical, unless analysis specifically indicates that the information would not be useful to an opponent.</t>
      <t>Generally, good cryptographic practice employs a given ML-KEM key pair in only one scheme. This practice avoids the risk that vulnerability in one scheme may compromise the security of the other, and may be essential to maintain provable security.</t>
      <t>Parties <bcp14>MAY</bcp14> gain assurance that implementations are correct through formal implementation validation, such as the NIST Cryptographic Module Validation Program (CMVP) <xref target="CMVP"/>.</t>
      <!-- End of security-considerations section -->

</section>
    <section anchor="sec-iana-considerations">
      <name>IANA Considerations</name>
      <t>None.</t>
      <t>Within the CMS, algorithms are identified by object identifiers (OIDs). All of the OIDs used in this document were assigned in other IETF documents, in ISO/IEC standards documents, by the National Institute of Standards and Technology (NIST).</t>
      <!-- End of iana-considerations section -->

</section>
    <section anchor="sec-acknowledgements">
      <name>Acknowledgements</name>
      <t>This document borrows heavily from <xref target="I-D.ietf-lamps-rfc5990bis"/>, <xref target="FIPS203"/>, and <xref target="I-D.kampanakis-ml-kem-ikev2"/>. Thanks go to the authors of those documents. "Copying always makes things easier and less error prone" - RFC8411.</t>
      <t>Thanks to Carl Wallace and Jonathan Hammel for the detailed review and Carl Wallace for interoperability testing.</t>
      <!-- End of acknowledgements section -->

</section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS203">
          <front>
            <title>TBD</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="FIPS203-ipd" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.ipd.pdf">
          <front>
            <title>Module-Lattice-based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2023" month="August" day="24"/>
          </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="6" month="February" year="2024"/>
            <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.  This document updates RFC 5652.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-kemri-08"/>
        </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="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="RFC5083">
          <front>
            <title>Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Data Content Type</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="November" year="2007"/>
            <abstract>
              <t>This document describes an additional content type for the Cryptographic Message Syntax (CMS). The authenticated-enveloped-data content type is intended for use with authenticated encryption modes. All of the various key management techniques that are supported in the CMS enveloped-data content type are also supported by the CMS authenticated-enveloped-data content type. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5083"/>
          <seriesInfo name="DOI" value="10.17487/RFC5083"/>
        </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="RFC8619">
          <front>
            <title>Algorithm Identifiers for the HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>RFC 5869 specifies the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) algorithm. This document assigns algorithm identifiers to the HKDF algorithm when used with three common one-way hash functions.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8619"/>
          <seriesInfo name="DOI" value="10.17487/RFC8619"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-cms-sha3-hash">
          <front>
            <title>Use of the SHA3 One-way Hash Functions in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <date day="16" month="May" year="2024"/>
            <abstract>
              <t>   This document describes the conventions for using the one-way hash
   functions in the SHA3 family with the Cryptographic Message Syntax
   (CMS).  The SHA3 family can be used as a message digest algorithm, as
   part of a signature algorithm, as part of a message authentication
   code, or part of a key derivation function.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-sha3-hash-04"/>
        </reference>
        <reference anchor="RFC3565">
          <front>
            <title>Use of the Advanced Encryption Standard (AES) Encryption Algorithm in Cryptographic Message Syntax (CMS)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document specifies the conventions for using the Advanced Encryption Standard (AES) algorithm for encryption with the Cryptographic Message Syntax (CMS). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3565"/>
          <seriesInfo name="DOI" value="10.17487/RFC3565"/>
        </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.ietf-lamps-kyber-certificates">
          <front>
            <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM)</title>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Jake Massimo" initials="J." surname="Massimo">
              <organization>AWS</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="3" month="March" year="2024"/>
            <abstract>
              <t>   Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM), also known
   as Kyber, is a key-encapsulation mechanism (KEM).  This document
   specifies algorithm identifiers and ASN.1 encoding format for ML-KEM
   in public key certificates.  The encoding for public and private keys
   are also provided.

   [EDNOTE: This document is not expected to be finalized before the
   NIST PQC Project has standardized PQ algorithms.  This specification
   will use object identifiers for the new algorithms that are assigned
   by NIST, and will use placeholders until these are released.]

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-kyber-certificates-03"/>
        </reference>
        <reference anchor="RFC8551">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8551"/>
          <seriesInfo name="DOI" value="10.17487/RFC8551"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NIST-PQ" 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="CMVP" target="https://csrc.nist.gov/projects/cryptographic-module-validation-program">
          <front>
            <title>Cryptographic Module Validation Program</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2016"/>
          </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="NIST.SP.800-57pt1r5" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf">
          <front>
            <title>Recommendation for key management:part 1 - general</title>
            <author fullname="Elaine Barker" surname="Barker">
              <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="May" year="2020"/>
          </front>
          <seriesInfo name="NIST Special Publications (General)" value="800-57pt1r5"/>
          <seriesInfo name="DOI" value="10.6028/NIST.SP.800-57pt1r5"/>
        </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-rfc5990bis">
          <front>
            <title>Use of the RSA-KEM Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="5" month="June" year="2024"/>
            <abstract>
              <t>   The RSA Key Encapsulation Mechanism (RSA-KEM) Algorithm is a one-pass
   (store-and-forward) cryptographic mechanism for an originator to
   securely send keying material to a recipient using the recipient's
   RSA public key.  The RSA-KEM Algorithm is specified in Clause 11.5 of
   ISO/IEC: 18033-2:2006.  This document specifies the conventions for
   using the RSA-KEM Algorithm as a standalone KEM algorithm and the
   conventions for using the RSA-KEM Algorithm with the Cryptographic
   Message Syntax (CMS) using KEMRecipientInfo as specified in RFC XXXX.
   This document obsoletes RFC 5990.

   RFC EDITOR: Please replace XXXX with the RFC number assigned to
   draft-ietf-lamps-cms-kemri.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-rfc5990bis-08"/>
        </reference>
        <reference anchor="I-D.kampanakis-ml-kem-ikev2">
          <front>
            <title>Post-quantum Hybrid Key Exchange with ML-KEM in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Amazon Web Services</organization>
            </author>
            <author fullname="Gerardo Ravago" initials="G." surname="Ravago">
              <organization>Amazon Web Services</organization>
            </author>
            <date day="29" month="March" year="2024"/>
            <abstract>
              <t>   [EDNOTE: The intention of this draft is to get IANA KE codepoints for
   ML-KEM.  It could be a standards track draft given that ML-KEM will
   see a lot of adoption, an AD sponsored draft, or even an individual
   stable draft which gets codepoints from Expert Review.  The approach
   is to be decided by the IPSECME WG. ]

   NIST recently standardized ML-KEM, a new key encapsulation mechanism,
   which can be used for quantum-resistant key establishment.  This
   draft specifies how to use ML-KEM as an additional key exchange in
   IKEv2 along with traditional key exchanges.  This Post-Quantum
   Traditional Hybrid Key Encapsulation Mechanism approach allows for
   negotiating IKE and Child SA keys which are safe against
   cryptanalytically-relevant quantum computers and theoretical
   weaknesses in ML-KEM.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kampanakis-ml-kem-ikev2-03"/>
        </reference>
      </references>
    </references>
    <?line 381?>

<section anchor="asn1-module">
      <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.ietf-lamps-cms-kemri"/>.</t>
      <sourcecode markers="true"><![CDATA[
CMS-ML-KEM-2024
{ iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
  pkcs-9(9) smime(16) modules(0) id-mod-cms-ml-kem-2024(TBD1) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  KEM-ALGORITHM
    FROM KEMAlgorithmInformation-2023  -- [I-D.ietf-lamps-cms-kemri]
       { iso(1) identified-organization(3) dod(6) internet(1)
         security(5) mechanisms(5) pkix(7) id-mod(0)
         id-mod-kemAlgorithmInformation-2023(TBD2) };

kema-ml-kem-512 KEM-ALGORITHM ::= {
   IDENTIFIER id-ML-KEM-512
   PARAMS ARE absent
   PUBLIC-KEYS { pk-ml-kem-512 }
   UKM ARE optional
   SMIME-CAPS { IDENTIFIED BY id-ML-KEM-512 } }

kema-ml-kem-768 KEM-ALGORITHM ::= {
   IDENTIFIER id-ML-KEM-768
   PARAMS ARE absent
   PUBLIC-KEYS { pk-ml-kem-768 }
   UKM ARE optional
   SMIME-CAPS { IDENTIFIED BY id-ML-KEM-768 } }

kema-ml-kem-1024 KEM-ALGORITHM ::= {
   IDENTIFIER id-ML-KEM-1024
   PARAMS ARE absent
   PUBLIC-KEYS { pk-ml-kem-1024 }
   UKM ARE optional
   SMIME-CAPS { IDENTIFIED BY id-ML-KEM-1024 } }

SMimeCaps SMIME-CAPS ::=
   { kema-ml-kem-512.&smimeCaps |
     kema-ml-kem-768.&smimeCaps |
     kema-ml-kem-1024.&smimeCaps,
     ... }

END
]]></sourcecode>
      <section anchor="examples">
        <name>Examples</name>
        <artwork><![CDATA[
EDITOR'S NOTE' - TODO
section to be completed
]]></artwork>
      </section>
    </section>
    <section anchor="sec-version-changes">
      <name>Revision History</name>
      <t>[EDNOTE: remove before publishing]</t>
      <ul spacing="normal">
        <li>
          <t>draft-ietf-lamps-cms-kyber-04:
          </t>
          <ul spacing="normal">
            <li>
              <t>Add HMAC with SHA2 KDF.</t>
            </li>
            <li>
              <t>Address Jonathan Hammell's review:
              </t>
              <ul spacing="normal">
                <li>
                  <t>Remove section introducing KEMs, move relevant bits to ML-KEM section</t>
                </li>
                <li>
                  <t>Remove kemri processing summary, move relevant bits elsewhere</t>
                </li>
                <li>
                  <t>Minor editorial changes</t>
                </li>
              </ul>
            </li>
            <li>
              <t>ASN.1 module</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-ietf-lamps-cms-kyber-03:
          </t>
          <ul spacing="normal">
            <li>
              <t>Switch MTI KDF from HKDF to KMAC.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-ietf-lamps-cms-kyber-02:
          </t>
          <ul spacing="normal">
            <li>
              <t>Rearrange and rewrite to align with rfc5990bis and I-D.ietf-lamps-cms-kemri</t>
            </li>
            <li>
              <t>Move Revision History to end to avoid renumbering later</t>
            </li>
            <li>
              <t>Add Security Considerations</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-ietf-lamps-cms-kyber-01:
          </t>
          <ul spacing="normal">
            <li>
              <t>Details of the KEMRecipientInfo content when using Kyber;</t>
            </li>
            <li>
              <t>Editorial changes.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>draft-ietf-lamps-cms-kyber-00:
          </t>
          <ul spacing="normal">
            <li>
              <t>Use of KEMRecipientInfo to communicate algorithm info;</t>
            </li>
            <li>
              <t>Editorial changes.</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA91c63bbOJL+r6fAOOdspD2ibMl22tH0TZGURG3LdltOX85M
7x6IhCS2KVJDkHY06fTZn/t79wX2WfZR5km2qgAQIHVxku45O7v50S2TuFQV
qr66AKDnebX7LjuuBYkf86XosiDls8wLRTbzIr5cSc9fSu9uPRWpd3RSy8Is
gkZvpGDJjI0vvPPhmIUxyxaC9dP1KkvmKV8tQp+NhZR8LthkHWf8Lav3x5NG
jU+nqYD5bEd4XPOTWIpY5rLLnmZpLp7WZD5dhlKGSZytVzDfaHj7shbwDH52
jjontSfs8z94HiueHHvtNvO8Lzdf0NOazHgc/CuPkhge4xTsCbtdhJJFIpMs
lyxI2IzH/prxPEu8uYhFyjOYHrlMxUykIvaFrIWrlPrLrHN09PyoU+Op4F02
EX6ehtm69pCkd/M0yVdddtEbX09qd2INz4JujXnsXKzZMPb5SuaRGnws/AWP
Q7lkdRBHgxoNxzfCD1ehiLNRPEvwmZIWvcV1qPnA3TxJ110ms6B2L+JcwARM
T3xwES7DTASsFwQhTsMjO5FksyRl1+ejHxhIhE3Go/GQ1WmhGwcwhhL3wffA
RxjP2SscEp8veRjBc7nicvk1KkcrSef4gqf+Al4ssmwlu4eH2A4fhfeiZZod
4oPDaZo8SHFIIxxiz3mYLfIp9FVq9jA/VFrmizQLZyEyKQ9qoBwBUNKFRfK4
9MOwtgq7DP49YT6P4akAElK+ZvVwxngUsbWQDQY8LrhcsAUsHHKV+F18AT9l
kmawoLJLQwRixvMIVCBLzPv1Ur3GP2ugDYskReEy5tF/GSgtvP2mxa5BQ/Qj
ZTnf5BGsmvscmO9qs7gUbzOrJ+q1BEpE1mXtZ032Iskjcc9TWBMexpn3SqQg
y1i39KFTl13zNJTmSZLHGarAyxT0VhRPAyDks9Ojo1P9RKiV+5loa62Atq99
IigGgjypCWr5yXKTyXGLXeWxBAXOFiVOx+Gd2HhFzA5jsg6mdVC/Mmav31bY
7wC5bJJEoJAZu0l4wP72b//JJjkMwNpHRyURXGUZf+BNdgWgkoZJVRh9HvOA
l4Rx3jlnx68q4lgCA63EMPC1UHRtl8Kgxb4DTXslhCyv9wAsSkQbL/9xFj0g
Alv3PJ4jfWSQX8/xHXFaq8UJzJeBraKGvxxdTzpHx109hkb62xcD+84LV0Hl
/cE4CYAJ74JnWegLb8olQA9AnbcL6iaIxcDzgR7IAfGjMw/AXY/P0znKySBL
fB+t8qlswRhZa57cH+IPfHKIxB1ejia3LfzVAjpbQGdrFcyM+jlWXKzQJdfY
OIol8JJn5NEMcZLg8RaIjpMomQO84ASNmnEww8Hl1e2wy2Y5QI5ULg6RNUOn
AqgSxiAFRB/LgMI7lPyhz6fJ4V3Kl0HyEHvpzO886zxXnioEzHcWBWf1rr9V
tFdF4svUt/JYpcnPws/k4SqRmfeXnMdZvvR865SVBup1u8ZG36pGrudeA37R
OLVNyXmfIrmau8btZ16743XQpvvj764/ii3fDS+8pVK7ex6FAdHjQUN4udxC
96dSbVS8EtjQzGD2ZmaUGM58UGG15oGi8CkYPAdx1m4hRPpoY6kr398A1wYe
HzRoyUDBOAP49sCTSlaXWZIKD6j3QHEegJUGK0mKLYvBUEEBrGCceRjzDNU1
YeQCRLSGHyABiFfQ74MCijQEYUEDDgGQDkjA3eJbDPaKZ0+liebAGCOYD4Zo
QXAFKMdWHMQiYCgJo2dSW4gwHSxPEEYxuYIhZyEIZLomvcfw8N07B3rev2d/
/pOxvP4CYQ0JLNrA+4cFeOAwQyEROXIhgj//1IJFB7YDkeKah7EPURtxYvwf
oXI8zxasjnoQiKLFSqRkkAC3jSYSLx22FFdIvOLIO213mub3Z8/OmqRV+u82
BK4tFXVCsJ0vUZ6GZ0ligTgYgjnUACUqJW0trAcQ1AeG2bpjNZRkXDpCJuH+
YeQNWtVYXyzT8P37Vq2mkA44AKH1tB4rlELNXoZBEIkaQuIIvBJotk/K++4J
SNULnUfvazUT8KOdsdHlwOv3ex0VfgjUGE+UDGBZDoyZ1GYa/tVQbpcctAXF
8mailOb6276BMGim8ZPYuSRUZTJfrcDrk4T3hOSSpoZY8gHExoMAJgZdA/E+
KrkmaGHoL7QbUEu7sRYgTRAOcm+MIlc5VckwrMngxALUI0pWIvAAZDiqS4ZK
hDF7s2iE0IdKhPHz1oaoktsb7xl/v+IGYYrizrdlhXs4V+mf1lbBQWTQG/tk
ZfTQ4JEmS3fhmxSGAXCNzz/Q9tgoAw6A5jjJcElTsB1MFVZAfZQHwl0GA1ES
ycjwCY/XbLGepmHApL8QSwEq9eQJ6ztGq3xIugx10OCYgpfZ5++VMwC1Z5gc
Sgii3kxuD5rq/wzwDX/fDL99M7oZDvD35HXv4qL4UdMtJq+v3lwM7C/bs381
Hg8vB6ozPGWlR7WDce/HAyWgg6vr29HVZe/iQC2Yu8gIbKDzU1wpIB/EhGkl
l7VASD8Np8oWX/Sv//u/2idoEzcv+512+zkYpfrjrP3ZiQZlNVsSw3qpP0HW
6xpfrQRPcRRM3cAOw4xHsklItYDYiEIokPM//wkl81OXfT71V+2TL/UDZLj0
0Mis9JBktvlko7MS4pZHW6YppFl6XpF0md7ej6W/jdydh59/FQFgMK999hVg
bAl+He1Bp0VQRUgMGqhV1VW2ZYRgVMZdFpWiDtS+XaCrHY8KdC5ghWL8mzzQ
ME0TcOewQCFWTmLwqRGFDKsUUz4AWAN/NGdh7IGZXjJIeEKOuLLgaFgzDA/m
SRK4vpa0BcISgmwMTpaoIPhwyiNsoBjAB4AtoCUZploS/INsFR4Ttch1HNqF
bmJL92P8N0YAD6CWECSB9tpoBSzFYlcRWEB+JyKbEmhQrHqqJkgZ2rF2kx2r
SU/NVHoAP0kBrlZJHJiJFsBWTAg2Y5BecyrY9IYTiLCBcPrxvENj4e/O6TOG
A6DuoETBqC4wi0exll1Os4jn0uQ+DAjikaVZHpPegbTAbb4ScR0CIus8Bf6J
sw2E8wimMY2Z9yWrr+6aTN41urUu5MxUZFOoa2NHbNOggTjq1D22oMfQDUZz
J8SGOCjKT0o1KDAXbwSoldGbyBrEJsC9qz0wTkPjHYbWopC0jX8VWRJED28l
RonQDabW4ZowwYgNsYFkVyAS+MdpgGwpywRXmS0cdYVESz2+3EFLieyW8je4
psUiFhoJqei92KJesySKkgfUKdunHHl17doiJ0prWsVyk782WPWs1a4snttH
Pd/s06lIz+2jnm/2OYY+PUzKKxZofTquE3iAY7SJpvpFdg+/zof0jEqj+Bc8
V74PEkeyGReT9XAlOHbfuyFwBbRNAd1Jhno2wVNhkcJzgmIdMGykTeBTUFvF
chUla1hLXHnIDDGmWUJWaDVAFjX6/WGk9tunz047GGB9YExZ6eVErB8cX5oh
js5AsShdo3jQB1fV3B5G7g3B0fnk0kL+Ftm5qS9kNrEEP2SyMCQLMxLMtHDR
0CRJzcq2vYEPoCAA6ODjNhK3DfKVeanwWYIrAk8lVuRXJ1pTOqgg+1M0dpsU
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

-->

</rfc>
