<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.2 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-ipsecme-ikev2-mlkem-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.2 -->
  <front>
    <title abbrev="ML-KEM IKEv2">Post-quantum Hybrid Key Exchange with ML-KEM in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-ikev2-mlkem-01"/>
    <author fullname="Panos Kampanakis">
      <organization>Amazon Web Services</organization>
      <address>
        <email>kpanos@amazon.com</email>
      </address>
    </author>
    <date/>
    <area>Security</area>
    <workgroup>IPSECME</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>NIST recently standardized ML-KEM, a new key encapsulation mechanism, which can be used for quantum-resistant key establishment. This draft specifies how to use ML-KEM as an additional key exchange in IKEv2 along with traditional key exchanges. This Post-Quantum Traditional Hybrid Key Encapsulation Mechanism approach allows for negotiating IKE and Child SA keys which are safe against cryptanalytically-relevant quantum computers and theoretical weaknesses in ML-KEM.</t>
    </abstract>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A Cryptanalytically-relevant Quantum Computer (CRQC), if it became a reality, could threaten today's public key establishment algorithms. Someone storing encrypted communications that use (Elliptic Curve) Diffie-Hellman ((EC)DH) to establish keys could decrypt these communications in the future after a CRQC became available to them. Such communications include Internet Key Exchange Protocol Version 2 (IKEv2).</t>
      <t>To address this concern, the Mixing Preshared Keys in IKEv2 specification <xref target="RFC8784"/> introduced Post-quantum Preshared Keys as a temporary option for stirring a pre-shared key of adequate entropy in the derived Child SA encryption keys in order to provide quantum-resistance. This specification can be used in conjunction with PPK as defined in <xref target="RFC8784"/>. </t>
      <t>Since then, NIST has been working on a public project <xref target="NIST-PQ"/> for standardizing quantum-resistant algorithms which include key encapsulation and signatures. At the end of Round 3, they picked Kyber as the first Key Encapsulation Mechanism (KEM) for standardization <xref target="I-D.draft-cfrg-schwabe-kyber-04"/>. Kyber was then standardized as Module-Lattice-based Key-Encapsulation Mechanism (ML-KEM) in 2024 <xref target="FIPS203"/>.</t>
     <t>As post-quantum public keys and ciphertexts may make UDP packet sizes larger than common network Maximum Transport Units (MTU), the Intermediate Exchange in IKEv2 document <xref target="RFC9242"/> defined how to do additional large message exchanges by using new IKE_INTERMEDIATE messages. IKE_INTERMEDIATE messages can only be used after IKE_SA_INIT. The Multiple Key Exchanges in IKEv2 specification <xref target="RFC9370"/> defined how to do up to seven additional key exchanges by using IKE_INTERMEDIATE or IKE_FOLLOWUP_KE messages and by deriving new SKEYSEED and KEYMAT key materials. These messages can be fragmented at the IKEv2 layer before causing IP fragmentation <xref target="RFC7383"/>. If a post-quantum KEM does not fit inside IKE_SA_INIT without causing IP fragmentation, then it should be used after IKE_SA_INIT in an IKE_INTERMEDIATE or IKE_FOLLOWUP_KE message as an additional key establishment algorithm.</t>
    <t>This document describes how ML-KEM can be used as a quantum-resistant KEM in IKEv2 in an IKE_SA_INIT key exchange, or in one additional IKE_INTERMEDIATE or IKE_FOLLOWUP_KE key exchange after an initial IKE_SA_INIT or CREATE_CHILD_SA respectively. This approach of combining a quantum-resistant with a traditional algorithm, is commonly called Post-Quantum Traditional (PQ/T) Hybrid <xref target="I-D.ietf-pquip-pqt-hybrid-terminology-04"/> key exchange and combines the security of a well-established algorithm with relatively new quantum-resistant algorithms. The result is a new Child SA key or an IKE or Child SA rekey with keying material which is safe against a CRQC. Another use of a PQ/T Hybrid key exchange in IKEv2 is for someone that wants to exchange keys using the high security parameter of ML-KEM. As these may not fit in common network packet payload sizes, they will need to be sent in a IKE_FOLLOWUP_KE or CREATE_CHILD_SA key exchange which can be fragmented. This specification is a profile of the Multiple Key Exchanges in IKEv2 specification <xref target="RFC9370"/> and registers new algorithm identifiers for ML-KEM key exchanges in IKEv2.</t>
      <section anchor="kems">
        <name>KEMs</name>
        <t>In the context of the NIST Post-Quantum Cryptography Standardization Project <xref target="NIST-PQ"/>, key exchange algorithms are formulated as KEMs, which consist of three steps:</t>
        <ul spacing="normal">
          <li>
            <t>'KeyGen() -&gt; (pk, sk)': A probabilistic key generation algorithm, which generates a public / encapsulation key 'pk' and a private / decapsulation key 'sk'. The resulting pk is sent to the responder in the KEi payload.</t>
          </li>
          <li>
            <t>'Encaps(pk) -&gt; (ct, ss)': A probabilistic encapsulation algorithm, which takes as input a public key 'pk' (from the KEi) and outputs a ciphertext 'ct' and shared secret 'ss'. The 'ct' is sent back to intiator in the KEr payload.</t>
          </li>
          <li>
            <t>'Decaps(sk, ct) -&gt; ss': A decapsulation algorithm, which takes as input a secret key 'sk' and ciphertext 'ct' (from the KEr) and outputs a shared secret 'ss', or in some rare cases a distinguished error value.</t>
          </li>
        </ul>
      </section>
      <section anchor="ml-kem">
        <name>ML-KEM</name>
        <t>ML-KEM is a standardized lattice-based key encapsulation mechanism <xref target="FIPS203"/>. It uses Module Learning with Errors as its underlying primitive which is a structured lattices variant that offers good performance and relatively small and balanced key and ciphertext sizes. ML-KEM was standardized with three parameters, ML-KEM-512, ML-KEM-768, and ML-KEM-1024. These were mapped by NIST to the three security levels defined in the NIST PQC Project, Level 1, 3, and 5. These levels correspond to the hardness of breaking AES-128, AES-192 and AES-256 respectively.</t>
        <t>ML-KEM-512, ML-KEM-768 and ML-KEM-1024 key exchanges will not have material performance impact on IKEv2/IPsec tunnels which usually stay up for long periods of time and transfer sizable amounts of data. Since the ML-KEM-768 and ML-KEM-1024 public key and ciphertext sizes can exceed the typical network MTU, these key exchanges could require two or three network IP packets from both the initiator and the responder. </t>
      </section>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
