<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-xia-ipsecme-eesp-stateless-encryption-01" category="std" consensus="true" submissionType="IETF" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="EESP Stateless Encryption">Stateless Encryption Scheme of Enhanced Encapsulating Security Payload (EESP)</title>
    <seriesInfo name="Internet-Draft" value="draft-xia-ipsecme-eesp-stateless-encryption-01"/>
    <author initials="L." surname="Xia" fullname="Liang Xia">
      <organization>Huawei Technologies</organization>
      <address>
        <email>frank.xialiang@huawei.com</email>
      </address>
    </author>
    <author initials="W." surname="Jiang" fullname="Weiyu Jiang">
      <organization>Huawei Technologies</organization>
      <address>
        <email>jiangweiyu1@huawei.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="07"/>
    <workgroup>IPSECME Working Group</workgroup>
    <keyword/>
    <keyword/>
    <keyword/>
    <abstract>
      <?line 64?>

<t>This draft first introduces several use cases for stateless encryption, analyzes and compares some existing stateless encryption schemes in the industry, and then attempts to propose a general and flexible stateless encryption scheme based on the summarized requirements.</t>
    </abstract>
  </front>
  <middle>
    <?line 68?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Recently, with the emergence of more new scenarios such as high-performance cloud services, AI large model computing, and 5G mobile backhaul networks, higher requirements have been put forward for the hardware friendliness, performance, and flexibility of the IPsec ESP protocol. A new protocol design, EESP <xref target="I-D.ietf-ipsecme-eesp"/> <xref target="I-D.ietf-ipsecme-eesp-ikev2"/>, is being discussed and formulated. EESP focuses on solving issues such as introducing more fine-grained sub-child-SAs, adapting the ESP header and trailer format, and allowing parts of the transport layer header to be unencrypted, and implementing flexible expansion of EESP new features through options.</t>
      <t>In addition to the issues listed above that are being addressed, stateless encryption is also a very important point. Its basic idea is to dynamically calculate data keys based on a small number of master keys (for AES-GCM, the encryption key and authentication key are combined), which helps optimize hardware resource limitations, performance optimization, and key negotiation complexity in large-scale IPsec session scenarios. This draft first introduces several use cases for stateless encryption, analyzes and compares some existing stateless encryption schemes in the industry, and then attempts to propose a general and flexible stateless encryption scheme based on the summarized requirements.</t>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="general-computing-of-cloud-service">
        <name>General Computing of Cloud Service</name>
        <t>Public cloud services provide IPsec VPN access for massive users, and the servers in their infrastructure need to support massive IPsec session access. If hardware supports IPsec, the hardware should support session-based encryption and decryption, and the data keys of different sessions are isolated. The server needs to maintain the security connection context between the server and a large number of clients, and the hardware with limited memory cannot store the huge context. Note that the client and server do not belong to the same trusted domain in this case.</t>
        <t>The stateless encryption scheme in the <xref target="PSP"/> solution proposed by Google is used to address the above hardware memory overhead problem. Its main principle is to derive a data key based on the master key on the server side, and the client side obtains the data key through an out-of-band method. It has:</t>
        <ul spacing="normal">
          <li>
            <t>Pros: Save half of total session contexts. Furthermore, since the master key is owned by server and not shared, key leakage affects only one server;</t>
          </li>
          <li>
            <t>Cons: When a large number of new sessions are created, the data key negotiation is along the out of band slow path in real time, the first packet transmit will be delayed, and which results in performance degrade.</t>
          </li>
        </ul>
      </section>
      <section anchor="cluster-communication-in-hpc-network">
        <name>Cluster Communication in HPC Network</name>
        <t>As shown in the below figure, encrypted communication is required between different instances of large-scale HPC jobs, the security session number is at the scale of O(M * N * N). So, an efficient security context management mechanism is required to solve the problem of large-scale security sessions. Note that all communication instances of a HPC job belong to the same trusted domain.</t>
        <figure anchor="fig-ipsecme-eesp-stateless-encryption-hpc">
          <name>Encrypted Communication for Large Scale HPC Networks</name>
          <artwork><![CDATA[
                           M Jobs
        +------------------------------------------+
        | +----------------------------------------+-+
        | | +--------------------------------------+-+-+
        | | |               Job 0                  | | |
        | | |  +---------+ +---------+ +---------+ | | |
        | | |  |Instance1| |Instance2| |Instance3| | | |
        | | |  +---------+ +---------+ +---------+ | | |
        +-+-+--------------------------------------+ | |
          +-+----------------------------------------+ |
            +------------------+-----------------------+
                               |
                               |Deploy Jobs
                               |to Server Cluster
                               |
+------------------------------V--------------------------------------+
|                        Server Cluster                               |
|                                                                     |
| +-----------+             +-----------+             +-----------+   |
| |+----------++            |+----------++            |+----------++  |
| ||+---------+++           ||+---------+++           ||+---------+++ |
| |||Instancei||| Ciphertext|||Instancej||| Ciphertext|||Instancek||| |
| |||  Keyi   ||<----------->||  Keyj   ||<----------->||  Keyk   ||| |
| +++---------+||           +++---------+||           +++---------+|| |
|  ++----------+|            ++----------+|            ++----------+| |
|   +----+------+             +-----------+             +-------+---+ |
|        |                    Ciphertext                        |     |
|        +------------------------------------------------------+     |
|                                                                     |
+---------------------------------------------------------------------+

                                                         

]]></artwork>
        </figure>
        <t>The stateless encryption scheme defined by <xref target="UEC_TSS"/> can be used to solve the above problem. The main principle is that all communication instances of a HPC job belong to the same trust domain and share the same master key for both receiving and sending directions. It has:</t>
        <ul spacing="normal">
          <li>
            <t>Pros:
            </t>
            <ul spacing="normal">
              <li>
                <t>Better than Google PSP，it saves all security session contexts;</t>
              </li>
              <li>
                <t>The communication parties do not need to store data keys, and the increase of the number of instances and connections of the HPC job does not affect the number of security contexts;</t>
              </li>
              <li>
                <t>Without out of band slow path data key negotiation, the first packet delay is small;</t>
              </li>
              <li>
                <t>Data keys can be updated through the TSC.epoch.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Cons:
            </t>
            <ul spacing="normal">
              <li>
                <t>Master key leakage affects the entire trusted domain;</t>
              </li>
              <li>
                <t>The context content can be generated based on the SSI / Source IP / Destination IP field. Although the context content is flexible, the calculation overhead increases.</t>
              </li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="nicdpu-pool-for-general-computing">
        <name>NIC/DPU Pool for General Computing</name>
        <t>To cope with large-scale traffic access (e.g., computing server access to storage networks) and efficiently utilize network card resources, NIC resource pooling is an effective solution. For north-south traffic from client access to servers, the NIC resource pool must be transparent to the application, allowing a client to access resources behind any NIC in the pool. When using encrypted connections, all NICs must share the same key for a client's access. At this point, the NICs in a resource pool belong to the same trust domain, so stateless encryption sharing the master key is applicable. This saves data key synchronization between NICs and reduces the storage of security sessions and data keys on them in scenarios with a large number of secure client connections. The client obtains the data key for this encrypted connection through an out-of-band method, which can be derived from the master key and context. Encrypted connections and contexts can be isolated based on flows or VM instances. As shown in the figure below:</t>
        <figure anchor="fig-ipsecme-eesp-stateless-encryption-nic-pool">
          <name>Encrypted Communication for NIC Pool</name>
          <artwork><![CDATA[
                      VM Pool
+--------------------------------------------------+
|                                                  |
|       +----+  +----+  +----+  +----+             |
|       | VM |  | VM |  | VM |  | VM |             |
|       +----+  +----+  +----+  +----+             |
|                                                  |
|    +----------------------------------+          |
|    |                                  |          |
|    |  NIC pool with shared master key |          |
|    |       and security context       |          |
|    |   +-----+  +-----+     +-----+   |          |
|    |   | NIC |  | NIC | ... | NIC |   |          |
|    |   +---X\*  +-/-*-+     +---/++   |          |
|    |      / \ \\ /  |\       --/ |    |          |
|    +------/--\-/X\--+-\\-----//--+----+          |
+----------/---\/---\\+---\---/----+---------------+
           /   /\     \\-  \ /     |
          /   /  Ciphertext X\     |
          /  /    \-  |   \X  \    |
         / //  --- \  |  // \\ \   |
         // ---    \  | /     \\\\ |
        //--        \ |/        \\\|
   +--------+   +----\*--+   +----\|--+
   | client |   | client |   | client |
   +--------+   +--------+   +--------+


]]></artwork>
        </figure>
        <t>Similarly, the NIC resource pool can also be used for east-west traffic access between VMs. In this case, all NICs are in the same security domain and can share a master key, and different data keys can be dynamically generated based on different encryption connection contexts.</t>
      </section>
      <section anchor="ai-computing">
        <name>AI Computing</name>
        <t>As shown in the figure below, in a AI computing network, a computing task is collaboratively executed by a group of CPUs &amp; XPUs located in the same trust domain or across trust domains (in the case of cross-trust domains, they are interconnected as proxies through DPU). For CPUs &amp; XPUs within the same trust domain, stateless encryption sharing the same master key can eliminate the complexity and latency of key negotiation between chips. For interconnection across trust domains, the DPU needs to perform encryption connection proxy functions between two trust domains (local trusted domain and global trusted domain). At this time, the DPU simultaneously possesses the master keys of the two trust domains, calculates the data key for intra-domain communication in each domain based on its context, and then uses the calculated two data keys to complete the secure connection proxy across trust domains.</t>
        <figure anchor="fig-ipsecme-eesp-stateless-encryption-ai-computing">
          <name>Encrypted Communication for AI Computing Network</name>
          <artwork><![CDATA[
                +-----------------------------+
                |         Trusted Domain 1    |
                | +-----+ +-----+     +-----+ |
                | | CPU | | CPU | ... | CPU | |
                | +-----+ +-----+     +-----+ |
                | +-----+ +-----+     +-----+ |
                | | XPU | | XPU | ... | XPU | |
                | +-----+ +-----+     +-----+ |
                | +-----+ +-----+     +-----+ |
                | | XPU | | XPU | ... | XPU | |
                | +-----+ +-----+     +-----+ |
                ++----------+-----+----------++
                 |DPU/Switch|     |DPU/Switch|
                 +-----+----+     +------+---+
                       |   Global Trusted|Domain
       +---------------+-----------------+------------------+
 +-----+----+     +----+-----+       +---+------+    +------+---+
 |DPU/Switch|     |DPU/Switch|       |DPU/Switch|    |DPU/Switch|
++----------+-----+----------++     ++----------+----+----------+-+
| +-----+ +-----+     +-----+ |     | +-----+ +-----+     +-----+ |
| | CPU | | CPU | ... | CPU | |     | | CPU | | CPU | ... | CPU | |
| +-----+ +-----+     +-----+ |     | +-----+ +-----+     +-----+ |
| +-----+ +-----+     +-----+ |     | +-----+ +-----+     +-----+ |
| | XPU | | XPU | ... | XPU | |     | | XPU | | XPU | ... | XPU | |
| +-----+ +-----+     +-----+ |     | +-----+ +-----+     +-----+ |
| +-----+ +-----+     +-----+ |     | +-----+ +-----+     +-----+ |
| | XPU | | XPU | ... | XPU | |     | | XPU | | XPU | ... | XPU | |
| +-----+ +-----+     +-----+ |     | +-----+ +-----+     +-----+ |
|         Trusted Domain 2    |     |         Trusted Domain 3    |
+-----------------------------+     +-----------------------------+


]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="requirement-summary">
      <name>Requirement Summary</name>
      <t>Based on the above use cases, the requirements for a general and flexible stateless encryption scheme are as follows:</t>
      <ul spacing="normal">
        <li>
          <t>Support nodes within a trusted trust domain to share the same master key;</t>
        </li>
        <li>
          <t>Master key supports multi-level combination design. In a trust domain, the master key is composed of multiple root keys of different types and levels, such as trust domain root key, tenant root key, task group root key, etc. This enhances the overall security of the master key and supports fine-grained encryption traffic isolation (e.g., all nodes in a trust domain, nodes of the same tenant in a trust domain, nodes of the same computing task in a trust domain, etc.);</t>
        </li>
        <li>
          <t>Different types of root keys have different security levels and lifecycles, and corresponding key rotation mechanisms need to be defined.  The master key update will trigger the data key update;</t>
        </li>
        <li>
          <t>The key rotation of each type of root key should support multiple key rotations, such as pre_key, current_key, and next_key, to support rapid rotation while ensuring that real-time encryption and decryption are not affected;</t>
        </li>
        <li>
          <t>The key derivation of the data key is based on the master key, context, and KDF. KDF must support packet-by-packet data key calculation in most cases (except when the data key is cached in memory), which requires extremely high performance and must support cryptographically secure, hardware-concurrent high-performance algorithms;</t>
        </li>
        <li>
          <t>To support real-time derivation of the Data Key, context information and IV information need to be carried with the message. To support different scenarios and different granularities of data key calculation and encryption traffic isolation (based on stream, based on source IP, based on source ID, etc.), multiple combinations of context and IV need to be supported, and different combination algorithms need to be distinguished through specific fields in the message;</t>
        </li>
        <li>
          <t>Context information enables dynamic updates of the data key, such as carrying an epoch in the context. When the epoch changes, the data key is also refreshed accordingly;</t>
        </li>
        <li>
          <t>It is necessary to support encryption proxy capabilities across trust domains. At the edge nodes across trust domains (such as DPU, Switch, etc.), support for master keys and stateless encryption of two trust domains (local trust domain and global trust domain) is required, and proxy conversion of message encryption and decryption between the two trust domains must be completed.</t>
        </li>
      </ul>
    </section>
    <section anchor="eesp-stateless-encryption-scheme">
      <name>EESP Stateless Encryption Scheme</name>
      <t>TBD.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-informative-references">
      <name>Informative References</name>
      <reference anchor="PSP" target="https://github.com/google/psp/blob/main/doc/PSP_Arch_Spec.pdf">
        <front>
          <title>PSP Architecture Specification</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="UEC_TSS" target="https://ultraethernet.org/wp-content/uploads/sites/20/2025/06/UE-Specification-6.11.25.pdf">
        <front>
          <title>Ultra Ethernet Specification v1.0</title>
          <author>
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="I-D.ietf-ipsecme-eesp" target="https://datatracker.ietf.org/doc/html/draft-ietf-ipsecme-eesp-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-eesp.xml">
        <front>
          <title>Enhanced Encapsulating Security Payload (EESP)</title>
          <author fullname="Steffen Klassert" initials="S." surname="Klassert">
            <organization>secunet Security Networks AG</organization>
          </author>
          <author fullname="Antony Antony" initials="A." surname="Antony">
            <organization>secunet Security Networks AG</organization>
          </author>
          <author fullname="Christian Hopps" initials="C." surname="Hopps">
            <organization>LabN Consulting, L.L.C.</organization>
          </author>
          <date day="3" month="July" year="2025"/>
          <abstract>
            <t>This document describes the Enhanced Encapsulating Security Payload (EESP) protocol, which builds on the existing IP Encapsulating Security Payload (ESP) protocol. It is designed to modernize and overcome limitations in the ESP protocol. EESP adds Session IDs (e.g., to support CPU pinning and QoS support based on the inner traffic flow), changes some previously mandatory fields to optional, and moves the ESP trailer into the EESP header. Additionally, EESP adds header options adapted from IPv6 to allow for future extension. New header options are defined which add Flow IDs and a crypt-offset to allow for exposing inner flow information for middlebox use.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-eesp-01"/>
      </reference>
      <reference anchor="I-D.ietf-ipsecme-eesp-ikev2" target="https://datatracker.ietf.org/doc/html/draft-ietf-ipsecme-eesp-ikev2-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-ipsecme-eesp-ikev2.xml">
        <front>
          <title>IKEv2 negotiation for Enhanced Encapsulating Security Payload (EESP)</title>
          <author fullname="Steffen Klassert" initials="S." surname="Klassert">
            <organization>secunet Security Networks AG</organization>
          </author>
          <author fullname="Antony Antony" initials="A." surname="Antony">
            <organization>secunet Security Networks AG</organization>
          </author>
          <author fullname="Tobias Brunner" initials="T." surname="Brunner">
            <organization>codelabs GmbH</organization>
          </author>
          <author fullname="Valery Smyslov" initials="V." surname="Smyslov">
            <organization>ELVIS-PLUS</organization>
          </author>
          <date day="13" month="May" year="2025"/>
          <abstract>
            <t>This document specfies how to negotiate the use of the Enhanced Encapsulating Security Payload (EESP) protocol using the Internet Key Exchange protocol version 2 (IKEv2). The EESP protocol, which is defined in draft-klassert-ipsecme-eesp, provides the same security services as Encapsulating Security Payload (ESP), but has richer functionality and provides better performance in specific circumstances. This document specifies negotiation of version 0 of EESP.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-eesp-ikev2-00"/>
      </reference>
    </references>
    <?line 254?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+1b63LbOJb+z6dAOVW7nZYoJZnqqVpnL+O23RlPT7KulnP5
4aouiIQkdCiCS5B2NHH6CfaR9p32FfY7uBGkLlZ282trVIkl4nJw7jjnAEzT
NGlkU4hTdjJreCMKoTW7LLN6UzVSlWyWrcRaMLVA44qXmcipl1e6LXgjyyWb
iaytZbNh13xTKJ6z7y4vZ9dPTxI+n9fiDnDpme0CfpJkaFyqenPKdJMnup2v
pdboudlUwOjq8uanRFb1KWvqVjcvnj37p2cvkiRXWcnX6M9rvmjST5KnstIi
W4tUCF2l2i+VirBU+ux5BL4J4Bl7wnihFdCUZS4qgT9lczJmJyKXjaolL+jh
6uxHfKkav365+ekkKdv1XNSnSY6VTpNMlVqUutUGUZEkgFkLfsrOfrk8S+5V
/XFZq7bCitezy/PXl+w9moh3r6g5+Sg2GJOfJixl4f+dKFuAfsKYm/v+FT1Y
zPvz0bzmsqAhfxKf+LoqxCRTa2rndbY6ZaumqfTpdBp1Ti24pWxW7ZyIF80i
lXeb9H45LUVDOKeyBBLgwSbd8HJ5gvEQudANhnuI0bSJhTWRag+AqRVXmLJ7
1GTVrIuTJOFts1LgMGMp/jNmJf5XiSHsg+SmTdXLU/bnlt8LyW5EtipVoZZS
aNMpLE8WNS8/TqAjBU3908qMNuzpQ34v5KZlf6FBR8P+jUbf08TnPcAJfaAU
TS3nbUNUJEmp6jUM5k7QQyLLRffM2PXs+tQAdqaIZ3YG0clGZE1bCzarRCYX
EuYC7TUjHX9Yh+wrpZaFMM9GLW1Xw+ulaDodcFIiFViaCdNKV9N5oeZTEFVO
YVxTLP8rLf8rLTup8oWBRB/8eHt5zm5msx6+b4um5uyyWYkaUu1jy+6eT57t
QXkw7xx2pOpGtuvHqGhponDzJoA1va9S4jg0adpW5If0VIN9evriGf69+GH6
7I/Tt5dpD7X0j5PnzycvfjAkJmmaMj7XAJw1SXKzkto6GLaQtW6YhDhV3mZC
My3uRM0L1mrBMq7RAmmy4HZY53bGjJe82PwNQ3iZM3C9gmcABAWfKj5JbVzo
rplMG8ersS4DnfjK4QLrzdgAQkvJeNOIddVo1ihW1apSQIezpSgNcjRsUWCN
eSEOrcDmoCBnyi6j2/Wa1/JvaKnFf7Syxoiy0RNm+bOWeV4YB3fl2GEgfX5i
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
AAA=

-->

</rfc>
