<?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-pham-cfrg-hiae-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="HiAE">The Fast Software Authenticated Encryption HiAE</title>
    <seriesInfo name="Internet-Draft" value="draft-pham-cfrg-hiae-00"/>
    <author initials="P." surname="Pham" fullname="Phuong Pham">
      <organization>Huawei</organization>
      <address>
        <email>pham.phuong@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Prabel" fullname="Lucas Prabel">
      <organization>Huawei</organization>
      <address>
        <email>lucas.prabel@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Sun" fullname="Sun Shuzhou">
      <organization>Huawei</organization>
      <address>
        <email>sunshuzhou@huawei.com</email>
      </address>
    </author>
    <date year="2025" month="June" day="11"/>
    <area>Security</area>
    <workgroup>Cryptography Forum</workgroup>
    <keyword>HiAE</keyword>
    <keyword>AES</keyword>
    <keyword>Authentication</keyword>
    <keyword>Encryption</keyword>
    <keyword>High-throughput</keyword>
    <abstract>
      <?line 115?>

<t>This document describes the high throughput authenticated encryption algorithm HiAE designed for new wireless generation 6G and data transimission applications.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://example.com/LATEST"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-pham-cfrg-hiae/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Cryptography Forum Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/USER/REPO"/>.</t>
    </note>
  </front>
  <middle>
    <?line 119?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Many recent cryptographic designs have utilized SIMD instructions to achieve high performance, particularly on x86 platforms using AES-NI <xref target="AES-NI"/>. AES-NI has become the foundation for many recent high-speed (authenticated) encryption algorithms like AEGIS <xref target="AEGIS"/>, SNOW-V <xref target="SNOW-V"/>, and Rocca-S <xref target="ROCCA-S"/>, which are tailored to take advantage of the parallelism and efficiency offered by these instructions. However, these designs often neglect the architectural differences between x86 and ARM, where SIMD instructions are implemented via NEON rather than AES-NI. This oversight results in inconsistent performance when deploying these algorithms on ARM-based devices, which dominate mobile and embedded systems. The transition to 6G, with its demand for ultra-high data rates and reliance on software-defined
networks (SDN) or  Cloud Radio Access Networks (Cloud RAN), further emphasizes the need for cryptographic algorithms optimized for diverse platforms. While some existing designs achieve remarkable performance on x86—reaching or exceeding 100 Gbps—these same algorithms often perform suboptimally on ARM platforms due to differences in SIMD instruction sets and hardware support for AES round functions. This gap highlights the pressing need for a unified approach that ensures high and consistent performance across both architectures.</t>
      <t>Addressing this challenge requires rethinking cryptographic design to leverage the unique capabilities of each platform while maintaining compatibility and efficiency. This motivates our work in developing a cross-platform cryptographic HiAE that achieves competitive performance on both x86 and ARM architectures, meeting the stringent demands of 6G systems.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The key words “<bcp14>MUST</bcp14>”, “<bcp14>MUST NOT</bcp14>”, “<bcp14>REQUIRED</bcp14>”, “<bcp14>SHALL</bcp14>”, “<bcp14>SHALL
NOT</bcp14>”, “<bcp14>SHOULD</bcp14>”, “<bcp14>SHOULD NOT</bcp14>”, “<bcp14>RECOMMENDED</bcp14>”, “<bcp14>NOT RECOMMENDED</bcp14>”,
“<bcp14>MAY</bcp14>”, and “<bcp14>OPTIONAL</bcp14>” in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <section anchor="notations">
        <name>Notations</name>
        <t><tt>AESL(x)</tt>: <tt>AESL(x) = MixColumns o SubBytes o ShiftRows(x)</tt>, of AES operations <xref target="FIPS-AES"/>.<br/>
          <tt>a ^ b</tt>: The bitwise exclusive OR operation between a and b.<br/>
          <tt>S</tt>: The internal state, composed of 16 blocks, i.e. <tt>S = (S[0], S[1], ..., S[15])</tt>, where <tt>S[i] (0 &lt;= i &lt;= 15)</tt> are blocks and <tt>S[0]</tt> is the first block. The <tt>i</tt>-th state block at round <tt>r</tt> is defined as <tt>S^r[i]</tt>.<br/>
          <tt>N</tt>: A <tt>128</tt>-bit nonce.<br/>
          <tt>AD_i</tt>: A <tt>128</tt>-bit associated data block.<br/>
          <tt>M_i</tt>: A <tt>128</tt>-bit message block.<br/>
          <tt>C_i</tt>: A <tt>128</tt>-bit ciphertext block.<br/>
          <tt>const_0</tt>: A <tt>128</tt>-bit constant, represented in hexadecimal as <tt>0x3243f6a8885a308d313198a2e0370734</tt>.<br/>
          <tt>const_1</tt>: A <tt>128</tt>-bit constant, represented in hexadecimal as <tt>0x4a4093822299f31d0082efa98ec4e6c8</tt>.<br/>
          <tt>X || 0^*</tt>: A <tt>128</tt>-bit block string of the concatenation of <tt>X</tt> and the complement of zeros.<br/>
          <tt>|M|</tt>: the length in bit of the string <tt>M</tt>.<br/>
          <tt>Truncate(x, l)</tt>: Output the upper bits of <tt>x</tt> with length <tt>l</tt>.</t>
      </section>
      <section anchor="the-round-function">
        <name>The Round Function</name>
        <t>The input of the round function <tt>UpdateFunction(S,X)</tt> of HiAE consists of the state <tt>S</tt> and a data block <tt>X</tt>.
