<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC9528 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9528.xml">
<!ENTITY RFC9794 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9794.xml">
<!ENTITY RFC9052 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9052.xml">
<!ENTITY RFC9360 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9360.xml">
<!ENTITY RFC8392 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8392.xml">
<!ENTITY RFC8949 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8949.xml">
<!ENTITY RFC8742 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8742.xml">
<!ENTITY RFC9053 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9053.xml">
<!ENTITY RFC5116 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5116.xml">
<!ENTITY RFC7252 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7252.xml">
<!ENTITY RFC7959 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7959.xml">
<!ENTITY RFC9177 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9177.xml">
<!ENTITY I-D.ietf-lamps-kyber-certificates SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-lamps-kyber-certificates.xml">
<!ENTITY I-D.spm-lake-pqsuites SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.spm-lake-pqsuites.xml">
<!ENTITY I-D.pocero-lake-authkem-edhoc SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-pocero-lake-authkem-edhoc-00.xml">
]>


<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="no" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes"?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="no"?>
<!-- Start each main section on a new page -->
<?rfc subcompact="no"?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-pocero-lake-authkemsig-edhoc-00" ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->
  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <!--<title>Post-Quantum Ephemeral Diffie-Hellman Over COSE (PQ-EDHOC)</title>-->
  <title>Hybrid KEM/Signature-Based Methods for Scenarios with Asymmetric Device Constraints</title>
    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->
  <author fullname="Lidia Pocero Fraile" initials="L." surname="Pocero Fraile">
    <organization>ISI, R.C. ATHENA</organization>
    <address>
      <postal>
        <street>Cyber-physical and Networked Embedded Systems</street>
        <!-- Reorder these if your country does things differently -->
        <city>Patras</city>
        <region/>
        <code>26504</code>
        <country>Greece</country>
      </postal>
      <email>pocero@isi.gr</email>
				<!-- uri and facsimile elements may also be added -->
			</address>
	</author>
  <author fullname="Christos Koulamas" initials="C." surname="Koulamas">
    <organization>ISI, R.C. ATHENA</organization>
    <address>
      <postal>
        <street>Cyber-physical and Networked Embedded Systems</street>
        <!-- Reorder these if your country does things differently -->
        <city>Patras</city>
        <region/>
        <code>26504</code>
        <country>Greece</country>
      </postal>
      <email>koulamas@isi.gr</email>
				<!-- uri and facsimile elements may also be added -->
			</address>
	</author>
  <author fullname="Apostolos P. Fournaris" initials="A.P" surname="Fournaris">
    <organization>ISI, R.C. ATHENA</organization>
    <address>
      <postal>
        <street>Security and Protection of Systems, Networks and Infrastructures</street>
        <!-- Reorder these if your country does things differently -->
        <city>Patras</city>
        <region/>
        <code>26504</code>
        <country>Greece</country>
      </postal>
      <email>fournaris@isi.gr</email>
				<!-- uri and facsimile elements may also be added -->
			</address>
	</author>
	<author fullname="Evangelos Haleplidis" initials="E." surname="Haleplidis">
			<organization>ISI, R.C. ATHENA</organization>
			<address>
				<postal>
					<street>Department of Digital Systems</street>
					<!-- Reorder these if your country does things differently -->
					<city>Patras</city>
					<region/>
					<code>26504</code>
					<country>Greece</country>
				</postal>
				<email>haleplidis@isi.gr</email>
				<!-- uri and facsimile elements may also be added -->
			</address>
		</author>

	

    <date year="2026" />

    <area>sec</area>

    <workgroup>individual</workgroup>

    <keyword>EDHOC</keyword>
    <keyword>Post Quantum</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>
      This document extends the KEM-based Authentication for EDHOC draft <xref target="I-D.pocero-lake-authkem-edhoc"/> by defining additional quantum-resistant authentication methods that support combined authentication approaches, 
      where one party authenticates using a KEM-based mechanism and the other using a post-quantum signature scheme. 
      
      </t>
      </abstract>
  </front>

  <middle>
    <section title="Introduction">
	<t>The purpose of this document is to extend the quantum-resistant (QR) authentication methods defined in <xref target="I-D.pocero-lake-authkem-edhoc"/>, which provide PQC KEM-based signature-free authentication for both the Initiator and the Responder,
   with two additional methods that support combined authentication variants, where one party uses PQC KEM-based authentication and the other uses PQC signature-based authentication.
  The additional authentication methods 6 and 7 proposed in this document directly address the post-quantum transition of the remaining methods 1 and 2 from the Ephemeral Diffie-Hellman Over COSE (EDHOC) protocol <xref target="RFC9528"/>,
  which are still potentially vulnerable to attacks from Cryptographically Relevant Quantum Computers (CRQCs). Together with the methods defined in <xref target="I-D.pocero-lake-authkem-edhoc"/>,
  they complete the quantum-resistant versions of all authentication methods defined in <xref target="RFC9528"/>. </t>

  <t> This document defines the resulting protocol that integrates the three QR authentication approaches: the KEM-based/KEM-based methods defined in <xref target="I-D.pocero-lake-authkem-edhoc"/>, where both the Initiator and the Responder 
  use KEM-based authentication, and the two new combined variants, KEM-based/signature-based and signature-based/KEM-based, where the Initiator and the Responder use different authentication types. 
  Together, these methods enable flexible post-quantum authentication options while maintaining the security properties of the original EDHOC design.
  </t>
  <t>
   The specification defined in the body of this document follows the simplest approach for extending the combined authentication variants, in which the five-message handshake is maintained and authentication is performed in the last two messages,
  as in the both-parties KEM-based authentication methods defined in <xref target="I-D.pocero-lake-authkem-edhoc"/>. 
  A more complex approach, which prioritizes authentication as early as possible, is presented in <xref target="Appendix A"/> to provide a discussion of alternative strategies and their relative advantages.
  </t> 
  <t>The specified protocol is part of a broader analysis of the post-quantum transition for EDHOC <xref target="PQ-EDHOC-Access25"/>.  </t>

  <section title="Motivation">
<t> TO DO: Asymetric constrains devices participate on the handshake. Add anlysis on PQ algorithms as falcon</t>
  </section>

  <section title="Terminology and Requirements Language">
    <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  document are to be interpreted as described in <xref target="RFC2119" format="default">RFC2119</xref>.</t>

  <t>Readers are expected to be familiar with the terms and concepts described in EDHOC <xref target="RFC9528"/>, CBOR <xref target="RFC8949"/>, CBOR
 Sequences <xref target="RFC8742"/>, COSE Structures and Processing <xref target="RFC9052"/> and COSE Algorithms <xref target="RFC9053"/>, 
 When referring to CBOR, this specification always refers to Deterministically Encoded CBOR, as specified in 
 <xref target="RFC8949" section="4.2.1 and 4.2.2"/>. The single output from authenticated encryption (including the authentication tag) is called
 "ciphertext", following <xref target="RFC5116"/>. </t>

<t> TO DO: add subsection for Signatures? </t> 
  
  	<section anchor="KEMs" title="Key Encapsulation Mechanisms (KEMs)">
	<t>The Key Encapsulation Mechanism consists of 3 algorithms:</t>
  <t>
	<list style="symbols">
    <t> <strong>( pk, sk ) &lt;- KEM.KeyGen( ) </strong>: The probabilistic key generation algorithm generates a KEM key pair consisting of a public encapsulation key ( pk ) and secret decapsulation key ( sk ). </t>
    <t> <strong>( ss , ct ) &lt;- KEM.Encapsulate( pk )</strong>: The probabilistic encapsulation algorithm takes as input a public encapsulation key ( pk ) and produces a shared secret ( ss ) and ciphertext ( ct ).  </t>
    <t> <strong>( ss ) &lt;- KEM.Decapsulate( ct, sk )</strong>: The decapsulation algorithm takes as input a secret encacpsulation key ( sk ) and produce a shared secret ( ss ). </t>
  </list></t>
    </section>
</section>
	</section>
	


