<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc linkmailto="no" ?>
<?rfc rfcedstyle="yes"?>
<?rfc-ext allow-markup-in-artwork="yes" ?>
<?rfc-ext include-references-in-index="yes" ?>

<!DOCTYPE rfc []>

<!-- Notes for Paul and Tony

Have a section that is just examples of what is new in v3 (such as new table features)
	Want to add examples of <blockquote>
		Example of a cite for a reference that is already in the spec.
	In the v3-only examples, use "ascii" attributes liberally

-->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="std"
  docName="draft-wang-ipsecme-kem-auth-ikev2-01"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
       * obsoletes can be an RFC number as NNNN 
-->

<front>
<title abbrev="KEM based Authentication for the IKEv2"> KEM based Authentication for the IKEv2 with Post-quantum Security </title>
<!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

<seriesInfo name="Internet-Draft" value="draft-wang-ipsecme-kem-auth-ikev2-01"/>
   
    <author fullname="Guilin Wang" initials="G." role="editor" surname="Wang">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>Huawei Int. Pte Ltd</organization>
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>9 North Buona Vista Drive, #13-01</street>
		  <street> The Metropolis Tower 1</street>
          <city>Singapore</city>
          <code>138588</code>
          <country>Singapore</country>
          <!-- Uses two letter country code -->
        </postal>        
        <email>wang.guilin@huawei.com</email>  
      </address>
    </author>
	
<date/>
<!-- On draft subbmission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->
	
<area>General</area>
    <workgroup> IP Security Maintenance and Extensions </workgroup>
	<!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>keyword</keyword>
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

<abstract>
      <!-- RFC 9370 specifies a framework that supports mulitple key encapsulation mechanisms (KEMs) in the Internet Key Exchange Protocol Version 2 (IKEv2) by allowing up to 7 layers of additiona KEMs employed with the oringal ECDH to derive the final shared secret keys for IPsec protocols. The primitive goal is to mitigate the security threat against quantum computers by hybriding additional post-quantum (PQ) KEMs with the orinigal ECDH key exchange. This draft specifies how one QP KEMs, FrodoKEM, is instantiated in the IKEv2 as the additional KEMs with the main ECDH to achieve hybrid key agreement.-->
	  
	 <t> This draft specifies a new authentication mechanism, called KEM based authentication, for the Internet Key Exchange Protocol Version 2 (IKEv2) <xref target="RFC7296"> </xref>. This is motivated by the fact that ML-KEM is much more efficient that ML-DSA, which are the post-quantum algoirhtms for mitigating the pontential security threats again quantum computers. The KEM based authenticationth for the IKV2 is achieved via introduing a new value of the IKEv2 Authentication Method registry mantained by IANA. For using the new authentication method, two peers MUST send the SUPPORTED_AUTH_METHODS Notify, defined by  <xref target="RFC9593"> </xref>，to negotiate the supported KEM algorithms. After that, the correponding KEM certificates and cipthertext are exchanged via the INTERMEDIATE Exchange. Finally，the IKE messages are authenticated via the shared secret encapsulated between the two peers. This documents also specifies the instantiation with ML-KEM for this new general authenticaiton method for the IKEv2. 
 </t>

	  <t> [EDNOTE: Code points for KEM-based authentication may need to be assigned in the IKEv2 Authenticaion Method registry, maintained by IANA] </t>
    </abstract>

<!-- <note title="Editorial Note (To be removed by RFC Editor)">
<t> Discussion of this draft takes place on the rfc-interest mailing list (rfc-interest@rfc-editor.org), which has its home page at
<eref target="https://www.rfc-editor.org/mailman/listinfo/rfc-interest"/>. </t>
</note> -->

</front>

<middle>

<!-- <section title="Revision history"> 

<\section> -->

<section title="Introduction">

<section title="Notes of Change">

<t> Two changes have been made in version 01, as a response to comments received at 122 meeting: </t>

<ul spacing="normal">
         
        <li> More details abouth how each side does for running KEM authentication in <xref target="Exchanges"></xref>. </li>
		
        <li> Added <xref target="PPK"></xref> for KEM authentication with preshared public key. </li>
        </ul>
</section>

<section title="Introduction">

<t> Cryptographically-relevant quantum computers (CRQC) pose a threat to cryptographically protected data. In particular, the so-called harvest-now-and-decrypt-later (HNDL) attack is considered an imminent threat. To mitigate this threat again the Internet Key Exchange Protocol Version 2 (IKEv2) <xref target="RFC7296"> </xref>, multiple key exchanges in the IKEv2 <xref target="RFC9370"></xref> was introduced to achieve post-quantum (PQ) security for the exchange. To offering post-quantum security for the authentication in the IKEv2, "Announcing Supported Authentication Methods in the Internet Key Exchange Protocol Version 2 (IKEv2)" <xref target="RFC9593"></xref> specifies a new Notify type, called the SUPPORTED_AUTH_METHODS, which allows two peers to indicate the list of supported authentication methods while establishing IKEv2 SA. One purpose of <xref target="RFC9593"></xref> is to support post-quantum signature algorithms for authenticaion in the IKEv2, as further described by the following drafts.</t>  