If denoting the output by <tt>Snew</tt>, <tt>Snew:=UpdateFunction(S,X)</tt> can be defined as follows:</t>
        <artwork><![CDATA[
Snew[15] = AESL(S[0] ^ S[1]) ^ AESL(S[13]) ^ X,  
Snew[14] = S[15],  
Snew[13] = S[14],  
Snew[12] = S[13] ^ X,  
Snew[11] = S[12],  
Snew[10] = S[11],  
Snew[9] = S[10],  
Snew[8] = S[9],  
Snew[7] = S[8],  
Snew[6] = S[7],  
Snew[5] = S[6],  
Snew[4] = S[5],  
Snew[3] = S[4],  
Snew[2] = S[3] ^ X,  
Snew[1] = S[2],  
Snew[0] = S[1]
]]></artwork>
      </section>
    </section>
    <section anchor="algorithm-description">
      <name>Algorithm Description</name>
      <t>In this section, we describe the specification of our design.</t>
      <section anchor="specification">
        <name>Specification</name>
        <t>HiAE is structured into four phases: initialization, processing of associated data, encryption, and finalization. HiAE has a 2048-bit state, made of sixteen 128-bit blocks <tt>S_0||S_1||...||S_{15}</tt>. The parameters for this algorithm, that are consistent with the definition in <xref target="RFC5116"/>, Section 4, are defined as:</t>
        <ul spacing="normal">
          <li>
            <t><tt>K_LEN</tt> (key length): 32 bytes (256 bits).</t>
          </li>
          <li>
            <t><tt>P_MAX</tt> (maximum length of the plaintext): <tt>2^61 - 1</tt> bytes (<tt>2^64 - 8</tt> bits).</t>
          </li>
          <li>
            <t><tt>A_MAX</tt> (maximum length of the associated data): <tt>2^61 - 1</tt> bytes (<tt>2^64 - 8</tt> bits).</t>
          </li>
          <li>
            <t><tt>N_MIN</tt> (minimum nonce lentgh) = <tt>N_MAX</tt> (maximum nonce length) = <tt>16</tt> bytes (<tt>128</tt> bits).</t>
          </li>
          <li>
            <t><tt>C_MAX</tt> (maximum ciphertext length) = <tt>P_MAX + tag length = (2^61 - 1) + 16 bytes</tt> (<tt>2^64 - 8 + 128</tt> bits).</t>
          </li>
        </ul>
        <t>In more details, HiAE takes as input a <tt>256</tt>-bit key <tt>K = K_0||K_1</tt>, a <tt>128</tt>-bit nounce <tt>N</tt>, the associated data <tt>AD</tt>, and the message <tt>M</tt>.<br/>
