<?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' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-song-lamps-pq-composite-frodokem-00" ipr="trust200902" submissionType="IETF" obsoletes="" updates="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="Composite FrodoKEM for X.509 PKI">Composite FrodoKEM for use in X.509 Public Key Infrastructure</title>
    <seriesInfo name="Internet-Draft" value="draft-song-lamps-pq-composite-frodokem-00"/>
    <author fullname="Xueyan Song" initials="X." surname="Song">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>song.xueyan2@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Meiling Chen" initials="M." surname="Chen">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <date/>
    <workgroup>LAMPS</workgroup>
    <keyword>PQ</keyword>
	<keyword>FrodoKEM</keyword>
    <keyword>X.509</keyword>
    <!-- Keywords will be incorporated into HTML output
        files in a meta tag but they have no effect on text or nroff
        output. If you submit your draft to the RFC Editor, the
        keywords will be used for the search engine. -->

  <abstract>
      <t>
	  Composite FrodoKEM defines combinations of FrodoKEM with RSA-OAEP,
   ECDH, X25519, and X448.  This document specifies the algorithm
   definitions, key formats, and certificate conventions for using
   Composite FrodoKEM in the X.509 Public Key Infrastructure.
      </t>
    </abstract>
	
  </front>
      <!-- end of abstract -->	
	  
  <middle>
    <section anchor="sec_intro" numbered="true" toc="default">
      <name>Introduction</name>
	 <t>
   <xref target="ISO18033-2-AMD2" /> specifies FrodoKEM, a family of quantum-resistant
   key encapsulation mechanisms (KEMs) based on the Learning With Errors
   (LWE) problem over unstructured lattices. The detailed algorithm
   specification, including the KeyGen, Encapsulate, and Decapsulate
   procedures, is provided in <xref target="I-D.longa-cfrg-frodokem"/>. 
   FrodoKEM offers multiple parameter sets, with the recommended sets for general
   use including FrodoKEM-976 for NIST security level 3 and
   FrodoKEM-1344 for NIST security level 5.
	 </t>
	 <t>
   This document defines Composite FrodoKEM, which combines a FrodoKEM
   component with a traditional component algorithm (RSA-OAEP, ECDH,
   X25519, or X448) to produce a hybrid KEM that provides both post-
   quantum and classical security guarantees.
	 </t>
     <t>
  This document specifies the algorithm definitions, key formats, and
   certificate conventions for using Composite FrodoKEM in the X.509
   Public Key Infrastructure <xref target="RFC5280"/>. Companion documents define the
   use of Composite FrodoKEM in specific protocols such as CMS
   <xref target="RFC9629"/> and TLS.
     </t>	 

    <!-- end of introduction -->
	
	  
      <section numbered="true" toc="default">
        <name>Requirements Language</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" format="default"/> <xref target="RFC8174" format="default"/> when, and
    only when, they appear in all capitals, as shown here.
        </t>
      </section>
	</section>
    <!-- end of terminology -->

<!-- ===================================================================== -->

<section anchor="com-FrodoKEM" numbered="true" toc="default">
      <name>Composite FrodoKEM</name>
	    <section numbered="true" toc="default">
            <name>FrodoKEM Component</name>	  
   <t> FrodoKEM <xref target="ISO18033-2-AMD2" /> is a key encapsulation mechanism based on
   the Learning With Errors (LWE) problem over unstructured lattices.
   FrodoKEM defines two modes of operation: standard and ephemeral.
   As introduced in <xref target="I-D.longa-cfrg-frodokem"/>, standard FrodoKEM doubles
   the length of the seedSE value and incorporates a public random salt
   value into encapsulation; it MAY be used in any application.
   Ephemeral FrodoKEM is intended only for applications where the
   number of ciphertexts generated per public key is small. This
   document specifies the use of standard FrodoKEM for composite
   combinations with traditional KEM algorithms.</t>
    <t> 
  For each FrodoKEM parameter set, <xref target="I-D.longa-cfrg-frodokem"/> defines
   two implementation variants that differ in the internal pseudorandom
   function: a SHAKE variant and an AES variant.  This document
   specifies the use of both variants for each parameter set. The
   parameter sets of standard FrodoKEM used in this document are shown below:	
	</t>