<section anchor="ProtoOverview" title="Protocol Overview">

<t>
The KEM-based authentication in EDHOC is extended by defining three new authentication methods:
method 5, in which both parties use KEM-based authentication; 
method 6, in which the Initiator employs KEM-based authentication and the Responder uses a PQC signature scheme;
and method 7, in which the Initiator uses a PQC signature scheme and the Responder employs KEM-based authentication.
To extend KEM-based authentication to support all this combinations of Initiator and Responder authentication, a message-flow-preserving approach is applied and specify in this document. 
This approach provides a unified message flow, maintaining the same number of messages for all KEM-based authentication method keeping a uniform message structure across them.
A second aproach, which prioritizes authenticating a party as soon as it become possible is describe in  <xref target="Appendix A"/> highlighting its advantage and disadvantages compared with the approach presented here.
</t>

<t>All three new methods extending KEM-based authentication in EDHOC consist of five mandatory messages (message_1, message_2, message_3, message_4, and message_5). 
<xref target="flow"/> illustrates the EDHOC message flow for these three methods, as well as the content of each message.  
An error message may also be exchanged between the Initiator (I) and the Responder (R).
Error handling and cipher suit negotiation mechanisms are the same as defined in <xref target="RFC9528" section="6"/>. All EDHOC messages are CBOR Sequences as specified in <xref target="RFC9528"></xref>. 
The protocol elements are introduced in this Section and in <xref target="messages"/>. Message formatting and processing are specified in <xref target="messages"/>.</t>



  <figure title="EDHOC Message Flow" anchor="flow"> 
      <artwork align="center"><![CDATA[
Initiator                                                   Responder
|               METHOD, SUITES_I, pk_eph, C_I, EAD_1                |
+------------------------------------------------------------------->
|                             message_1                             |
|                                                                   |
|               ct_eph, Enc( C_R, ID_CRED_R, EAD_2 )                |
<-------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                  AEAD( ID_CRED_I, EAD_3 ), ct_R?                  |
+------------------------------------------------------------------->
|                             message_3                             |
|                                                                   |
|                AEAD( EAD_4, Sig_R_or_MAC_2 ), ct_I?               |
<-------------------------------------------------------------------+
|                             message_4                             |
|                                                                   |
|                     AEAD( EAD_5, Sig_I_or_MAC_3 )                 |
+------------------------------------------------------------------->
|                             message_5                             |

]]></artwork></figure>

<t>
The parties exchange ephemeral keys from a PQC KEM and static public keys, either from the same PQC KEM as the ephemeral keys or from a PQC digital signature scheme, depending on the selected method, along with ciphertexts encapsulating these keys.  
They then compute shared secrets and pseudorandom keys (PRK), from which symmetric session keys are derived to encrypt elements in the intermediate handshake messages.  
All handshake messages include encrypted components protected with these derived session keys, offering varying levels of confidentiality and authenticity, except for the first message, which is sent in plaintext.
</t>
<t>The parties compute a shared secret session key, PRK_out, from which symmetric application keys are derived to protect application data. The Initiator derives these keys after receiving message_4, and the Responder after receiving message_5.</t>
<t>
  <list style="symbols">
  <t> pk_eph is the ephemeral KEM public key generated by the Initiator. </t>
  <t> ct_eph is the ephemeral ciphertext computed by the Responder with the KEM.encapsulation algorithm over the received ephemeral public key (pk_eph). </t>
  <t> ct_R is the responder ciphertext computed by the Initiator with the KEM.encapsulation algorithm over the static KEM public key of the Responder, retrieved from the received ID_CRED_R in message_2. 
  This value is used in authentication Methods 4 and 6, where the Responder employs KEM-based authentication.
  </t> 
  <t> ct_I is the Iniatiator ciphertext computed by the Responder with the KEM.encapsulation algorithm over the static KEM public key of the Initiator, retrieved from the received ID_CRED_I in message_1. 
  This value is used in authentication Methods 4 and 5, where the Initiator employs KEM-based authentication.
  </t> 
  <t> "CRED_I and CRED_R are the authentication credentials containing the public authentication keys of I and R, respectively", as defined in  <xref target="RFC9528" section="2"/>. </t>
  <t> "ID_CRED_I and ID_CRED_R are used to identify and optionally transport the credentials of I and R, respectively", as defined in <xref target="RFC9528" section="2"/>.</t>
  <t> Sig_I and Sig_R denote signatures made with the private authentication key from a PQC digital signature algorithm selected of I and R, respectively. 
  Sig_I is used when the Initiator employs PQC signature-based authentication in the method 6, and Sig_R is used when the Responder employs PQC signature-based authentication in the method 5.</t>
  <t> "Enc(), AEAD(), and MAC() denote encryption, Authenticated Encryption with Associated Data, and Message Authentication Code, crypto algorithms applied with keys derived from one or more shared secrets calculated during the protocol", as defined in <xref target="RFC9528" section="2"/>.</t>
  <t> "SUITES_I contains cipher suites supported by the Initiator and formatted and processed as specified in <xref target="RFC9528" section="3.6 and 6.3.2"/>". </t>
  <t> "METHOD is an integer specifying the authentication method",as defined in <xref target="RFC9528" section="3.2"/>. In this case method 4 5 or 6; see <xref target="Method"/>. </t>
  <t> C_I and C_R are Connection Identifiers chosen by the Initiator and Responder, respectively, as specified in <xref target="RFC9528" section="3.3"/> .</t>
  <t> EAD_1, EAD_2, EAD_3, EAD_4, EAD_5 are External Authorization Data included in message_1, message_2, message_3, message_4 and message_5 respectively. </t>
 </list>
</t>  
<t> This protocol is designed so that it follows the provisions of <xref target="RFC9528"/>, that is, to encrypt and integrity protect as much information as possible and derive symmetric keys and random material using EDHOC_KDF 
with as much previous information as possible </t> 
<section anchor="ProtoElemnts" title="Protocol Elements">
<t>This section describes the principal protocol elements that differ from the definitions of EDHOC <xref target="RFC9528"/> and <xref target="I-D.pocero-lake-authkem-edhoc"/>, and highlights the most important similarities. 
For the missing elements, the definitions in <xref target="RFC9528" section="3"/> SHOULD be consulted.</t>
	<section anchor="EphemeralKEM" title="Ephemeral KEM">
  <t>The ephemeral KEM provides forward secrecy for the three authentication methods (Methods 4, 5, and 6) described in this document, for both the mutual KEM-based authentication method and the combined authentication variants.
  The Initiator generates a new ephemeral KEM key pair in every new session to ensure that the compromise of long-term keys does not compromise past communications. 
  The elements of the Ephemeral KEM are defined in <xref target="I-D.pocero-lake-authkem-edhoc" section="2.1.1"/>:</t>
  

</section> 
<section anchor="Method" title="Method">
<t>
The protocol extends EDHOC by integrating Method 5 defined in <xref target="I-D.pocero-lake-authkem-edhoc"/>, where both parties use static KEM key pairs, together with Methods 6 and 7,
which correspond to combined authentication modes where one party uses a static KEM key pair and the other uses a PQC signature scheme.
The Initiator and Responder must agree on the authentication method to be used. The selected method is indicated by the Initiator in message_1.</t>
        <table anchor="tab-method-types" align="center" >
          <name slugifiedName="name-authentication-keys-for-met">Authentication Keys for Method Types</name>
          <thead>
            <tr>
              <th align="left">Method Type Value</th>
              <th align="left">Initiator Authentication Key</th>
              <th align="left">Responder Authentication Key</th>
            </tr>
          </thead>
          <tbody>
              <tr>
              <td align="right">6</td>
              <td align="left">Static KEM Key</td>
              <td align="left">PQC Signature</td>
            </tr>
              <tr>
              <td align="right">7</td>
              <td align="left">PQC Signature</td>
              <td align="left">Static KEM Key</td>
            </tr>
          </tbody>
        </table>