The output includes the ciphertext <tt>C</tt> where <tt>|C| = |M|</tt> and a <tt>128</tt>-bit tag <tt>T</tt>. Initially, <tt>AD</tt> and <tt>M</tt> are padded with <tt>0</tt> to ensure their lengths are multiples of <tt>128</tt> as  <tt>Pad(AD) = AD||0* = AD_0|| ... || AD_{|AD|/128-1}</tt> and <tt>Pad(M) = M||0* = M_0|| ... || M_{|M|/128-1}</tt>.<br/>
The encryption and authentication process are described below.</t>
        <section anchor="initialization">
          <name>Initialization</name>
          <t>First, the state is loaded with <tt>(N, K_0, K_1)</tt> as follow:</t>
          <artwork><![CDATA[
  S[0] = const_0,  
  S[1] = K_1,  
  S[2] = N,  
  S[3] = const_0,  
  S[4] = ZERO(128),  
  S[5] = N ^ K_0,  
  S[6] = ZERO(128),  
  S[7] = const_1,  
  S[8] = N ^ K_1,  
  S[9] = ZERO(128),  
  S[10] = K_1,  
  S[11] = const_0,  
  S[12] = const_1,  
  S[13] = K_1,  
  S[14] = ZERO(128),  
  S[15] = const_0 ^ const_1.
]]></artwork>
          <t>Next, the state is updated with <tt>32 UpdateFunction(S, const_0)</tt>, then XORed with the key one more:</t>
          <artwork><![CDATA[
  S[9] = S[9] ^ K_0,  
  S[13] = S[13] ^ K_1.
]]></artwork>
        </section>
        <section anchor="processing-the-associated-data">
          <name>Processing the Associated Data</name>
          <t>Following initialization, the associated data <tt>AD</tt> is used to update the state as:</t>
          <artwork><![CDATA[
   for i = 0 to |AD|/128 - 1:  
      S = UpdateFunction(S, AD_i)  
   end for  
]]></artwork>
          <t>This phase is skipped if the associated data is empty.</t>
        </section>
        <section anchor="encryption">
          <name>Encryption</name>
          <t>At each step of the encryption, a <tt>128</tt>-bit message block is used to update the state, and <tt>M_i</tt> is then encrypted to produce <tt>C_i</tt> following, and skipped the phase if the message is empty.</t>
          <artwork><![CDATA[
   for i = 0 to |M|/128 - 1:  
      C_i = AESL(S[0] ^ S[1]) ^ S[9] ^ M_i  
      S = UpdateFunction(S, M_i)  
   end for
]]></artwork>
        </section>
        <section anchor="finalization">
          <name>Finalization</name>
          <t>After encrypting all the message blocks, the state is updated again with the lengths of associated data and message as:</t>
          <artwork><![CDATA[
   for i = 0 to 31:  
      S = UpdateFunction(S, |AD||||M|)  
   end for
]]></artwork>
          <t>then the authentication tag is generated as:</t>
          <artwork><![CDATA[
   T = S[0] ^ S[1] ^ ... ^ S[15].
]]></artwork>
        </section>
      </section>
      <section anchor="hiae-algorithm">
        <name>HiAE Algorithm</name>
        <t>A pseudo algorithm of HiAE is described in the following.</t>
        <artwork><![CDATA[
HiAE Algorithm. The internal structures of HiAE are:

   procedure Initialization(N, K_0, K_1)  
      S[0] = const_0,  
      S[1] = K_1,  
      S[2] = N,  
      S[3] = const_0,  
      S[4] = ZERO(128),  
      S[5] = N ^ K_0,  
      S[6] = ZERO(128),  
      S[7] = const_1,  
      S[8] = N ^ K_1,  
      S[9] = ZERO(128),  
      S[10] = K_1,  
      S[11] = const_0,  
      S[12] = const_1,  
      S[13] = K_1,  
      S[14] = ZERO(128),  
      S[15] = const_0 ^ const_1.  
      for i = 0 to 31 do  
         S <-- UpdateFunction(S, const_0)  
      end for  
      S[9] = S[9] ^ K_0,  
      S[13] = S[13] ^ K_1  
      return S

   procedure ProcessAD(S, Pad(AD))  
      d = |AD|/128  
      for i = 0 to d - 1 do  
         S <-- UpdateFunction(S, AD_i)  
      end for  
      return S

   procedure Encryption(S, Pad(M), C)  
      m = |M|/128  
      for i = 0 to m - 1 do  
         C_i <-- AESL(S[0] ^ S[1]) ^ S[9] ^ M_i  
         S <-- UpdateFunction(S, M_i)  
      end for  
      return S

   procedure Decryption(S, Pad(C), M)  
      c = |C|/128  
      for i = 0 to c - 1 do  
         M_i <-- AESL(S[0] ^ S[1]) ^ S[9] ^ C_i  
         S <-- UpdateFunction(S, M_i)  
      end for  
      return S

   procedure Finalization(S, |AD|, |M|)  
      for i = 0 to 31 do  
         S <-- UpdateFunction(S, |AD|, |M|)  
      end for  
      T = 0  
      for i = 0 to 15 do  
         T = T ^ S[i]  
      end for  
      return T 
]]></artwork>
      </section>
    </section>
    <section anchor="settings-specifications">
      <name>Settings Specifications</name>
      <section anchor="authenticated-encryption">
        <name>Authenticated Encryption</name>
        <t><tt>
Encrypt(msg, ad, key, nonce)
</tt></t>
        <t>The Encrypt function encrypts a message and returns the ciphertext along with an authentication tag that confirms the integrity and authenticity of both the message and any associated data, if present.</t>
        <t>Security:</t>
        <ul spacing="normal">
          <li>
            <t>For a specific key, the nonce <bcp14>MUST</bcp14> NEVER be reused under any circumstances, as doing so could enable an attacker to reconstruct the internal state.</t>
          </li>
          <li>
            <t>The key <bcp14>MUST</bcp14> be selected randomly from a uniform distribution.</t>
          </li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>
            <t>msg: the message to be encrypted (its length <bcp14>MUST</bcp14> not exceed P_MAX).</t>
          </li>
          <li>
            <t>ad: the associated data to authenticate (its length <bcp14>MUST</bcp14> not exceed A_MAX).</t>
          </li>
          <li>
            <t>key: the encryption key (256 bits).</t>
          </li>
          <li>
            <t>nonce: the public nonce.</t>
          </li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>
            <t>ct: the ciphertext.</t>
          </li>
          <li>
            <t>tag: the authentication tag.</t>
          </li>
        </ul>
        <t>Process:</t>
        <artwork><![CDATA[
K = K_1||K_2
S = 0
ct = {}
S = Initialization(nonce, K_1, K_2)
S = ProcessAD(S, Pad(AD))
S = Encryption(S, Pad(msg), ct)
ct = Truncate(ct, |msg|)
tag = Finalization(S, |ad|, |msg|)
return ct and tag 
]]></artwork>
      </section>
      <section anchor="authenticated-decryption">
        <name>Authenticated Decryption</name>
        <t><tt>