<artwork><![CDATA[
+-------------+----------------+--------+--------+--------+------+
| NIST Level  | Parameter Set  |   pk   |  sk    |    ct  | ss   |
+-------------+----------------+--------+--------+--------+------+
| Level 3     | FrodoKEM-976   | 15,632 | 31,296 | 15,792 | 24   |
+-------------+----------------+--------+--------+--------+------+
| Level 5     | FrodoKEM-1344  | 21,520 | 43,088 | 21,696 | 32   |
+-------------+----------------+--------+--------+--------+------+
Table 1: Size (in bytes) of keys and ciphertexts of FrodoKEM
]]></artwork>

     </section> 
  
	 <section numbered="true" toc="default">
       <name>Traditional Component Algorithms </name>
      <t>
     The following traditional component algorithms are used with
   Composite FrodoKEM:
      </t>

	  <t>
	  RSA-OAEP:  RSA encryption scheme with Optimal Asymmetric Encryption
      Padding.  When used as a KEM component, RSA-OAEP generates a
      random shared secret, encrypts it with the recipient's RSA public
      key, and transmits the resulting ciphertext.  The RSA-OAEP
      parameters used with Composite FrodoKEM follow the conventions specified in RFC8017.
	  </t>
	  
	 <t>
      ECDH:  Elliptic Curve Diffie-Hellman key agreement using the NIST
      prime curves.  When used as a KEM component, ECDH performs
      ephemeral-static key agreement and hashes the resulting shared
      point to produce a shared secret.	 
	 </t>
	 <t>
      X25519 and X448: Elliptic Curve Diffie-Hellman key agreement using
      the Curve25519 and Curve448 Montgomery curves, respectively.
      These are used as KEMs in a manner analogous to ECDH.
	 </t>
	 </section>
	 
	 <section numbered="true" toc="default">
        <name>Composite FrodoKEM Construction</name>
      <t>
       A Composite FrodoKEM public key is a concatenation of a FrodoKEM
	   public key and a traditional algorithm public key.  A Composite
	   FrodoKEM private key is a concatenation of the corresponding private
	   keys.  The public key and private key formats are identical for both
	   the SHAKE and AES variants of a given parameter set; the variants
	   are distinguished only by the algorithm identifier (OID).
       </t>
	   
	   <t>
	   The encapsulation and decapsulation procedures for Composite FrodoKEM
	   invoke the underlying component algorithms independently and then
	   combine the resulting shared secrets using a KEM combiner (see
	   Section 3.4). 
       </t>
	   </section>  
	   
 </section> 
	   
	   
	   
	 <section numbered="true" toc="default">
         <name>Composite FrodoKEM Operations</name>	  
	  <t>
      This section defines the key generation, encapsulation, decapsulation,
   and shared secret combiner algorithms for Composite FrodoKEM.
	  </t>
      
	 <section numbered="true" toc="default">
         <name>Key Generation</name>	  
	  <t>
      The Composite FrodoKEM key generation algorithm performs the
   following steps:
	  </t>
<artwork><![CDATA[

   1.  Generate a FrodoKEM key pair using the parameter set implied
       by the algorithm identifier (SHAKE or AES variant):
       (frodo_pk, frodo_sk) <- FrodoKEM.KeyGen()

   2.  Generate a traditional algorithm key pair:
       (trad_pk, trad_sk) <- Trad.KeyGen()

   3.  The Composite FrodoKEM public key is the concatenation of the
       component public keys:
       ek = frodo_pk || trad_pk

   4.  The Composite FrodoKEM private key is the concatenation of the
       component private keys:
       dk = frodo_sk || trad_sk
]]></artwork>    
	  </section> 
	  
	 <section numbered="true" toc="default">
         <name>Key Encapsulation Mechanism</name>	  
	  <t>
       The Composite FrodoKEM encapsulation algorithm performs the following
   steps:
	  </t>
<artwork><![CDATA[

   1.  Separate the public keys based on the FrodoKEM parameter set
       implied by the algorithm identifier:

       switch FrodoKEM do
          case FrodoKEM-976:
            frodo_pk = ek[0:15632]
            trad_pk  = ek[15632:]
          case FrodoKEM-1344:
            frodo_pk = ek[0:21520]
            trad_pk  = ek[21520:]

   2.  Perform the respective component encapsulation operations
       according to their algorithm specifications:

       (frodo_ct, frodo_ss) <- FrodoKEM.Encapsulate(frodo_pk)
       (trad_ct, trad_ss) <- TradKEM.Encap(trad_pk)

   3.  If either FrodoKEM.Encapsulate() or TradKEM.Encap() return an
       error, then this process MUST return an error.

   4.  Encode the ciphertext:
       ct = frodo_ct || trad_ct

   5.  Combine the KEM secrets and additional context to yield the
       composite shared secret (see Section 3.4):

       ss = SHA3-256(frodo_ss || trad_ss || trad_ct || trad_pk 
	   || Label)

   6.  Output composite shared secret key and ciphertext:
       return (ss, ct)
]]></artwork>  