<t> "Signature Authentication in the Internet Key Exchange Version 2 (IKEv2)" <xref target="I-D.RSF25"></xref> specifies how NIST PQ digital algorithms ML-DSA <xref target="FIPS204"></xref> and SLH-DSA <xref target="FIPS205"></xref> can be used in the IKEv2 by indicating the supported signature algorithms via exchanging the Notify SIGNATURE_HASH_ALGORITHMS, defined in <xref target="RFC7427"></xref>. Similarly, "IKEv2 Support of ML-DSA" <xref target="I-D.Flu25"></xref> specifies how ML-DSA can be run in the IKEv2, by indicating the supported signature algorithms via exchanging the SUPPORTED_AUTH_METHODS Notify, defined in <xref target="RFC9593"></xref>.  On the other hand, "Post-Quantum Traditional (PQ/T) Hybrid PKI Authentication in the Internet Key Exchange Version 2 (IKEv2)" <xref target="I-D.HMW"> </xref> specifies how to run general hybrid PQ/T digital algorithms in the IKEv2 via introducing some extensions in the SUPPORTED_AUTH_METHODS Notify. </t>

<t> For all of those Internet standard drafts, it is the same that the corresponding public key certificates and singatures for the involved siganture algorithms are exchanged via the INTERMEDIATE Exchange, defined in <xref target="RFC9242"></xref>. </t>

<t> Motivated by the fact that ML-KEM <xref target="FIPS203"></xref> is much more efficient than ML-DSA <xref target="FIPS204"></xref>, "KEM-based Authentication for TLS 1.3" <xref target="I-D.WCS"></xref> <xref target="I-D.WCSSS"></xref> specifies how KEM can be used to achieve post-quantum secure authentication for the TLS 1.3 protocol. The basic idea is as follows: when one entity A receives the certified long term public key of another entity B, A can authenticate B by encapsulating a secret key k using B's KEM public key, and confirming that the communicating entity is indeed B if the entity can successfully return the correct k to A. The seminal idea for TLS is presented in  <xref target="SSW20"></xref>, followed by a number of research papers then. Besides saving communication overhead and computational time, as pointed out in <xref target="I-D.WCS"></xref>, KEM based authentication also benefits to reduce implementation code size, as the code for PQ singature may not need, and KEM based authentication can re-use the KEM code for ephemeral key establishment. </t>
    
 <t> This draft specifies how to realise KEM based authentication for the Internet Key Exchange Protocol Version 2 (IKEv2) <xref target="RFC7296"> </xref>. This is achieved by defining a new authenication method, called KEM based Authentication. Namely, this draft asks to add a new value of the "IKEv2 Authenticaion Method" registry <xref target="IANA-IKEv2"></xref>, mantained by IANA. To run this new authenticaiton method, two peers MUST send the SUPPORTED_AUTH_METHODS Notify, defined by  <xref target="RFC9593"> </xref>，in the IKE_SA_INIT Exchange, to negotiate the supported KEM algorithms. After that, the correponding KEM certificates and cipthertext are exchanged via the INTERMEDIATE Exchange <xref target="RFC9593"> </xref>. This documents also specified the instantiation with ML-KEM for this new general authenticaiton method for the IKEv2. </t>

		
</section>
</section>

<section>
        <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"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
    </section>
      <!-- [CHECK] The 'Requirements Language' section is optional -->
	  