Decrypt(ct, tag, ad, key, nonce)
</tt></t>
        <t>The Decrypt function decrypts the ciphertext, checks the validity of the authentication tag, and returns the message if the tag is verified successfully, or an error if the tag verification fails.</t>
        <t>Security:</t>
        <ul spacing="normal">
          <li>
            <t>If tag verification fails, the scheme <bcp14>MUST NOT</bcp14> output the decrypted ciphertext.</t>
          </li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>
            <t>ct: the ciphertext to decrypt (its length <bcp14>MUST NOT</bcp14> exceed C_MAX).</t>
          </li>
          <li>
            <t>tag: the authentication tag.</t>
          </li>
          <li>
            <t>ad: the associated data to authenticate (its length <bcp14>MUST NOT</bcp14> exceed A_MAX).</t>
          </li>
          <li>
            <t>key: the encryption key.</t>
          </li>
          <li>
            <t>nonce: the public nonce.</t>
          </li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>
            <t>Either the decrypted message msg or an error indicating that the authentication tag is invalid for the provided inputs.</t>
          </li>
        </ul>
        <t>Process:</t>
        <artwork><![CDATA[
K = K_1||K_2
S = 0
msg = {}
S = Initialization(nonce, K_1, K_2)
S = ProcessAD(S, Pad(AD))
S = Decryption(S, Pad(ct), msg)
expected_tag = Finalization(S, |ad|, |msg|)
If tag != expected_tag:
   erase msg
   erase expected_tag
   return "verification failed" error
else:
   msg = Truncate(msg, |ct|)
   return msg
]]></artwork>
      </section>
    </section>
    <section anchor="setting-as-a-stream-cipher">
      <name>Setting as a Stream Cipher</name>
      <t><tt>
Keystream(len, key, nonce)
</tt></t>
      <t>The Stream function generates a keystream of variable length by expanding a key and, optionally, a nonce.</t>
      <t>Inputs:</t>
      <ul spacing="normal">
        <li>
          <t>len: Desired length of the keystream in bits.</t>
        </li>
        <li>
          <t>key: The HiAE encryption key.</t>
        </li>
        <li>
          <t>nonce: The HiAE nonce. If not provided, it defaults to N_MAX bytes of zeros.</t>
        </li>
      </ul>
      <t>Outputs:</t>
      <ul spacing="normal">
        <li>
          <t>keystream: The resulting keystream.</t>
        </li>
      </ul>
      <t>Process:</t>
      <artwork><![CDATA[
if len == 0:
   return {}
else: 
   K = K_1||K_2
   S = 0
   keystream = {}
   S = Initialization(nonce, K_1, K_2)
   msg = Zero(len)
   S = Encryption(S, Pad(msg), keystream)
   return keystream
]]></artwork>
      <t>The process of generating the keystream is equivalent to encrypting a zero-filled message of length <tt>len</tt>.</t>
    </section>
    <section anchor="setting-as-a-message-authentication-code">
      <name>Setting as a Message Authentication Code</name>
      <t>HiAE can also be used to construct a Message Authentication Code (MAC), taking a key, nonce, and data as input, and producing a 128-bit authentication tag as output.</t>
      <t><tt>