</section>

	 <section numbered="true" toc="default">
         <name>Key Decapsulation Mechanism</name>	  
	  <t>
       The Composite FrodoKEM decapsulation algorithm performs the following
   steps:
	  </t>
<artwork><![CDATA[

  1.  Separate the private keys based on the FrodoKEM parameter set
       implied by the algorithm identifier:

       switch FrodoKEM do
          case FrodoKEM-976:
            frodo_sk = dk[0:31296]
            trad_sk  = dk[31296:]
          case FrodoKEM-1344:
            frodo_sk = dk[0:43088]
            trad_sk  = dk[43088:]

   2.  Separate the ciphertext into its components based on the
       FrodoKEM parameter set implied by the algorithm identifier:

       switch FrodoKEM do
          case FrodoKEM-976:
            frodo_ct = ct[0:15792]
            trad_ct  = ct[15792:]
          case FrodoKEM-1344:
            frodo_ct = ct[0:21696]
            trad_ct  = ct[21696:]

   3.  Perform the respective component decapsulation operations
       according to their algorithm specifications:

       frodo_ss <- FrodoKEM.Decapsulate(frodo_sk, frodo_ct)
       trad_ss <- TradKEM.Decap(trad_sk, trad_ct)

   4.  If either FrodoKEM.Decapsulate() or TradKEM.Decap() return
       an error, then this process MUST return an error.

   5.  Combine the KEM secrets and additional context to yield the
       composite shared secret (see Section 3.4):

       ss = SHA3-256(frodo_ss || trad_ss || trad_ct || trad_pk ||
	   Label)

   6.  Output composite shared secret key:
       return ss
]]></artwork>  
	 
</section>
 
	 <section numbered="true" toc="default">
         <name>Key Combiner</name>	  
	  <t>
   The KEM combiner takes as input the shared secrets and ciphertext
   from the component algorithms and produces a single composite shared
   secret.
	  </t>
	  <t>
	     For all Composite FrodoKEM algorithms specified in this document, the
   combiner is defined as follows:
 	  </t>  
<artwork><![CDATA[

ss = SHA3-256(frodo_ss || trad_ss || trad_ct || trad_pk || Label)

where:

o  frodo_ss is the shared secret output from the FrodoKEM component.

o  trad_ss is the shared secret output from the traditional
   component.

o  trad_ct is the ciphertext output from the traditional component.

o  trad_pk is the public key of the traditional component.

o  Label is the KEM Combiner Label value defined in Section 5.2.

o  || denotes concatenation.

o  SHA3-256 is the SHA3-256 hash function [FIPS202].
]]></artwork>  

	<t>
   The inclusion of the traditional ciphertext, traditional public key,
   and Label in the combiner input provides binding between
   the shared secret and the specific keying material, mitigating risks
   from partial key compromise.  The same combiner is used for both the
   SHAKE and AES variants of Composite FrodoKEM.
    </t>     
	  </section> 
</section>
    <!-- end of overview -->

<!-- ===================================================================== -->

	   
   <section anchor="Format" numbered="true" toc="default">
      <name>Key Format</name>
        <section numbered="true" toc="default">
         <name>Public Key Format</name>
	    <t>
		The Composite FrodoKEM public key is a concatenation of the component
	   public keys:
        </t>	 

		 <t>CompositeFrodoKEMPublicKey ::= BIT STRING</t>

		 <t>The value of the BIT STRING is:</t>

		 <t> bytes = frodo_pk || trad_pk</t>

	   <t> where frodo_pk is the raw FrodoKEM public key bytes and trad_pk is
	   the traditional algorithm public key in its native encoding.</t>

	   <t> For ECDH and RSA-OAEP components, the trad_pk is encoded according to
	   <xref target="RFC5480" format="default"/> and <xref target="RFC8017" format="default"/>, respectively.  
	   For X25519 and X448 components, the trad_pk is the 32-octet or 56-octet Montgomery
	   u-coordinate, respectively.</t>

	   <t> When carried in an X.509 SubjectPublicKeyInfo structure <xref target="RFC5280" format="default"/>,
	   the algorithm field contains the Composite FrodoKEM OID, and the
	   subjectPublicKey field contains the CompositeFrodoKEMPublicKey.</t>
   
      </section>

        <section numbered="true" toc="default">
         <name>Private Key Format</name>
	    <t>
		The Composite FrodoKEM private key is a concatenation of the component
	   private keys:
        </t>	 

		 <t>CompositeFrodoKEMPrivateKey ::= OCTET STRING</t>

		 <t>The value of the OCTET STRING is:</t>

		 <t> bytes = frodo_sk || trad_sk</t>

		  <t> where frodo_sk is the raw FrodoKEM private key bytes and trad_sk is
	      the traditional algorithm private key in its native encoding.</t>

	      <t> When carried in an Asymmetric Key Package <xref target="RFC5958" format="default"/>, the
		   privateKeyAlgorithm field is set to the corresponding Composite
		   FrodoKEM algorithm identifier, the privateKey field contains the
		   CompositeFrodoKEMPrivateKey, and the publicKey field contains the
		   CompositeFrodoKEMPublicKey.</t>
   
      </section>
   
        <section numbered="true" toc="default">
         <name> Encoding Rules</name>
	    <t>
		   All ASN.1 objects SHALL be encoded using DER on serialization. The deserialization 
		   routines do not check for well-formedness of the cryptographic material they are recovering. 
		   It is assumed that underlying cryptographic primitives will catch malformed values and
		   raise an appropriate error.
        </t>	   
		</section>	  
     </section>		  
	  
	  
	    <section numbered="true" toc="default">
            <name>Algorithm Identifiers</name>
	          <section numbered="true" toc="default">
                <name>Composite FrodoKEM Algorithm Identifiers</name>			
				<t>		
			   The following object identifiers are assigned for Composite FrodoKEM
			   algorithms.  For each FrodoKEM parameter set and traditional
			   algorithm combination, two variants are defined: a SHAKE variant and
			   an AES variant.  The SHAKE variants use FrodoKEM with SHAKE as the
			   internal pseudorandom function; the AES variants use FrodoKEM with
			   AES as the internal pseudorandom function.  The two variants are not
			   interoperable and are assigned distinct object identifiers.	
			   </t>   
			    