<section>  <name> Key Encapsulation Mechanism and Digital Signature</name>
    
	<t> Key encapsulation mechanism(KEM) is a kind of key exchange, which allows one entity to encapsulate a secret key under a (longterm or ephemeral) public key of another entity. By following the definiton given in <xref target="I-D.KR24"></xref>, a KEM consists of three algorithms:
    </t>
	<ul spacing="normal">
        <li>KeyGen(k) -> (pk, sk): A probabilistic key generation algorithm, which generates a public encapsulation key pk and a secret decapsulation key sk, when a security parameter k is given.</li>
        <li>Encaps(pk) -> (ct, ss): A probabilistic encapsulation algorithm, which takes as input a public encapsulation key pk and outputs a ciphertext ct and shared secret ss. </li>
        <li> Decaps(sk, ct) -> ss: A decapsulation algorithm, which takes as input a secret decapsulation key sk and ciphertext ct and
      outputs a shared secret ss.</li>
      </ul>
	  
	<t>  By following the definiton given in <xref target="I-D.BHCD"></xref>, a signature scheme consists of the following three algorithms: </t>

      <ul spacing="normal">
	  <li> SKeyGen(k) -> (spk, ssk): A probabilistic key generation algorithm, which generates a public verifying key spk and a private signing key ssk, when a security parameter k is given..</li>
	  
	  <li> Sign(ssk, m) -> s: A deterministic or probabilistic signature generation algorithm, which takes as input a private signing key ssk and a message m, and outputs a signature s. </li>
      
	  <li> Verify(spk, s, m) -> b: A deterministic verification algorithm, which takes as input a public verifying key spk, a signature s and a message m, and outputs a bit b indicating accept (b=1) or reject (b=0) of the signature-message pair (s, m). </li>
      </ul>

	  <t> In August of 2024, NIST released ML-KEM <xref target="FIPS203"></xref> and ML-DSA <xref target="FIPS204"></xref>, which are both module-lattice based post-quantum algorithms. Each of both algorithms has three sets of parameters corresponding to three NIST security levels. Namely, ML-KEM-512 for Level 1, ML-KEM-768 for Level 3, and ML-KEM-1024 for for Level 5, while ML-DSA-44 for Level 2, ML-DSA-65 for Level 3, and ML-DSA-87 for Level 5. </t>
	  
	  </section>

    <section>  <name> Comparison of ML-KEM and ML-DSA </name>
    
	  <t> This section compares ML-KEM and ML-DSA, with respect to the sizes of key, ciphertext and signature, and also the computational overhead of key generation, encapsulaion, signing, decasulation, and verifying. </t>
	  
	  <t> First of all, to compare the communication overhead when using ML-DSA and ML-KEM, data from Table 2 in <xref target="FIPS204"></xref> and Table 3 in <xref target="FIPS204"></xref> are used to generate the following Table 1. The results show the comparison of keys and signature over ciphertext between ML-DSA and ML-KEM. Namely, for all corresponding security levels, the following statements can be conluded: </t>
	  
	  <ul spacing="normal">
         
        <li> The private key size of ML-DSA is about 1.5 times of the decapsulation key size of ML-KEM,  </li>
		<li> The public size of ML-DSA is about 1.6 times of that of ML-KEM, and  </li>
        <li> The signature size of ML-DSA is about 3 times of the ciphertext size of ML-KEM.  </li>
        </ul>

<artwork><![CDATA[
  +=============+====================+===================+=============+
  |             |     private key/   |    public key/    | singature/  |
  |             | decapaaulation key | encapsulation key | ciphertext  |
  +=============+====================+===================+=============+
  | ML-DSA-44/  |    2,650/1,632     |     1,312/800     |  2,420/768  |
  | ML-KEM-512  |      =157%         |       =164%       |    =315%    |
  +-------------+--------------------+-------------------+-------------+
  | ML-DSA-65/  |    4,032/2,400     |     1,952/1,184   | 3,309/1,088 |
  | ML-KEM-768  |      =168%         |       =165%       |   =304%     |
  +-------------+--------------------+-------------------+-------------+
  | ML-DSA-87/  |    4,896/3,168     |     2,592/1,568   | 4,627/1,568 |
  | ML-KEM-1024 |      =155%         |       =165%       |   =295%     |
  +-------------+--------------------+-------------------+-------------+
  Table 1: Communication Overhead Comparison of ML-DSA and ML-KEM
]]></artwork> 

<t> Specifically, for the three security levels, when ML-KEM is used to replace ML-DSA for authentication, the saved communication overhead, namely public key+signature for ML-DSA and encapsulation key+ciphertext for ML-KEM, is 2,164，2,989，and 4,083 bytes, respectively. Those savings are helpful to improve the performance of IKEv2. In fact, as shown in the experiment in simulated environment, the average time delay for IKEv2 can increase a few times due to large size of PQ public key, ciphertext and signature, especially when the IP packet loss rate reaches about 1%. </t>

<t> Next, the computation overhead comparison will be given now. In <xref target="HAZ24"></xref>, the authors present their implementation results of Dilithium and Kyber, via various optimization techniques for Keccak and the two PQC algorithms. Concretely, Table 6 in <xref target="HAZ24"></xref> shows the performance comparison of Dilithium and Kyber on ARMv7 Cortex-M4 processor, presented by clock cycles. By ignoring the small difference between ML-KEM and its informal verion Kyber, also ML-DSA and its informal verion Dilithium, the followin Table 2 is obtained. </t>

	 <artwork><![CDATA[
  +=============+==================+===============+===============+
  |             |   KeyGen speed/  | Encap speed/  | Decap speed/  |
  |             |  SKeyGen speed   | Sign speed    | Verify speed  |
  +=============+==================+===============+===============+
  | ML-DSA-44/  |    1,357k/369k   | 3,487k/448k   | 1,350k/409k   |
  | ML-KEM-512  |      =368%       |   =778%       |   =330%       |
  +-------------+------------------+---------------+---------------+
  | ML-DSA-65/  |    2,394k/604k   | 5,574k/732k   | 2,302k/674k   |
  | ML-KEM-768  |      =396%       |   =761%       |   =342%       |
  +-------------+------------------+---------------+---------------+
  | ML-DSA-87/  |    4,069k/962k   | 7,730k/1,119k | 3,998k/1,043k |
  | ML-KEM-1024 |      =423%       |   =691%       |   =383%       |
  +-------------+------------------+---------------+---------------+
  
  Table 2: Computational Overhead Comparison of ML-DSA and ML-KEM
]]></artwork> 