Mac(data, key, nonce)
</tt></t>
      <t>Security:</t>
      <ul spacing="normal">
        <li>
          <t>This is the only function where reusing the same (key, nonce) pair with different input data is permitted.</t>
        </li>
        <li>
          <t>HiAE-based MACs <bcp14>MUST NOT</bcp14> be used as hash functions, as a known key allows for easy construction of inputs that cause state collisions.</t>
        </li>
        <li>
          <t>Unlike MACs built on cryptographic hashes, HiAE-generated tags <bcp14>MUST NOT</bcp14> be used for key derivation, since they are not guaranteed to be uniformly random.</t>
        </li>
      </ul>
      <t>Inputs:</t>
      <ul spacing="normal">
        <li>
          <t>data: The data to be authenticated (<bcp14>MUST NOT</bcp14> exceed A_MAX in length).</t>
        </li>
        <li>
          <t>key: The secret key.</t>
        </li>
        <li>
          <t>nonce: The public nonce.</t>
        </li>
      </ul>
      <t>Output:</t>
      <ul spacing="normal">
        <li>
          <t>tag: The resulting authentication tag.</t>
        </li>
      </ul>
      <t>Process:</t>
      <artwork><![CDATA[
K = K_1||K_2
S = 0
S = Initialization(nonce, K_1, K_2)
S = ProcessAD(S, Pad(data))
tag = Finalization(S, |data|, 0)
return tag
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="classic-setting">
        <name>Classic Setting</name>
        <t>HiAE provides <tt>256</tt>-bit security against key recovery and state recovery attacks,
along with <tt>128</tt>-bit security for integrity against forgery attempts. It is important to
note that the encryption security assumes the attacker cannot successfully forge messages
through repeated trials.<br/>
Related to the keystream bias attacks, our analysis shows that at least <tt>150</tt>-bit security is guaranteed by HiAE.<br/>
Finally, we claim that HiAE is secure in the key-commiting attacks, and we do not claim its security in the everything-commiting setting.</t>
      </section>
      <section anchor="quantum-setting">
        <name>Quantum Setting</name>
        <t>HiAE targets a secuirty strength of <tt>128</tt> bits against key recovery attacks and forgery attacks in quantum setting. We do not claim security against online superposition queries to the cryptographic oracle attacks, as such attacks are highly impractical in real-world applications.</t>
      </section>
      <section anchor="attacks-considerations">
        <name>Attacks Considerations</name>
        <t>HiAE is secure against the following attacks:</t>
        <artwork><![CDATA[
  1. Key-Recovery Attack: 256-bit security against key-recovery attacks.  
  2. Differential Attack: 256-bit security against differential attacks in the initialization phase.  
  3. Forgery Attack: 128-bit security against forgery attacks.  
  4. Integral Attack: Secure against integral attacks.  
  5. State-recovery Attack:
      * Guess-and-Determine Attack: The time complexity of the guess-and-determine attack cannot be lower than 2^{256}.  
      * Algebraic Attack: The system of equations to recover HiAE states cannot be solved with time complexity 2^{256}.
    
  6. The Linear Bias: at least 150-bit security against a statistical attack.  
  7. Key-committing attacks: Secure in the FROB, CMT1, and CMT2 models.  
  8. Everything-committing attacks: We do not claim the security of HiAE in CMT3 model.  
]]></artwork>
        <t>The details of the crytanalysis can be found in the paper <xref target="HiAE"/>.</t>
      </section>
    </section>
    <section anchor="implementation-consideration">
      <name>Implementation Consideration</name>
      <t>HiAE is designed to balance the performance of XOR and AES-NI instructions across both ARM and x86 architectures, while being optimized to push performance to its limits.</t>
      <t>A complete list of known implementations and integrations is available at https://github.com/Concyclics/HiAE, including reference implementations of HiAE as AEAD Encryption and Decryption, and HiAE-MAC. A comprehensive comparison of HiAE's performance with other high-throughput authenticated encryption schemes on ARM and x86 architectures is also provided.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>TBD.</t>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <section anchor="test-vector-1">
        <name>Test Vector 1</name>
        <artwork><![CDATA[
key = 
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe

plaintext =
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46

ciphertext =
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06
b8b9c9d3c888935e4a78de02ec329bc8
66053c77fdabe930f273adc0175802ca
31b645d1958afc28806843a671347301
130d23a94f3adee985fb2e60f0d5d024

tag =
66346519818b4cb2919e61b5f6c28a9b
]]></artwork>
      </section>
      <section anchor="test-vector-2">
        <name>Test Vector 2</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d

plaintext =
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46
979332e85de4c697d53b3cede5413265
ba71ce552bee963a090cd113e32d597b
c08b631e7029b54564f132493264afec
d67d41016bd73b74e30c87c739e042fa
6ca518dccfcd2133be537df0b72cdc8d
a91d8e14f5c988d8d6109f0ff0e1095c
87213856ee5989acac069c643278f1db
9680ef8b4978631f88032f78e438d56b
5a0dc148674bf513519177840a695fa0
e94f2b32c78e524f9181c776b99ce113
aaa35c11ee51243fe29cc3ec05238cee
72b72039467288d7f34f4dadec2fc096
d21ca7c06dcbff5067c33c6ce6c95a58

ciphertext =
17cd9eac8632514382d4cfc2d93954a2
e3464bd599563524543140c972f65260
453d8f2975609fc41960b20ac522fa73
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06
b8b9c9d3c888935e4a78de02ec329bc8
66053c77fdabe930f273adc0175802ca
31b645d1958afc28806843a671347301
130d23a94f3adee985fb2e60f0d5d024
dab94f8fd41ccfef27898e5581c4add2
05d3ac44b51df43854cb6a10292ea986
c9725ea6db27695f7ec1c31299e24f8b
e1d44953afb66707179cf873e94a273d
e5fb369ae0314013560e3c597fda5178
c254cf457d3dde55441267fda2145ad5
2a16fbb2d9fa63c6ce8f2175086e5a9d
da2089bc5890f2c7ed81d8049e491035
e0cff5abf178e1dfbbcd1ab7ec47ea8d
854419a04f9f8cdd1542c27da97c30e0
bea2f4a7710d72346e0c7369202692ba
5a43850d5a349d4410155f2bc700a655
d2aa57ab9cfa6dd2db0918c4a43a8628

tag =
6bcf434bcbf11824fb40e01ba5023358
]]></artwork>
      </section>
      <section anchor="test-vector-3">
        <name>Test Vector 3</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560