</section>
<section anchor="AuthneticationPara" title="Authentication Parameters">
<t> The protocol performs the same authentication-related operations as described in <xref target="RFC9528" section="3.5"/> </t>
 <!--<t> The protocol performs the following authentication-related operations: </t>
  <t>
  <list style="symbols">
  <t>The protocol transports information about credentials in ID_CRED_I and ID_CRED_R. 
  Based on this information, the authentication credentials CRED_I and CRED_R can be obtained. 
  It may also transport certain authentication-related information as external authorization data. As in <xref target="RFC9528"/></t>
  <t> The protocol uses the authentication credentials in two ways:
   <list style="symbols">
   <t>The authentication credential is input to the integrity verification using the MAC fields.</t>
   <t> The authentication key of the authentication credential is used with the MAC field to verify proof-of-possession of the private key.</t>
  </list>
  </t>
   </list>
  </t>-->
<t> The protocol transports information about credentials ID_CRED_I and ID_CRED_R in message_2 and message_3, respectively. 
The authentication of these credentials is verified through Sig_R_or_MAC_2 and Sig_I_or_MAC_3, sent by the Responder and the Initiator in message_4 and message_5, respectively.
<list style="symbols">
<t>If the Responder uses KEM-based authentication (methods 5 or 7), it sends MAC_2. If it authenticates using a PQC signature key (method 6), it sends a signature over MAC_2 using the PQC algorithm selected on the cipher suit.</t>
<t>Similarly, if the Initiator uses KEM-based authentication (methods 5 or 6), it sends MAC_3. If it authenticates with a PQC signature key (method 7), it sends a signature over MAC_3 using the PQC signature algorithm selected 
on the cipher suit</t>
</list>
</t>

<section anchor="Auth-keys" title="Authentication Keys">
<t> The authentication key MUST be a static KEM authentication key or a PQC signature key. 
The Initiator and Responder use KEM authentication keys with method 5, and different types of authentication keys with methods 6 and 7.</t>
<t>
The authentication key algorithm must be compatible with the chosen method and selected cipher suite. When either party uses KEM-based authentication, 
the same KEM algorithm selected for the EDHOC key exchange in the cipher suite MUST be used for both the ephemeral KEM key exchange and the authentication static KEM keys.
When using static KEM keys, the Initiator&rsquo;s and Responder&rsquo;s private and public authentication keys are denoted as follows:
  <list style="symbols">
  <t> The Initiator static KEM authentication key pair: ( pk_I, sk_I )</t>
  <t> The Responder static KEM authentication key pair: ( pk_R, sk_R )</t>
  </list>
  </t>
<t>When PQC signature authentication is used, the authentication key algorithm MUST be compatible with the EDHOC signature algorithm selected in the cipher suite.</t>
</section>
<section anchor="Auth-cred" title="Authentication Credentials">
<t>The authentication credentials, CRED_I and CRED_R, contain the authentication public key of the Initiator and Responder, respectively, as described in <xref target="RFC9528" section="3.5.2"/>. 
 </t>
  <t>
  <list style="symbols">
<t> The authentication credentials can be X.509 certificates seconded as bstr, as defined in <xref target="RFC9528" section="3.5.2"/>, using <xref target="RFC9360"/>.
When static KEM authentication keys are used, <xref target="I-D.ietf-lamps-kyber-certificates"/> specifies the conventions for using ML-KEM within X.509 Public Key Infrastructure (PKI). </t> 
<t> Additionally, the authentication credential may include a COSE_key, formatted as specified in <xref target="RFC8392"/>, to reduce the credential size and avoid the PQC signature verification needed when X.509 certificates are used. 
New IANA value registries should be defined to extend COSE Algorithms with the corresponding KEMs algorithm values. </t>
<t>TO DO: add PQC signature refereces </t>
  </list>
  </t>
</section>
<section anchor="Ident-cred" title="Identification of Credentials">
<t>The ID_CRED fields are used to identify and optionally transport credentials as defined in  <xref target="RFC9528" section="3.5.3"/>. </t>
</section>
</section>
<section anchor="Ciphersuit" title="Cipher Suites">
<t>The authentication method specified in this document uses the EDHOC cipher suites element, as defined in <xref target="RFC9528" section="3.6"/>. 
An EDHOC cipher suit consists of an ordered set of algorithms from the "COSE Algorithms" IANA registry <xref target="RFC9053"/>. 
The predefined EDHOC cipher suites are also listed in the IANA registry, as specified in <xref target="RFC9528" section="10.2"/>. </t>
<t>A new predefined cipher suite SHOULD be added to the IANA registry, specifying the supported KEM in the EDHOC Key Exchange Algorithm parameter 
and the PQC signature algorithm in the EDHOC signature algorithm parameter, as specified in <xref target="I-D.spm-lake-pqsuites" section="5.2"/>.
An example of this, when ML-KEM is used, is shown in <xref target="IANA" />.
The same KEM algorithm selected for key exchange SHOULD also be used for KEM-based authentication when methods 5, 6 or 7 are selected.
Furthermore, the KEM algorithms used SHOULD also be added to the COSE Algorithms IANA registry to identify them, as is shown in <xref target="IANA" />. 
 </t>
