<?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-07" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.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-07"/>
    <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="December" day="05"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 345?>

<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, even against multiple forgery attacks. 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 349?>

<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 encodes 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. 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 near-ideal forgery probabilities, even against multiple forgery attacks, 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"/>.</t>
      <t>This document also 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 and with tag lengths of 32, 64, 96, and 112 bits, see <xref target="AES-GCM-SST"/>. The authentication tags in all registered GCM-SST instances behave like ideal MACs, which is not the case at all for GCM <xref target="GCM"/>. 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"/><xref target="Inoue"/>.</t>
      <section anchor="authenticated-encryption-function">
        <name>Authenticated Encryption Function</name>
        <t>The encryption function Encrypt(K, N, A, P) 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>The decryption function Decrypt(K, N, A, ct, tag) 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 twelve AEAD instances, in the format of <xref target="RFC5116"/>, that use AES-GCM-SST and Rijndael-GCM-SST with tag lengths of 32, 64, 96, and 112 bits. 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="left">Name</th>
              <th align="right">K_LEN (bytes)</th>
              <th align="right">P_MAX = A_MAX (bytes)</th>
              <th align="right">tag_length (bits)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">AEAD_AES_128_GCM_SST_4</td>
              <td align="right">16</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_GCM_SST_8</td>
              <td align="right">16</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_GCM_SST_10</td>
              <td align="right">16</td>
              <td align="right">2<sup>35</sup></td>
              <td align="right">96</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_GCM_SST_12</td>
              <td align="right">16</td>
              <td align="right">2<sup>19</sup></td>
              <td align="right">112</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM_SST_10</td>
              <td align="right">32</td>
              <td align="right">2<sup>35</sup></td>
              <td align="right">96</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM_SST_12</td>
              <td align="right">32</td>
              <td align="right">2<sup>19</sup></td>
              <td align="right">112</td>
            </tr>
            <tr>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_10</td>
              <td align="right">32</td>
              <td align="right">2<sup>35</sup></td>
              <td align="right">96</td>
            </tr>
            <tr>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_12</td>
              <td align="right">32</td>
              <td align="right">2<sup>19</sup></td>
              <td align="right">112</td>
            </tr>
          </tbody>
        </table>
        <t>Common parameters for the six AEAD instances:</t>
        <ul spacing="normal">
          <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) and the maximum size of the associated data (A_MAX) have been lowered from GCM <xref target="RFC5116"/> to enable forgery probability close to ideal 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 truncated 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"/>. Inoue et al. <xref target="Inoue"/> prove that GCM-SST is a provably secure authenticated encryption mode, with security guaranteed for evaluations under fresh nonces, even if some earlier nonces have been reused.</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"/><xref target="Inoue"/>. 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. When 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"/>. The tags in the AEAD algorithm listed in <xref target="instances"/> 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"/>. For a graph of the forgery probability, refer to Fig. 3 in <xref target="Inoue"/>. 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>When tag_length &lt; 128 - log2(n + m + 1) bits, the expected number of forgeries is ≈ q ⋅ 2<sup>-tag_length</sup>, where q is the number of decryption queries, which is ideal. This far outperforms GCM, where the expected number of forgeries is ≈ q<sup>2</sup> ⋅ (n + m + 1) ⋅ 2<sup>-tag_length + 1</sup> <xref target="Multiple"/>. BSI states that an ideal MAC with a 96-bit tag length is considered acceptable for most applications <xref target="BSI"/>, a requirement that GCM-SST with 96- and 112-bit tags satisfies. Achieving a comparable level of security with GCM, CCM, or Poly1305 is nearly impossible.</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 directly 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 column 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="BSI" target="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TG02102/BSI-TR-02102-1.html">
          <front>
            <title>Cryptographic Mechanisms Recommendations and Key Lengths</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="February"/>
          </front>
          <seriesInfo name="BSI" value="Technical Guideline TR-02102-1"/>
        </reference>
        <reference anchor="Multiple" target="https://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/cwc-gcm/multi-forge-01.pdf">
          <front>
            <title>Multiple Forgery Attacks Against Message Authentication Codes</title>
            <author initials="" surname="David McGrew">
              <organization/>
            </author>
            <author initials="" surname="Scott Fluhrer">
              <organization/>
            </author>
            <date year="2024" month="November"/>
          </front>
        </reference>
        <reference anchor="Inoue" target="https://eprint.iacr.org/2024/1928.pdf">
          <front>
            <title>Generic Security of GCM-SST</title>
            <author initials="" surname="Akiko Inoue">
              <organization/>
            </author>
            <author initials="" surname="Ashwin Jha">
              <organization/>
            </author>
            <author initials="" surname="Bart Mennink">
              <organization/>
            </author>
            <author initials="" surname="Kazuhiko Minematsu">
              <organization/>
            </author>
            <date year="2024" month="November"/>
          </front>
        </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 575?>

