<?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.5 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-cfrg-aes-gcm-sst-02" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.0 -->
  <front>
    <title abbrev="GCM-SST">Galois Counter Mode with Secure Short Tags (GCM-SST)</title>
    <seriesInfo name="Internet-Draft" value="draft-mattsson-cfrg-aes-gcm-sst-02"/>
    <author initials="M." surname="Campagna" fullname="Matthew Campagna">
      <organization>Amazon Web Services</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>campagna@amazon.com</email>
      </address>
    </author>
    <author initials="A." surname="Maximov" fullname="Alexander Maximov">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>alexander.maximov@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="February" day="26"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 177?>

<t>This document defines the Galois Counter Mode with Secure Short Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm. GCM-SST can be used with any keystream generator, not just a block cipher. The main differences compared to GCM <xref target="GCM"/> is that GCM-SST uses an additional subkey Q, that fresh subkeys H and Q are derived for each nonce, and that the POLYVAL function from AES-GCM-SIV is used instead of GHASH. This enables short tags with forgery probabilities close to ideal. This document also registers several instances of Advanced Encryption Standard (AES) with Galois Counter Mode with Secure Short Tags (AES-GCM-SST).</t>
      <t>This document is the product of the Crypto Forum Research Group.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://emanjon.github.io/draft-mattsson-cfrg-aes-gcm-sst/draft-mattsson-cfrg-aes-gcm-sst.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mattsson-cfrg-aes-gcm-sst/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/emanjon/draft-mattsson-cfrg-aes-gcm-sst"/>.</t>
    </note>
  </front>
  <middle>
    <?line 183?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Advanced Encryption Standard (AES) in Galois Counter Mode (AES-GCM) <xref target="GCM"/> is a widely used AEAD algorithm <xref target="RFC5116"/> due to its attractive performance in both software and hardware as well as its provable security. During the NIST standardization, Ferguson pointed out two weaknesses in the GCM authentication function <xref target="Ferguson"/>. The weaknesses are especially concerning when GCM is used with short tags. The first weakness significantly increases the probability of successful forgery. The second weakness reveals the subkey H if the attacker manages to create successful forgeries. With knowledge of the subkey H, the attacker always succeeds with subsequent forgeries. The probability of multiple successful forgeries is therefore significantly increased.</t>
      <t>As a comment to NIST, Nyberg et al. <xref target="Nyberg"/> explained how small changes based on proven theoretical constructions mitigate these weaknesses. Unfortunately, NIST did not follow the advice from Nyberg et al. and instead specified additional requirements for use with short tags in Appendix C of <xref target="GCM"/>. NIST did not give any motivations for the specific choice of parameters, or for that matter the security levels they were assumed to give. As shown by Mattsson et al. <xref target="Mattsson"/>, an attacker can almost always gain feedback on success or failure of forgery attempts, contradicting NIST's assumptions for short tags. NIST also appears to have used non-optimal attacks to calculate the parameters. A detailed evaluation of GCM and other block cipher modes of operation is given by <xref target="Rogaway"/>. Rogaway is critical of GCM with short tags and recommends disallowing GCM with tags shorter than 96-bits. NIST is planning to remove support for GCM with tags shorter than 96-bits <xref target="Revise"/>. While Counter with CBC-MAC (CCM) <xref target="RFC5116"/> with short tags has forgery probabilities close to ideal, CCM has lower performance than GCM.</t>
      <t>32-bit tags are standard in most radio link layers including 5G, 64-bit tags are very common in transport and application layers of the Internet of Things, and 32-, 64-, and 80-bit tags are common in media-encryption applications. Audio packets are small, numerous, and ephemeral, so on the one hand, they are very sensitive in percentage terms to crypto overhead, and on the other hand, forgery of individual packets is not a big concern. Due to its weaknesses, GCM is typically not used with short tags. The result is either decreased performance from larger than needed tags <xref target="MoQ"/>, or decreased performance from using much slower constructions such as AES-CTR combined with HMAC <xref target="RFC3711"/><xref target="I-D.ietf-sframe-enc"/>. Short tags are also useful to protect packets transporting a signed payload such as a firmware update.</t>
      <t>This document defines the Galois Counter Mode with Secure Short Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface so that it can be used with any keystream generator, not just a 128-bit block cipher. The main differences compared to GCM <xref target="GCM"/> is that GCM-SST uses an additional subkey Q, that fresh subkeys H and Q are derived for each nonce, and that the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/> is used instead of GHASH. This enables short tags with forgery probability close to ideal and significantly decreases the probability of multiple successful forgeries. See <xref target="GCM-SST"/>. This document also registers several instances of Advanced Encryption Standard (AES) with Galois Counter Mode with Secure Short Tags (AES-GCM-SST) where AES <xref target="AES"/> in counter mode is used as the keystream generator. See <xref target="AES-GCM-SST"/>. GCM-SST has been standardized for use with AES-256 and SNOW 5G <xref target="SNOW"/> in 3GPP 5G Advance.</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>Primitives:</t>
      <ul spacing="normal">
        <li>
          <t>K is the key as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>N is the nonce as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>A is the associated data as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>P is the plaintext as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>= is the assignment operator</t>
        </li>
        <li>
          <t>!= is the inequality operator</t>
        </li>
        <li>
          <t>x || y is concatenation of the octet strings x and y</t>
        </li>
        <li>
          <t>XOR is the bitwise exclusive OR operator</t>
        </li>
        <li>
          <t>len(x) is the length of x in bits.</t>
        </li>
        <li>
          <t>zeropad(x) right pads an octet string x with zeroes to a multiple of 128 bits</t>
        </li>
        <li>
          <t>truncate(x, t) is the truncation operation.  The first t bits of x are kept</t>
        </li>
        <li>
          <t>n is the number of 128-bit chunks in zeropad(P)</t>
        </li>
        <li>
          <t>m is the number of 128-bit chunks in zeropad(A)</t>
        </li>
        <li>
          <t>POLYVAL is defined in <xref target="RFC8452"/></t>
        </li>
        <li>
          <t>BE32(x) is the big-endian encoding of 32-bit integer x</t>
        </li>
        <li>
          <t>LE64(x) is the little-endian encoding of 64-bit integer x</t>
        </li>
        <li>
          <t>V[y] is the 128-bit chunk with index y in the array V; the first chunk has index 0.</t>
        </li>
        <li>
          <t>V[x:y] are the range of chunks x to y in the array V</t>
        </li>
      </ul>
    </section>
    <section anchor="GCM-SST">
      <name>Galois Counter Mode with Secure Short Tags (GCM-SST)</name>
      <t>This section defines the Galois Counter Mode with Secure Short Tags (GCM-SST) AEAD algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface so that it can be used with any keystream generator, not just a 128-bit block cipher.</t>
      <t>GCM-SST adheres to an AEAD interface <xref target="RFC5116"/> and the encryption function takes four variable-length octet string parameters. A secret key K, a nonce N, the associated data A, and a plaintext P. The keystream generator is instantiated with K and N. The keystream <bcp14>MAY</bcp14> depend on P and A. The minimum and maximum lengths of all parameters depend on the keystream generator. The keystream generator produces a keystream Z consisting of 128-bit chunks where the first three chunks Z[0], Z[1], and Z[2] are used as the three subkeys H, Q, and M. The following keystream chunks Z[3], Z[4], ..., Z[n + 2] are used to encrypt the plaintext. Instead of GHASH <xref target="GCM"/>, GCM-SST makes use of the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, which results in more efficient software implementations on little-endian architectures. GHASH and POLYVAL can be defined in terms of one another <xref target="RFC8452"/>. The subkeys H and Q are field elements used in POLYVAL while the subkey M is used for the final masking of the tag. Both encryption and decryption are only defined on inputs that are a whole number of octets.</t>
      <t>Figures illustrating the GCM-SST encryption and decryption functions are shown in <xref target="SST1"/><xref target="SST2"/>.</t>
      <section anchor="authenticated-encryption-function">
        <name>Authenticated Encryption Function</name>
        <t>Encrypt(K, N, A, P)</t>
        <t>The encryption function encrypts a plaintext and returns the ciphertext along with an authentication tag that verifies the authenticity of the plaintext and associated data, if provided.</t>
        <t>Prerequisites and security:</t>
        <ul spacing="normal">
          <li>
            <t>The key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution.</t>
          </li>
          <li>
            <t>For a given key, the nonce <bcp14>MUST NOT</bcp14> be reused under any circumstances.</t>
          </li>
          <li>
            <t>Supported tag_length associated with the key.</t>
          </li>
          <li>
            <t>Definitions of supported input-output lengths.</t>
          </li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>
            <t>Key K (variable-length octet string)</t>
          </li>
          <li>
            <t>Nonce N (variable-length octet string)</t>
          </li>
          <li>
            <t>Associated data A (variable-length octet string)</t>
          </li>
          <li>
            <t>Plaintext P (variable-length octet string)</t>
          </li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>
            <t>Ciphertext ct (variable-length octet string)</t>
          </li>
          <li>
            <t>Tag tag (octet string with length tag_length)</t>
          </li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the lengths of K, N, A, P are not supported return error and abort</t>
          </li>
          <li>
            <t>Initiate keystream generator with K and N</t>
          </li>
          <li>
            <t>Let H = Z[0], Q = Z[1], M = Z[2]</t>
          </li>
          <li>
            <t>Let ct = P XOR truncate(Z[3:n + 2], len(P))</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct)</t>
          </li>
          <li>
            <t>Let L = LE64(len(ct)) || LE64(len(A))</t>
          </li>
          <li>
            <t>Let X = POLYVAL(H, S[0], S[1], ...)</t>
          </li>
          <li>
            <t>Let full_tag = POLYVAL(Q, X XOR L) XOR M</t>
          </li>
          <li>
            <t>Let tag = truncate(full_tag, tag_length)</t>
          </li>
          <li>
            <t>Return (ct, tag)</t>
          </li>
        </ol>
      </section>
      <section anchor="authenticated-decryption-function">
        <name>Authenticated Decryption Function</name>
        <t>Decrypt(K, N, A, ct, tag)</t>
        <t>The decryption function decrypts a ciphertext, verifies that the authentication tag is correct, and returns the plaintext on success or an error if tag verification failed.</t>
        <t>Prerequisites and security:</t>
        <ul spacing="normal">
          <li>
            <t>The calculation of the plaintext P (step 10) <bcp14>MAY</bcp14> be done in parallel with the tag verification (step 3-9). If tag verification fails, the plaintext P and the expected_tag <bcp14>MUST NOT</bcp14> be given as output.</t>
          </li>
          <li>
            <t>The comparison of the input tag with the expected_tag <bcp14>MUST</bcp14> be done in constant time.</t>
          </li>
          <li>
            <t>Supported tag_length associated with the key.</t>
          </li>
          <li>
            <t>Definitions of supported input-output lengths.</t>
          </li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>
            <t>Key K (variable-length octet string)</t>
          </li>
          <li>
            <t>Nonce N (variable-length octet string)</t>
          </li>
          <li>
            <t>Associated data A (variable-length octet string)</t>
          </li>
          <li>
            <t>Ciphertext ct (variable-length octet string)</t>
          </li>
          <li>
            <t>Tag tag (octet string with length tag_length)</t>
          </li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>
            <t>Plaintext P (variable-length octet string) or an error indicating that the authentication tag is invalid for the given inputs.</t>
          </li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the lengths of K, N, A, or ct are not supported, or if len(tag) != tag_length return error and abort</t>
          </li>
          <li>
            <t>Initiate keystream generator with K and N</t>
          </li>
          <li>
            <t>Let H = Z[0], Q = Z[1], M = Z[2]</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct)</t>
          </li>
          <li>
            <t>Let L = LE64(len(ct)) || LE64(len(A))</t>
          </li>
          <li>
            <t>Let X = POLYVAL(H, S[0], S[1], ...)</t>
          </li>
          <li>
            <t>Let full_tag = POLYVAL(Q, X XOR L) XOR M</t>
          </li>
          <li>
            <t>Let expected_tag = truncate(full_tag, tag_length)</t>
          </li>
          <li>
            <t>If tag != expected_tag, return error and abort</t>
          </li>
          <li>
            <t>Let P = ct XOR truncate(Z[3:n + 2], len(ct))</t>
          </li>
          <li>
            <t>Return P</t>
          </li>
        </ol>
      </section>
      <section anchor="encoding-ct-tag-tuples">
        <name>Encoding (ct, tag) Tuples</name>
        <t>Applications <bcp14>MAY</bcp14> keep the ciphertext and the authentication tag in distinct structures or encode both as a single octet string C. In the latter case, the tag <bcp14>MUST</bcp14> immediately follow the ciphertext ct:</t>
        <t>C = ct || tag</t>
      </section>
    </section>
    <section anchor="AES-GCM-SST">
      <name>AES with Galois Counter Mode with Secure Short Tags</name>
      <t>This section defines Advanced Encryption Standard (AES) with Galois Counter Mode with Secure Short Tags (AES-GCM-SST). When GCM-SSM is instantiated with AES, the keystream generator is AES in counter mode</t>
      <t>Z[i] = AES-ENC(K, N || BE32(i))</t>
      <t>where AES-ENC is the AES encrypt function <xref target="AES"/>.</t>
      <section anchor="instances">
        <name>AES-GCM-SST AEAD Instances</name>
        <t>We define six AEAD instances, in the format of <xref target="RFC5116"/>, that use AES-GCM-SST. They differ only in key length (K_LEN) and tag length. The tag lengths 32, 64, and 80 have been chosen to align with secure media frames <xref target="I-D.ietf-sframe-enc"/>. The key length and tag length are related to different security properties, and an application encrypting audio packets with small tags might require 256-bit confidentiality.</t>
        <table anchor="iana-algs">
          <name>AEAD Algorithms</name>
          <thead>
            <tr>
              <th align="right">Numeric ID</th>
              <th align="left">Name</th>
              <th align="right">K_LEN (bytes)</th>
              <th align="right">tag_length (bits)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBD1</td>
              <td align="left">AEAD_AES_128_GCM_SST_4</td>
              <td align="right">16</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD2</td>
              <td align="left">AEAD_AES_128_GCM_SST_8</td>
              <td align="right">16</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD3</td>
              <td align="left">AEAD_AES_128_GCM_SST_10</td>
              <td align="right">16</td>
              <td align="right">80</td>
            </tr>
            <tr>
              <td align="right">TBD4</td>
              <td align="left">AEAD_AES_256_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD5</td>
              <td align="left">AEAD_AES_256_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD6</td>
              <td align="left">AEAD_AES_256_GCM_SST_10</td>
              <td align="right">32</td>
              <td align="right">80</td>
            </tr>
          </tbody>
        </table>
        <t>Common parameters for the six AEAD instances:</t>
        <ul spacing="normal">
          <li>
            <t>P_MAX (maximum size of the plaintext) is 2<sup>36</sup> - 48 octets.</t>
          </li>
          <li>
            <t>A_MAX (maximum size of the associated data) is 2<sup>36</sup> octets.</t>
          </li>
          <li>
            <t>N_MIN and N_MAX (minimum and maximum size of the nonce) are both 12 octets</t>
          </li>
          <li>
            <t>C_MAX (maximum size of the ciphertext and tag) is P_MAX + tag_length (in bytes)</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>GCM-SST uses an additional subkey Q and that new subkeys H, Q are derived for each nonce. The use of an additional subkey Q enables short tags with forgery probabilities close to ideal. Deriving new subkeys H, Q for each nonce significantly decreases the probability of multiple successful forgeries. These changes are based on proven theoretical constructions and follows the recommendations in <xref target="Nyberg"/>. See <xref target="Nyberg"/> for details and references to security proofs for the construction.</t>
      <t>GCM-SST <bcp14>MUST</bcp14> be used in a nonce-respecting setting: for a given key, a nonce <bcp14>MUST</bcp14> only be used once. The nonce <bcp14>MAY</bcp14> be public or predictable.  It can be a counter, the output of a permutation, or a generator with a long period. Every key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution. Implementations <bcp14>SHOULD</bcp14> randomize the nonce by mixing a unique number like a sequence number with a per-key random salt. This improves security against pre-computation attacks and multi-key attacks <xref target="Bellare"/>.</t>
      <t>The GCM-SST tag_length <bcp14>SHOULD NOT</bcp14> be smaller than 4 bytes and cannot be larger than 16 bytes. For short tags of length t &lt; 128 - log2(n + m + 1) bits, the worst-case forgery probability is bounded by ≈ 2<sup>-t</sup> <xref target="Nyberg"/>. With the constraints listed in <xref target="instances"/>, n + m + 1 &lt; 2<sup>33</sup> 128-bit blocks, and tags of length up to 95 bits therefore have an almost perfect security level. This is significantly better than GCM where the security level is only t – log2(n + m + 1) bits <xref target="GCM"/>. As one can note, for 128-bit tags and long messages, the forgery probability is not close to ideal and similar to GCM <xref target="GCM"/>. If tag verification fails, the plaintext and expected_tag <bcp14>MUST NOT</bcp14> be given as output. The full_tag in GCM-SST does not depend on the tag length. An application can make the tag dependent on the tag length by including tag_length in the nonces.</t>
      <t>The confidentiality offered by AES-GCM-SST against passive attackers is equal to AES-GCM <xref target="GCM"/> and given by the birthday bound. The maximum size of the plaintext (P_MAX) has been adjusted from GCM <xref target="RFC5116"/> as there is now three subkeys instead of two.</t>
      <t>For the AES-GCM-SST algorithms in <xref target="iana-algs"/> the worst-case forgery probability is bounded by ≈ 2<sup>-t</sup> where t is the tag length in bits <xref target="Nyberg"/>. This is true for all allowed plaintext and associated data lengths. The maximum size of the associated data (A_MAX) has been lowered from GCM <xref target="RFC5116"/> to enable forgery probability close to ideal for 80-bit tags even with maximum size plaintexts and associated data. Just like <xref target="RFC5116"/> AES-GCM-SST only allows 96-bit nonces.</t>
      <t>If r random nonces are used with the same key, the collision probability for AES-GCM-SST is ≈ r<sup>2</sup> / 2<sup>97</sup>. As an attacker can test r nonces for collisions with complexity r, the security of AES-GCM-SST with random nonces is only ≈ 2<sup>97</sup> / r. It is therefore <bcp14>NOT RECOMMENDED</bcp14> to use AES-GCM-SST with random nonces.</t>
      <t>In general, there is a very small possibility in GCM-SST that either or both of the subkeys H and Q are zero, so called weak keys. If both keys are zero, the resulting tag will not depend on the message. There are no obvious ways to detect this condition for an attacker, and the specification admits this possibility in favor of complicating the flow with additional checks and regeneration of values. In AES-GCM-SST, H and Q are generated with the AES-ENC permutation on different input, so H and Q cannot both be zero.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign the entries in the first two columns of <xref target="iana-algs"/> to the "AEAD Algorithms" registry under the "Authenticated Encryption with Associated Data (AEAD) Parameters" heading with this document as reference.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC8452">
          <front>
            <title>AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption</title>
            <author fullname="S. Gueron" initials="S." surname="Gueron"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="Y. Lindell" initials="Y." surname="Lindell"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This memo specifies two authenticated encryption algorithms that are nonce misuse resistant -- that is, they do not fail catastrophically if a nonce is repeated.</t>
              <t>This document is the product of the Crypto Forum Research Group.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8452"/>
          <seriesInfo name="DOI" value="10.17487/RFC8452"/>
        </reference>
        <reference anchor="AES" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf">
          <front>
            <title>ADVANCED ENCRYPTION STANDARD (AES)</title>
            <author>
              <organization/>
            </author>
            <date year="2001" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Federal Information Processing Standards Publication 197"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="I-D.ietf-sframe-enc">
          <front>
            <title>Secure Frame (SFrame)</title>
            <author fullname="Emad Omara" initials="E." surname="Omara">
              <organization>Apple</organization>
            </author>
            <author fullname="Justin Uberti" initials="J." surname="Uberti">
              <organization>Google</organization>
            </author>
            <author fullname="Sergio Garcia Murillo" initials="S. G." surname="Murillo">
              <organization>CoSMo Software</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Youenn Fablet" initials="Y." surname="Fablet">
              <organization>Apple</organization>
            </author>
            <date day="5" month="December" year="2023"/>
            <abstract>
              <t>   This document describes the Secure Frame (SFrame) end-to-end
   encryption and authentication mechanism for media frames in a
   multiparty conference call, in which central media servers (selective
   forwarding units or SFUs) can access the media metadata needed to
   make forwarding decisions without having access to the actual media.

   The proposed mechanism differs from the Secure Real-Time Protocol
   (SRTP) in that it is independent of RTP (thus compatible with non-RTP
   media transport) and can be applied to whole media frames in order to
   be more bandwidth efficient.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-sframe-enc-06"/>
        </reference>
        <reference anchor="I-D.irtf-cfrg-aegis-aead">
          <front>
            <title>The AEGIS Family of Authenticated Encryption Algorithms</title>
            <author fullname="Frank Denis" initials="F." surname="Denis">
              <organization>Fastly Inc.</organization>
            </author>
            <author fullname="Samuel Lucas" initials="S." surname="Lucas">
              <organization>Individual Contributor</organization>
            </author>
            <date day="20" month="January" year="2024"/>
            <abstract>
              <t>   This document describes the AEGIS-128L, AEGIS-256, AEGIS-128X, and
   AEGIS-256X AES-based authenticated encryption algorithms designed for
   high-performance applications.

   The document is a product of the Crypto Forum Research Group (CFRG).
   It is not an IETF product and is not a standard.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/cfrg/draft-irtf-cfrg-aegis-aead.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aegis-aead-10"/>
        </reference>
        <reference anchor="MoQ" target="https://datatracker.ietf.org/wg/moq/about/">
          <front>
            <title>Media Over QUIC</title>
            <author initials="" surname="IETF">
              <organization/>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="Revise" target="https://csrc.nist.gov/news/2023/proposal-to-revise-sp-800-38d">
          <front>
            <title>Announcement of Proposal to Revise SP 800-38D</title>
            <author initials="" surname="NIST">
              <organization/>
            </author>
            <date year="2023" month="August"/>
          </front>
        </reference>
        <reference anchor="SNOW" target="https://eprint.iacr.org/2021/236">
          <front>
            <title>SNOW-Vi: an extreme performance variant of SNOW-V for lower grade CPUs</title>
            <author initials="P." surname="Ekdahl">
              <organization/>
            </author>
            <author initials="T." surname="Johansson">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="J." surname="Yang">
              <organization/>
            </author>
            <date year="2021" month="March"/>
          </front>
        </reference>
        <reference anchor="SST1" target="https://csrc.nist.gov/csrc/media/Events/2023/third-workshop-on-block-cipher-modes-of-operation/documents/accepted-papers/Galois%20Counter%20Mode%20with%20Secure%20Short%20Tags.pdf">
          <front>
            <title>Galois Counter Mode with Secure Short Tags (GCM-SST)</title>
            <author initials="M." surname="Campagna">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="SST2" target="https://csrc.nist.gov/csrc/media/Presentations/2023/galois-counter-mode-with-secure-short-tags/images-media/sess-5-mattsson-bcm-workshop-2023.pdf">
          <front>
            <title>Galois Counter Mode with Secure Short Tags (GCM-SST)</title>
            <author initials="M." surname="Campagna">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="GCM" target="https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
            <author initials="M." surname="Dworkin">
              <organization/>
            </author>
            <date year="2007" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-38D"/>
        </reference>
        <reference anchor="Ferguson" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/Ferguson2.pdf">
          <front>
            <title>Authentication weaknesses in GCM</title>
            <author initials="N." surname="Ferguson">
              <organization/>
            </author>
            <date year="2005" month="May"/>
          </front>
        </reference>
        <reference anchor="Nyberg" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/general-comments/papers/Nyberg_Gilbert_and_Robshaw.pdf">
          <front>
            <title>Galois MAC with forgery probability close to ideal</title>
            <author initials="K." surname="Nyberg">
              <organization/>
            </author>
            <author initials="H." surname="Gilbert">
              <organization/>
            </author>
            <author initials="M." surname="Robshaw">
              <organization/>
            </author>
            <date year="2005" month="June"/>
          </front>
        </reference>
        <reference anchor="Mattsson" target="https://eprint.iacr.org/2015/477.pdf">
          <front>
            <title>Authentication Key Recovery on Galois/Counter Mode (GCM)</title>
            <author initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author initials="M." surname="Westerlund">
              <organization/>
            </author>
            <date year="2015" month="May"/>
          </front>
        </reference>
        <reference anchor="Rogaway" target="https://www.cryptrec.go.jp/exreport/cryptrec-ex-2012-2010r1.pdf">
          <front>
            <title>Evaluation of Some Blockcipher Modes of Operation</title>
            <author initials="P." surname="Rogaway">
              <organization/>
            </author>
            <date year="2011" month="February"/>
          </front>
        </reference>
        <reference anchor="Bellare" target="https://eprint.iacr.org/2016/564.pdf">
          <front>
            <title>The Multi-User Security of Authenticated Encryption: AES-GCM in TLS 1.3</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="B." surname="Tackmann">
              <organization/>
            </author>
            <date year="2017" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 386?>