</section>
<section anchor="Trasport" title="Transport">
<t> Same consoderations regarding the larger message sizes MAY necessitate transport support for fragmentation than the defined in <xref target="I-D.pocero-lake-authkem-edhoc" section="2.1.5"/>. </t> 
</section>
</section>
</section>
 <section anchor="key-derive" title="Key Derivation" > 
 <t>This section highlights the differences and similarities in the key derivation process when KEM-based authentication is used to authenticate the Initiator (method 6), the Responder (method 7), or both (method 5), compared to <xref target="RFC9528"></xref>. 
 An overview of the EDHOC key schedule for KEM-based authentication methods 5, 6, or 7 is shown in <xref target="key"/>, and each key derivation step is explained in the following subsections.</t>
     <figure title="EDHOC Message Key Derivation using the KEM-based Authentication Methods 5, 6 or 7" anchor="key"> 
      <artwork align="center"><![CDATA[    
          +-------+
          | TH_2  |  
          +-------+
           |                                       
+----+  +--v+  +------+  +------+  +-----+    +-+  +---+                                                                                              
|ss_e|->|Ext|->|PRK_2e|--|Expand|->|KEY_2|--->| |->|C_2|                                                                                              
+----+  +---+  +--+---+  +--+---+  +-----+    |X|  +---+                                                                                              
                  |         |   PLAINTEXT_2-->| | 
               +-----+      |                 +-+                                                                                                                
          T+---|R use|      |
           |   |KEM ?|      |
           |   +-----+      |                                                                                                              
           |     F|     +--+----------------------+                                                                                                                 
           |      |     |TH_2=H(H(Message1),ct_eph|                                                                                                                 
           |      |     +-------------------------+                                                                                                                 
           |      |                                                                                                                                                        
+----+  +--++  +--v-----+  +------+  +---+  +----+  +---+                                                                                             
|ss_R|->|Ext|->|PRK_3e2m|+-|Expand|->|K_3|->|AEAD|->|C_3|                                                                    
+----+  +---+  +----+---+ |+--+---+  +---+  +----+  +---+                                                                                          
                    |     |   |            |                                                                                                              
                    |     |   |        PLAINTEXT_3           
               +----++    |   |                                                                                                               
          T+---|I use|    |   | 
           |   |KEM ?|    |   | 
           |   +--+--+    |   |  
           |      | F     | +-+---------------------+                                                                                                       
           |      |       | |TH_3=                  |
           |      |       | |  H(TH_2,PLAINTEXT_2,  | 
           |      |       | |  CRED_R,ct_R?)        |                                                                                               
           |      |       | +-----------------------+                                                                                                       
           |      |       |                                                                                                                                             
           |      |       |  +------+  +-----+                                                                                                                          
           |      |       +--|Expand|->|MAC_2|                                                                                                                          
           |      |          +-+----+  +-----+                                                                                                                          
           |      |            |                                                                                                                                        
           |      |    +---------------+---------------------+                                                                                                     
           |      |    |TH_4=H(TH_3,PLAINTEXT_3,CRED_I,ct_I?)|                                                                                                     
           |      |    +------------------+------------------+                                                                                                     
           |      |           |                                                                                                                                        
+----+  +--+-+  +-v------+  +-+----+  +---+  +----+  +---+                                                                                           
|ss_I|->|Ext |->|PRK_4e3m|+-|Expand|->|K_4|->|AEAD|->|C_4|                                                                                           
+----+  +----+  +--------+| +------+ |+---+ |+--^-+  +---+                                                                                           
                          |          |      |   |                                                                                                              
                          |          |      | PLAINTEXT_4                                                                                                      
                          |          |      |+----+  +---+                                                                                           
                          |          |      -|AEAD|->|C_5|                                                                                           
+------------------------+|          |       +-^--+  +---+                                                                                                                                                                                    
|TH_5=H(TH_4,PLAINTEXT_4)||          |         |                                                                                                
+--+---------------------+|          |       PLAINTEXT_5                                                                                         
                    |     |          |                                                                                                                                  
      +-----+   +-+----+  |          |                                                                                                                 
      |MAC_3|<--|Expand|--|          |                                                                                                                     
      +-----+   +------+             |   +-------+                                                                                                                         
                                     |-->|PRK_out|                                                                                                                         
                                         +--+----+                                                                                                                         
                                            |
                                         +--v---+                                                                                                            
                                         |Expand|                                                                                                          
                                         +------+  
                                           |
                                           v   
                                      +------------+                                                                                                          
                                      |PRK_exporter|                                                                                                          
                                      +---+--------+                                                                                                      
                                          |                                                        
                                       +--v---+                                                                                                             
                                       |Expand|                                                                                              
                                       +--+---+
                                          |
                                          v
                                    Aplication Key                                                                                                                                                                                                                                                                                  
 ]]></artwork></figure>
 <section title="Keys for EDHOC Message Processing">
 <section title="EDHOC_Extract">
 <t>The pseudorandom keys (PRKs) used for KEM-based authentication methods are derived using the same EDHOC_Extract function defined in <xref target="RFC9528"></xref>, where the input keying material (IKM) and Salt are specified for each
 PRK below. </t>
 <section title="PRK_2e">
 <t> The pseudorandom key PRK_2e is derived as defined in <xref target="I-D.pocero-lake-authkem-edhoc" section ="3.1.1.1"/> </t> 

 </section> 
 <section anchor="prk_3e2m" title="PRK_3e2m">
 <t> If the Responder authenticates using static KEM keys, the pseudorandom key PRK_3e2m is derived using the following input:
</t> 
 <t>
  <list style="symbols">
    <t>The salt SHALL be the SALT_3e2m derived from PRK_2e </t>
    <t>The IKM SHALL be the KEM shared secret ss_R, used to authenticate the Responder</t>
  </list>
 </t>
 <t> PRk_3e2m is derived as follows: </t>
   <artwork align="left">
PRK_3e2m = EDHOC_Extract( SALT_3e2m, ss_R )
    </artwork>
<t>Where the KEM shared secret ss_R used to authenticate the Responder is the output of the following functions in the Initiator and Responder, respectively</t>
  <t>Initiator:</t>
    <artwork align="left">
ss_R, ct_R &lt;-  KEM.Encapsulate( pk_R )
    </artwork>
    <t>Responder:</t>
     <artwork align="left">
ss_R &lt;-  KEM.Decapsulate( ct_R, sk_R )
    </artwork>
<t>
Else, if the Responder authenticates using a PQC signature algorithm, then PRK_3e2m SHALL be set equal to PRK_2e (PRK_3e2m = PRK_2e).
</t>
 </section>
  <section anchor="PRK_4e3m" title="PRK_4e3m">
<t>
 If the Initiator authenticates using static KEM keys, the pseudorandom key PRK_4e3m is derived using the following input:
</t>

  <t>
  <list style="symbols">
    <t>The salt SHALL be the SALT_4e3m, derived from PRK_3e2m </t>
    <t>The IKM SHALL be the KEM shared secret ss_I, used to authenticate the Initiator</t>
  </list>
 </t>
  <t> PRk_4e3m is derived as follows: </t>
   <artwork align="left">
PRK_4e3m = EDHOC_Extract( SALT_4e3m, ss_I )
    </artwork>
<t>  Where the KEM shared secret ss_I used to authenticate the Initiator is the output of the following functions in the Initiator and Responder, respectively</t>
  <t>Initiator:</t>
    <artwork align="left">
ss_I &lt;-  KEM.Decapsulate( ct_I, sk_I )
    </artwork>
    <t>Responder:</t>
     <artwork align="left">
ss_I, ct_I &lt;-  KEM.Encapsulate( pk_I )
    </artwork>
<t>
Else, if the Initiator authenticates using a PQC signature algorithm, then PRK_4e3m SHALL be set equal to PRK_3e2m (PRK_4e3m = PRK_3e2m).
</t>

 </section>
 </section>
 <section anchor="edhoc_kdf" title="EDHOC_Expand and EDHOC_KDF">
<t>The same output key materials (OKMs) are derived from the PRKs as defined in <xref target="I-D.pocero-lake-authkem-edhoc" section="3.1.2"/>.</t>
 </section>
  <section anchor="PRK_out" title="PRK_out">
<t>The pseudorandom key PRK_out is the output session key of a completed EDHOC session and is derived as is <xref target="I-D.pocero-lake-authkem-edhoc" section="3.1.3"/> </t>

 </section>
 </section>
  <section anchor="key_app" title="Keys for EDHOC Applications">
<t>  Keying material for the application can be derived using the same EDHOC_Exporter interface defined in <xref target="RFC9528" section="4.2.1"/> </t>
 </section> 
 </section>
 <section anchor="messages" title="Message Formatting and Processing">
 <t> This section outlines the message format and the procedures for composing and processing each message. 
 <!--The secction describe the process only for authentication method 4 where Initator and Responder use KEM-based authentication.-->
 </t>
 <section anchor="message1" title="KEM-based Authentication EDHOC Message 1">
 <section anchor="fmessage1" title="Formating of Message 1">
 <t> message_1 retains the same format as defined in  <xref target="RFC9528" section="5.2.1"/>. The same fields are used, except that GX is replaced by the KEM ephemeral public key ( pk_eph ) computed by the Initiator.</t>
   <sourcecode type="cbor" markers="false">
message_1 = (
  METHOD : int,
  SUITES_I : suites,
  pk_eph : bstr,
  C_I : bstr / -24..23,
  ? EAD_1,
)

suites = [ 2* int ] / int
EAD_1 = 1* ead
 </sourcecode>
 <t> The selected authentication method (methods 5, 6 or 7) SHOULD be indicated in the METHOD field.</t>
</section>
<section anchor="icmessage1" title="Initiator Composition of Message 1">
<t>The Initiator SHALL compose message_1 as follows: </t>
 <t>
  <list style="symbols">
    <t>Construct SUITES_I following the <xref target="RFC9528" section="5.2.2"/> specifications </t>
    <t>Generate an ephemeral KEM Key pair (pk_eph) using the KEM algorithm from the selected cipher suit. The ephemeral key pair is computed by the Initiator using the following function: 
 <artwork align="left">
pk_eph, sk_eph &lt;-  KEM.KeyGen()
  </artwork></t>
    <t> Choose a conection identifier as in <xref target="RFC9528" section="5.2.2"/>.</t>
    <t> Encode message_1 as sequence of CBOR-encoded elements, as specified in <xref target="fmessage1"/></t>
  </list>
 </t> 
</section>
<section anchor="rpmessage1" title="Responder Processing of Message 1">
<t>  The Responder SHALL process message_1 in the following order:</t>
 <t>
  <list style="numbers">
  <t> "Decode message_1", as specified in <xref target="RFC9528" section="5.2.3"/></t>
  <t> "Process message_1", as specify in <xref target="RFC9528" section="5.2.3"/> </t>
  <t> "If all processing is completed successfully, and if EAD_1 is present, then make it available to the application", as specified in <xref target="RFC9528" section="5.2.3"/></t>
  </list>
 </t> 
</section>
</section>
<section anchor="message2" title="KEM-based authentication EDHOC Message 2">
<section anchor="fmessage2" title="Formating of Message 2">
<t>message_2 keeps the same formatting as <xref target="RFC9528" section="5.3.1"/>. The same fields are used instead GY is replaced with the ephemeral KEM ciphertext ( ct_eph ) computed on the Responder.</t>
<sourcecode type="cbor" markers="false">
message_2 = (
  ct_eph_CIPHERTEXT_2 : bstr,
)
</sourcecode>
<t>where cc_eph_CIPHERTEXT_2 is the concatenation of ct_eph and CIPHERTEXT_2. </t>
</section>
<section anchor="rcmessage2" title="Responder Composition of Message 2">
<t> The Responder SHALL compose message_2 as follows:</t>
 <t>
  <list style="symbols">
  <t> Encapsulate the ephemeral KEM key received within message_1 using the KEM algorithm in the selected cipher suit. The ephemeral KEM ciphertext and the KEM ephemeral shared secret are computed by the Responder using the following function:
  <artwork align="left">
 ss_eph, ct_eph &lt;-  KEM.Encapsulate(pk_eph)
  </artwork></t>
  <t> Compute the transcript hash TH_2 = H(pk_eph,H(message_1)) as specified in <xref target="RFC9528" section="5.3.2"/></t>
  <t> Compute the PRK_2e pseudorandom key from the ephemeral KEM shared secret ( ss_eph ) </t>
  <t> "Choose a connection identifier C_R", as specified in <xref target="RFC9528" section="5.3.2"/> </t>
  <t> At this point, when the Responder use KEM-based authentication, is not jet able to authenticate itself; therfore MAC_2 is not computed. 
  Although the Responder could, in principle, authenticate itself at this stage when using PQC signature-based authentication, the message-flow-preserving approach restricts Responder authentication to message_4.
  A corresponding message flow that enables a party to authenticate as soon as it becomes possible is shown in <xref target="Appendix A"/></t>
  <t> CIPHERTEXT_2 is calculated, with a binary additive stream cipher as in <xref target="RFC9528" section="5.3.2"/>, using a keystream (KEYSTREAM_2) generated with EDHOC_Expand and the following plaintext:
  <list style="symbols">
   <t> Compute PLAINTEXT_2 as:
   <artwork align="left">
   PLAINTEXT_2 = (C_R,ID_CRED_R,?EAD_2)
   </artwork>
 where C_R, ID_CRED_R and EAD_2 elements corresponds with the ones in <xref target="RFC9528" section="5.3.2"/>. </t>
  <t> Compute KEYSTREAM_2 as in <xref target="edhoc_kdf"/> </t>
  <t> Compute CIPHERTEXT_2 as in  <xref target="RFC9528" section="5.3.2"/>
  <artwork align="left">
CIPHERTEXT_2 = PLAINTEXT_2 XOR KEYSTREAM_2 
   </artwork></t>
  </list>
 </t> 
  <t> Encode message_2 as a sequence of CBOR-encoded data items as specified in <xref target="fmessage2"/></t>
  </list>
 </t> 
</section>
<section anchor="ipmessage2" title="Initiator Processing of Message 2">
<t>The Initiator SHALL process message_2 in the following order:</t>
 <t>
  <list style="numbers">
  <t> Decode message_2 </t>
  <t> "Retrieve the protocol state" as proposed in <xref target="RFC9528" section="5.3.3"/></t>
  <t> Compute the ephemeral KEM shared_secret ( ss_eph ) by decapsulating the KEM ciphertext ( ct_eph ) received in message_2 using the ephemeral secret key ( sk_eph ). The ephemeral KEM shared secret is computed by the Initiator using the following function: 
   <artwork align="left">
 ss_eph &lt;-  KEM.Decapsulate( ct_eph, sk_eph )
  </artwork></t>
  <t> Compute the transcript hash TH_2 = H(pk_eph,H(message_1)) </t>
  <t> Compute the PRK_2e pseudorandom key from the ephemeral KEM shared secret ( ss_eph ) </t>
  <t> Derive KEYSTREAM_2 as in <xref target="edhoc_kdf"/> </t>
  <t> Decrypt CIPHERTEXT_2; see <xref target="rcmessage2"/> </t>
<t>
If all processing is completed successfully, ID_CRED_R and (if present) EAD_2 SHALL be made available to the application, as specified in <xref target="RFC9528" section="5.3.3"/>. 
In this specification, the application MUST authenticate and validate the credentials associated with ID_CRED_R at this point before proceeding.
The Initiator&rsquo;s credentials are transmitted in the subsequent message and are encrypted under a key that can only be derived by a party possessing the private key corresponding to ID_CRED_R. 
Prior to sending its credentials, the Initiator MUST ensure that the credentials associated with ID_CRED_R have been successfully validated and accepted according to local policy. 
This prevents disclosure of the Initiator&rsquo;s credentials to a party presenting credentials that are cryptographically valid but untrusted or unintended.
</t>
  <t> Obtain the authentication credential (CRED_R) from the (ID_CRED_R) as in <xref target="RFC9528" section="5.3.3"/>, and the static authentication key of the Responder</t>
  <t> If the Responder use KEM-based authentication (methods equal 5 or 7) then the Initiator MUST perform the following steps:
  <list style="symbol">
  <t> Encapsulate the retrieved static KEM authentication key of the Responder ( pk_R ) calculating the corresponding ciphertext ( ct_R ) and shared secret ( ss_R ) with the following function: 
     <artwork align="left">
 ss_R, ct_R &lt;-  KEM.Encapsulate(pk_R)
  </artwork></t>
  <t> Compute the new PRK_3e2m from a chain that includes both the ephemeral KEM shared secret ( ss_eph ) and the latest KEM shared secret for the Authentication of the Responder ( ss_R ), as defined in <xref target="prk_3e2m"/></t>
   </list>
Else, if the Responder authenticates using a PQC signature algorithm (method 6), then PRK_3e2m SHALL be set equal to PRK_2e (PRK_3e2m = PRK_2e).
  </t>
  </list>
 </t> 
 </section>
</section>
<section anchor="message3" title="KEM-based authentication EDHOC Message 3">
<section anchor="fmessage3" title="Formating of Message 3">
<t> message_3 SHALL be a CBOR Sequence as defined below:</t>
<sourcecode type="cbor" markers="false" >
message_3 = (
  CIPHERTEXT_3 : bstr,
  ? ct_R : bstr, 
)
</sourcecode>
</section>
<section anchor="icmessage3" title="Initiator Composition of Message 3">
<t> The Initiator SHALL process the composition of message_3 as follows:</t>
 <t>
  <list style="symbols">
  <t> Compute the transcript hash TH_3=H(TH_2,PLAINTEXT_2,CRED_R,? ct_R) as specified in <xref target="RFC9528" section="5.4.2"/>.
  The element ( ct_R ) SHALL be present only when the Responder use KEM-based authentication (methods 4 and 6); otherwise it SHALL be ommited. </t>
  <t> Derive the new session key K_3/IV_3 as defined in <xref target="edhoc_kdf"/>. The Initiator can use this key to compute CIPHERTEXT_3, but it cannot be used to authenticate itself. </t>
  <t> At this point, when the Initiator use KEM-based authentication, is not jet able to authenticate itself; therfore MAC_3 is not computed. 
  Although the Initiator could, in principle, authenticate itself at this stage when using PQC signature-based authentication, the message-flow-preserving approach restricts Responder authentication to message_5.
  A corresponding message flow that enables a party to authenticate as soon as it becomes possible is shown in <xref target="Appendix A"/> </t>
  <t> Compute a COSE_Encrypt0 object as defined in  <xref target="RFC9052"  section="5.2 and 5.3"/>, 
     with the EDHOC AEAD algorithm of the selected cipher suite, using the encryption key K_3, the initialization vector
      IV_3 (if used by the AEAD algorithm), the plaintext PLAINTEXT_3, and the following parameters as input:
      <list style="symbols">
      <t>protected = h''</t>
      <t>external_aad = TH_3 </t>
      <t>K_3 and IV_3 are defined in <xref target="edhoc_kdf"/></t>
      <t>PLAINTEXT_3 = (C_I,ID_CRED_I,?EAD_3)  where C_I, ID_CRED_I and EAD_3 elements corresponds with the ones in <xref target="RFC9528" section="5.3.3"/> </t>  
      </list>
      CIPHERTEXT_3 is the 'ciphertext' of COSE_Encrypt0.
  </t>
<!--<t> Compute the transcript hash TH_4 = H(ct_I,TH_3, PLAINTEXT_3, CRED_I) as specified in <xref target="RFC9528" section="5.4.2"/>  </t>-->
 <t> Encode message_3 as a CBOR data item as specified in  <xref target="fmessage3"/>. 
 The element ( ct_R ) SHALL be present only when the Responder use KEM-based authentication (methods 4 and 6); otherwise it SHALL be ommited. 
 When the Responder use PQC Signature algorithms (method 5) message_3 consists of a single element (CIPHERTEXT_3). 
 ( ct_R ) is defined as the trailing element so it can be omitted when not used; therefore, senders MUST NOT encode ct_R as NULL.</t>
  </list>
 </t> 
</section>
<section anchor="rpmessage3" title="Responder Processing of Message 3">
<t>The Responder SHALL process message_3 in the following order:</t>
 <t>
  <list style="numbers">
  <t> Decode message_3</t>
  <t> "Retrieve the protocol state", as defined in <xref target="RFC9528" section="5.4.3"/></t>
  <t> If the Responder use KEM-based authentication (methods 5 or 7) then it MUST perform the following steps:
  <list style="symbols">
  <t> Compute the KEM shared_secret ( ss_R ) for the authentication of the Responder by decapsulating the KEM ciphertext ( ct_R ) received in message_3 using the Responder static KEM secret key ( sk_R ). The KEM shared secret is computed by the Responder using the following function: 
  <artwork align="left">
 ss_R &lt;-  KEM.Decapsulate( ct_R, sk_R )
  </artwork></t>
  <t> Compute the new PRK_3e2m from a chain that includes both the ephemeral KEM shared secret ( ss_eph ) and the latest KEM shared secret for the Authentication of the Responder ( ss_R ), as defined in <xref target="prk_3e2m"/></t>
   </list>
  Else, if the Responder authenticates using a PQC signature algorithm (method 6), then PRK_3e2m SHALL be set equal to PRK_2e (PRK_3e2m = PRK_2e). 
 </t> 
  <t> Compute the transcript hash TH_3=H(TH_2,PLAINTEXT_2,CRED_R,? ct_R). The element ( ct_R ) SHALL be present only when the Responder use KEM-based authentication (methods 4 and 6); otherwise it SHALL be ommited.  </t>
  <t> Compute K_3/IV_3 as in <xref target="edhoc_kdf"/>, where plaintext_length is the length of PLAINTEXT_3 </t>
  <t> Decrypt CIPHERTEXT_3; see <xref target="icmessage3"/> </t>
  <t> "If all processing is completed successfully, then make ID_CRED_I and (if present) EAD_2 available to the application", as in <xref target="RFC9528" section="5.3.4"/></t>
  <t> "Obtain the authentication credential (CRED_I) from the (ID_CRED_I)" as in  <xref target="RFC9528" section="5.3.4"/> and the static authentication key of the Initiator.</t>
  </list>
 </t> 
</section>
</section>
<section anchor="message4" title="KEM-based authentication EDHOC Message 4">
<section anchor="fmessage4" title="Formating of Message 4">
<t> message_4 SHALL be a CBOR Sequence as defined below:</t>
<sourcecode type="cbor" markers="false" >
message_3 = (
  CIPHERTEXT_4 : bstr,
  ? ct_I : bstr,
)
</sourcecode>
</section>
<section anchor="rcmessage4" title="Responder Composition of Message 4">
<t> The Responder SHALL process the composition of message_4 as follows:</t>
 <t>
  <list style="symbols">
  <t>If the Initiator use KEM-based authentication (methods equal 4 or 5) then the Responder MUST perform the following step:
  <list style="symbols">
    <t> Encapsulate the retrieved static KEM authentication key of the Initiator ( pk_I ) calculating the corresponding ciphertext ( ct_I ) and shared secret ( ss_I ) with the following function:
  <artwork align="left">
 ss_I, ct_I &lt;-  KEM.Encapsulate(pk_I)
  </artwork></t>     
   </list> 
  </t>
  <t> Compute the transcript hash TH_4 = H(TH_3, PLAINTEXT_3, CRED_I,? ct_I). 
  The element ( ct_I ) SHALL be present only when the Initiator use KEM-based authentication (methods 5 and 6); otherwise it SHALL be ommited.  </t> 
  <t> Compute MAC_2 as defined in <xref target="edhoc_kdf"/>, with context_2 =&lt;&lt;  C_R,
      ID_CRED_R, TH_4, CRED_R, ? EAD_4 &gt;&gt; 
  <list style="symbols">
   <t> If the Resonder authenticates with static KEM key (methods equals 5 or 7), then the mac_lenght_2 is equal to the EDHOC MAC length of the selected cipher suit. 
   If the Responder authenticates with PQC Signature algorithms (method equal 6), then the mac_lenght_2 is equal to hash_length. </t>
   <t> The C_R, ID_CRED_R and CRED_R  elements corresponds with the ones in <xref target="RFC9528" section="5.3.2"/> </t>
   <t> The latest transcript hash TH_4 and the External Application Data included in Message 4 (EAD_4) are used.</t>
  </list>
  </t>
  <t>If the Responder use KEM-based authentication (methods equal 5 or 7) then Sig_R_or_MAC_2 is MAC_2. If the Responder authenticates using a PQC signature algorithm (method 6),
  then Sig_R_or_MAC_2 is the 'signature' field of a COSE_Sign1 object, computed as specified in <xref target="RFC9528" section="5.3.2"/> but using the PQC Signature algorithm specify in the selected cipher suite,
  the private PQC authentication key of the Responder,and the following parameteres as input:: 
   <list style="symbols">
   <t> protected = &lt;&lt; ID_CRED_R &gt;&gt;</t>
   <t> external_aad = &lt;&lt; TH_4, CRED_R, ? EAD_4 &gt;&gt;</t>
   <t> payload = MAC_2</t>
  </list>
  </t>
  <t>If the Initiator use KEM-based authentication (methods equal 5 or 6) then the Responder MUST perform the following step:
  <list style="symbols">  
   <t> Compute the new PRK_4e3m from a chain that includes the ephemeral KEM shared secret ( ss_eph ), the KEM shared secret for the Authentication of the Responder ( ss_R ), and the latest KEM shared secret for the Authentication of the Initiator ( ss_I ) as defined in <xref target="PRK_4e3m"/></t> 
    </list>
    Else, if the Initiator authenticates using a PQC signature algorithm (method equal 7), then PRK_4e3m SHALL be set equal to PRK_3e2m (PRK_4e3m = PRK_3e2m). 
  </t>
   <t> Derive the session key K_4/IV4 as in  <xref target="edhoc_kdf"/>.</t>
   <t> Compute a COSE_Encrypt0 object as defined in  <xref target="RFC9052"  section="5.2 and 5.3"/>, with the EDHOC AEAD algorithm of the selected cipher suite, using the encryption key K_4, the initialization vector
      IV_4 (if used by the AEAD algorithm), the plaintext PLAINTEXT_4, and the following parameters as input:
      <list style="symbols">
      <t>protected = h''</t>
      <t>external_aad = TH_4 </t>
      <t>K_4 and IV_4 are defined in <xref target="edhoc_kdf"/></t>
      <t>PLAINTEXT_4 = ( MAC_2, ?EAD_4 ) </t>  
      </list>
      CIPHERTEXT_4 is the 'ciphertext' of COSE_Encrypt0.
    </t>
   <t>Compute the transcript hash TH_5 = H(TH_4, PLAINTEXT_4) </t> 
   <t>Encode message_4 as a CBOR data item as specified in  <xref target="fmessage4"/>.The element ( ct_I ) SHALL be present only when the Initiator use KEM-based authentication (methods 5 and 6); 
   otherwise it SHALL be ommited. When the Initiator use PQC Signature algorithms (method 7) message_4 consists of a single element (CIPHERTEXT_4). 
 ( ct_I ) is defined as the trailing element so it can be omitted when not used; therefore, senders MUST NOT encode ct_I as NULL.</t>
  </list>
 </t> 
</section>
<section anchor="ipmessage4" title="Initaitor Processing of Message 4">
<t> The Initiator SHALL process message_4 in the following order:</t>
 <t>
  <list style="numbers">
  <t> Decode message_4</t>
  <t> "Retrieve the protocol state using available message correlation", as in  <xref target="RFC9528" section="3.4.2"/>.</t>
  <t>If the Initiator use KEM-based authentication (methods equal 5 or 6) then it MUST perform the following steps:
  <list style="symbols">
   <t> Compute the KEM shared secret ( ss_I ) for the authentication of the Initiator by decapsulating the KEM ciphertext ( ct_I ) received in message_4 using the Responder static KEM secret key ( sk_I ).
    The KEM shared secret is computed by the Initiator using the following function:
  <artwork align="left">
 ss_I &lt;-  KEM.Decapsulate( ct_I, sk_I )
  </artwork></t>
  <t> Compute the new PRK_4e3m from a chain that includes the ephemeral KEM shared secret ( ss_eph ), the KEM shared secret for the Authentication of the Responder ( ss_R ), and the latest KEM shared secret for the Authentication of the Initiator ( ss_I ) as defined in <xref target="PRK_4e3m"/></t> 
    </list>
  Else, if the Initiator authenticates using a PQC signature algorithm (method equal 7), then PRK_4e3m SHALL be set equal to PRK_3e2m (PRK_4e3m = PRK_3e2m). 
  </t>
  <t> Compute the transcript hash TH_4 = H(TH_3, PLAINTEXT_3, CRED_I, ? ct_I). 
  The element ( ct_I ) SHALL be present only when the Initiator use KEM-based authentication (methods 4 and 5); otherwise it SHALL be ommited. </t>
  <t> Derive the session key K_4/IV4 as in  <xref target="edhoc_kdf"/>.</t>
  <t> Decrypt and verify the COSE_Encrypt0 (CIPHERTEXT_4) as defined <xref target="RFC9052"  section="5.2 and 5.3"/>], with the EDHOC AEAD algorithm in the selected cipher suite and the parameters defined in <xref target="rcmessage4"/>.</t>
  <t> Verify Sig_R_or_MAC_2 using the algorithm in the selected cipher suite. The verification process depepends on the authentication method used by the Responder
   as defined in <xref target="rcmessage4"/>. "Make the result of the verification available to the application" as in <xref target="RFC9052"  section="5.3.3"/></t>
  </list>