<artwork><![CDATA[
   -- SHAKE Variants
   
   id-FrodoKEM976-RSA2048-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD1 }

   id-FrodoKEM976-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD2 }

   id-FrodoKEM976-RSA4096-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD3 }

   id-FrodoKEM976-X25519-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD4 }

   id-FrodoKEM976-ECDH-P256-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD5 }

   id-FrodoKEM976-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD6 }
	
   id-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256 
   OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD7 }

   id-FrodoKEM1344-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD8 }

   id-FrodoKEM1344-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD9 }
	
   id-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256 
   OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD10 }
	 
   id-FrodoKEM1344-X448-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD11 }

   id-FrodoKEM1344-ECDH-P521-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD12 }
		]]></artwork>


<artwork><![CDATA[
   -- AES Variants

   id-FrodoKEM976-AES-RSA2048-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD13 }

   id-FrodoKEM976-AES-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD14 }

   id-FrodoKEM976-AES-RSA4096-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD15 }

   id-FrodoKEM976-AES-X25519-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD16 }

   id-FrodoKEM976-AES-ECDH-P256-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD17 }

   id-FrodoKEM976-AES-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD18 }
	 
   id-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256 
   OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD19 }

   id-FrodoKEM1344-AES-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD20 }

   id-FrodoKEM1344-AES-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD21 }
	 
   id-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256 
   OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD22 }

   id-FrodoKEM1344-AES-X448-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD23 }

   id-FrodoKEM1344-AES-ECDH-P521-SHA3-256 OBJECT IDENTIFIER ::= {
     iso(1) identified-organization(3) dod(6) internet(1) security(5)
     mechanisms(5) pkix(7) alg(6) TBD24 }
		]]></artwork>
			
   <t>The parameters field for all Composite FrodoKEM algorithm
   identifiers MUST be absent.</t>
 
    </section>			
	  
	
    <section numbered="true" toc="default">
            <name> KEM Combiner Labels</name> 
  
	   <t>For each Composite FrodoKEM algorithm, a KEM Combiner Label is used
	   within the KEM combiner to bind the shared secret to the specific
	   algorithm.  The Label is a fixed ASCII string that uniquely
	   identifies the composite algorithm.</t>

	   <t>The Label values are provided in two forms: where the label value is
	   alphanumeric ASCII, they are represented below as strings.  Where
	   the label value contains problematic characters, such as backslashes,
	   they are represented directly in hexadecimal to avoid transcription
	   errors.</t>

	   <t>For example, the Label for id-FrodoKEM976-ECDH-P384-SHA3-256 is
	   "FrodoKEM976-P384", the label for id-FrodoKEM976-RSA2048-SHA3-256 
	   is "FrodoKEM976-RSA2048".</t>

	   <t>Because the SHAKE and AES variants have distinct object identifiers,
	   they produce distinct Label values, ensuring that shared secrets
	   derived from the two variants are cryptographically separated.</t>
   
   </section>	
 </section>	
	  
	
  <section numbered="true" toc="default">
            <name> ASN.1 Module</name> 
  
			<t>   Composite FrodoKEM uses a substantially non-ASN.1 based encoding, as
		   specified in <xref target="I-D.ietf-lamps-pq-composite-kem"/>, leading to a
		   smaller overall ASN.1 module.</t>
   