plaintext =
2dd674f9e8227ab7a555fb3588ee61c4

ciphertext =
66053c77fdabe930f273adc0175802ca

tag =
153ba395e9a447f2b34a717dc1608d8a
]]></artwork>
      </section>
      <section anchor="test-vector-4">
        <name>Test Vector 4</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =

plaintext =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46
979332e85de4c697d53b3cede5413265
ba71ce552bee963a090cd113e32d597b
c08b631e7029b54564f132493264afec
d67d41016bd73b74e30c87c739e042fa
6ca518dccfcd2133be537df0b72cdc8d
a91d8e14f5c988d8d6109f0ff0e1095c
87213856ee5989acac069c643278f1db
9680ef8b4978631f88032f78e438d56b
5a0dc148674bf513519177840a695fa0
e94f2b32c78e524f9181c776b99ce113
aaa35c11ee51243fe29cc3ec05238cee
72b72039467288d7f34f4dadec2fc096
d21ca7c06dcbff5067c33c6ce6c95a58
807b91c6ed199ee168eb8e541a4eeaec
6b91acd85dac28c46f6531552e8badae

ciphertext =
d716f4983b0025a57cd4c3c3c94a146d
6cb665a4a5f33032ae3f86dc1a6caed0
5243a1cd70688710da9b9bf9b1e32092
17cd9eac8632514382d4cfc2d93954a2
e3464bd599563524543140c972f65260
453d8f2975609fc41960b20ac522fa73
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06
b8b9c9d3c888935e4a78de02ec329bc8
66053c77fdabe930f273adc0175802ca
31b645d1958afc28806843a671347301
130d23a94f3adee985fb2e60f0d5d024
dab94f8fd41ccfef27898e5581c4add2
05d3ac44b51df43854cb6a10292ea986
c9725ea6db27695f7ec1c31299e24f8b
e1d44953afb66707179cf873e94a273d
e5fb369ae0314013560e3c597fda5178
c254cf457d3dde55441267fda2145ad5
2a16fbb2d9fa63c6ce8f2175086e5a9d
da2089bc5890f2c7ed81d8049e491035
e0cff5abf178e1dfbbcd1ab7ec47ea8d
854419a04f9f8cdd1542c27da97c30e0
bea2f4a7710d72346e0c7369202692ba
5a43850d5a349d4410155f2bc700a655
d2aa57ab9cfa6dd2db0918c4a43a8628
98f538a011f96f60e25662c66df7ccd1
73615cfed071632089825c791163fabe

tag =
250f1f5bdd8d05be98306b42474e7ee3
]]></artwork>
      </section>
      <section anchor="test-vector-5">
        <name>Test Vector 5</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46

plaintext =
979332e85de4c697d53b3cede5413265
ba71ce552bee963a090cd113e32d597b
c08b631e7029b54564f132493264afec
d67d41016bd73b74e30c87c739e042fa
6ca518dccfcd2133be537df0b72cdc8d
a91d8e14f5c988d8d6109f0ff0e1095c
87213856ee5989acac069c643278f1db

ciphertext =
dab94f8fd41ccfef27898e5581c4add2
05d3ac44b51df43854cb6a10292ea986
c9725ea6db27695f7ec1c31299e24f8b
e1d44953afb66707179cf873e94a273d
e5fb369ae0314013560e3c597fda5178
c254cf457d3dde55441267fda2145ad5
2a16fbb2d9fa63c6ce8f2175086e5a9d

tag =
2e9d4b892ecf8d1c1726d6b2d00a7fb3
]]></artwork>
      </section>
      <section anchor="test-vector-6">
        <name>Test Vector 6</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =

plaintext =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46
979332e85de4c697d53b3cede5413265
ba71ce552bee963a090cd113e32d597b
c08b631e7029b54564f132493264afec
d67d41016bd73b74e30c87c739e042fa
6ca518dccfcd2133be537df0b72cdc8d
a91d8e14f5c988d8d6109f0ff0e1095c
87213856ee5989acac069c643278f1db
9680ef8b4978631f88032f78e438d56b
5a0dc148674bf513519177840a695fa0

ciphertext =
d716f4983b0025a57cd4c3c3c94a146d
6cb665a4a5f33032ae3f86dc1a6caed0
5243a1cd70688710da9b9bf9b1e32092
17cd9eac8632514382d4cfc2d93954a2
e3464bd599563524543140c972f65260
453d8f2975609fc41960b20ac522fa73
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06
b8b9c9d3c888935e4a78de02ec329bc8
66053c77fdabe930f273adc0175802ca
31b645d1958afc28806843a671347301
130d23a94f3adee985fb2e60f0d5d024
dab94f8fd41ccfef27898e5581c4add2
05d3ac44b51df43854cb6a10292ea986
c9725ea6db27695f7ec1c31299e24f8b
e1d44953afb66707179cf873e94a273d
e5fb369ae0314013560e3c597fda5178
c254cf457d3dde55441267fda2145ad5
2a16fbb2d9fa63c6ce8f2175086e5a9d
da2089bc5890f2c7ed81d8049e491035
e0cff5abf178e1dfbbcd1ab7ec47ea8d