</t> 
</section>
</section>

<section anchor="message5" title="KEM-based authentication EDHOC Message 5">
<section anchor="fmessage5" title="Formating of Message 5">
<t> message_5 SHALL be a CBOR Sequence as defined below:</t>
<sourcecode type="cbor" markers="false" >
message_3 = (
  CIPHERTEXT_5 : bstr,
)
</sourcecode>
</section>
<section anchor="icmessage5" title="Initiator Composition of Message 5">
<t> The Initiator SHALL process the composition of message_5 as follows:</t>
 <t>
  <list style="symbols">
   <t> Compute the transcript hash TH_5 = H(TH_4, PLAINTEXT_4) </t> 
   <t> Compute MAC_3 as defined in <xref target="edhoc_kdf"/>, with context_3 =&lt;&lt;  C_I,
      ID_CRED_I, TH_5, CRED_I, ? EAD_5 &gt;&gt; 
  <list style="symbols">
    <t> If the Initiator authenticates with static KEM key (methods equals 5 or 6), then the mac_lenght_3 is equal to the EDHOC MAC length of the selected cipher suit. 
   If the Initiator authenticates with PQC Signature algorithms (method equal 7), then the mac_lenght_3 is equal to hash_length. </t>
   <t> The C_I, ID_CRED_I and CRED_I elements corresponds with the ones in <xref target="RFC9528" section="5.4.2"/> </t>
   <t> The latest transcript hash TH_5 and the External Application Data included on Message 5 (EAD_5) are used.</t>
  </list>
  </t>
   <t>If the Initiator use KEM-based authentication (methods equal 5 or 6) then Sig_I_or_MAC_3 is MAC_3. If the Initiator authenticates using a PQC signature algorithm (method 6),
  then Sig_I_or_MAC_3 is the 'signature' field of a COSE_Sign1 object, computed as specified in <xref target="RFC9528" section="4.3.2"/> but using the PQC Signature algorithm specify in the selected cipher suite,
  the private PQC authentication key of the Initiator, and the following parameteres as input: 
   <list style="symbols">
   <t> protected = &lt;&lt; ID_CRED_I &gt;&gt;</t>
   <t> external_aad = &lt;&lt; TH_5, CRED_I, ? EAD_5 &gt;&gt;</t>
   <t> payload = MAC_3</t>
  </list>
  </t>
  <t> Compute a COSE_Encrypt0 object as defined in<xref target="RFC9052"  section="5.2 and 5.3"/>, with the EDHOC AEAD algorithm of the selected cipher suite, using the encryption key K_4, the initialization vector
  IV_4 (if used by the AEAD algorithm), the plaintext PLAINTEXT_5, and the following parameters as input:
  <list style="symbols">
  <t>protected = h''</t>
  <t>external_aad = TH_5 </t>
  <t>K_5 and IV_5 are defined in <xref target="edhoc_kdf"/></t>
  <t>PLAINTEXT_5 = ( MAC_3, ? EAD_5 ) </t>  
  </list>
  CIPHERTEXT_5 is the 'ciphertext' of COSE_Encrypt0.
 </t>
 <t>Calculate PRK_out as defined in <xref target="PRK_out"/>. The Initiator can now derive application keys using the EDHOC_Exporter interface; see  <xref target="key_app"/></t>
 <t>Encode message_5 as a CBOR data item as specified in  <xref target="fmessage5"/></t>
 <t>"Make the connection identifiers (C_I and C_R) and the application algorithms in the selected cipher suite available to the application" as in <xref target="RFC9528" section="5.4.2"/>  </t>
  </list>