<t> By assuming that the copmtuational comparison shown in Table 1 reasonably presents the performance difference of ML-KEM and ML-DSA at the same platform with similar implementation techniques, for all three corresponding security levels, the following statements can be derived: </t>

<ul>
<li> The private key generation time of ML-DSA is about 4 times of that of ML-KEM. </li> 
<li> The signature signing time of ML-DSA is about 7 times of the encapsulation speed of ML-KEM. </li>
<li> The signature verifying time of ML-DSA is over 3 times of the decapsulation speed of ML-KEM. </li>
</ul>

 <t> In the scenario of KEM based authentication, both the private keys for ML-DSA and ML-KEM will be long term keys, so the private key generation time can be ignored, as it is just one time overhead. Therefore, by combining signature signing and verifying together, and also combining encapsulation and decapsulation together, we can simply say that the computaional time of ML-DSA is about 5 times of that of ML-KEM. </t>

</section>
	
<section title="Protocl Details for KEM based Authentication" anchor="Protocol">
	
	<t> By following <xref target="RFC9593"></xref>, two communicating peers send ech other the Notify Message Type SUPPORTED_AUTH_METHODS to negotiate which authentication method will be used to authenticate them to each other. Bascially, the authentication method can be any one registered in the "IKEv2 Authentication Method" registry under "Internet Key Exchange Version 2 (IKEv2) Parameters" <xref target="IANA-IKEv2"></xref>, maintained by IANA. To run KEM based Authentication, the draft is supposed to apply the value of 16 (TBD) for "KEM based Authentication" in the "IKEv2 Authentication Method" registry (<xref target="IANA "></xref>).</t>
	
<section title="Exchanges for KEM based Authentication" anchor="Exchanges">

<t> After the initiator starts the IKE_SA_INIT exchange as usual, the responder sents the notify SUPPORTED_AUTH_METHODS with value of 16 (TBD) to indicate that the responder wants to run KEM based Authentication with respect to some specific KEM algorithms, which the responder supports. These KEMs will be listed in the SUPPORTED_AUTH_METHODS Notify Payload (<xref target="Payload"></xref>), ordered by the responder's preference, among other possible authentication methods. </t>

<t> After the initiator receives SUPPORTED_AUTH_METHODS from the resonder, it will select the KEM algorithm from the list of KEMs sent by the responder that has the highest preference and is supported by the initator as well. After that, the responder SHALL use this KEM algorithm to authenticate itself to the initiator. </t>

 <t> Fig. 1 below gives an example to show how two peers use the SUPPORTED_AUTH_METHODS notification to run KEM based authentication. In the protocol, the IKE_INTERMEDIATE exchange may be used to faciliate the hybrid key exchange in the IKEv2 as specified in <xref target="RFC9370"></xref>, and to transfer PQ certifates between the responder and the intitator for completing KEM based authentication. </t>
 
 <t> Once the responder and the inititator have negotiated to run KEM based authentication, shown as the value of 16 in the SUPPORTED_AUTH_METHODS notification, one specific KEM algorithm SHALL be selected by the initiator. After that, both parties SHALL encapsulate a shared secret under the public key of the other party and send out the resulting ciphertext. Then, the peer SHALL decapsualte the ciphertext received to obtain the shared secret key encapsulated by the other party. Next, the AUTH data SHALL be calculated according to the specification <xref target="RFC7296"></xref> via using the MAC algorithm selected. Finally, once each party successfully verifies the MAC code for the AUTH data received from the other party, the whole IKE key exchange and authentication is successful. </t>

 
 <!-- RFC 9593: If these payloads are sent, they MUST be identical to the IDi/IDr payloads sent later in the IKE_AUTH request -->

<artwork><![CDATA[
Initiator                                                  Responder
---------------------------------------------------------------------
HDR(IKE_SA_INIT), SAi1(.. ADDKE*..), KEi, Ni, 
N(INTERMEDIATE_EXCHANGE_SUPPORTED), ... --->
                   <--- HDR(IKE_SA_INIT), SAr1(.. ADDKE*..), [CERTRQ,]
                        KEr, Nr, N(INTERMEDIATE_EXCHANGE_SUPPORTED), ..
                        N(SUPPORTED_AUTH_METHODS(..16(TBD)..)),..

                    ... (IKE_INTERMEDIATE for ADDKE) ...

HDR(IKE_AUTH), SK{IDi, [CERTRQ,] 
[IDr,] SAi2, TSi, TSr, 
N(SUPPORTED_AUTH_METHODS(..16(TBD)..))} --->
                    ... (IKE_INTERMEDIATE for [CERT,ct]) ...
                   <--- HDR(IKE_AUTH), SK{IDr, AUTH, SAr2, TSi, TSr}, ...                         
					
Fig. 1 An Example of Running KEM based Authentication between Two Peers 
  
]]></artwork> 

