<?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-08" 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-08"/>
    <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="12"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 364?>

<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, the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV, and the substitution of masking with non-zero padding. This enables truncated tags with near-ideal forgery probabilities, even against multiple forgery attacks, which are significant security improvements over GCM. GCM-SST is designed for unicast security protocols with replay protection and addresses the strong industry demand for fast encryption with less overhead and 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 368?>

<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"/> and Inoue et al. <xref target="Inoue"/>. 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"/>, and the replacement of masking with injective non-zero padding, 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, where its authentication tag behaves like an ideal MAC. Its performance is similar to GCM <xref target="GCM"/>, with the additional AES invocation 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"/>.  Mac5G is constructed similarly to the integrity algorithms used for SNOW 3G <xref target="UIA2"/> and ZUC <xref target="EIA3"/>. 3GPP has decided to standardize Mac5G 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"/>. GCM-SST is an evolution of Mac5G incorporating the ideas proposed by Inoue et al. <xref target="Inoue"/>.</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>0x is a prefix used to denote hexadecimal numbers</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(ct || 0x80)</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"/> and Inoue et al. <xref target="Inoue"/>. 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 two chunks Z[0] and Z[1] are used as the two subkeys H and Q. The following keystream chunks Z[2], Z[3], ..., Z[n + 1] 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. As the subkeys H and Q are nonce-dependent, the masking can be replaced by an injective non-zero padding of the ciphertext <xref target="Inoue"/>. Both encryption and decryption are only defined on inputs that are a whole number of octets.</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]</t>
          </li>
          <li>
            <t>Let ct = P XOR truncate(Z[2:n + 1], len(P))</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct || 0x80)</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)</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>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]</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct || 0x80)</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)</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[2:n + 1], len(ct))</t>
          </li>
          <li>
            <t>If N passes replay protrection, 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. For a given key, a plaintext <bcp14>MUST NOT</bcp14> be returned unless it is certain that a plaintext has not be returned for the same nonce. Replay protection can be performed iperformed either before step 1 or during step 12.</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"/>. Big-endian counters align with existing implementations of counter mode.</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> - 33</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> - 33</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_GCM_SST_12</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_14</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> - 33</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> - 33</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM_SST_12</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_14</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> - 33</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> - 33</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_12</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_14</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, we set P_MAX = A_MAX = min(2<sup>131 - tag_length</sup>, 2<sup>36</sup> - 33). 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 is designed for use in unicast security protocols with replay protection. Every key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution. 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 only once in a successful decryption function call. 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. 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="Inoue">Lindell</xref>. It is important to note that GCM allows universal forgery with lower complexity than GCM-SST, even when nonces are not reused. 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"/>. Note that n and m in this context represent the maximum values allowed by the decryption function. 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>As a practical example, in protocols like QUIC <xref target="RFC9001"/>, where the size of plaintext and associated data is less than ≈ 2<sup>16</sup> bytes, AEAD_AES_128_GCM_SST_14 offers superior confidentiality and integrity compared to AEAD_AES_128_GCM, while also reducing overhead by 2 bytes. Both algorithms provide similar security against passive attackers; however, AEAD_AES_128_GCM_SST_14 enhances security against active attackers by significantly reducing the expected number of successful forgeries.</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>
      <t>The details of the replay protection mechanism is determined by the security protocol utilizing GCM-SST. If the nonce includes a sequence number, it can be used for replay protection. Alternatively, a separate sequence number can be used, provided there is a one-to-one mapping between sequence numbers and nonces. The choice of a replay protection mechanism depends on factors such as the expected degree of packet reordering, as well as protocol and implementation details. For examples of replay protection mechanisms, see <xref target="RFC4303"/> and <xref target="RFC6479"/>.</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="RFC4303">
          <front>
            <title>IP Encapsulating Security Payload (ESP)</title>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <date month="December" year="2005"/>
            <abstract>
              <t>This document describes an updated version of the Encapsulating Security Payload (ESP) protocol, which is designed to provide a mix of security services in IPv4 and IPv6. ESP is used to provide confidentiality, data origin authentication, connectionless integrity, an anti-replay service (a form of partial sequence integrity), and limited traffic flow confidentiality. This document obsoletes RFC 2406 (November 1998). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4303"/>
          <seriesInfo name="DOI" value="10.17487/RFC4303"/>
        </reference>
        <reference anchor="RFC6479">
          <front>
            <title>IPsec Anti-Replay Algorithm without Bit Shifting</title>
            <author fullname="X. Zhang" initials="X." surname="Zhang"/>
            <author fullname="T. Tsou" initials="T." surname="Tsou"/>
            <date month="January" year="2012"/>
            <abstract>
              <t>This document presents an alternate method to do the anti-replay checks and updates for IP Authentication Header (AH) and Encapsulating Security Protocol (ESP). The method defined in this document obviates the need for bit shifting and it reduces the number of times an anti-replay window is adjusted. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6479"/>
          <seriesInfo name="DOI" value="10.17487/RFC6479"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </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="UIA2" target="https://www.gsma.com/solutions-and-impact/technologies/security/wp-content/uploads/2019/05/uea2uia2d1v21.pdf">
          <front>
            <title>UEA2 and UIA2 Specification</title>
            <author initials="" surname="ETSI SAGE">
              <organization/>
            </author>
            <date year="2009" month="March"/>
          </front>
        </reference>
        <reference anchor="EIA3" target="https://www.gsma.com/solutions-and-impact/technologies/security/wp-content/uploads/2019/05/EEA3_EIA3_specification_v1_8.pdf">
          <front>
            <title>128-EEA3 and 128-EIA3 Specification</title>
            <author initials="" surname="ETSI SAGE">
              <organization/>
            </author>
            <date year="2019" month="January"/>
          </front>
        </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 595?>