</section>
    
    <section anchor="ml-kem-in-ikev2">
      <name>ML-KEM in IKEv2</name>
      <section anchor="ml-kem-in-ikeintermediate-messages">
        <name>ML-KEM in IKE_INTERMEDIATE or CREATE_CHILD_SA messages</name>
        <t>ML-KEM key exchanges can be negotiated in IKE_INTERMEDIATE or IKE_FOLLOWUP_KE messages as defined in the Multiple Key Exchanges in IKEv2 specification <xref target="RFC9370"/>. We summarize them here for completeness. </t> 
		<t>Section 2.2.2 of <xref target="RFC9370"/> specifies that KEi(0), KEr(0) are regular key exchange messages in the first IKE_SA_INIT exchange which end up generating a set of keying material, SK_d, SK_a[i/r], and SK_e[i/r]. The peers then perform an IKE_INTERMEDIATE exchange, carrying new Key Exchange payloads. These are protected with the SK_e[i/r] and SK_a[i/r] keys which were derived from the IKE_SA_INIT as per Section 3.3.1 of the Intermediate Exchange in IKEv2 document <xref target="RFC9242"/>. The initiator generates an ML-KEM keypair (sk, pk) using KeyGen(), and sends the public key (pk) to the responder inside a KEi(1) payload. The responder will encapsulate a shared secret ss using Encaps(pk) and the resulting ciphertext (ct) is sent to initiator using the KEr(1). After the initiator receives KEr(1), it will decapsulate it using Decaps(sk, ct). Both Encaps and Decaps return the shared secret (ss) and both peers have a common shared secret SK(1) at the end of this KE(1) exchange.
			The ML-KEM shared secret is stirred into new keying material SK_d, SK_a[i/r], and SK_e[i/r] as defined in Section 2.2.2 of the Multiple Key Exchanges in IKEv2 document <xref target="RFC9370"/>. Afterwards the peers continue to the IKE_AUTH exchange phase as defined in Section 3.3.2 of the Intermediate Exchange in IKEv2 specification <xref target="RFC9242"/>.</t>
		<t>ML-KEM can also be used to create or rekey a Child SA or rekey the IKE SA by using a IKE_FOLLOWUP_KE message after a CREATE_CHILD_SA message. After the ML-KEM additional key exchange KE(1) has taken place using and IKE_FOLLOWUP_KE exchange, the IKE or Child SA are rekeyed by stirring the new ML-KEM shared secret SK(1) in SKEYSEED and KEYMAT as specified in Section 2.2.4 of <xref target="RFC9370"/>.</t>
		<t>ML-KEM-768 and ML-KEM-1024 public keys and ciphertexts may make UDP packet sizes larger typical network MTUs (1500 bytes). Thus, IKE_INTERMEDIATE or IKE_FOLLOWUP_KE messages carrying ML-KEM public keys and ciphertexts may be IKEv2 fragmented as per the IKEv2 Message Fragmentation specification <xref target="RFC7383"/>. </t>
		<t>Although, this document focuses on using ML-KEM as the second key exchange in a PQ/T Hybrid KEM <xref target="I-D.ietf-pquip-pqt-hybrid-terminology-04"/> scenario, ML-KEM-512 and ML-KEM-768 Key Exchange Method identifiers TBD35 and TBD36 respectively <bcp14>MAY</bcp14> be used in IKE_SA_INIT as a quantum-resistant-only key exchange. The encapsulation key and ciphertext sizes for these ML-KEM parameters may not push the UDP packet to size larger than typical network MTUs of 1500 bytes. ML-KEM-1024 Key Exchange Method identifier TBD37 <bcp14>SHOULD NOT</bcp14> be used in IKE_SA_INIT messages which could exceed typical network MTUs and cannot be IKEv2 fragmented. </t>
      </section>
      <section anchor="key-exchange-payload">
        <name>Key Exchange Payload</name>
        <t>The KE payload is shown below and the fields inside it has meaning as defined in Section 3.4 of the IKEv2 standard <xref target="RFC7296"/>:</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        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   Key Exchange Method Num    |           RESERVED             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