tag =
7f6026d8e7d0296dc37f52bad0aa964f
]]></artwork>
      </section>
      <section anchor="test-vector-7">
        <name>Test Vector 7</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =

plaintext =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c

ciphertext =
d716f4983b0025a57cd4c3c3c94a146d
6cb665a4a5f33032ae3f86dc1a6caed0
5243a1cd70688710da9b9bf9b1e32092
17cd9eac8632514382d4cfc2d93954a2
e3464bd599563524543140c972f65260
453d8f2975609fc41960b20ac522fa73
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06

tag =
2b84d89eac778e1f6e02938d6bbc6440
]]></artwork>
      </section>
      <section anchor="test-vector-8">
        <name>Test Vector 8</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46

plaintext =
979332e85de4c697d53b3cede5413265
ba71ce552bee963a090cd113e32d597b
c08b631e7029b54564f132493264afec
d67d41016bd73b74e30c87c739e042fa
6ca518dccfcd2133be537df0b72cdc8d
a91d8e14f5c988d8d6109f0ff0e1095c
87213856ee5989acac069c643278f1db
9680ef8b4978631f88032f78e438d56b
5a0dc148674bf513519177840a695fa0
e94f2b32c78e524f9181c776b99ce113
aaa35c11ee51243fe29cc3ec05238cee
72b72039467288d7f34f4dadec2fc096
d21ca7c06dcbff5067c33c6ce6c95a58
807b91c6ed199ee168eb8e541a4eeaec
6b91acd85dac28c46f6531552e8badae
063e75f45713d5bffe631419b1fe051c
90b2f5ed5e1db1cd82e222b06ecf5f74
0dd46864e73d23e5a037fe5236046ec6
b663b3148164e1034703b4b5d21329df
e79243cecf66b3709eb2c2d4b6309a6c
944d8015b16118f864ccad36dfd715c6
69589438be48a85cfa6a30b09bca1c2f
179c44c9fd5cc161296f970846accfaf
0463e7c2ab901fa5fa4f55951a71c431
0d08fa0a65bc6b8e2b029671ae6520b2
c907757497941a92e36f27fde1ec2fee
f429f959e564e710677e8115e3a1c8ac
a93d2140d13bd2b4aafab28be6e17ada

ciphertext =
dab94f8fd41ccfef27898e5581c4add2
05d3ac44b51df43854cb6a10292ea986
c9725ea6db27695f7ec1c31299e24f8b
e1d44953afb66707179cf873e94a273d
e5fb369ae0314013560e3c597fda5178
c254cf457d3dde55441267fda2145ad5
2a16fbb2d9fa63c6ce8f2175086e5a9d
da2089bc5890f2c7ed81d8049e491035
e0cff5abf178e1dfbbcd1ab7ec47ea8d
854419a04f9f8cdd1542c27da97c30e0
bea2f4a7710d72346e0c7369202692ba
5a43850d5a349d4410155f2bc700a655
d2aa57ab9cfa6dd2db0918c4a43a8628
98f538a011f96f60e25662c66df7ccd1
73615cfed071632089825c791163fabe
5d64c6912c9df6ab0a4ef97b5c848cf4
226172cb26dde45b1f5803b51dcabeb9
088430aafd7ef86f75d161db607b6eae
a93ceff57bee877b8035f081f17fbb0d
38b5258ed3c2a25dd7f1776207e7882d
8321b0f1fb6ef6360616c06945f42035
e069001b5d20b6a1d7573e53fe89cb61
b9dc3e6e4b5b17875550ff2f639fd370
e7b89d24db4613bc1dfdc4c06a62a515
f1c7df93c4ad8596e9016ba98137814d
0dcc3f39306d2a4743d05b429d2b669a
d09ac2f2320653fa84e24a3fc456bb65
2d74782e4d8e7b2412a0c2daeb48db4a

tag =
ed4dacb2fbaa31ca4633509cef1c92fb
]]></artwork>
      </section>
      <section anchor="test-vector-9">
        <name>Test Vector 9</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d

plaintext =
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46

ciphertext =
17cd9eac8632514382d4cfc2d93954a2
e3464bd599563524543140c972f65260
453d8f2975609fc41960b20ac522fa73
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06
b8b9c9d3c888935e4a78de02ec329bc8
66053c77fdabe930f273adc0175802ca
31b645d1958afc28806843a671347301
130d23a94f3adee985fb2e60f0d5d024