<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 -07 to -08:</t>
      <ul spacing="normal">
        <li>
          <t>Replaced masking with non-zero injective padding as suggested by Inoue et al. This saves one AES invocation for 94% of plaintext lengths.</t>
        </li>
        <li>
          <t>Added a note explainting that "GCM allows universal forgery with lower complexity than GCM-SST, even when nonces are not reused", to avoid any misconceptions that Lindell's attack makes GCM-SST weaker than GCM in any way.</t>
        </li>
        <li>
          <t>Consideration on replay protection mechanisms</t>
        </li>
        <li>
          <t>Added a comparision between AEAD_AES_128_GCM_SST_14 and AEAD_AES_128_GCM in protocols like QUIC</t>
        </li>
      </ul>
      <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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
S91WoN20yI8nv3v/anD87ktWudb3Ectc67vlOtf7fW6h98/VE2h2j3ciJuY4
8YtdUSGFSygViwRf7E5VzP/bhdY5MgcDCjsImc8U3q6oIAmI3l+enryHGL03
YlS1O5GwmMU6geJ0ySYhoDT5VpkBhJSMuSmIXFOuNevtcSOWgiox65GdsmKa
VS+Kvhe6G5n/+5KMc7NYZN+4zFWj5U7lUxnhWeaaVbVe3SV6OjB9pKhsqGEU
pTKf7mheh5tpbmjYyJWZfv6qAltUKsqxBEsGclKd+b1hhX26ogRfcHPpqWWo
bhsMvFp0Xqvi8WcN9Tvu60nBXMkIfdb2SI5eCp/hqY7CWx3YnLCjTom9nhHF
h/ayYAzX6chWMiMhnoHjNsLUVrAb56e4cZqYve5MJuDysdFNhKikLpV8G2rw
h7yFxGxYPFSOn2+z2gO8oRyGNvws5we4TB7aeCgnX0ixPMlP+9NLCANbWEBH
IasOzjdNXe22OBbVZduyqcCBSuc7jU2XY0qJDde+fvA49zZHruwOzdeyxrfi
F0jBuA3CikXhZp+sfJjVHXGpPMz68GHPlYptzrz9kU1zdpuESiq314WFcjpX
76WbaYwHVqypc+eP79yZb6+UiC1sJdF5zQodLQ+Ml9DJ4BuHwexii8TulpgS
fEGqKzYPRyrhlRfai6chmpgfC5rIbLcUtt5/qRLzhjqWA21fumGUIc51dvuQ
dtOo7kSeQbdO+fe5kbSNO0yia9xIkT08vql6IKvNcw1Lh2WqUuM8CWZEyc5p
UsXmJi4l++maZ0wpVyykd2kGz4UsJtSxmVbu5DMDMVum9iC6WVs56wZ1wW1C
tAujYAVnNmuSF2YY9Dse+D679dXsypfwvImmGyfg7jalUpgE0A3jyAv4hfkV
u4VuJ/4M0tMNOw/WJGa3oWZa6Ht7FesP34v4/SC4pfqdySXA5ry3lJE5gTSa
OKkYy6SA7bk5Rr235HU5jGeX7gwuY1u7IJdmtbKkTlbCZTIC1LHFvxyztxXE
hlFgV37/4aMpd17KdUhuS9ocwFDmYLyfPbakB9XrFC9LV1u5guWkzgCZ6zCS
XGrd4ROwIq9UWljmyk4ki9cmt81IuaR9+r29Fwaofbl2EL9krkWi3TFfLBIG
2hbprzp0mQdAKYgYJa5YgDFvFuDTz8JeCbPJfJoo1BZNuykbxtFzABR8wby4
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
ADDp/94dpwAA

-->

</rfc>