<t> If the resulting SUPPORTED_AUTH_METHODS notification with list of autehnticiton methods is too long such that IP fragmentation <xref target="RFC7383"></xref> of the IKE_SA_INIT response may happen, the responder MAY choose to send empty SUPPORTED_AUTH_METHODS notification in the IKE_SA_INIT exchange response. Then, the responder and the intiatior can send ech other the SUPPORTED_AUTH_METHODS notification with list of authentictatin methods they support by using the IKE_INTERMEDIATE exchange, as desribed in Section 3.1 of <xref target="RFC9593"></xref>. </t>

	<t> [EDNOTE: More examples may be provided later.] </t>
	
	</section>

    <section title="KEM based Authentication with Preshared Public Key" anchor="PPK">

<t> In <xref target="Exchanges"></xref>, the protocol may need to run one additional round as KEM based authentication has to first send out one's KEM public key and the associated certificate, so that the other party can return back an encapsualted secret as a challenge, before finally releasing the MAC for the AUTH data. This is naturally not as efficient as signature authentication, which can be sent out in one message consisting of message being authenticated, the digital signarure, and also the corresponing public key certificate used to verify the singature.   </t>

<t> However, the situation will be changed when both parties have already acquied each other's public key (and the associated certificate) before running KEM based authentication. Such a public key may be pre-installed, cached, or provisoned via out-bound ways. For TLS authentication, the situation has been specified in <xref target="I-D.WCSSS"></xref>. Tnhis KEM based authentication with preshared public key is expected to be useful in scenarios where one or both parties have conctrained capabilities, e.g, IoT devices. </t>

<t> [EDNOTE: An example may be provided later.] </t>
	
     </section>


	
    <section title="Payload Format for KEM based Authentication" anchor="Payload">
 
	 <t> For easy reference, the SUPPORTED_AUTH_METHODS Notify payload format is shown in the following, as specified in Section 3.2 of <xref target="RFC9593"></xref>. Correspondigly, here, Protocol ID field MUST be set to 0, the SPI Size MUS be set to 0 (meaning there is no SPI field), and the Notify Message Type MUST set to 16443. </t>
   
	<artwork><![CDATA[
                        1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Next Payload  |C|  RESERVED   |         Payload Length        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Protocol ID  |   SPI Size    |      Notify Message Type      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   ~          List of Supported Auth Methods Announcements         ~
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
	
	Fig.2  SUPPORTED_AUTH_METHODS Notify Payload Format
	]]></artwork>
	
	<t> Payload Format for KEM based Authentication Announcement is defined in Fig. 3, which is treated as part of the Supported Auth Methods Announcements shown in Fig. 2. Namely, for this part, a number (N) of KEM based authentication methods are listed, as desribed below. </t>
	
	<ul>
    <li> Length: Length of the whole blob of one announcement in octets; must be greater than 5. </li>
	<li> Auth Method: Announced authentication method, which is supposed to 16 (TBD), standing for "KEM based authentication" for the IKEv2.</li>
	<li> Cert Link: Links this announcement with a particular CA, which issued the KEM certificate for the KEM algorithm identified in AlgorithmIdentifiers below; see Section 3.2.2 of <xref target="RFC9593"></xref> for detail. </li>
    <li> Alg Len 1: Length of the KEM algorithm idenfied in AlgorithmIdentifiers below, in octets. </li>
	<li> Alg Len 2: Length of the keyed MAC algorithm idenfied in AlgorithmIdentifiers below, in octets. </li>
	<li> AlgorithmIdentifiers: The concatenation of two variable-length ASN.1 objects that are encoded using Distinguished Encoding Rules (DER) <xref target="X.690"></xref> and identify one specific KEM aglorithm and one keyed MAC algorithm. Those two ASN.1 objects are combined here temporary for this instance of KEM-based authenticaion.</li>
    </ul>
	
	<t> For example, if the concatenation of ML-KEM-768 and SHAKE128 (denoted as ML-KEM-768+SHAKE128 for simplicity), this means that ML-KEM-768 will be used to encapsulate and decapsulate the shared secret ss in KEM-based authenticaion, while SHAKE128 with key ss will be used to calculate the IKE authentication code for the IKE data to be authenticated, according to <xref target="RFC7296"></xref>. </t>