<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 -06 to -07:</t>
      <ul spacing="normal">
        <li>
          <t>Replaced 80-bit tags with 96- and 112-bit tags.</t>
        </li>
        <li>
          <t>Changed P_MAX and A_MAX and made them tag_length dependent to enable 96- and 112-bit tags with near-ideal security.</t>
        </li>
        <li>
          <t>Clarified that GCM-SST tags have near-ideal forgery probabilities, even against multiple forgery attacks, which is not the case at all for GCM.</t>
        </li>
        <li>
          <t>Added formulas for expeted number of forgeries for GCM-SST (q ⋅ 2<sup>-tag_length</sup>) and GCM (q<sup>2</sup> ⋅ (n + m + 1) ⋅ 2<sup>-tag_length + 1</sup>) and stated that GCM-SST fulfils BSI recommendation of using 96-bit ideal MACs.</t>
        </li>
      </ul>
      <t>Changes from -04 to -06:</t>
      <ul spacing="normal">
        <li>
          <t>Reference to Inoue et al. for security proof, forgery probability graph, and improved attack when GCM-SST is used without replay protection.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
      </ul>
      <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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
hrepNmb8sQtIZdpPXSzhkiWVyqBYV0KZfqWx2lU73IrfTXwzFxs3hFZUptRH
PBRm5aWsyRRIe0ku/kqcf0QKN8zEIpFYcmzVTDcIzMKZlImxWLVYnuoXJQ/4
8sjgUUiUsdzKI0lAbyo4t8fCxGW6e1RMJW4JZz2wsP2LU6e7h86sn5ZvoVL5
wMpO89fp5hAN4fK40OdJdVsshf1NGr+Uzq1U/vDH8EcA/PjNkVhABuwSTg3B
KhUTNcFbF+jkIPaAbaEsXXJnZgsZUDbt42LzPtbw+nh1lPt3tokuVrfZwj7V
1p1CzplGv25uBwfE4AaIrE2+Dp6cKByaB88lrmMS16SpI1dxxtLWR1lSG4T8
wYVLVHqjp9faRR1ti6qLBRsZY8oOsjhk1ShLxoYKdFJmpiz5+4D0fRabc+pe
REvWVxRnrKcuf+1KisqVK5CgplxGhHmpaDQLRTCbXKoeNWlkKaaXyoCZZEVs
7VjGq375ejqA/S/qDXPVf1HfXL4+hg1FqZo8wd9nl6cDqr2BfObPC2r9MbeM
ZxiEwL8EKC+brYNLQO4SkLvsoHmzh39MlV27Z4vraqpzgKft1vauB/d37XW2
d202Vvp2bd+/sEh6e7dWuVvzMOtG7Jb6AZylTXInO26y2PXg/q6rmyx2lU0W
+27fZKlbq9xt2ybfn3z95vng+PXn7HKt7wO2udZ3x32u9/vURu+eqkehN/d4
t1xijmV+tScipHCZn2IJ2Vd7UxXzv3uQOkemtrsQr3fmdBJ+XBFBYta/uTw9
eQM2emPYaFMuIGEVhrVyxIOTvBtWaQKjMgMQWbWhW/65KlyrtkqWCU0yqnhe
R3bKDdOsGj80mdDd8PyvSzzOpKvwvrEJN42WO5mPZYQnmUW1qfVqTubxwPSR
KiXxUKW4mvHovMoyzyBJRkBqED994tsUHIpoLK0kW3CyKWRaV18z6SUFUyWd
8UlVIbFvqUKFPTgKP+rAuuQOmCVqeEKIHNo7UjFcqyXJVB4U46kjVu5Nbc2w
MTGKqcPEhLczEiZk0OgmgpVck0quLVXPQ16+YEqX7iuALiYaxWYM5dioIT+p
2OY2WSZ/X/S54Nc/yg85U6mHgc2nU69npZ55RtEV0oodsLmGVsLnHKh0os6o
YDkYklj34d29B193OeRiMx/vZI+vRI1L9a5NmhQrdE3kpXx80B0q2Hh88P7j
dSvlt5x590Ny5mwsEZVsTDALCeV4ltxInmm2qRIzjTGYCuaq50583rpTtl4p
2lhImtDWzArdLA2MlxChoBsHwew8f2KDUKYeWoDqKofDkUp40l978TREE/Oy
IDhMFKuQl3ZOqUuC2RBZzXEYzKhEp/x8agh7a+pCWNuNFNnTsdsy2U78bQis
GvK0A5sYo7nUR0kCV/OkHGm1rtRJlqv3nNluzH0bM2PumO72bJna87RmB+X4
CXiQWSa0C6Ogro7lKNTnpnhUCbA2dphXEpihHF54MMHeQGkz/yV0bKvM3joF
M7DkFSn1xvaGceQF/INxC5vmtVN/Hm6cYsmuZsxkw92dvRiymEL8JarSVzLJ
pBDIPgtYOUVsK1UNBUGIf//2vaktXcqVKy6vag7EKHPu188eW5IANdRIAxZh
toYCO06dtJ8J1yf54l3ZPmiU17YsLNFlBy7FopEbLaS8zj69u7OXTxBez9ZO
Gpe0oxCeO8eIbUIf2proVXMnU7jkj4g+1IrAHfPoNJ9+cvUbV20CX8ZHs5Ww
bsq6MYPcAgqWUl4OSYoVV8wdNusYE0pmwwoZOh3q0nE0OB7GcFMSFigM+xsp
U6uBi8etxwzazfD/5hMLmV9Q5+usxHzd+lD8BRtXcZZ75T+b8uoR6yREKuen
iRkW5Bm28oHl3LYo42+o0+xkqxx6XT+6Jv3ZUyRzAWCbQZVXstu8CU9HZrHF
dbAxrkq64s8DheO6apu9Zrw/SKQygwQIdOqqML6rrcmOCIvozc/cb5nLFeGv
GK+SwNp4JiULBn86ubQWsb0vrcRgpaVsu1gX0A5NMZ79tScHt/xwfCHGsZxP
RU7R1C9GLj7ye2hvU4jiRcTzdEmxJ5acleHbeJa1fUVO1G3M7EHM4fZeqDfJ
jCt3CPBP6q//479u4wp3svFP6xWaBRUCKRtLzCY7VWHtRqHvETBIEJvQeOKO
3Dia3mmNsrqW5VSut7jfjevnq4yz3S96iBw+P+EJgNQla4vnJp2GsH5JETuJ
qSQLxDczV2w6P8yczy4d4oTkPz+RcwLFE4xlM1LmwkwuhpYzT4JRkpEYwAN/
Eupro+OMYJZZDf8zo+gkgowmoD3iP1gVr5drthtdYTAtF4JAsUVJEg7lfIdJ
cpR/sUHUiZGVJX/PKRAWTl/rwpUJPJzKUmmnLErHArGv0gHbYRink4CnTyiS
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

-->

</rfc>