<artwork><![CDATA[	   
<CODE BEGINS>
Composite-FrodoKEM-2026
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-composite-frodokem-2026(TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::=

BEGIN

EXPORTS ALL;

IMPORTS

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

KEM-ALGORITHM
  FROM KEMAlgorithmInformation-2023
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-kemAlgorithmInformation-2023(109) }

;

--
-- Information Object Classes
--
   
pk-CompositeKEM {OBJECT IDENTIFIER:id}
  PUBLIC-KEY ::= {
    IDENTIFIER id
    -- KEY no ASN.1 wrapping --
    PARAMS ARE absent
    CERT-KEY-USAGE { keyEncipherment }
    -- PRIVATE-KEY no ASN.1 wrapping --
  }


kema-CompositeKEM {
  OBJECT IDENTIFIER:id,
    PUBLIC-KEY:publicKeyType }
    KEM-ALGORITHM ::= {
         IDENTIFIER id
         -- VALUE no ASN.1 wrapping --
         PARAMS ARE absent
         PUBLIC-KEYS { publicKeyType }
         SMIME-CAPS { IDENTIFIED BY id }
        }

--
-- SHAKE Variants
--
   
id-FrodoKEM976-RSA2048-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD1 }

pk-FrodoKEM976-RSA2048-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-RSA2048-SHA3-256 }
	 
kema-FrodoKEM976-RSA2048-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-RSA2048-SHA3-256,
    pk-FrodoKEM976-RSA2048-SHA3-256 }

id-FrodoKEM976-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD2 }

pk-FrodoKEM976-RSA3072-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-RSA3072-SHA3-256 }

kema-FrodoKEM976-RSA3072-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-RSA3072-SHA3-256,
    pk-FrodoKEM976-RSA3072-SHA3-256 }

id-FrodoKEM976-RSA4096-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD3 }

pk-FrodoKEM976-RSA4096-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-RSA4096-SHA3-256 }

kema-FrodoKEM976-RSA4096-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-RSA4096-SHA3-256,
    pk-FrodoKEM976-RSA4096-SHA3-256 }

id-FrodoKEM976-X25519-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD4 }

pk-FrodoKEM976-X25519-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-X25519-SHA3-256 }

kema-FrodoKEM976-X25519-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-X25519-SHA3-256,
    pk-FrodoKEM976-X25519-SHA3-256 }

id-FrodoKEM976-ECDH-P256-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD5 }

pk-FrodoKEM976-ECDH-P256-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-ECDH-P256-SHA3-256 }

kema-FrodoKEM976-ECDH-P256-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-ECDH-P256-SHA3-256,
    pk-FrodoKEM976-ECDH-P256-SHA3-256 }

id-FrodoKEM976-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD6 }

pk-FrodoKEM976-ECDH-P384-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-ECDH-P384-SHA3-256 }

kema-FrodoKEM976-ECDH-P384-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-ECDH-P384-SHA3-256,
    pk-FrodoKEM976-ECDH-P384-SHA3-256 }

id-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256 
OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD7 }	   
	   
pk-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256 }

kema-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256 
KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256,
    pk-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256 }	   

id-FrodoKEM1344-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD8 }

pk-FrodoKEM1344-RSA3072-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-RSA3072-SHA3-256 }

kema-FrodoKEM1344-RSA3072-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-RSA3072-SHA3-256,
    pk-FrodoKEM1344-RSA3072-SHA3-256 }

id-FrodoKEM1344-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD9 }

pk-FrodoKEM1344-ECDH-P384-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-ECDH-P384-SHA3-256 }

kema-FrodoKEM1344-ECDH-P384-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-ECDH-P384-SHA3-256,
    pk-FrodoKEM1344-ECDH-P384-SHA3-256 }
	   
id-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256 
OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD10 }
	 
pk-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-brainpoolP384r1-P384-SHA3-256 }

kema-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256,
    pk-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256 }
	   
id-FrodoKEM1344-X448-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD11 }

pk-FrodoKEM1344-X448-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-X448-SHA3-256 }

kema-FrodoKEM1344-X448-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-X448-SHA3-256,
    pk-FrodoKEM1344-X448-SHA3-256 }

id-FrodoKEM1344-ECDH-P521-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD12 }

pk-FrodoKEM1344-ECDH-P521-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-ECDH-P521-SHA3-256 }