<artwork><![CDATA[

                     1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Length (>5)  |  Auth Method  |  Cert Link 1  | Alg 1 Len 1   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Alg 1 Len 2  |                                               |
+-+-+-+-+-+-+-+-+                                               +
~                      AlgorithmIdentifiers 1                   ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cert Link 2   |  Alg 2 Len 1  |  Alg 2 Len 1  |               | 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
~                      AlgorithmIdentifiers 2                   ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                      ...                                      ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cert Link N   |  Alg N Len 1  |  Alg N Len 2  |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               | 
~                      AlgorithmIdentifiers N                   ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Fig.3  Payload Format for KEM based Authentication Announcement

]]></artwork> 
	
	
	<!-- By now, this document is open to use two formats for KEM_based_Auth_IOD, namely Fixed and Flexible. as defined below. </t>
	
    <ul>
    <li> Fixed KEM_based_Auth_OID: This is a variable-length ASN.1 object that is encoded using Distinguished Encoding Rules (DER) <xref target="X.690"></xref> and identifies a fixed combination of one specific KEM aglorithm and one keyed MAC algorithm (see Section 4.1.1.2 of <xref target="RFC5280"></xref>. ) For example, ML-KEM-768_SHA256, which means that ML-KEM-768 will be used to encapsulate and decapsulate the shared secret ss in KEM-based authenticaion, while SHA256 with key ss will be used to calculate the IKE authentication code for the IKE data to be authenticated, according to <xref target="RFC7296"></xref>. </li> 
    <li> Flexible KEM_based_Auth_OID: This is the concatenation of two variable-length ASN.1 objects that identify one specific KEM aglorithm and one keyed MAC algorithm, which are combined here temporary for this instance of KEM-based authenticaion. For example, ML-KEM-768+SHAKE128, which means that ML-KEM-768 will be used to encapsulate and decapsulate the shared secret ss in KEM-based authenticaion, while SHAKE128 with key ss will be used to calculate the IKE authentication code for the IKE data to be authenticated.</li>
	</ul>
	
	<t> [EDNOTE: Later, it may need to decide how many of Fixed KEM_based_Auth_OIDs are required. For each such a combination, a unique OID SHALL be applied. Comments and suggestions are welcome] </t>
	-->


<t> [EDNOTE: Moreover, the ss obtained from KEM based Authentication can be twisted with the some key derived from the IKEv2 KE part, as does in <xref target="I-D.WCS"></xref>. Comments and suggestions are welcome] </t>

<t> Alternatively, fixed algorithm combination for KEM based authentication, say ML-KEM-768_SHA128, MAY be defined by adding a new value in the "IKEv2 Authenticaion Method" registry <xref target="IANA-IKEv2"></xref>. Similar to the above definition for AlgorithmIdentifiers, ML-KEM-768_SHA128 means that ML-KEM-768 will be used to encapsulate and decapsulate the shared secret ss in KEM-based authenticaion, while SHA128 with key ss will be used to calculate the IKE authentication code for the IKE data to be authenticated, according to <xref target="RFC7296"></xref>. Compared to AlgorithmIdentifiers, such a fixed algorithm combination can easily be recognized and used, but it sits on the same level as KEM based authentication, the general scheme specified the above. Anyway, this happens for general "Digital Signature" (14) and a specific digital scheme, e.g., "ECDSA with SHA-256 on the P-256 curve" (16) <xref target="IANA-IKEv2"></xref>. Once this happens, such KEM based Authentication Announcements with different Auth Method MUST be merged to the Authentication Announcements described in Fig. 3. </t>

<t> [EDNOTE: Comments and suggestions are welcome for fixed algorithm combinations. ] </t>
	 

	<t> [EDNOTE: More examples may be provided later.] </t>
    
	</section>
	
</section>

<section title="Security Considerations" anchor="Security">

<t> To be done later.  1) It may be not a good idea by directly showing the decapsulated secret ss as the means of authentication here. The reason is that the entity being authenticated may employ the owner of the KEM public/private key pair as an oracle to decapsualte the secret via running a different session, normally within a separate protocol or scenario where directly showing such a secret is harmless. 2) It may be preferable or MUST limit the use of such a KEM certificate only for KEM authentication. </t>

</section>
	

<section title="IANA Considerations" anchor="IANA">

     <t> This document is supposed to define a new type in the "IKEv2 Authentication Method" registry under "Internet Key Exchange Version 2 (IKEv2) Parameters" <xref target="IANA-IKEv2"></xref>, maintained by IANA:

. </t>
	 
	 <artwork><![CDATA[
            +==========+=============================+============+
            | Value    | IKEv2 Authentication Method | Reference  |
            +==========+=============================+============+
            | 16 (TBD) |  KEM based Authentication   | This draft |
            +-------+--------------------------------+------------+
	]]></artwork> 
	 
	 
   
</section>


<section title="Acknowledgments" anchor="acknowledgements">

<t>
To be added later.
</t>
</section>

</middle>

<back>
  