<section anchor="aes-gcm-sst-test-vectors">
      <name>AES-GCM-SST Test Vectors</name>
      <section anchor="aes-gcm-sst-test-1-128-bit-key">
        <name>AES-GCM-SST Test #1 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 22 ce 92 da cb 50 77 4b ab 0d 18 29 3d 6e ae 7f }
         Q = { 03 13 63 96 74 be fa 86 4d fa fb 80 36 b7 a0 3c }
         M = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
]]></artwork>
        <section numbered="false" anchor="case-1a">
          <name>Case #1a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
       TAG = { 9b 1d 49 ea }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1b">
          <name>Case #1b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 7f f3 cb a4 d5 f3 08 a5 70 4e 2f d5 f2 3a e8 f9 }
       TAG = { 7f f3 cb a4 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1c">
          <name>Case #1c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { f8 de 17 85 fd 1a 90 d9 81 8f cb 7b 44 69 8a 8b }
       TAG = { f8 de 17 85 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1d">
          <name>Case #1d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { 93 43 56 14 0b 84 48 2c d0 14 c7 40 7e e9 cc b6 }
       TAG = { 93 43 56 14 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d c0 cb c7 85 a7 a9 20 db 42 28 ff 63 32 10 }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1e">
          <name>Case #1e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { f8 50 b7 97 11 43 ab e9 31 5a d7 eb 3b 0a 16 81 }
       TAG = { f8 50 b7 97 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-2-128-bit-key">
        <name>AES-GCM-SST Test #2 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 2d 6d 7f 1c 52 a7 a0 6b f2 bc bd 23 75 47 03 88 }
         Q = { 3b fd 00 96 25 84 2a 86 65 71 a4 66 e5 62 05 92 }
         M = { 9e 6c 98 3e e0 6c 1a ab c8 99 b7 8d 57 32 0a f5 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { 45 03 bf b0 96 82 39 b3 67 e9 70 c3 83 c5 10 6f }
       TAG = { 45 03 bf b0 96 82 39 b3 }
CIPHERTEXT = { b8 65 d5 16 07 83 11 73 21 f5 6c b0 75 45 16 b3
               da 9d b8 09 }
]]></artwork>
      </section>
      <section anchor="aes-gcm-sst-test-3-256-bit-key">
        <name>AES-GCM-SST Test #3 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
               10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 3b d9 9f 8d 38 f0 2e a1 80 96 a4 b0 b1 d9 3b 1b }
         Q = { af 7f 54 00 16 aa b8 bc 91 56 d9 d1 83 59 cc e5 }
         M = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
]]></artwork>
        <section numbered="false" anchor="case-3a">
          <name>Case #3a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
       TAG = { b3 35 31 c0 e9 6f 4a 03 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3b">
          <name>Case #3b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 63 ac ca 4d 20 9f b3 90 28 ff c3 17 04 01 67 61 }
       TAG = { 63 ac ca 4d 20 9f b3 90 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3c">
          <name>Case #3c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { e1 de bf fd 5f 3a 85 e3 48 bd 6f cc 6e 62 10 90 }
       TAG = { e1 de bf fd 5f 3a 85 e3 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3d">
          <name>Case #3d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { c3 5e d7 83 9f 21 f7 bb a5 a8 a2 8e 1f 49 ed 04 }
       TAG = { c3 5e d7 83 9f 21 f7 bb }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 11 7e 17 58 b5 ed d0 d6 5d 68 32 06 bb ad }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3e">
          <name>Case #3e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { 49 7c 14 77 67 a5 3d 57 64 ce fd 03 26 fe e7 b5 }
       TAG = { 49 7c 14 77 67 a5 3d 57 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-4-256-bit-key">
        <name>AES-GCM-SST Test #4 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb
               b3 a6 db 3c 87 0c 3e 99 24 5e 0d 1c 06 b7 b3 12 }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 13 53 4b f7 8a 91 38 fd f5 41 65 7f c2 39 55 23 }
         Q = { 32 69 75 a3 3a ff ae ac af a8 fb d1 bd 62 66 95 }
         M = { 59 48 44 80 b6 cd 59 06 69 27 5e 7d 81 4a d1 74 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c 73 49 bf 3c d5 4d }
       TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c }