</t> 
<t> After creating message_5, the Initiator can compute PRK_out and derive application keys using the EDHOC_Exporter interface. 
The Responder SHOULD now persistently store PRK_out or application keys and send protected application data, since it has already verified message_4, which is protected with a derived application key by the Responder, and the application has authenticated the Responder.</t>
</section>
<section anchor="rpmessage5" title="Responder Processing of Message 5">
<t> The Responder SHALL process message_5 in the following order:</t>
 <t>
  <list style="numbers">
  <t> Decode message_5</t>
  <t> "Retrieve the protocol state using available message correlation" as in  <xref target="RFC9528" section="3.4.2"/>.</t>
  <t> Decrypt and verify the COSE_Encrypt0 (CIPHERTEXT_5) as defined in <xref target="RFC9052"  section="5.2 and 5.3"/>, with the EDHOC AEAD algorithm in the selected cipher suite and the parameters defined in <xref target="icmessage5"/>.</t>
  <t> Verify Sig_I_or_MAC_3 using the algorithm in the selected cipher suite. The verification process depepends on the authentication method used by the Initiator
   as defined in <xref target="icmessage5"/>. "Make the result of the verification available to the application" as in <xref target="RFC9052"  section="5.3.3"/></t>
  <t> Calculate PRK_out as defined in <xref target="PRK_out"/>. The Initiator can now derive application keys using the EDHOC_Exporter interface; see  <xref target="key_app"/></t>
  </list>