<references title="Normative References">

        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
		<!-- <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/> -->
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7383.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7427.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9242.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9370.xml"/>
		<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9593.xml"/>
		
		<reference anchor="FIPS203"  target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
          <front>
            <title>FIPS 203: Module-Lattice-Based Key-Encapsulation Mechanism Standard </title>
            <author fullname="National Institute of Standards and Technology" initials="" surname="National Institute of Standards and Technology" />
            <date month="August" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Federal Information Processing Standards Publication" value=""/>
        </reference>

	<reference anchor="FIPS204"  target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>FIPS 204: Module-Lattice-Based Digital Signature Standard </title>
            <author fullname="National Institute of Standards and Technology" initials="" surname="National Institute of Standards and Technology" />
            <date month="August" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Federal Information Processing Standards Publication" value=""/>
		</reference>
		
		<reference anchor="FIPS205"  target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.pdf">
          <front>
            <title>FIPS 205: Stateless Hash-Based Digital Signature Standard </title>
            <author fullname="National Institute of Standards and Technology" initials="" surname="National Institute of Standards and Technology" />
            <date month="August" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Federal Information Processing Standards Publication" value=""/>
		</reference>
		
		<reference anchor="X.690"  target="">
          <front>
            <title>Information Technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER) </title>
            <author fullname="ITU-T " initials="" surname="ITU-T" />
            <date month="February" year="2021"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="ISO/IEC 8825-1:2021 (E),  " value="ITU-T Recommendation X.690"/>
        </reference>

<reference anchor="IANA-IKEv2" target="https://www.iana.org/assignments/ikev2-parameters/ikev2-parameters.xhtml">
          <front>
            <title> Internet Key Exchange Version 2 (IKEv2) Parameters </title>
            <author fullname=" " initials=" " surname=" "/>
		 
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="the Internet Assigned Numbers Authority (IANA)." value=""/>
        </reference>
		


		
        <!-- The recommended and simplest way to include a well known reference -->
 
</references>


<references>
        <name>Informative References</name>
		
		<reference anchor="HAZ24" target="https://tches.iacr.org/index.php/TCHES/article/view/11419">
          <front>
            <title> Revisiting Keccak and Dilithium Implementations on ARMv7-M </title>
            <author fullname="J. Huang" initials="J." surname="Huang"/>
            <author fullname="A. Adomnicai" initials="A." surname="Adomnicai"/>
			<author fullname="J. Zhang" initials="J." surname="Zhang"/>
			<author fullname="W. Dai" initials="W." surname="Dai"/>
            <author fullname="Y. Liu" initials="Y. " surname="Liu"/>
			<author fullname="R. C. C. Cheung" initials="R. C. C." surname="Cheung"/>
			<author fullname="C. K. Koc" initials="C. K." surname="Koc"/>
			<author fullname="D. Chen" initials="D." surname="Chen"/>
            <date month="March" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="IACR Transactions on Cryptographic Hardware and Embedded Systems. " value="ISSN 2569-2925, Vol. 2024, No. 2, pp. 1–24."/>
        </reference>
		
		<reference anchor="SSW20"  target=" ">
          <front>
            <title> Post-quantum TLS without handshake signatures </title>
            <author fullname="P. Schwabe" initials="P." surname="Schwabe"/>
            <author fullname="D. Stebila" initials="D." surname="Stebila"/>
			<author fullname="T. Wiggers" initials="T." surname="Wiggers"/>
            <date month="November" year="2020"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="In the Proceedings of ACM CCS 2020, pages 1461–1480. ACM Press." value="doi:10.1145/3372297.3423350."/>
        </reference>
				
		
		<reference anchor="I-D.RSF25"  target="https://datatracker.ietf.org/doc/draft-reddy-ipsecme-ikev2-pqc-auth/">
          <front>
            <title> Signature Authentication in the Internet Key Exchange Version 2 (IKEv2) using PQC  </title>
            <author fullname="T. Reddy" initials="T." surname="Reddy"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
			<author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
		
            <date month="February" year="2025"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet-Draft, v04"/>
        </reference>
		
		
		<reference anchor="I-D.Flu25"  target="https://datatracker.ietf.org/doc/draft-sfluhrer-ipsecme-ikev2-mldsa/">
          <front>
            <title> IKEv2 Support of ML-DSA </title>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
		
            <date month="January" year="2025"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet-Draft, v00"/>
        </reference>
		
		<reference anchor="I-D.HMW"  target="https://datatracker.ietf.org/doc/draft-hu-ipsecme-pqt-hybrid-auth/">
          <front>
            <title> Post-Quantum Traditional (PQ/T) Hybrid PKI Authentication in the Internet Key Exchange Version 2 (IKEv2) </title>
			<author fullname="J. Hu" initials="J." surname="Hu"/>
            <author fullname="Y. Morioka" initials="Y." surname="Morioka"/>
		    <author fullname="G. Wang" initials="G." surname="Wang"/>
            <date month="November" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet-Draft, v01"/>
        </reference>
		
		<reference anchor="I-D.WCS"  target="https://datatracker.ietf.org/doc/draft-celi-wiggers-tls-authkem/">
          <front>
            <title> KEM-based Authentication for TLS 1.3 </title>
            <author fullname="T. Wiggers" initials="T." surname="Wiggers"/>
            <author fullname="S. Celi" initials="S." surname="Celi"/>
			<author fullname="P. Schwabe" initials="P." surname="Schwabe"/>
		    <author fullname="D. Stebila" initials="D." surname="Stebila"/>
			<author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
			
            <date month="April" year="2025"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Individual Draft, v04"/>
        </reference>
		
		<reference anchor="I-D.WCSSS"  target="https://datatracker.ietf.org/doc/draft-wiggers-tls-authkem-psk/">
          <front>
            <title> KEM-based pre-shared-key handshakes for TLS 1.3 </title>
            <author fullname="T. Wiggers" initials="T." surname="Wiggers"/>
            <author fullname="S. Celi" initials="S." surname="Celi"/>
			<author fullname="P. Schwabe" initials="P." surname="Schwabe"/>
		    <author fullname="D. Stebila" initials="D." surname="Stebila"/>
			<author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
			
            <date month="April" year="2025"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Individual Draft, v03"/>
        </reference>
		
		<reference anchor="I-D.BHCD"  target="https://datatracker.ietf.org/doc/draft-ietf-pquip-hybrid-signature-spectrums/">
          <front>
            <title> Hybrid signature spectrums </title>
            <author fullname="N. Bindel" initials="B." surname="Bindel"/>
            <author fullname="B. Hale " initials="B." surname="Hale "/>
			<author fullname="D. Connolly" initials="D." surname="Connolly"/>
		    <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
			
			<date month="January" year="2025"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet Draft, v06"/>
        </reference>
		
		
		<reference anchor="I-D.KR24"  target="https://datatracker.ietf.org/doc/draft-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="P. Kampanakis" initials="K." surname="Kampanakis"/>
            <author fullname="G. Ravago" initials="G." surname="Ravago"/>
            <date month="November" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet-Draft, "/>
        </reference>
		
		
	

		
      </references>
    
	