~                       Key Exchange Data                       ~
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
]]></artwork>

	<t>The Key Exchange Data from the initiator to the responder contains the public key (pk) from the KeyGen() operation encoded as a raw byte array (i.e., output of ByteEncode) as defined in Section 7.1 of Module-Lattice-Based KEM standard <xref target="FIPS203"/>.</t>
	<t>The Key Exchange Data from the responder to the initiator contains the ciphertext (ct) from the Encaps operation encoded as a raw byte array.</t>
	<t><xref target="ke_payload_table"/> shows the Payload Length, Key Exchange Method Num identifier and the Key Exchange Data Size in octets for Key Exchange Payloads from the initiator and the responder for the ML-KEM variants specified in this document.</t>
	
<table anchor="ke_payload_table">
  <name>Key Exchange Payload Fields</name>
  <thead>
    <tr>
      <th align='center'>KEM</th>
      <th align='center'>Payload Length (initiator / responder)</th>
      <th align='center'>Key Exchange Method Num</th>
      <th align='center'>Data Size in Octets (initiator / responder)</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td align="center">ML-KEM-512</td>
      <td align="center">808 / 776</td>
      <td align="center">TBD35</td>
      <td align="center">800 / 768</td>
    </tr>
    <tr>
      <td align="center">ML-KEM-768</td>
      <td align="center">1192 / 1096</td>
      <td align="center">TBD36</td>
      <td align="center">1184 / 1088 </td>
    </tr>
    <tr>
      <td align="center">ML-KEM-1024</td>
      <td align="center">1576 / 1576</td>
      <td align="center">TBD37</td>
      <td align="center">1568 / 1568</td>
    </tr>
  </tbody>