kema-FrodoKEM1344-ECDH-P521-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-ECDH-P521-SHA3-256,
    pk-FrodoKEM1344-ECDH-P521-SHA3-256 }


--
-- AES Variants
--
   
id-FrodoKEM976-AES-RSA2048-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD13 }

pk-FrodoKEM976-AES-RSA2048-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-RSA2048-SHA3-256 }

kema-FrodoKEM976-AES-RSA2048-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-RSA2048-SHA3-256,
    pk-FrodoKEM976-AES-RSA2048-SHA3-256 }

id-FrodoKEM976-AES-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD14 }

pk-FrodoKEM976-AES-RSA3072-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-RSA3072-SHA3-256 }

kema-FrodoKEM976-AES-RSA3072-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-RSA3072-SHA3-256,
    pk-FrodoKEM976-AES-RSA3072-SHA3-256 }

id-FrodoKEM976-AES-RSA4096-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD15 }

pk-FrodoKEM976-AES-RSA4096-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-RSA4096-SHA3-256 }

kema-FrodoKEM976-AES-RSA4096-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-RSA4096-SHA3-256,
    pk-FrodoKEM976-AES-RSA4096-SHA3-256 }

id-FrodoKEM976-AES-X25519-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD16 }

pk-FrodoKEM976-AES-X25519-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-X25519-SHA3-256 }

kema-FrodoKEM976-AES-X25519-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-X25519-SHA3-256,
    pk-FrodoKEM976-AES-X25519-SHA3-256 }

id-FrodoKEM976-AES-ECDH-P256-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD17 }

pk-FrodoKEM976-AES-ECDH-P256-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-ECDH-P256-SHA3-256 }

kema-FrodoKEM976-AES-ECDH-P256-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-ECDH-P256-SHA3-256,
    pk-FrodoKEM976-AES-ECDH-P256-SHA3-256 }

id-FrodoKEM976-AES-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD18 }

pk-FrodoKEM976-AES-ECDH-P384-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-ECDH-P384-SHA3-256 }

kema-FrodoKEM976-AES-ECDH-P384-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-ECDH-P384-SHA3-256,
    pk-FrodoKEM976-AES-ECDH-P384-SHA3-256 }
	   
id-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256 
OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD19 }
	 
pk-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM976-AES-ECDH-P384-SHA3-256 }

kema-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256,
    pk-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256 }	 

id-FrodoKEM1344-AES-RSA3072-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD20 }

pk-FrodoKEM1344-AES-RSA3072-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-AES-RSA3072-SHA3-256 }

kema-FrodoKEM1344-AES-RSA3072-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-AES-RSA3072-SHA3-256,
    pk-FrodoKEM1344-AES-RSA3072-SHA3-256 }

id-FrodoKEM1344-AES-ECDH-P384-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD21 }

pk-FrodoKEM1344-AES-ECDH-P384-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-AES-ECDH-P384-SHA3-256 }

kema-FrodoKEM1344-AES-ECDH-P384-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-AES-ECDH-P384-SHA3-256,
    pk-FrodoKEM1344-AES-ECDH-P384-SHA3-256 }

id-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256 
OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD22 }	 

pk-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { 
  id-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256 }

kema-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256,
    pk-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256 }	 
	   
id-FrodoKEM1344-AES-X448-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD23 }

pk-FrodoKEM1344-AES-X448-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-AES-X448-SHA3-256 }

kema-FrodoKEM1344-AES-X448-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-AES-X448-SHA3-256,
    pk-FrodoKEM1344-AES-X448-SHA3-256 }
	   
id-FrodoKEM1344-AES-ECDH-P521-SHA3-256 OBJECT IDENTIFIER ::= {
  iso(1) identified-organization(3) dod(6) internet(1) security(5)
  mechanisms(5) pkix(7) alg(6) TBD24 }

pk-FrodoKEM1344-AES-ECDH-P521-SHA3-256 PUBLIC-KEY ::=
  pk-CompositeKEM { id-FrodoKEM1344-AES-ECDH-P521-SHA3-256 }

kema-FrodoKEM1344-AES-ECDH-P521-SHA3-256 KEM-ALGORITHM ::=
  kema-CompositeKEM {
    id-FrodoKEM1344-AES-ECDH-P521-SHA3-256,
    pk-FrodoKEM1344-AES-ECDH-P521-SHA3-256 }

END
<CODE ENDS>
   ]]></artwork>

    </section>