</back>

</rfc>

<!--

<reference anchor="I-D.Kyber24"  target="https://datatracker.ietf.org/doc/draft-cfrg-schwabe-kyber/">
          <front>
            <title>Kyber Post-Quantum KEM </title>
            <author fullname="Peter Schwabe" initials="P. " surname="Schwabe" />
			<author fullname="Bas Westerbaan" initials="B. " surname="Westerbaan" />
            <date month="January" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet-Draft, "/>
        </reference>
		
	
		<reference anchor="OPM23"  target="">
          <front>
            <title>Where Is the Research on Cryptographic Transition and Agility?</title>
            <author fullname="D. Ott" initials="D." surname="Ott"/>
            <author fullname="K. Paterson" initials="K." surname="Paterson"/>
			<author fullname="D. Moreau" initials="D." surname="Moreau"/>
            <date month="January" year="2023"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Communications of the ACM, " value="66(4): 29-32"/>
        </reference>
		
		<reference anchor="FrodoKEM"  target="https://frodokem.org/files/FrodoKEM-standard_proposal-20230314.pdf">
          <front>
            <title>FrodoKEM: Learning With Errors Key Encapsulation</title>
            <author fullname="E. Alkim" initials="E." surname="Alkim"/>
            <author fullname="J. W. Bos" initials="J. W." surname="Bos"/>
			<author fullname="L. Ducas" initials="L." surname="Ducas"/>
			<author fullname="P. Longa" initials="P." surname="Longa"/>
            <author fullname="I. Mironov" initials="I. " surname="Mironov"/>
			<author fullname="M. Naehrig" initials="N." surname="Naehrig"/>
			<author fullname="V. Nikolaenko" initials="V." surname="Nikolaenko"/>
			<author fullname="C. Peikert" initials="C." surname="Peikert"/>
			<author fullname="A. Raghunathan" initials="A." surname="Raghunathan"/>
            <author fullname="D. Stebila" initials="D. " surname="Stebila"/>
            <date month="March" year="2023"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Preliminary Standardization Proposal submitted to ISO" value=""/>
        </reference>
		
<reference anchor="CD22"  target="https://eprint.iacr.org/2022/975">
          <front>
            <title> An Efficient Key Recovery Attack on SIDH </title>
            <author fullname="W. Castryck" initials="W." surname="Castryck"/>
            <author fullname="T. Decru" initials="T." surname="Decru"/>
            <date month="July" year="2022"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
	         <seriesInfo name="Formal version published in the proceddings of EUROCRYPT 2023" value=""/>
			 </reference>
			 
			 <reference anchor="I-D.D24"  target="https://datatracker.ietf.org/doc/draft-ietf-pquip-pqt-hybrid-terminology/">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="F. Driscoll"/>
            <date month="February" year="2024"/>
            <abstract>
              <t> .. </t>
            </abstract>
          </front>
          <seriesInfo name="Work in Progress, " value="Internet-Draft, "/>
        </reference>
		
-->