tag =
a538e4a016862a323841ecbef9855b1d
]]></artwork>
      </section>
      <section anchor="test-vector-10">
        <name>Test Vector 10</name>
        <artwork><![CDATA[
key =
90bbc6ec798423365146306759d6812e
37c3740df539834052bd1f46f57d5785

nonce =
381d72b1a195e7f3dc185a35eedb6326

associated data =
9fd7339411b6d56373f4a9697200eeaa
1d605cbff643b2d25b0c074ae76a7086
42a31b5359f0b6cde45f36566024017d

plaintext =
855d3c7ba0ee4dfcfa5446e2beb66800
598353b273097f5869b5aec9daaf465f
0c83daad7127a96c7bef4e39a5b63afe
3a8db0ad97300500e5b4c9bf630f1e70
92f81d041fc6709ab5bed45a740e58ae
9b085c323861321e15fbdd790bfce99d
f406a114cc11ae81cf82db449033f22c
3b4e5e74b09192c58c6f3e976b273560
2dd674f9e8227ab7a555fb3588ee61c4
3cc038ec51cab2dd39f075a518aa0545
80793f689bb920400f1b769709d75b46
979332e85de4c697d53b3cede5413265
ba71ce552bee963a090cd113e32d597b
c08b631e7029b54564f132493264afec
d67d41016bd73b74e30c87c739e042fa
6ca518dccfcd2133be537df0b72cdc8d
a91d8e14f5c988d8d6109f0ff0e1095c
87213856ee5989acac069c643278f1db
9680ef8b4978631f88032f78e438d56b
5a0dc148674bf513519177840a695fa0
e94f2b32c78e524f9181c776b99ce113
aaa35c11ee51243fe29cc3ec05238cee
72b72039467288d7f34f4dadec2fc096
d21ca7c06dcbff5067c33c6ce6c95a58

ciphertext =
17cd9eac8632514382d4cfc2d93954a2
e3464bd599563524543140c972f65260
453d8f2975609fc41960b20ac522fa73
ff9fcccf03188954a27c74821b76332b
d2490761f9d3e3be14613e91ab0af720
cc63177cc72a63eea503bed4cb70b0c4
2d38551b47b7bbda52f23374a4feea06
b8b9c9d3c888935e4a78de02ec329bc8
66053c77fdabe930f273adc0175802ca
31b645d1958afc28806843a671347301
130d23a94f3adee985fb2e60f0d5d024
dab94f8fd41ccfef27898e5581c4add2
05d3ac44b51df43854cb6a10292ea986
c9725ea6db27695f7ec1c31299e24f8b
e1d44953afb66707179cf873e94a273d
e5fb369ae0314013560e3c597fda5178
c254cf457d3dde55441267fda2145ad5
2a16fbb2d9fa63c6ce8f2175086e5a9d
da2089bc5890f2c7ed81d8049e491035
e0cff5abf178e1dfbbcd1ab7ec47ea8d
854419a04f9f8cdd1542c27da97c30e0
bea2f4a7710d72346e0c7369202692ba
5a43850d5a349d4410155f2bc700a655
d2aa57ab9cfa6dd2db0918c4a43a8628

tag =
6bcf434bcbf11824fb40e01ba5023358
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="FIPS-AES" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf">
          <front>
            <title>Advanced encryption standard (AES)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2001" month="November"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AEGIS" target="https://competitions.cr.yp.to/round3/aegisv11.pdf">
          <front>
            <title>AEGIS: A Fast Authenticated Encryption Algorithm (v1.1)</title>
            <author fullname="Bart Preneel">
              <organization>Nanyang Technological University</organization>
            </author>
            <date year="2016"/>
          </front>
        </reference>
        <reference anchor="ROCCA-S" target="https://doi.org/10.1007/978-3-031-50594-2_12">
          <front>
            <title>An Ultra-High Throughput AES-Based Authenticated Encryption Scheme for 6G: Design and Implementation</title>
            <author fullname="Nobuyuki Takeuchi">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="SNOW-V" target="https://doi.org/10.13154/tosc.v2019.i3.1-42">
          <front>
            <title>An Ultra-High Throughput AES-Based Authenticated Encryption Scheme for 6G: Design and Implementation</title>
            <author fullname="Jing Yang">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="AES-NI" target="https://www.intel.com/content/dam/doc/white-paper/advanced-encryption-standard-new-instructions-set-paper.pdf">
          <front>
            <title>Intel Advanced Encryption Standard (AES) New Instructions Set</title>
            <author fullname="Shay Gueron">
              <organization>Intel Corporation</organization>
            </author>
            <date year="2010"/>
          </front>
        </reference>
        <reference anchor="HiAE" target="https://eprint.iacr.org/2025/377.pdf">
          <front>
            <title>HiAE: A High-Throughput Authenticated Encryption Algorithm for Cross-Platform Efficiency</title>
            <author fullname="Shuang Wu">
              <organization>Huawei International Pte., Ltd.</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="NIST-LWC" target="https://csrc.nist.gov/projects/lightweight-cryptography">
          <front>
            <title>NIST Lightweight Cryptography (LWC)</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
gQAA

-->

</rfc>