</table>

      </section>
      <section anchor="receipent-tests">
        <name>Recipient Tests</name>
        <t>Receiving and handling of malformed ML-KEM public keys or ciphertexts <bcp14>SHOULD</bcp14> follow the input validation described in the Module-Lattice-Based KEM standard <xref target="FIPS203"/>.</t>
        <t>Responders <bcp14>SHOULD</bcp14> perform the checks specified in section 7.2 of the Module-Lattice-Based KEM standard <xref target="FIPS203"/> before the Encaps(pk) operation. If the checks fail, the responder <bcp14>SHOULD</bcp14> send a Notify payload of type INVALID_SYNTAX as a response to the request from initiator.</t>
        <t>Initiators <bcp14>SHOULD</bcp14> perform the Ciphertext type check specified in section 7.3 of the Module-Lattice-Based KEM standard <xref target="FIPS203"/> before the Decaps(sk, ct) operation. If the check fails, the initiator <bcp14>MUST</bcp14> reject the ciphertext and <bcp14>MUST</bcp14> fail the exchange. In this case, the initiator <bcp14>MAY</bcp14> send a Notify payload of type INVALID_SYNTAX to the responder as a separate INFORMATIONAL exchange, usually with no other payloads. This is an exception for the general rule of not starting new exchanges based on errors in responses.</t>
        <t>Note that during decapsulation, ML-KEM uses implicit rejection which leads the decapsulating entity to implicitly reject the decapsulated shared secret by setting it to a hash of the ciphertext together with a random value stored in the ML-KEM secret when the re-encrypted shared secret does not match the original one.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>All security considerations from <xref target="RFC9242"/> and <xref target="RFC9370"/> apply to the ML-KEM exchanges described in this specification.</t>
      <t>The main security property for KEMs standardized by NIST is indistinguishability under adaptive chosen ciphertext attacks (IND-CCA2), which means that shared secret values should be indistinguishable from random strings even given the ability to have arbitrary ciphertexts decapsulated. IND-CCA2 corresponds to security against an active attacker, and the public key / secret key pair can be treated as a long-term key or reused.  A weaker security notion is indistinguishability under chosen plaintext attacks (IND-CPA), which means that the shared secret values should be indistinguishable from random strings given a copy of the public key. IND-CPA roughly corresponds to security against a passive attacker, and sometimes corresponds to one-time key exchange. As with (EC)DH keys today, generating an ephemeral key exchange keypair for ECDH and ML-KEM is still REQUIRED per connection by this specification (IND-CPA security). </t>
      <t>The ML-KEM public key generated by the initiator and the ciphertext generated by the responder use randomness (usually a seed) which MUST be independent of any other random seed used in the IKEv2 negotiation. For example, at the initiator, the ML-KEM and (EC)DH keypairs used in a PQ/T Hybrid key exchange should not be generated from the same seed.</t>
      <t>SKEYSEED and KEYMAT in this specification are generated from PQ/T Hybrid key exchanges by using shared secrets, nonces, and SPIs with a pseudorandom function as defined in <xref target="RFC9370"/>. As discussed in <xref target="PQ-PROOF2"/>, such PQ/T Hybrid key derivations are IND-CPA, but not proven to be IND-CCA2 secure although the keys could be reused if the nonces are never reused. </t>

     <t>IKEv2 is susceptible to downgrades where a man-in-the-middle could force an initiator and responder to perform a key exchange using algorithms of the attacker's choice although both parties support other algorithms as well <xref target="DOWN-RES"/> <xref target="PQIKEV2-FA"/>. The reason for this issue is that IKEv2 does not authenticate messages exchanged by both parties. Instead, it authentication messages in one direction. A long-term solution for this issue in IKEv2 is proposed in <xref target="I-D.smyslov-ipsecme-ikev2-downgrade-prevention"/>. In the context of this specification, an adversary could force the two parties to use classical key exchange although they both support quantum-resistant ML-KEM and would prefer it if they were aware that their peer supports it. IKE_INTERMEDIATE messages do not introduce a new downgrade risk which did not exist previously. Note that this risk would require the adversary to be able control the whole flow between the paries and sinkhole, delay or drop legitimate messages as necessary. </t>
      <t>For post-quantum deployments where the responder is upgraded to support ML-KEM before any initiator, the initiator could enforce a hard requirement for using ML-KEM in the IKE_SA_INIT or the IKE_INTERMEDIATE before encrypting any data in any Child SA or fail the negotiation. This is the most straightforward protection against downgrades in cases where the responder is upgraded before any initiator. Otherwise, <xref target="RFC9370"/> supports Childless IKE SAs which can be followed by a Child SA after a FOLLOWUP_KE exhange with ML-KEM. Establishing a Childless IKE SA or a Child SA which does not encrypt any data and establishing a Child SA or rekeying the existing one with a FOLLOWUP_KE exhange with ML-KEM ensures that the initiator or responder can enforce a policy which requires ML-KEM for peers expected to support ML-KEM after learning their identity in IKE_AUTH. Although this approach would prevent downgrades where an adversary can force peers that support ML-KEM to use classical key exchanges, it assumes the initiator or responder know the identities of their peers that support ML-KEM. It also has the disadvantage that an adversary with a quantum computer that can decrypt the initial IKE SA has access to all the information exchanged over it, such as identities of the peers, configuration parameters, and all negotiated SA information (including traffic selectors), with the exception of the cryptographic keys used by the IPsec SAs which are established after the ML-KEM key exchange. <!-- This was the case with the IKE SA before stirring in the PPK in <xref target="RFC8784"/> as well. --></t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign three values for the names "mlkem-512", "mlkem-768", and "mlkem-1024" in the IKEv2 "Transform Type 4 - Key Exchange Method Transform IDs" and has listed this document as the reference. The Recipient Tests field should also point to this document:</t>
      <table anchor="tab1">
        <name>Updates to the IANA "Transform Type 4 - Key Exchange Method Transform IDs" table</name>
        <thead>
          <tr>
            <th align="left">Number</th>
            <th align="left">Name</th>
            <th align="left">Status</th>
            <th align="left">Recipient Tests</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody> 
          <tr>
            <td align="left">TBD35</td>
            <td align="left">ml-kem-512</td>
            <td align="left"> </td>
            <td align="left">[TBD, this draft, <xref target="receipent-tests"/>],</td>
            <td align="left">[TBD, this draft] </td>
          </tr>
          <tr>
            <td align="left">TBD36</td>
            <td align="left">ml-kem-768</td>
            <td align="left"> </td>
            <td align="left">[TBD, this draft, <xref target="receipent-tests"/>],</td>
            <td align="left">[TBD, this draft]</td>
          </tr>
          <tr>
            <td align="left">TBD37</td>
            <td align="left">ml-kem-1024</td>
            <td align="left"> </td>
            <td align="left">[TBD, this draft, <xref target="receipent-tests"/>],</td>
            <td align="left">[TBD, this draft]</td>
          </tr>
          <tr>
            <td align="left">38-1023</td>
            <td align="left">Unassigned</td>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left"> </td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS203" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.203.pdf">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August" day="13"/>
          </front>
          <seriesInfo name="NIST" value="Federal Information Processing Standards"/>
        </reference>
        <reference anchor="RFC9242">
          <front>
            <title>Intermediate Exchange in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>This document defines a new exchange, called "Intermediate Exchange", for the Internet Key Exchange Protocol Version 2 (IKEv2). This exchange can be used for transferring large amounts of data in the process of IKEv2 Security Association (SA) establishment. An example of the need to do this is using key exchange methods resistant to Quantum Computers (QCs) for IKE SA establishment. The Intermediate Exchange makes it possible to use the existing IKE fragmentation mechanism (which cannot be used in the initial IKEv2 exchange), helping to avoid IP fragmentation of large IKE messages if they need to be sent before IKEv2 SA is established.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9242"/>
          <seriesInfo name="DOI" value="10.17487/RFC9242"/>
        </reference>
        <reference anchor="RFC9370">
          <front>
            <title>Multiple Key Exchanges in the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="CJ. Tjhai" initials="CJ." surname="Tjhai"/>
            <author fullname="M. Tomlinson" initials="M." surname="Tomlinson"/>
            <author fullname="G. Bartlett" initials="G." surname="Bartlett"/>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="D. Van Geest" initials="D." surname="Van Geest"/>
            <author fullname="O. Garcia-Morchon" initials="O." surname="Garcia-Morchon"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="May" year="2023"/>
          </front>
          <seriesInfo name="RFC" value="9370"/>
          <seriesInfo name="DOI" value="10.17487/RFC9370"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC7296">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-pquip-pqt-hybrid-terminology-04" target="https://datatracker.ietf.org/doc/html/draft-ietf-pquip-pqt-hybrid-terminology-04">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author initials="F." surname="D" fullname="Florence D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author initials="M." surname="P" fullname="Michael P">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author initials="B." surname="Hale" fullname="Britta Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <date month="September" day="10" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-04"/>
        </reference>
        <reference anchor="NIST-PQ">
          <front>
            <title>Post-Quantum Cryptography</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="https://csrc.nist.gov/projects/post-quantum-cryptography" value=""/>
        </reference>
        <reference anchor="RFC8784">
          <front>
            <title>Mixing Preshared Keys in the Internet Key Exchange Protocol Version 2 (IKEv2) for Post-quantum Security</title>
            <author fullname="S. Fluhrer" initials="S." surname="Fluhrer"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>The possibility of quantum computers poses a serious challenge to cryptographic algorithms deployed widely today. The Internet Key Exchange Protocol Version 2 (IKEv2) is one example of a cryptosystem that could be broken; someone storing VPN communications today could decrypt them at a later time when a quantum computer is available. It is anticipated that IKEv2 will be extended to support quantum-secure key exchange algorithms; however, that is not likely to happen in the near term. To address this problem before then, this document describes an extension of IKEv2 to allow it to be resistant to a quantum computer by using preshared keys.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8784"/>
          <seriesInfo name="DOI" value="10.17487/RFC8784"/>
        </reference>
        <reference anchor="I-D.draft-cfrg-schwabe-kyber-04" target="https://datatracker.ietf.org/doc/html/draft-cfrg-schwabe-kyber-04">
          <front>
            <title>Kyber Post-Quantum KEM</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SP &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date month="January" day="2" year="2024"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cfrg-schwabe-kyber-04"/>
        </reference>
        <reference anchor="RFC7383">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation</title>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="November" year="2014"/>
            <abstract>
              <t>This document describes a way to avoid IP fragmentation of large Internet Key Exchange Protocol version 2 (IKEv2) messages. This allows IKEv2 messages to traverse network devices that do not allow IP fragments to pass through.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7383"/>
          <seriesInfo name="DOI" value="10.17487/RFC7383"/>
        </reference>
        <reference anchor="PQ-PROOF2" target="https://eprint.iacr.org/2023/972">
          <front>
            <title>Security of Hybrid Key Establishment using Concatenation</title>
            <author initials="A." surname="Petcher" fullname="Adam Petcher">
              <organization></organization>
            </author>
            <author initials="M." surname="Campagna" fullname="Matthew Campagna">
              <organization></organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="DOWN-RES" target="https://eprint.iacr.org/2016/072">
          <front>
            <title>Downgrade Resilience in Key-Exchange Protocols</title>
            <author initials="K." surname="Bhargavan" fullname="Karthikeyan Bhargavan">
              <organization></organization>
            </author>
            <author initials="C." surname="Brzuska" fullname="Chris Brzuska">
              <organization></organization>
            </author>
            <author initials="C." surname="Fournet" fullname="Cédric Fournet">
              <organization></organization>
            </author>
            <author initials="M." surname="Green" fullname="Matthew Green">
              <organization></organization>
            </author>
            <author initials="M." surname="Kohlweiss" fullname="Markulf Kohlweiss">
              <organization></organization>
            </author>
            <author initials="S." surname="Zanella-Béguelin" fullname="Santiago Zanella-Béguelin">
              <organization></organization>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="PQIKEV2-FA" target="https://www.mnm-team.org/pub/Publikationen/gggh21b/PDF-Version/gggh21b.pdf ">
          <front>
            <title>A formal analysis of IKEv2’s post-quantum extension</title>
            <author initials="S." surname="Gazdag" fullname="Stefan-Lukas Gazdag">
              <organization></organization>
            </author>
            <author initials="S." surname="Grundner-Culemann" fullname="Sophia Grundner-Culemann">
              <organization></organization>
            </author>
            <author initials="T." surname="Guggemos" fullname="Tobias Guggemos">
              <organization></organization>
            </author>
            <author initials="T." surname="Heider" fullname="Tobias Heider">
              <organization></organization>
            </author>
            <author initials="D." surname="Loebenberger" fullname="Daniel Loebenberger">
              <organization></organization>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="IKEv2-A" target="https://ethz.ch/content/dam/ethz/special-interest/infk/inst-infsec/appliedcrypto/education/theses/semester-project_eduarda-assuncao.pdf">
          <front>
            <title>Analyzing IKEv2: Security Proofs, Known Attacks, and Other Insights</title>
            <author initials="A." surname="Petcher" fullname="Adam Petcher">
              <organization></organization>
            </author>
            <author initials="E." surname="Assuncao" fullname="Eduarda Assuncao">
              <organization></organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="I-D.smyslov-ipsecme-ikev2-downgrade-prevention" target="https://datatracker.ietf.org/doc/html/draft-smyslov-ipsecme-ikev2-downgrade-prevention-00">
          <front>
            <title>Prevention Downgrade Attacks on the Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author initials="V." surname="Smyslov" fullname="Valery Smyslov">
              <organization>ELVIS-PLUS</organization>
            </author>
            <date month="June" day="25" year="2025"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-smyslov-ipsecme-ikev2-downgrade-prevention-00"/>
        </reference>
      </references>
    </references>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Valery Smyslov, Graham Bartlett, Scott Fluhrer, Ben S, Leonie Bruckert, and Gerardo Ravago for their valuable feedback.</t>
    </section>
  </back>
</rfc>