<!-- ===================================================================== -->


	   
   <section numbered="true" toc="default">
      <name>Security Considerations </name>
        <t>
		The Security Considerations for implementing a composite algorithm 
	   defined in <xref target="I-D.ietf-lamps-pq-composite-kem"/> apply to this document.    
	   Additional security considerations specific to FrodoKEM, including
	   side-channel resistance, fault attack mitigations, and parameter set
	   selection guidance, discussed in <xref target="I-D.longa-cfrg-frodokem-security-considerations"/>
	   and <xref target="I-D.smyslov-lamps-frodokem-certificates"/> apply to this
	   specification as well.</t>
	</section>
    <!-- end of security -->

<!-- ===================================================================== --> 
	   
<section numbered="true" toc="default">
      <name>IANA Considerations </name>
	   <section numbered="true" toc="default">
         <name>PKIX Module Identifier Registry</name>
        <t>
		IANA is requested to allocate a value from the "SMI Security for
	   PKIX Module Identifier" registry for the ASN.1 module defined in
	   Section 6.
        </t>
           <table anchor="PKIX-Identifier" align="center">
        <name>SMI Security for PKIX Module Identifier</name>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>				
            <th align="left">References</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBDMOD</td>
            <td align="left">id-mod-composite-frodokem-2026</td>			
            <td align="left">This Document</td>
          </tr>
		</tbody>
      </table>
    </section>
	
     <section numbered="true" toc="default">
      <name>PKIX Algorithm Registry</name>	
	  <t> IANA is requested to allocate values from the "SMI Security for
   PKIX Algorithm" registry (1.3.6.1.5.5.7.6) for the Composite
   FrodoKEM algorithm identifiers listed in Section 5.1.  </t>
          <table anchor="PKIX-Algorithm" align="center">
        <name>SMI Security for PKIX Algorithm</name>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>				
            <th align="left">References</th>
          </tr>
        </thead>
        <tbody> 	
          <tr>
            <td align="left">TBD1</td>
            <td align="left">id-FrodoKEM976-RSA2048-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
          <tr>
            <td align="left">TBD2</td>
            <td align="left">id-FrodoKEM976-RSA3072-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD3</td>
            <td align="left">id-FrodoKEM976-RSA4096-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD4</td>
            <td align="left">id-FrodoKEM976-X25519-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD5</td>
            <td align="left">id-FrodoKEM976-ECDH-P256-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD6</td>
            <td align="left">id-FrodoKEM976-ECDH-P384-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD7</td>
            <td align="left">id-FrodoKEM976-ECDH-brainpoolP256r1-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD8</td>
            <td align="left">id-FrodoKEM1344-RSA3072-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD9</td>
            <td align="left">id-FrodoKEM1344-ECDH-P384-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD10</td>
            <td align="left">id-FrodoKEM1344-ECDH-brainpoolP384r1-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD11</td>
            <td align="left">id-FrodoKEM1344-X448-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD12</td>
            <td align="left">id-FrodoKEM1344-ECDH-P521-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
          <tr>
            <td align="left">TBD13</td>
            <td align="left">id-FrodoKEM976-AES-RSA2048-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
          <tr>
            <td align="left">TBD14</td>
            <td align="left">id-FrodoKEM976-AES-RSA3072-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD15</td>
            <td align="left">id-FrodoKEM976-AES-RSA4096-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD16</td>
            <td align="left">id-FrodoKEM976-AES-X25519-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD17</td>
            <td align="left">id-FrodoKEM976-AES-ECDH-P256-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD18</td>
            <td align="left">id-FrodoKEM976-AES-ECDH-P384-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD19</td>
            <td align="left">id-FrodoKEM976-AES-ECDH-brainpoolP256r1-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD20</td>
            <td align="left">id-FrodoKEM1344-AES-RSA3072-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD21</td>
            <td align="left">id-FrodoKEM1344-AES-ECDH-P384-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD22</td>
            <td align="left">id-FrodoKEM1344-AES-ECDH-brainpoolP384r1-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD23</td>
            <td align="left">id-FrodoKEM1344-AES-X448-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr>  
		  <tr>
            <td align="left">TBD24</td>
            <td align="left">id-FrodoKEM1344-AES-ECDH-P521-SHA3-256</td>			
            <td align="left">This Document</td>
          </tr> 
         </tbody>
      </table>
    </section>
</section>
    <!-- end of IANA -->