CIPHERTEXT = { b5 c2 a4 07 f3 3e 99 88 de c1 2f 10 64 7b 3d 4f
               eb 8f f7 cc }
]]></artwork>
      </section>
    </section>
    <section removeInRFC="true" numbered="false" anchor="change-log">
      <name>Change log</name>
      <t>Changes from -01 to -02:</t>
      <ul spacing="normal">
        <li>
          <t>The length encoding chunk is now called L</t>
        </li>
        <li>
          <t>Use of the notation POLYVAL(H, X_1, X_2, ...) from RFC 8452</t>
        </li>
        <li>
          <t>Removed duplicated text in security considerations.</t>
        </li>
      </ul>
      <t>Changes from -00 to -01:</t>
      <ul spacing="normal">
        <li>
          <t>Link to NIST decision to remove support for GCM with tags shorter than 96-bits based on Mattsson et al.</t>
        </li>
        <li>
          <t>Mention that 3GPP 5G Advance will use GCM-SST with AES-256 and SNOW 5G.</t>
        </li>
        <li>
          <t>Corrected reference to step numbers during decryption</t>
        </li>
        <li>
          <t>Changed T to full_tag to align with tag and expected_tag</t>
        </li>
        <li>
          <t>Link to images from the NIST encryption workshop illustrating the GCM-SST encryption and decryption functions.</t>
        </li>
        <li>
          <t>Updated definitions</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors thank <contact fullname="Richard Barnes"/> and <contact fullname="Eric Lagergren"/> for their valuable comments and feedback. Some of the formatting and text were inspired by and borrowed from <xref target="I-D.irtf-cfrg-aegis-aead"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Edbalwa2/K+G2LL4b8fmr2EvbgAA

-->

</rfc>