</t> 
<t> After verifying message_5, the Responder can compute PRK_out and derive application keys using the EDHOC_Exporter interface. 
The Responder SHOULD now persistently store PRK_out or application keys and send protected application data, since it has already verified message_5, which is protected with a derived application key by the Initiator, and the application has authenticated the Initiator. </t>
</section>
</section>
</section>


    <section anchor="IANA" title="IANA Considerations">
   <section anchor="EDHOC Method Types Registry" title="EDHOC  Method Types Registry">
   <t> The "EDHOC Method Types" Registry from group "Ephemeral Diffie-Hellman Over COSE (EDHOC)" SHOULD be extended with a new value that identifies the KEM-based authentication method.
    The extension value from the "Standards Action with Expert Review" range, is proposed in <xref target="method-table"/> </t>
<dl>
          <dt>Registry Name:</dt>
          <dd>EDHOC Method Types</dd>
          <dt>Reference:</dt>
          <dd>draft-pocero-authkemsig-edhoc-00</dd>
        </dl>
        <t>The columns of the registry are Value, Initiator Authentication Key, Responder Authentication Key and Reference, where Value is an integer and the other columns are text strings. The new value proposed is:</t>
   <table anchor="method-table" align="center">
  <name slugifiedName="method">EDHOC Method Types</name>
  <thead>
    <tr>
      <th>Value</th>
      <th>Initiator Authentication Key</th>
      <th>Responder Authentication Key</th>
      <th>Reference</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>6 (suggested)</td>
      <td>Static KEM Key</td>
      <td>PQC Signature key</td>
      <td>[draft-pocero-authkemsig-edhoc-00]</td>
    </tr>
      <tr>
      <td>7 (suggested)</td>
      <td>PQC Signature key</td>
      <td>Static KEM Key</td>
      <td>[draft-pocero-authkemsig-edhoc-00]</td>
    </tr>
  </tbody>
