<?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.21 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-cfrg-aes-gcm-sst-04" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.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-04"/>
    <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</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</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="November" day="24"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 314?>

<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 128-bit block ciphers. The main differences from GCM are the use of an additional subkey Q, the derivation of fresh subkeys H and Q for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV. This enables truncated tags with near-ideal forgery probabilities and significantly decreases the probability of multiple forgeries. GCM-SST is designed for unicast security protocols with replay protection and addresses the strong industry demand for fast encryption with secure short tags. This document registers several instances of GCM-SST using Advanced Encryption Standard (AES) and Rijndael-256-256.</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 318?>

<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"/>, particularly problematic when short tags are used.
The first weakness significantly increases the probability of successful forgery. The second weakness reveals the subkey H if an attacker succeeds in creating forgeries. Once H is known, the attacker can consistently forge subsequent messages, drastically increasing the probability of multiple successful forgeries.</t>
      <t>In 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 parameter choices or the assumed security levels. Mattsson et al. <xref target="Mattsson"/> later demonstrated that attackers can almost always obtain feedback on the success or failure of forgery attempts, contradicting the assumptions NIST made for short tags. Furthermore, NIST appears to have relied on non-optimal attacks when calculating the parameters. Rogaway <xref target="Rogaway"/> criticizes the use of GCM with short tags and recommends prohibiting tags shorter than 96 bits. Reflecting the critique, 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, its performance is lower than that of GCM.</t>
      <t>Short tags are widely used, 32-bit tags are standard in most radio link layers including 5G <xref target="Sec5G"/>, 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. As such, they are highly sensitive to cryptographic overhead, but forgery of individual packets is not a big concern as it typically is barely noticeable as each packet often only encodea 20 ms of audio. 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="RFC9605"/>. Short tags are also useful to protect packets whose payloads are secured at higher layers, protocols where the security is given by the sum of the tag lengths, and in constrained radio networks, where the low bandwidth preclude many repeated trial. For all applications of short tags it is essential that the MAC behaves like an ideal MAC, i.e., the forgery probability is ≈ 2<sup>-tag_length</sup> even after many generated MACs, many forgery attempts, and after a successful forgery. For a comprehensive discussion on the use cases and requirements of short tags, see <xref target="Comments38B"/>.</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, allowing it to be used with any keystream generator, not just 128-bit block ciphers.</t>
      <t>The main differences from GCM <xref target="GCM"/> are the introduction of an additional subkey Q, the derivation of fresh subkeys H and Q for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, see <xref target="GCM-SST"/>. These changes enable truncated tags with forgery probability close to ideal and significantly decreases the probability of multiple successful forgeries, see <xref target="Security"/>. GCM-SST is designed for use in unicast security protocols with replay protection. Its performance is similar to GCM <xref target="GCM"/>, with the two additional AES invocations compensated by the use of POLYVAL, the ”little-endian version” of GHASH, which is faster on little-endian architectures. GCM-SST retains the additive encryption characteristic of GCM, which enables efficient implementations on modern processor architectures, see <xref target="Gueron"/> and Section 2.4 of <xref target="GCM-Update"/>. This document registers several GCM-SST instances using Advanced Encryption Standard (AES) <xref target="AES"/> and Rijndael with 256-bit keys and blocks (Rijndael-256-256) <xref target="Rijndael"/> in counter mode as keystream generators, see <xref target="AES-GCM-SST"/>. 3GPP has standardized the use of Rijndael-256-256 for authentication and key generation in 3GPP TS 35.234–35.237 <xref target="WID23"/>. NIST is anticipated to standardize Rijndael-256-256 <xref target="Options"/>, although there may be revisions to the key schedule.</t>
      <t>GCM-SST was originally developed by ETSI SAGE, under the name Mac5G, following a request from 3GPP, with several years of discussion and refinement contributing to its design <xref target="SAGE23"/><xref target="SAGE24"/>. 3GPP has decided to standardize GCM-SST for use with AES-256 <xref target="AES"/>, SNOW 5G <xref target="SNOW"/>, and ZUC-256 <xref target="ZUC"/> in 3GPP TS 35.240–35.248 <xref target="WID24"/>.</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 following notation is used in the document:</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>Z is the keystream</t>
        </li>
        <li>
          <t>ct is the ciphertext</t>
        </li>
        <li>
          <t>tag is the authentication tag</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, a nonce <bcp14>MUST NOT</bcp14> be reused under any circumstances.</t>
          </li>
          <li>
            <t>Each key <bcp14>MUST</bcp14> be restricted to a single tag_length.</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 the 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 the tag verification fails, the plaintext P and the expected_tag <bcp14>MUST NOT</bcp14> be given as output.</t>
          </li>
          <li>
            <t>For a given key, a nonce for which a plaintext has been returned <bcp14>MUST NOT</bcp14> be reused under any circumstances.</t>
          </li>
          <li>
            <t>Each key <bcp14>MUST</bcp14> be restricted to a single tag_length.</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>
        <t>The comparison of tag and expected_tag in step 9 <bcp14>MUST</bcp14> be performed in constant time to prevent any information leakage about the position of the first mismatched byte.</t>
      </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 and Rijndael-256-256 in GCM-SST</name>
      <t>This section defines Advanced Encryption Standard (AES) and Rijndael with 256-bit keys and blocks (Rijndael-256-256) <xref target="Rijndael"/> in Galois Counter Mode with Secure Short Tags.</t>
      <section anchor="aes-gcm-sst">
        <name>AES-GCM-SST</name>
        <t>When GCM-SSM is instantiated with AES (AES-GCM-SST), the keystream generator is AES in counter mode</t>
        <t>Z[i] = ENC(K, N || BE32(i))</t>
        <t>where ENC is the AES Cipher function <xref target="AES"/>.</t>
      </section>
      <section anchor="rijndael-gcm-sst">
        <name>Rijndael-GCM-SST</name>
        <t>When GCM-SST is instantiated with Rijndael-256-256 (Rijndael-GCM-SST), the keystream generator is Rijndael-256-256 in counter mode</t>
        <t>Z[2i]   = ENC(K, N || BE32(i))[0]</t>
        <t>Z[2i+1] = ENC(K, N || BE32(i))[1]</t>
        <t>where ENC is the Rijndael-256-256 Cipher function <xref target="Rijndael"/>.</t>
      </section>
      <section anchor="instances">
        <name>AEAD Instances and Constraints</name>
        <t>We define nine AEAD instances, in the format of <xref target="RFC5116"/>, that use AES-GCM-SST and Rijndael-GCM-SST. The tag lengths 32, 64, and 80 have been chosen to align with secure media frames <xref target="RFC9605"/>. 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>
            <tr>
              <td align="right">TBD7</td>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD8</td>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD9</td>
              <td align="left">AEAD_RIJNDAEL_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 = N_MAX (minimum and maximum size of the nonce) is 12 octets for AES, while for Rijndael-256-256, it is 28 bytes.</t>
          </li>
          <li>
            <t>C_MAX (maximum size of the ciphertext and tag) is P_MAX + tag_length (in bytes)</t>
          </li>
        </ul>
        <t>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. 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 larger tags even with maximum size plaintexts and associated data. Just like <xref target="RFC5116"/>, AES-GCM-SST and Rijndael-GCM-SST only allow a fixed nonce length (N_MIN = N_MAX) of 96-bit and 224-bits respectively. For the AEAD algorithms in <xref target="iana-algs"/> the worst-case forgery probability is bounded by ≈ 2<sup>-tag_length</sup> <xref target="Nyberg"/>. This is true for all allowed plaintext and associated data lengths.</t>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>GCM-SST introduces an additional subkey Q, alongside the subkey H. The inclusion of Q enables shorter tags with forgery probabilities close to ideal. Both Q and H are derived for each nonce, which 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 in the encryption function and the decryption function. 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. GCM-SST <bcp14>MUST NOT</bcp14> be used with random nonces <xref target="Collision"/> and <bcp14>MUST</bcp14> be used with replay protection. GCM-SST <bcp14>MUST NOT</bcp14> be used in multicast or broadcast. Reuse of nonces in the encryption function and the decryption function enable universal forgery <xref target="Lindell"/>. GCM-SST is designed for use in unicast security protocols with replay protection. Implementations <bcp14>MAY</bcp14> add randomness to the nonce by XORing a unique number like a sequence number with a per-key random secret salt. This improves security against pre-computation attacks and multi-key attacks <xref target="Bellare"/>. By increasing the nonce length from 96 bits to 224 bits, Rijndael-256-256-GCM-SST can offer significantly greater security against pre-computation and multi-key attacks compared to AES-256-GCM-SST.</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 with tag_length &lt; 128 - log2(n + m + 1) bits, the worst-case forgery probability is bounded by ≈ 2<sup>-tag_length</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 tag_length – 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. In GCM-SST, the full_tag is independent of the specified tag length unless the application explicitly incorporates tag length into the keystream or the nonce.</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. Regardless of key length, an attacker can mount a distinguishing attack with a complexity of approximately 2<sup>129</sup> / k, where k is the number of invocations of the AES encryption function. In contrast, the confidentiality offered by Rijndael-256-256-GCM-SST against passive attackers is significantly higher. The complexity of distinguishing attacks for Rijndael-256-256-GCM-SST is approximately 2<sup>257</sup> / k, where k is the number of invocations of the Rijndael-256-256 encryption function. While Rijndael-256-256 in counter mode can provide strong confidentiality for plaintexts much larger than 2<sup>36</sup> octets, GHASH and POLYVAL do not offer adequate integrity for long plaintexts. To ensure robust integrity for long plaintexts, an AEAD mode would need to replace POLYVAL with a MAC that has better security properties, such as a Carter-Wegman MAC in a larger field <xref target="Degabriele"/> or other alternatives such as <xref target="SMAC"/>.</t>
      <t>The confidentiality offered by AES-GCM-SST against active attackers is irectly linked to the forgery probability. Depending on the protocol and application, forgeries <bcp14>MAY</bcp14> significantly compromise privacy, in addition to affecting integrity and authenticity. It <bcp14>MUST</bcp14> be assumed that attackers always receive feedback on the success or failure of their forgery attempts. Therefore, attacks on integrity, authenticity, and confidentiality <bcp14>MUST</bcp14> all be carefully evaluated when selecting an appropriate tag length.</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 H is zero, the authentication tag depends only on the length of P and A and not on their content. If Q is zero, the authentication tag does not depends on the field L encoding the length of P and A. 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 a 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 anchor="sec-combined-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="2023" month="May"/>
          </front>
          <seriesInfo name="NIST" value="Federal Information Processing Standards Publication 197"/>
        </reference>
        <reference anchor="Rijndael" target="https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf">
          <front>
            <title>AES Proposal: Rijndael</title>
            <author initials="" surname="Joan Daemen">
              <organization/>
            </author>
            <author initials="" surname="Vincent Rijmen">
              <organization/>
            </author>
            <date year="2003" month="September"/>
          </front>
        </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="RFC9605">
          <front>
            <title>Secure Frame (SFrame): Lightweight Authenticated Encryption for Real-Time Media</title>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="S. G. Murillo" initials="S. G." surname="Murillo"/>
            <author fullname="R. Barnes" initials="R." role="editor" surname="Barnes"/>
            <author fullname="Y. Fablet" initials="Y." surname="Fablet"/>
            <date month="August" year="2024"/>
            <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.</t>
              <t>This 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="RFC" value="9605"/>
          <seriesInfo name="DOI" value="10.17487/RFC9605"/>
        </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="14" month="October" 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-13"/>
        </reference>
        <reference anchor="SAGE23" target="https://www.3gpp.org/ftp/TSG_SA/WG3_Security/TSGS3_110_Athens/docs/S3-230642.zip">
          <front>
            <title>Specification of the 256-bit air interface algorithms</title>
            <author initials="" surname="ETSI SAGE">
              <organization/>
            </author>
            <date year="2023" month="February"/>
          </front>
        </reference>
        <reference anchor="SAGE24" target="https://www.3gpp.org/ftp/tsg_sa/WG3_Security/TSGS3_117_Maastricht/docs/S3-243394.zip">
          <front>
            <title>Version 2.0 of 256-bit Confidentiality and Integrity Algorithms for the Air Interface</title>
            <author initials="" surname="ETSI SAGE">
              <organization/>
            </author>
            <date year="2024" month="August"/>
          </front>
        </reference>
        <reference anchor="WID23" target="https://www.3gpp.org/ftp/tsg_sa/WG3_Security/TSGS3_113_Chicago/Docs/S3-235072.zip">
          <front>
            <title>New WID on Milenage-256 algorithm</title>
            <author initials="" surname="3GPP">
              <organization/>
            </author>
            <date year="2023" month="November"/>
          </front>
        </reference>
        <reference anchor="WID24" target="https://www.3gpp.org/ftp/tsg_sa/TSG_SA/TSGS_103_Maastricht_2024-03/Docs/SP-240476.zip">
          <front>
            <title>New WID on Addition of 256-bit security Algorithms</title>
            <author initials="" surname="3GPP">
              <organization/>
            </author>
            <date year="2024" month="March"/>
          </front>
        </reference>
        <reference anchor="ZUC" target="https://eprint.iacr.org/2021/1439">
          <front>
            <title>An Addendum to the ZUC-256 Stream Cipher</title>
            <author initials="" surname="ZUC Design Team">
              <organization/>
            </author>
            <date year="2024" month="September"/>
          </front>
        </reference>
        <reference anchor="Options" target="https://csrc.nist.gov/csrc/media/Presentations/2024/options-for-encryption-algorithms-and-modes/images-media/sess-3-regenscheid-acm-workshop-2024.pdf">
          <front>
            <title>NIST Options in for Encryption Algorithms and Modes of Operation</title>
            <author initials="" surname="NIST">
              <organization/>
            </author>
            <date year="2024" month="June"/>
          </front>
        </reference>
        <reference anchor="Comments38B" target="https://csrc.nist.gov/csrc/media/Projects/crypto-publication-review-project/documents/initial-comments/sp800-38b-initial-public-comments-2024.pdf">
          <front>
            <title>Public Comments on SP 800-38B</title>
            <author initials="" surname="NIST">
              <organization/>
            </author>
            <date year="2024" month="September"/>
          </front>
        </reference>
        <reference anchor="Sec5G" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3169">
          <front>
            <title>Security architecture and procedures for 5G System</title>
            <author initials="" surname="3GPP TS 33 501">
              <organization/>
            </author>
            <date year="2024" month="September"/>
          </front>
        </reference>
        <reference anchor="Collision" target="https://eprint.iacr.org/2021/236">
          <front>
            <title>Collision Attacks on Galois/Counter Mode (GCM)</title>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2024" month="September"/>
          </front>
        </reference>
        <reference anchor="Lindell" target="https://mailarchive.ietf.org/arch/browse/cfrg/?gbt=1&amp;index=cWpv0QgX2ltkWhtd3R9pEW7E1CA">
          <front>
            <title>Comment on AES-GCM-SST</title>
            <author initials="Y." surname="Lindell">
              <organization/>
            </author>
            <date year="2024" month="May"/>
          </front>
        </reference>
        <reference anchor="Degabriele" target="https://csrc.nist.gov/csrc/media/Presentations/2024/universal-hash-designs-for-an-accordion-mode/images-media/sess-7-degabriele-acm-workshop-2024.pdf">
          <front>
            <title>Universal Hash Designs for an Accordion Mode</title>
            <author initials="J." surname="Degabriele">
              <organization/>
            </author>
            <author initials="J." surname="Gilcher">
              <organization/>
            </author>
            <author initials="J." surname="Govinden">
              <organization/>
            </author>
            <author initials="K." surname="Paterson">
              <organization/>
            </author>
            <date year="2024" month="June"/>
          </front>
        </reference>
        <reference anchor="SMAC" target="https://eprint.iacr.org/2024/819">
          <front>
            <title>A new stand-alone MAC construct called SMAC</title>
            <author initials="D." surname="Wang">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="P." surname="Ekdahl">
              <organization/>
            </author>
            <author initials="T." surname="Johansson">
              <organization/>
            </author>
            <date year="2024" month="June"/>
          </front>
        </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="GCM-Update" target="https://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/cwc-gcm/gcm-update.pdf">
          <front>
            <title>GCM Update</title>
            <author initials="D." surname="McGrew">
              <organization/>
            </author>
            <author initials="J." surname="Viega">
              <organization/>
            </author>
            <date year="2005" month="May"/>
          </front>
        </reference>
        <reference anchor="Gueron" target="https://csrc.nist.gov/csrc/media/Presentations/2023/constructions-based-on-the-aes-round/images-media/sess-5-gueron-bcm-workshop-2023.pdf">
          <front>
            <title>Constructions based on the AES Round and Polynomial Multiplication that are Efficient on Modern Processor Architectures</title>
            <author initials="S." surname="Gueron">
              <organization/>
            </author>
            <date year="2023" month="October"/>
          </front>
        </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 548?>

<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 -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>Added that GCM-SST is designed for unicast protocol with replay protection</t>
        </li>
        <li>
          <t>Update info on use cases for short tags</t>
        </li>
        <li>
          <t>Updated info on ETSI and 3GPP standardization of GCM-SST</t>
        </li>
        <li>
          <t>Added Rijndael-256-256</t>
        </li>
        <li>
          <t>Added that replay is required and that random nonces, multicast, and broadcast are forbidden based on attack from Yehuda Lindell</t>
        </li>
        <li>
          <t>Security considerations for active attacks on privacy as suggested by Thomas Bellebaum</t>
        </li>
        <li>
          <t>Improved text on H and Q being zero.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
      </ul>
      <t>Changes from -02 to -03:</t>
      <ul spacing="normal">
        <li>
          <t>Added performance information and considerations.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
      </ul>
      <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"/>, <contact fullname="Thomas Bellebaum"/>, <contact fullname="Scott Fluhrer"/>, <contact fullname="Eric Lagergren"/>, <contact fullname="Yehuda Lindell"/>, and <contact fullname="Erik Thormarker"/> 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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
EfjpBawU+/9GpVHHFZEAAA==

-->

</rfc>
