<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc [
<!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no"?>
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" docName="draft-song-emu-eapaka-pqc-sack-00" ipr="trust200902" submissionType="IETF" obsoletes="" updates="" xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="PQC SACKS">Bitstring-based Fragmentation Mechanism for EAP-AKA'</title>
    <seriesInfo name="Internet-Draft" value="draft-song-emu-eapaka-pqc-sack-00"/>
    <author fullname="Xueyan Song" initials="X." surname="Song">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>song.xueyan2@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Huawei Fu" initials="H." surname="Fu">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>chenmeiling@chinamobile.com</email>
      </address>
    </author>
    <date/>
    <workgroup>EMU</workgroup>
    <keyword>PQC</keyword>
	<keyword>EAPAKA</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 specifies an extension to the EAP-AKA' protocol by introducing 
a Bitmap-based Selective Acknowledgment (SACK) mechanism to the AT_FRAGMENT 
attribute. This mechanism enables window-based transmission and precise recovery 
of lost fragments, optimizing fragment delivery during post-quantum identity 
concealment and authentication exchanges.
      </t>
    </abstract>
	
  </front>
      <!-- end of abstract -->	
	  
  <middle>
    <section anchor="intro" numbered="true" toc="default">
      <name>Introduction</name>
   <t>
   EAP-AKA' <xref target="RFC9048"/> is a widely adopted authentication framework in 
   cellular and non-3GPP access networks. To mitigate the threat of 
   Cryptanalytically Relevant Quantum Computers (CRQC), the transition to 
   Post-Quantum Cryptography (PQC) is essential. However, PQC
   algorithms (e.g., ML-KEM, ML-DSA) yield payloads that heavily exceed 
   the typical MTU constraints of access networks, requiring fragmentation.
   </t>
	 
   <t>
   The <xref target="I-D.ietf-emu-pqc-eapaka"/> utilizes a strict 
   stop-and-wait fragment acknowledgment. Each individual segment requires 
   a dedicated EAP-Request/EAP-Response round-trip. When dealing with 
   ML-DSA signatures (which can span over 4 Kilobytes), this lock-step 
   approach inflicts an unacceptable latency penalty on initial network 
   attachment.
   </t>

   <t>
   This document bridges the gap by importing the bitstring selective 
   retransmission methodology from IKEv2's large message fragmentation 
   <xref target="I-D.smyslov-ipsecme-ikev2-fragm-large-msg"/> into the EAP layer. 
   By embedding a Fragment Bitmap into the AT_FRAGMENT attribute, the 
   EAP Peer can transmit multiple fragments in a windowed manner, and the 
   EAP Server can selectively request only the dropped segments within 
   a single round-trip.	 
   </t> 

    <!-- end of introduction -->
	
	  
    <section numbered="true" toc="default">
      <name>Requirements Language</name>
    <t>
    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
    "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
    "OPTIONAL" in this document are to be interpreted as described in
    BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and
    only when, they appear in all capitals, as shown here.
    </t>
    </section>
</section>
    <!-- end of terminology -->

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

<section anchor="proto-nego" numbered="true" toc="default">
   <name>Protocol Capability Negotiation</name>
   <t>To maintain backward compatibility with legacy [RFC9048] nodes, the 
   bitmap fragmentation feature MUST be explicitly negotiated during the 
   initial Identity exchange phase.</t>

   <t>The EAP Server includes the modified AT_FRAGMENT_B attribute 
   in its initial EAP-Request/AKA'-Identity message.</t>

   <t>The Format of AT_FRAGMENT_B is defined as follows:</t>
   
<artwork><![CDATA[
 0                   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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |    Length     |  Version (1)  |B|  Reserved   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      Maximum Window Size      |  Max Reassembled Attr Length  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>

      <ul spacing="normal">
        <li>
          <t>Bit 'B' (Bitmap-SACK-Supported): Set to 1 by the Server to indicate 
     support for the Bitmap SACK fragmentation mechanism described in 
     this document.</t>
        </li>
        <li>
          <t>Maximum Window Size: Indicates the maximum number of outstanding 
     fragments the receiver's buffer can handle without explicit ACK.</t>
        </li>
	  </ul>
 
 </section> 
 
 <section anchor="ex-frag" numbered="true" toc="default">
    <name>Extended AT_FRAGMENT_Ext Attribute Format </name>
     <t>
    When Bit 'B' is negotiated, the AT_FRAGMENT_Ext attribute MUST use the 
   following layout to carry fragmented PQC-SUCI or PQC-Signatures:
     </t>
	 
<artwork><![CDATA[	 
 0                   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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Type (TBD)   |    Length     |S|M|R|A|  Res  | Total Frags   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Current Seq  | Bitstring Len |   Fragment Bitmap (Variable)  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Total Attribute Length (Opt)  |   Maximum Retransmit Number   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  Fragment Data (Variable)                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+	 
]]></artwork>

      <ul spacing="normal">
        <li>
          <t>Type: New IANA assigned type for Post-Quantum SACK Fragment.</t>
        </li>
        <li>
          <t>S (Start, 1 bit): Set to 1 if this attribute contains the first fragment.</t>
        </li>
        <li>
          <t>M (More, 1 bit): Set to 1 if there are more fragments following this batch.</t>
        </li>
        <li>
          <t>R (Reset, 1 bit): Aborts the current reassembly session when set.</t>
        </li>
        <li>
          <t>A (ACK Mode, 1 bit): When sent by Peer: Requests the Server to evaluate the Bitmap; 
		  when sent by Server: Indicates this packet is an ACK carrying 
       the Fragment Bitmap feedback.</t>
        </li>
        <li>
          <t>Total Frags (1 byte): The total number of chunks the large payload 
     has been divided into.</t>
        </li>
        <li>
          <t>Current Seq (1 byte): The sequence index of the current fragment 
     (starting from 0).</t>
        </li>
        <li>
          <t>Bitstring Len (1 byte): The length of the Fragment Bitmap field 
     in octets.</t>
        </li>
        <li>
		  <t>Fragment Bitmap (Variable): A bit-vector mapping the reception status 
     of fragments. Bit 'n' set to 1 indicates fragment 'n' has been 
     successfully received. Bit 'n' set to 0 indicates a missing fragment.</t>
	    </li>
		<li>
          <t>Maximum Retransmit Number (2 bytes): Represents the maximum number of 
   retransmissions allowed for a fragment. The system resets once this 
   retransmission count is exceeded.</t>
        </li>
        <li>
          <t>Total Attribute Length (2 bytes): Present only when S=1. Represents 
     the overall payload byte count after complete reassembly.</t>
        </li>
      </ul>
</section>

 
<section anchor="sack" numbered="true" toc="default">
  <name>Bitstring-SACK Operational State Machine</name>
    <section numbered="true" toc="default">
      <name>Peer Transmission Logic </name>
   <t>
   Upon executing PQC encapsulation (generating a long SUCI via ML-KEM), 
   the Peer partitions the raw bytes into N segments. Instead of waiting 
   for an ACK for Fragment 0, the Peer transmits fragments up to the 
   negotiated "Maximum Window Size" sequentially or via bundled NAS 
   containers if upper layers permit.
   </t>
   <t>
   The final fragment within the local transmission window MUST have the 
   'A' (ACK Mode) bit set to 1, forcing the EAP Server to reply with the 
   current bitmap compilation.
   </t>
   </section>  
	   
   <section numbered="true" toc="default">
      <name>Server Selective Mechanism</name>
   <t>
   The Server maintains an index array mapped to the incoming "Current Seq". 
   As fragments land, the Server populates its internal bitmap vector:
   </t>
      <ul spacing="normal">
        <li>
          <t>Continuous In-order Delivery: If the Server accumulates all pieces 
   monotonically (Bitmap = 1111...), and the last received piece has 
   M=0, the Server skips explicit SACK feedback, reassembles the large 
   attribute, and immediately transitions to the standard EAP-Request/
   AKA'-Challenge phase. This achieves the theoretical 1-RTT bound.</t>
        </li>
        <li>
          <t>Discontinuous Gap Detection: If a gap occurs (e.g., Fragment 1 is 
   missing but 0 and 2 arrive), the Server marks its local bitmap as 
   1010... Upon processing a packet with A=1 or upon a reassembly 
   timer expiry, the Server transmits an empty EAP-Request/AKA'-Identity 
   payload containing the AT_FRAGMENT attribute configured with: A = 1 (ACK Mode);
   Fragment Bitmap = 10100000... (indicating Fragment 1 is missing).</t>
        </li>
	  </ul>  
   </section>  
   
   <section numbered="true" toc="default">
     <name>Peer Error Recovery</name>
   <t>
   When the Peer parses an incoming EAP-Request containing a Fragment Bitmap 
   with A=1, it cross-references the 0-bits inside the bitstring. 
   The Peer isolates the failed sequence indices and triggers **selective 
   retransmission** for only those specific fragments, maintaining their 
   original "Current Seq" indices. It sets A=1 on the final retransmitted 
   segment to prompt a fresh bitmap re-evaluation.
   </t>
   </section>  
 </section> 

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


	   
<section anchor="security" numbered="true" toc="default">
     <name>Security Considerations </name>
     <t>
   The secuirity considerations of <xref target="I-D.ietf-emu-pqc-eapaka"/> applies
   to this document.</t>
     <t>
   The Bitstring SACK mechanism introduces potential vectors for Memory 
   Exhaustion Denial-of-Service (DoS) attacks. Rogue peers could advertise 
   a massive "Total Attribute Length" and send scattered fragments to hold 
   Server RAM allocations open indefinitely.</t>
   </section>
    <!-- end of security -->

<!-- ===================================================================== --> 
	   
<section anchor="iana" numbered="true" toc="default">
  <name>IANA Considerations </name>
        <t>
		TBD.
        </t>
</section>
    <!-- end of IANA -->

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


  </middle>  
    <!-- end of middle -->	  
	
  <back>
  <references>
     <name>References</name>	  
	  <references>
       <name>Normative References</name>	
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>	
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>		
        <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9048.xml"/>
		<reference anchor="I-D.ietf-emu-pqc-eapaka" target="https://datatracker.ietf.org/doc/html/draft-ietf-emu-pqc-eapaka-02">
		<front>
		<title>Post-Quantum Key Encapsulation Mechanisms (PQ KEMs) in EAP-AKA prime</title>
		<author initials="T." surname="Reddy.K" fullname="Tirumaleswar Reddy.K">
		<organization>Nokia</organization>
		</author>
		<author initials="A." surname="Banerjee" fullname="Aritra Banerjee">
		<organization>Nokia</organization>
		</author>
		<date month="March" day="17" year="2026"/>
		<abstract>
		<t> Forward Secrecy for the Extensible Authentication Protocol Method for Authentication and Key Agreement (EAP-AKA' FS) is specified in [RFC9678], providing updates to [RFC9048] with an optional extension that offers ephemeral key exchange using the traditional Ephemeral Elliptic Curve Diffie-Hellman (ECDHE) key agreement algorithm for achieving perfect forward secrecy (PFS). However, it is susceptible to future threats from Cryptographically Relevant Quantum Computers, which could potentially compromise a traditional ephemeral public key. If the adversary has also obtained knowledge of the long-term key and ephemeral public key, it could compromise session keys generated as part of the authentication run in EAP-AKA'. This draft aims to enhance the security of EAP-AKA' FS protocol by making it quantum-safe using Post-Quantum Key Encapsulation Mechanisms (PQ-KEMs). </t>
		</abstract>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-ietf-emu-pqc-eapaka-02"/>
		</reference>
	  </references>
	  
	 <references>
      <name>Informative References</name>
		<reference anchor="I-D.smyslov-ipsecme-ikev2-fragm-large-msg" target="https://datatracker.ietf.org/doc/html/draft-smyslov-ipsecme-ikev2-fragm-large-msg-01">
		<front>
		<title>Using IKE Fragmentation for Large Messages</title>
		<author initials="V." surname="Smyslov" fullname="Valery Smyslov">
		<organization>ELVIS-PLUS</organization>
		</author>
		<date month="February" day="13" year="2026"/>
		<abstract>
		<t> This document describes describes issues with using Internet Key Exchange version 2 (IKEv2) fragmentation for transmitting large messages on unreliable transport. The document proposes several approaches for dealing with these issues: randomizing the order the fragments are sent, dispersing sending fragments over time and selective retransmission of fragments based on information from the peer about their receipt. </t>
		</abstract>
		</front>
		<seriesInfo name="Internet-Draft" value="draft-smyslov-ipsecme-ikev2-fragm-large-msg-01"/>
		</reference>
     </references>		
  </references>
  </back>
    <!-- end of middle -->	 
	
  </rfc>