<!-- ===================================================================== --> 


  </middle>  
    <!-- end of middle -->	  
	
  <back>
  <references>
     <name>References</name>	  
	  <references>
      <name>Normative References</name>	  
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>  
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5480.xml"/>
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5958.xml"/>
	  </references>
	  <references>
      <name>Informative References</name>
	  	<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9629.xml"/>
		<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8017.xml"/>
		<reference anchor="I-D.longa-cfrg-frodokem" target="https://datatracker.ietf.org/doc/bibxml3/draft-longa-cfrg-frodokem-03.xml">
		<front>
		<title>FrodoKEM: key encapsulation from learning with errors</title>
		<author initials="P." surname="Longa" fullname="Patrick Longa">
		<organization>Microsoft</organization>
		</author>
		<author initials="J. W." surname="Bos" fullname="Joppe W. Bos">
		<organization>NXP Semiconductors</organization>
		</author>
		<date month="June" day="22" year="2026"/>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-longa-cfrg-frodokem-03"/>
		</reference>
        <reference anchor="ISO18033-2-AMD2" target="https://www.iso.org/standard/86890.html">
          <front>
            <title>ISO/IEC 18033-2:2006/Amd 2:2026 Information technology - Security techniques - Encryption algorithms - Part 2: Asymmetric ciphers, Amendment 2</title>
            <author>
              <organization>ISO</organization>
            </author>
            <date year="2026" month="June" />
          </front>
        </reference>
		<reference anchor="I-D.ietf-lamps-pq-composite-kem" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-pq-composite-kem-21">
		<front>
		<title>Composite ML-KEM for use in X.509 Public Key Infrastructure</title>
		<author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
		<organization>Entrust Limited</organization>
		</author>
		<author initials="J." surname="Gray" fullname="John Gray">
		<organization>Entrust Limited</organization>
		</author>
		<author initials="M." surname="Pala" fullname="Massimiliano Pala">
		<organization>OpenCA Labs</organization>
		</author>
		<author initials="J." surname="Klaussner" fullname="Jan Klaussner">
		<organization>Bundesdruckerei GmbH</organization>
		</author>
		<author initials="S." surname="Fluhrer" fullname="Scott Fluhrer">
		<organization>Cisco Systems</organization>
		</author>
		<date month="September" day="1" year="2026"/>
		<abstract>
		<t> This document defines combinations of US NIST ML-KEM in hybrid with traditional algorithms RSA-OAEP, ECDH, X25519, and X448. These combinations are tailored to meet security best practices and regulatory guidelines. Composite ML-KEM is applicable in any application that uses X.509 or PKIX data structures that accept ML- KEM, but where the operator wants extra protection against breaks or catastrophic bugs in ML-KEM. </t>
		</abstract>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-kem-21"/>
		</reference>
		
		<reference anchor="I-D.longa-cfrg-frodokem-security-considerations" target="https://datatracker.ietf.org/doc/html/draft-longa-cfrg-frodokem-security-considerations-00">
		<front>
		<title>Security Considerations for FrodoKEM</title>
		<author initials="P." surname="Longa" fullname="Patrick Longa">
		<organization>Microsoft</organization>
		</author>
		<author initials="J. W." surname="Bos" fullname="Joppe W. Bos">
		<organization>NXP Semiconductors</organization>
		</author>
		<author initials="S." surname="Ehlen" fullname="Stephan Ehlen">
		<organization>Federal Office for Information Security</organization>
		</author>
		<author initials="D." surname="Stebila" fullname="Douglas Stebila">
		<organization>University of Waterloo</organization>
		</author>
		<date month="June" day="22" year="2026"/>
		<abstract>
		<t> ISO standardized FrodoKEM in June 2026 [ISO18033-2-AMD2]. This document provides security guidance for FrodoKEM for use in protocols. It explains what security claims protocol designers may rely on, what assumptions and conditions are required, what parameter sets are in scope, and what implementors need to do to use FrodoKEM safely. The scope follows the current FrodoKEM Internet-Draft [I-D.FrodoKEM]. </t>
		</abstract>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-longa-cfrg-frodokem-security-considerations-00"/>
		</reference>		
		
		<reference anchor="I-D.smyslov-lamps-frodokem-certificates" target="https://datatracker.ietf.org/doc/html/draft-smyslov-lamps-frodokem-certificates-03">
		<front>
		<title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for FrodoKEM</title>
		<author initials="V." surname="Smyslov" fullname="Valery Smyslov">
		<organization>ELVIS-PLUS</organization>
		</author>
		<date month="July" day="6" year="2026"/>
		<abstract>
		<t> FrodoKEM is an unstructured lattice-based Key Encapsulation Mechanism (KEM). Compared to ML-KEM, FrodoKEM is considered as having more conservative design. This document specifies the conventions for using FrodoKEM in X.509 Public Key Infrastructure. The conventions for the subject public keys and private keys are also specified. </t>
		</abstract>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-smyslov-lamps-frodokem-certificates-03"/>
		</reference>		
		
    </references>		
  </references>
  </back>
    <!-- end of middle -->	 
	
  </rfc>