</table>

   
    </section>
    </section>
    <section anchor="Security" title="Security Considerations">
<t>The same Security Considerations described in <xref target="I-D.pocero-lake-authkem-edhoc" section="6"/> apply to this document.  </t>
</section>

   
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

      <references title="Normative References">
      &RFC9528;
      &RFC9052;
      &I-D.ietf-lamps-kyber-certificates;
      &RFC8392;
      &RFC9360;
      &RFC8949;
      &RFC8742;
      &RFC5116;
      &I-D.spm-lake-pqsuites;
      &I-D.pocero-lake-authkem-edhoc;
      

    </references>
    <references title="Informative References">
      &RFC2119;
      &RFC9794;
      &RFC9053;
      &RFC7252;
      &RFC7959;
      &RFC9177;
<reference anchor="PQ-EDHOC-Access25"
           target="https://doi.org/10.1109/ACCESS.2025.3633843"
           quoteTitle="true"
           derivedAnchor="PQ-EDHOC-Access25">
  <front>
    <title>Reinventing EDHOC for the Post-Quantum Era</title>
    <author initials="L. " surname="Pocero Fraile">
      <organization showOnFrontPage="true"/>
    </author>
    <author initials="C." surname="Koulamas"/>
    <author initials="A. P." surname="Fournaris"/>
    <date year="2025"/>
  </front>
  <refcontent>
    IEEE Access, Volume 13, pages 196622&#8211;196640, 2025.
    DOI: https://doi.org/10.1109/ACCESS.2025.3633843
  </refcontent>
</reference>
    </references>
    <section anchor="Appendix A" title="Early Authentication Approach for Combined PQC KEM and Signature Authentication Methods">
<t>To extend the pure KEM-based authentication between both parties with support for combinations where the Initiator and Responder use different mechanisms,
combining KEM-based and signature-based authentication, an alternative approach can be considered. 
In this early authentication approach, authentication is prioritized, and each party authenticates in the first message in which it is able to do so. 
This enables authentication to occur as early as possible, in contrast to the message-flow-preserving approach defined in this document.</t>
<t>When KEM-based authentication is used by both parties, the two approaches share the same message flow, as shown in <xref target="method4"/>. 
When the Initiator uses PQC signature-based authentication, it is able to authenticate its identity within message 3.
By using the early authentication approach, this avoids the need for message_5 and reduces the message flow to four mandatory messages, as shown in <xref target="method6"/>.
On the other hand, when the Responder uses PQC signature-based authentication, the authentication trough signatures within message 2 does not reduce the 
number of mandatory messages, as shown in <xref target="method5"/>. 
However, both Method 5 and Method 6 can benefit from the early authentication approach, which allows the protocol to terminate early if authentication fails,
enables early detection of misbinding attacks, and increases the level of authentication assurance provided by intermediate messages. </t>
<t>The main drawback of the early authentication approach is the increased
complexity associated with using different message formats and numbers of
messages across the various authentication methods, which complicates protocol
specifications and implementations.</t>
<t>Priority has been given in this document to maintaining a simpler protocol specification with the
same number of messages and a consistent format across the three authentication
methods, since the benefits of lower complexity are considered more important
than the marginal advantages provided by the early authentication approach. 
However, the advantages and disadvantages of both
approaches should be further discussed within the LAKE Working Group to evaluate
the pros and cons of each approach.</t>

  <figure title="EDHOC Message Flow for KEM-based Authentication on both Initiator and Responder (Method 4) " anchor="method4"> 
      <artwork align="center"><![CDATA[
Initiator                                                   Responder
|               METHOD, SUITES_I, pk_eph, C_I, EAD_1                |
+------------------------------------------------------------------->
|                             message_1                             |
|                                                                   |
|               ct_eph, Enc( C_R, ID_CRED_R, EAD_2 )                |
<-------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                   ct_R, AEAD( ID_CRED_I, EAD_3 )                  |
+------------------------------------------------------------------->
|                             message_3                             |
|                                                                   |
|                     ct_I, AEAD( EAD_4, MAC_2 )                    |
<-------------------------------------------------------------------+
|                             message_4                             |
|                                                                   |
|                         AEAD( EAD_5, MAC_3 )                      |
+------------------------------------------------------------------->
|                             message_5                             |

]]></artwork></figure>

<figure title="EDHOC Message flow for KEM-based authentication on the Initiator and PQC signature-based authentication on the Responder (Method 5) " anchor="method5"> 
      <artwork align="center"><![CDATA[


Initiator                                                   Responder
|               METHOD, SUITES_I, pk_eph, C_I, EAD_1                |
+------------------------------------------------------------------->
|                             message_1                             |
|                                                                   |
|               ct_eph, Enc( C_R, ID_CRED_R, sig, EAD_2 )           |
<-------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                     AEAD( ID_CRED_I, EAD_3 )                      |
+------------------------------------------------------------------->
|                             message_3                             |
|                                                                   |
|                          ct_I, AEAD( EAD_4)                       |
<-------------------------------------------------------------------+
|                             message_4                             |
|                                                                   |
|                         AEAD( EAD_5, MAC_3 )                      |
+------------------------------------------------------------------->
|                             message_5                             |

]]></artwork></figure>
<figure title="EDHOC Message flow for PQC signature-based authentication on the Initiator and KEM-based authentication on the Responder (Method 6) " anchor="method6"> 
      <artwork align="center"><![CDATA[

Initiator                                                   Responder
|               METHOD, SUITES_I, pk_eph, C_I, EAD_1                |
+------------------------------------------------------------------->
|                             message_1                             |
|                                                                   |
|               ct_eph, Enc( C_R, ID_CRED_R, EAD_2 )                |
<-------------------------------------------------------------------+
|                             message_2                             |
|                                                                   |
|                   ct_R, AEAD( ID_CRED_I, sig, EAD_3 )              |
+------------------------------------------------------------------->
|                             message_3                             |
|                                                                   |
|                      AEAD( EAD_4, MAC_2 )                         |
<-------------------------------------------------------------------+
|                             message_4                             |


]]></artwork></figure>
</section>
  </back>
</rfc>
