<?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-05" 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-05"/>
    <author initials="M." surname="Campagna" fullname="Matthew Campagna">
      <organization>Amazon Web Services</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>campagna@amazon.com</email>
      </address>
    </author>
    <author initials="A." surname="Maximov" fullname="Alexander Maximov">
      <organization abbrev="Ericsson">Ericsson</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>alexander.maximov@ericsson.com</email>
      </address>
    </author>
    <author initials="J." surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization abbrev="Ericsson">Ericsson</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2024" month="November" day="29"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 328?>

<t>This document defines the Galois Counter Mode with Secure Short Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm. GCM-SST can be used with any keystream generator, not just 128-bit block ciphers. The main differences from GCM are the use of an additional subkey Q, the derivation of fresh subkeys H and Q for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV. This enables truncated tags with near-ideal forgery probabilities and significantly decreases the probability of multiple forgeries. GCM-SST is designed for unicast security protocols with replay protection and addresses the strong industry demand for fast encryption with secure short tags. This document registers several instances of GCM-SST using Advanced Encryption Standard (AES) and Rijndael-256-256.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://emanjon.github.io/draft-mattsson-cfrg-aes-gcm-sst/draft-mattsson-cfrg-aes-gcm-sst.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mattsson-cfrg-aes-gcm-sst/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/emanjon/draft-mattsson-cfrg-aes-gcm-sst"/>.</t>
    </note>
  </front>
  <middle>
    <?line 332?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Advanced Encryption Standard (AES) in Galois Counter Mode (AES-GCM) <xref target="GCM"/> is a widely used AEAD algorithm <xref target="RFC5116"/> due to its attractive performance in both software and hardware as well as its provable security. During the NIST standardization, Ferguson pointed out two weaknesses in the GCM authentication function <xref target="Ferguson"/>, particularly problematic when short tags are used. The first weakness significantly increases the probability of successful forgery. The second weakness reveals the subkey H if an attacker succeeds in creating forgeries. Once H is known, the attacker can consistently forge subsequent messages, drastically increasing the probability of multiple successful forgeries.</t>
      <t>In a comment to NIST, Nyberg et al. <xref target="Nyberg"/> explained how small changes based on proven theoretical constructions mitigate these weaknesses. Unfortunately, NIST did not follow the advice from Nyberg et al. and instead specified additional requirements for use with short tags in Appendix C of <xref target="GCM"/>. NIST did not give any motivations for the parameter choices or the assumed security levels. Mattsson et al. <xref target="Mattsson"/> later demonstrated that attackers can almost always obtain feedback on the success or failure of forgery attempts, contradicting the assumptions NIST made for short tags. Furthermore, NIST appears to have relied on non-optimal attacks when calculating the parameters. Rogaway <xref target="Rogaway"/> criticizes the use of GCM with short tags and recommends prohibiting tags shorter than 96 bits. Reflecting the critique, NIST is planning to remove support for GCM with tags shorter than 96 bits <xref target="Revise"/>. While Counter with CBC-MAC (CCM) <xref target="RFC5116"/> with short tags has forgery probabilities close to ideal, its performance is lower than that of GCM.</t>
      <t>Short tags are widely used, 32-bit tags are standard in most radio link layers including 5G <xref target="Sec5G"/>, 64-bit tags are very common in transport and application layers of the Internet of Things, and 32-, 64-, and 80-bit tags are common in media-encryption applications. Audio packets are small, numerous, and ephemeral. As such, they are highly sensitive to cryptographic overhead, but forgery of individual packets is not a big concern as it typically is barely noticeable as each packet often only encodea 20 ms of audio. Due to its weaknesses, GCM is typically not used with short tags. The result is either decreased performance from larger than needed tags <xref target="MoQ"/>, or decreased performance from using much slower constructions such as AES-CTR combined with HMAC <xref target="RFC3711"/><xref target="RFC9605"/>. Short tags are also useful to protect packets whose payloads are secured at higher layers, protocols where the security is given by the sum of the tag lengths, and in constrained radio networks, where the low bandwidth preclude many repeated trial. For all applications of short tags it is essential that the MAC behaves like an ideal MAC, i.e., the forgery probability is ≈ 2<sup>-tag_length</sup> even after many generated MACs, many forgery attempts, and after a successful forgery. For a comprehensive discussion on the use cases and requirements of short tags, see <xref target="Comments38B"/>.</t>
      <t>This document defines the Galois Counter Mode with Secure Short Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface, allowing it to be used with any keystream generator, not just 128-bit block ciphers.</t>
      <t>The main differences from GCM <xref target="GCM"/> are the introduction of an additional subkey Q, the derivation of fresh subkeys H and Q for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, see <xref target="GCM-SST"/>. These changes enable truncated tags with forgery probability close to ideal and significantly decreases the probability of multiple successful forgeries, see <xref target="Security"/>. GCM-SST is designed for use in unicast security protocols with replay protection. Its performance is similar to GCM <xref target="GCM"/>, with the two additional AES invocations compensated by the use of POLYVAL, the ”little-endian version” of GHASH, which is faster on little-endian architectures. GCM-SST retains the additive encryption characteristic of GCM, which enables efficient implementations on modern processor architectures, see <xref target="Gueron"/> and Section 2.4 of <xref target="GCM-Update"/>. This document registers several GCM-SST instances using Advanced Encryption Standard (AES) <xref target="AES"/> and Rijndael with 256-bit keys and blocks (Rijndael-256-256) <xref target="Rijndael"/> in counter mode as keystream generators, see <xref target="AES-GCM-SST"/>. 3GPP has standardized the use of Rijndael-256-256 for authentication and key generation in 3GPP TS 35.234–35.237 <xref target="WID23"/>. NIST is anticipated to standardize Rijndael-256-256 <xref target="Options"/>, although there may be revisions to the key schedule.</t>
      <t>GCM-SST was originally developed by ETSI SAGE, under the name Mac5G, following a request from 3GPP, with several years of discussion and refinement contributing to its design <xref target="SAGE23"/><xref target="SAGE24"/>. 3GPP has decided to standardize GCM-SST for use with AES-256 <xref target="AES"/>, SNOW 5G <xref target="SNOW"/>, and ZUC-256 <xref target="ZUC"/> in 3GPP TS 35.240–35.248 <xref target="WID24"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following notation is used in the document:</t>
      <ul spacing="normal">
        <li>
          <t>K is the key as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>N is the nonce as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>A is the associated data as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>P is the plaintext as defined in <xref target="RFC5116"/></t>
        </li>
        <li>
          <t>Z is the keystream</t>
        </li>
        <li>
          <t>ct is the ciphertext</t>
        </li>
        <li>
          <t>tag is the authentication tag</t>
        </li>
        <li>
          <t>= is the assignment operator</t>
        </li>
        <li>
          <t>!= is the inequality operator</t>
        </li>
        <li>
          <t>x || y is concatenation of the octet strings x and y</t>
        </li>
        <li>
          <t>XOR is the bitwise exclusive OR operator</t>
        </li>
        <li>
          <t>len(x) is the length of x in bits.</t>
        </li>
        <li>
          <t>zeropad(x) right pads an octet string x with zeroes to a multiple of 128 bits</t>
        </li>
        <li>
          <t>truncate(x, t) is the truncation operation.  The first t bits of x are kept</t>
        </li>
        <li>
          <t>n is the number of 128-bit chunks in zeropad(P)</t>
        </li>
        <li>
          <t>m is the number of 128-bit chunks in zeropad(A)</t>
        </li>
        <li>
          <t>POLYVAL is defined in <xref target="RFC8452"/></t>
        </li>
        <li>
          <t>BE32(x) is the big-endian encoding of 32-bit integer x</t>
        </li>
        <li>
          <t>LE64(x) is the little-endian encoding of 64-bit integer x</t>
        </li>
        <li>
          <t>V[y] is the 128-bit chunk with index y in the array V; the first chunk has index 0.</t>
        </li>
        <li>
          <t>V[x:y] are the range of chunks x to y in the array V</t>
        </li>
      </ul>
    </section>
    <section anchor="GCM-SST">
      <name>Galois Counter Mode with Secure Short Tags (GCM-SST)</name>
      <t>This section defines the Galois Counter Mode with Secure Short Tags (GCM-SST) AEAD algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface so that it can be used with any keystream generator, not just a 128-bit block cipher.</t>
      <t>GCM-SST adheres to an AEAD interface <xref target="RFC5116"/> and the encryption function takes four variable-length octet string parameters. A secret key K, a nonce N, the associated data A, and a plaintext P. The keystream generator is instantiated with K and N. The keystream <bcp14>MAY</bcp14> depend on P and A. The minimum and maximum lengths of all parameters depend on the keystream generator. The keystream generator produces a keystream Z consisting of 128-bit chunks where the first three chunks Z[0], Z[1], and Z[2] are used as the three subkeys H, Q, and M. The following keystream chunks Z[3], Z[4], ..., Z[n + 2] are used to encrypt the plaintext. Instead of GHASH <xref target="GCM"/>, GCM-SST makes use of the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, which results in more efficient software implementations on little-endian architectures. GHASH and POLYVAL can be defined in terms of one another <xref target="RFC8452"/>. The subkeys H and Q are field elements used in POLYVAL while the subkey M is used for the final masking of the tag. Both encryption and decryption are only defined on inputs that are a whole number of octets.</t>
      <t>Figures illustrating the GCM-SST encryption and decryption functions are shown in <xref target="SST1"/><xref target="SST2"/><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 nine AEAD instances, in the format of <xref target="RFC5116"/>, that use AES-GCM-SST and Rijndael-GCM-SST. The tag lengths 32, 64, and 80 have been chosen to align with secure media frames <xref target="RFC9605"/>. The key length and tag length are related to different security properties, and an application encrypting audio packets with small tags might require 256-bit confidentiality.</t>
        <table anchor="iana-algs">
          <name>AEAD Algorithms</name>
          <thead>
            <tr>
              <th align="right">Numeric ID</th>
              <th align="left">Name</th>
              <th align="right">K_LEN (bytes)</th>
              <th align="right">tag_length (bits)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBD1</td>
              <td align="left">AEAD_AES_128_GCM_SST_4</td>
              <td align="right">16</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD2</td>
              <td align="left">AEAD_AES_128_GCM_SST_8</td>
              <td align="right">16</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD3</td>
              <td align="left">AEAD_AES_128_GCM_SST_10</td>
              <td align="right">16</td>
              <td align="right">80</td>
            </tr>
            <tr>
              <td align="right">TBD4</td>
              <td align="left">AEAD_AES_256_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD5</td>
              <td align="left">AEAD_AES_256_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD6</td>
              <td align="left">AEAD_AES_256_GCM_SST_10</td>
              <td align="right">32</td>
              <td align="right">80</td>
            </tr>
            <tr>
              <td align="right">TBD7</td>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD8</td>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD9</td>
              <td align="left">AEAD_RIJNDAEL_GCM_SST_10</td>
              <td align="right">32</td>
              <td align="right">80</td>
            </tr>
          </tbody>
        </table>
        <t>Common parameters for the six AEAD instances:</t>
        <ul spacing="normal">
          <li>
            <t>P_MAX (maximum size of the plaintext) is 2<sup>36</sup> - 48 octets.</t>
          </li>
          <li>
            <t>A_MAX (maximum size of the associated data) is 2<sup>36</sup> octets.</t>
          </li>
          <li>
            <t>N_MIN = N_MAX (minimum and maximum size of the nonce) is 12 octets for AES, while for Rijndael-256-256, it is 28 bytes.</t>
          </li>
          <li>
            <t>C_MAX (maximum size of the ciphertext and tag) is P_MAX + tag_length (in bytes)</t>
          </li>
        </ul>
        <t>The maximum size of the plaintext (P_MAX) has been adjusted from GCM <xref target="RFC5116"/> as there is now three subkeys instead of two. The maximum size of the associated data (A_MAX) has been lowered from GCM <xref target="RFC5116"/> to enable forgery probability close to ideal for larger tags even with maximum size plaintexts and associated data. Just like <xref target="RFC5116"/>, AES-GCM-SST and Rijndael-GCM-SST only allow a fixed nonce length (N_MIN = N_MAX) of 96-bit and 224-bits respectively. For the AEAD algorithms in <xref target="iana-algs"/> the worst-case forgery probability is bounded by ≈ 2<sup>-tag_length</sup> <xref target="Nyberg"/>. This is true for all allowed plaintext and associated data lengths.</t>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>GCM-SST introduces an additional subkey Q, alongside the subkey H. The inclusion of Q enables 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 eGCM-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. For short tags with tag_length &lt; 128 - log2(n + m + 1) bits, the worst-case forgery probability is bounded by ≈ 2<sup>-tag_length</sup> <xref target="Nyberg"/>. With the constraints listed in <xref target="instances"/>, n + m + 1 &lt; 2<sup>33</sup> 128-bit blocks, and tags of length up to 95 bits therefore have an almost perfect security level. This is significantly better than GCM where the security level is only tag_length - log2(n + m + 1) bits <xref target="GCM"/>. 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>The confidentiality offered by AES-GCM-SST against passive attackers is equal to AES-GCM <xref target="GCM"/> and given by the birthday bound. Regardless of key length, an attacker can mount a distinguishing attack with a complexity of approximately 2<sup>129</sup> / k, where k is the number of invocations of the AES encryption function. In contrast, the confidentiality offered by Rijndael-256-256-GCM-SST against passive attackers is significantly higher. The complexity of distinguishing attacks for Rijndael-256-256-GCM-SST is approximately 2<sup>257</sup> / k, where k is the number of invocations of the Rijndael-256-256 encryption function. While Rijndael-256-256 in counter mode can provide strong confidentiality for plaintexts much larger than 2<sup>36</sup> octets, GHASH and POLYVAL do not offer adequate integrity for long plaintexts. To ensure robust integrity for long plaintexts, an AEAD mode would need to replace POLYVAL with a MAC that has better security properties, such as a Carter-Wegman MAC in a larger field <xref target="Degabriele"/> or other alternatives such as <xref target="SMAC"/>.</t>
      <t>The confidentiality offered by AES-GCM-SST against active attackers is irectly linked to the forgery probability. Depending on the protocol and application, forgeries <bcp14>MAY</bcp14> significantly compromise privacy, in addition to affecting integrity and authenticity. It <bcp14>MUST</bcp14> be assumed that attackers always receive feedback on the success or failure of their forgery attempts. Therefore, attacks on integrity, authenticity, and confidentiality <bcp14>MUST</bcp14> all be carefully evaluated when selecting an appropriate tag length.</t>
      <t>In general, there is a very small possibility in GCM-SST that either or both of the subkeys H and Q are zero, so called weak keys. If H is zero, the authentication tag depends only on the length of P and A and not on their content. If Q is zero, the authentication tag does not depends on the field L encoding the length of P and A. There are no obvious ways to detect this condition for an attacker, and the specification admits this possibility in favor of complicating the flow with additional checks and regeneration of values. In AES-GCM-SST, H and Q are generated with a permutation on different input, so H and Q cannot both be zero.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign the entries in the first two columns of <xref target="iana-algs"/> to the "AEAD Algorithms" registry under the "Authenticated Encryption with Associated Data (AEAD) Parameters" heading with this document as reference.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="RFC8452">
          <front>
            <title>AES-GCM-SIV: Nonce Misuse-Resistant Authenticated Encryption</title>
            <author fullname="S. Gueron" initials="S." surname="Gueron"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="Y. Lindell" initials="Y." surname="Lindell"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This memo specifies two authenticated encryption algorithms that are nonce misuse resistant -- that is, they do not fail catastrophically if a nonce is repeated.</t>
              <t>This document is the product of the Crypto Forum Research Group.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8452"/>
          <seriesInfo name="DOI" value="10.17487/RFC8452"/>
        </reference>
        <reference anchor="AES" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf">
          <front>
            <title>Advanced Encryption Standard (AES)</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="May"/>
          </front>
          <seriesInfo name="NIST" value="Federal Information Processing Standards Publication 197"/>
        </reference>
        <reference anchor="Rijndael" target="https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf">
          <front>
            <title>AES Proposal: Rijndael</title>
            <author initials="" surname="Joan Daemen">
              <organization/>
            </author>
            <author initials="" surname="Vincent Rijmen">
              <organization/>
            </author>
            <date year="2003" month="September"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC9605">
          <front>
            <title>Secure Frame (SFrame): Lightweight Authenticated Encryption for Real-Time Media</title>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="S. G. Murillo" initials="S. G." surname="Murillo"/>
            <author fullname="R. Barnes" initials="R." role="editor" surname="Barnes"/>
            <author fullname="Y. Fablet" initials="Y." surname="Fablet"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>This document describes the Secure Frame (SFrame) end-to-end encryption and authentication mechanism for media frames in a multiparty conference call, in which central media servers (Selective Forwarding Units or SFUs) can access the media metadata needed to make forwarding decisions without having access to the actual media.</t>
              <t>This mechanism differs from the Secure Real-Time Protocol (SRTP) in that it is independent of RTP (thus compatible with non-RTP media transport) and can be applied to whole media frames in order to be more bandwidth efficient.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9605"/>
          <seriesInfo name="DOI" value="10.17487/RFC9605"/>
        </reference>
        <reference anchor="I-D.irtf-cfrg-aegis-aead">
          <front>
            <title>The AEGIS Family of Authenticated Encryption Algorithms</title>
            <author fullname="Frank Denis" initials="F." surname="Denis">
              <organization>Fastly Inc.</organization>
            </author>
            <author fullname="Samuel Lucas" initials="S." surname="Lucas">
              <organization>Individual Contributor</organization>
            </author>
            <date day="14" month="October" year="2024"/>
            <abstract>
              <t>   This document describes the AEGIS-128L, AEGIS-256, AEGIS-128X, and
   AEGIS-256X AES-based authenticated encryption algorithms designed for
   high-performance applications.

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

Discussion Venues

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aegis-aead-13"/>
        </reference>
        <reference anchor="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 557?>

<section anchor="aes-gcm-sst-test-vectors">
      <name>AES-GCM-SST Test Vectors</name>
      <section anchor="aes-gcm-sst-test-1-128-bit-key">
        <name>AES-GCM-SST Test #1 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 22 ce 92 da cb 50 77 4b ab 0d 18 29 3d 6e ae 7f }
         Q = { 03 13 63 96 74 be fa 86 4d fa fb 80 36 b7 a0 3c }
         M = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
]]></artwork>
        <section numbered="false" anchor="case-1a">
          <name>Case #1a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
       TAG = { 9b 1d 49 ea }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1b">
          <name>Case #1b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 7f f3 cb a4 d5 f3 08 a5 70 4e 2f d5 f2 3a e8 f9 }
       TAG = { 7f f3 cb a4 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1c">
          <name>Case #1c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { f8 de 17 85 fd 1a 90 d9 81 8f cb 7b 44 69 8a 8b }
       TAG = { f8 de 17 85 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1d">
          <name>Case #1d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { 93 43 56 14 0b 84 48 2c d0 14 c7 40 7e e9 cc b6 }
       TAG = { 93 43 56 14 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d c0 cb c7 85 a7 a9 20 db 42 28 ff 63 32 10 }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1e">
          <name>Case #1e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { f8 50 b7 97 11 43 ab e9 31 5a d7 eb 3b 0a 16 81 }
       TAG = { f8 50 b7 97 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-2-128-bit-key">
        <name>AES-GCM-SST Test #2 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 2d 6d 7f 1c 52 a7 a0 6b f2 bc bd 23 75 47 03 88 }
         Q = { 3b fd 00 96 25 84 2a 86 65 71 a4 66 e5 62 05 92 }
         M = { 9e 6c 98 3e e0 6c 1a ab c8 99 b7 8d 57 32 0a f5 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { 45 03 bf b0 96 82 39 b3 67 e9 70 c3 83 c5 10 6f }
       TAG = { 45 03 bf b0 96 82 39 b3 }
CIPHERTEXT = { b8 65 d5 16 07 83 11 73 21 f5 6c b0 75 45 16 b3
               da 9d b8 09 }
]]></artwork>
      </section>
      <section anchor="aes-gcm-sst-test-3-256-bit-key">
        <name>AES-GCM-SST Test #3 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
               10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 3b d9 9f 8d 38 f0 2e a1 80 96 a4 b0 b1 d9 3b 1b }
         Q = { af 7f 54 00 16 aa b8 bc 91 56 d9 d1 83 59 cc e5 }
         M = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
]]></artwork>
        <section numbered="false" anchor="case-3a">
          <name>Case #3a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
       TAG = { b3 35 31 c0 e9 6f 4a 03 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3b">
          <name>Case #3b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 63 ac ca 4d 20 9f b3 90 28 ff c3 17 04 01 67 61 }
       TAG = { 63 ac ca 4d 20 9f b3 90 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3c">
          <name>Case #3c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { e1 de bf fd 5f 3a 85 e3 48 bd 6f cc 6e 62 10 90 }
       TAG = { e1 de bf fd 5f 3a 85 e3 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3d">
          <name>Case #3d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { c3 5e d7 83 9f 21 f7 bb a5 a8 a2 8e 1f 49 ed 04 }
       TAG = { c3 5e d7 83 9f 21 f7 bb }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 11 7e 17 58 b5 ed d0 d6 5d 68 32 06 bb ad }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3e">
          <name>Case #3e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { 49 7c 14 77 67 a5 3d 57 64 ce fd 03 26 fe e7 b5 }
       TAG = { 49 7c 14 77 67 a5 3d 57 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-4-256-bit-key">
        <name>AES-GCM-SST Test #4 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb
               b3 a6 db 3c 87 0c 3e 99 24 5e 0d 1c 06 b7 b3 12 }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 13 53 4b f7 8a 91 38 fd f5 41 65 7f c2 39 55 23 }
         Q = { 32 69 75 a3 3a ff ae ac af a8 fb d1 bd 62 66 95 }
         M = { 59 48 44 80 b6 cd 59 06 69 27 5e 7d 81 4a d1 74 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c 73 49 bf 3c d5 4d }
       TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c }
CIPHERTEXT = { b5 c2 a4 07 f3 3e 99 88 de c1 2f 10 64 7b 3d 4f
               eb 8f f7 cc }
]]></artwork>
      </section>
    </section>
    <section removeInRFC="true" numbered="false" anchor="change-log">
      <name>Change Log</name>
      <t>Changes from -03 to -04:</t>
      <ul spacing="normal">
        <li>
          <t>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:
H4sIAAAAAAAAA+1923IbybXlO74iDxUzIR0DIO4gNZZtiKIkdosSJbJb3fbp
YBSqEkA1ARRcVSDFpnviPM48z/PEzLfM/Im/ZNbamVkXXChQ7Xacc8YdtgBW
ZeVlX9feubNQq9UqaZhO9VO198qbRmGijqLlPNWxOo0CrW7CdKLOtb+MtTqf
RHGqLrxxoh6/OjqtnZ9fPNmreMNhrK/5uLm0V/G9VI+j+PapCuejqFIJIn/u
zTBCEHujtDbz0jRJonnNH8XjmqeT2tif1ZIkrTW6lWQ5nIVJEkbz9HaBR04+
XLxU6pHypkmEMcJ5oBca/8zTvaraOxk8x0cU4xva7VXmy9lQx08rAWbwtOJH
80TPk2XyVKXxUlcwyXbFi7X31LW/ieKrcRwtF7hyFN8u0ki9jOLlbK9ypW9x
M3haUTU1159SNdZzHXspJsZLy3noR7F8TRZefDUN52MVhEkah8NlqgM11cFY
x5VrPV9iJkptHkUps8q9DzrRXuxP1Cu2442ZF05xgzT6Q6jTUT2Kx7zOVrg+
SdNF8nR/n814KbzWdddsnxf2TYf7v9dscjnF3J6xM/YxBlOXQ/SCe/Mfo/n+
ZxjDZ6YgaZIWRrbP1k1n9TD6XC+fu1+fpLPpXqXiLVMI2tNKDeITpiE4/1Sd
1jGFZBkbOTryZgtvPPdwzVw4RZ8TfVO8ATo8VYOZ91M0Vx/1EDIcX4e+TnDL
p4BTPI+8uRewsTbU9u3jf/DkubofzUqzGJRmcep9CmfRdTaJwVR/8iCaceGO
zOI4Dn2umNyzylK4lM3m/EZDrvPZeK6/+sz09wdtn1qb2FeliZ3Fevl//5cQ
xY5hrn8VTeYbbv6SOf6ILuuOo+X5VeZRjDsQzKcVPPDh5VG32ew9NV8POt2W
XB4cn/MSFMGLxxry5cRrfj1dLIdJfQ7BrY+j631+4ZX9lydn5/tvT84v6vxW
bx72a8tF0KwvgpHpyZqzQXDtzX3o4vHcp9ZBddV5Cop6caAeY+Ane9I+wbR1
QlNlZqLUHnvfQxcvsdrYm6oT3JTFRCRgBDFKqPCut0SdLYfT0DcNMCHTsVgh
UPpWtRqtthAh/BEP6OnmJftJ7Ofr5V/7Mx2E3v4ijn7UfprsyzqicewtJqFf
S9zwNXzWxssw0LBDOtmHwV3OYCKTfapXoK/1NFrwwn5sJ1DzZjOa0WCdasfn
XOIiSjzw103YLMhppqFSzX4qCCJlMPLm6oWnZyIfGxp8G4Ib85R9ujaGQud6
kWoabtCpATqFjtq56LT7zaYVncNeo8uvJ7UX9TBOR86OjEPQQXuBPHIyj4zd
XaeyXsThPK2Hnh+LsQRvOvvNw9bBGile0eSHvnF/YXqropHKnNxn6TG4Cq8i
M5EtDZLJTThXX028zfefe/C2p3o+D+dXm1t87f20nHCUU7AdBEuWBaq+ja4d
UVsd0uR88Oq41d5MlJubm3p7vFgIRUbpYv/i/NXl+WD/46v2pVs+r523L5vN
xuUA1nYucpbsn7drrXaj12nVfwoXJfqdL7QfjpxagHh4SrW6vdowTJUXxlgE
cMbI8zVsHQADHMks2YGyxxfnJ7Kawmpf6mG89OJc1WS1nR1Xmybjy8TbvNr+
5ann0bH7kzRfcafdPuysrfhbHRO6qFa9wfW6tR5F81FIzAJrTTmCukIwAJJE
qgbZ2hXkXog0AHFOHHG+kCKD5XiZpBn3P5682Jn595GjfXkE2+ONo/0XGfe7
jf4699/CH2NQBXKchlM998a6BoLkrN5hXe1XZ2dbRLrtFvVAHlvB5nIum412
gbmXJFWt0bYLOwOTG51+776FDYIgdMLtmJ04azF4iEyvrPRUwKDj3R+/OdrZ
ljX3m532Ydmky0Rh7pczBexJAUOPwozzFHB4po7CxUTHO0wTz6kXcJbjubrA
g1uMuJn1O3G5yQN9HfAJQHsqNiMxxjkyHdWgHTWd+fJabjPE/80QriT74Qxy
ltRMXwn8dK1dizXAe+JPdBjUPGBNov5kEi1q7H3N6tP3u7lj0aKTBQRR0Faq
MYOkhOx/t7DhwQ5U5BAF0n21nOuMakfRTFx3++D5gylXQgm1RY5JQILrUN/U
LJAoAASLIWu+HXY/WRw0GrX2wbDmbpl+shabqWYAUDZ7Ksf5mTJdPX84Sdal
CYao+2ozRRYIS71pru3gyFUKwBMFyylEouSGVv58oVPg2KTuJYtPv0+Kd06C
Z+1mr6xIGRCQiCsFJRkWUwwWBIUB/jI2vPtKnd8mWMGOmq8uzlW7Xe82mvfS
4CiaIo7D5B5gDVrtXmkNWR9qkKaefyWsMpH/finyZ4j/ZBfcV98QU2xfwxuG
8NMtCHh7NDuMo5tE7xPr7f9+PEyfNf8zO/r0zP+4uG68H3/XmqZXHydp0P5w
uDj+2D9uHg1W1i2SKVb7+Ly2O477vu7mvA7qZUUv9NgbIoSYbgGcDzF1yzmW
HgN61yZeMgF0p6k1ls+DxfP9KA6ozzR2G2xdH0+4yexg6r5xo6nXGM0adiPB
wPIDN5rIw26SkNNia5NX4RSmON5+P7omubcEEV9D2sCBuCxmJQt6fjrY3V12
9g+aK95SzeHgJbaCi4nQMfpTzCWl8dJPle9NpwgqOcoONHlRVx+9+XhLBFAv
pAo23D+rq+OrwJtMN9++qDOk9+bJPcQ4jd5vpgXaemkMA6DjXNVuxvuz6M/7
3jBapvslqpxSyNQ7iIt6/83JLis/Ob54uc0StCSsg09KdtIZMET0o81IWCLT
GvxbLM/XkkXNuJlgBfQg8kLAaZR+lMW0REBm5NxBvXi4g8rRtYk23r77+AuM
Mh+vfRs+pdrpT8BkM62AJyQMxhrUtReHnlmHaSo6Oo1uQM5x7MFaH519swvM
fKhEPVhkocDfO3lfgbJNIdT5RfOBZvL4WoCJ8D+dhHGQWzVYwuE08q9qvgBY
gwFr0agWOTRWzIX4PmUwqC083E32jdP7T62GdXv4RkOHDya98WHS3vzCxDc+
mfpezxJ8Udb8s5w6rRezmV/Gie1++Z2fRsVACpNq/VLv1d4fCylqviGFcKNG
UtQkJoKqkhS1FKTY4Lu6eWZ4uOK52v8xiY6JPTT3+Qb+1b9FcCqXBLB60wLQ
t5ZwjV4ftIHvgcnF0Ho8p+LYyG9DGPN0OygUxPsq83/35E/PzQRL6dHdTS64
8YJiEBaJWMgBNPqWirVvFmbH50ECnGVVSyYEqH4yD/+8LKVRIZD7WYTk3/jc
stjntsVSBl4Xz6NTZea0G0Q49V/F+marSH0bgu1r6LPRleUvdbwtIHiI7mYA
R0LtoZfAUEIV04mWPZoYUhBs1NqxTGAHnT0qjqBkBKJxyXcdn6sPHEFE6yya
3s6jGQXndDlNw0UmO+nESxF8aXU8QpwWWjxPyYyzxDxEe1AIz3bxiud1S8Z7
lPWljuHxd6P00fmHo9WgXNStZtStdrFJyJ4fne67+Hn/6OMRY5R9N2xrPVG/
ZBI2daS50d7VHMvXkrTAo7tgmnq2rC3S9fYWNBj/ndZstlgLuQjrqM0kLhE4
4DO9hIhcfoiGycS72eYXiNjFHcDQjXV8y/h86A1Dyb760wjgDzAwDLS3y84G
Yg4zhc23X0tMw6ltNWN2uusg3VDZ+YpdEWSzu9/p9z8nEV/rW0W7f00C/PIg
v+TQNi3yo07Q7xRavCZMTVnmh2js3Xi32/O1kriKtQ+Bqv+42NefYs3czr67
XtOfYFqaLf7TiNd3/I6vveky2204j4CiRQT9bU5uN8Rs511YVWG3oSmw9rme
TmGXdmZgb7/bW4/HL2AKxeLVvoFTLe07FXhb2tF86rIZ1PqLN+eqWW/v5lrt
lDfff14HePKvEH1s8b1N+N5araa8YcIoMq1ULiZQPKfZKtAjbkWKdf8SsLZ1
webJASQRyIK3XiCQ5Xbu4MWTfG+h7jbqEK7P1VCrJb2NPOrNb9WVvk1M5tuW
dURxVc2jVP3IoK7ZOpBMvuACZYQnAUGwlJkHMgfhaKRjjcAsUaM4mnEs8Upc
LAYivzCqZzcH4MaS5RBDqvdVaQJvFV5nYjqCj5rYFol6LR7wvSA07SFwmkcY
pypX+Sw0YurlUa2Q9/Xg/LUaIdjN6cPrZ+/efP/t4E1+R+aaJb9OvuWSwBc9
94ZTsipGQyEpEbrpZ669uCZ2coMpBeqTeTFrJHnTeTq9xep8UDaxvC8aXsx3
Zvy5tr2hh5xTFB/JQGEGXD5rbLyksKGCvtLIj6Z2bkIKc1WbBXIyoHps3CCH
B5ej+RgyHYCxMSc3YyN2P2LfekWuTKCiJFARMlgaZXIdc5+Z+Sc0vZbaAOhL
6oks5NvDkALWB3y+AkGm7DbZuSPD/9eNas3CIJjqSuURtwLjKDDIqVLZoddw
vlHpHlvmP1F3d/j4+WfS3MPKAw3GiYpQj3I1Qjtbt4G2wdJ4zRTPpKL04XU5
TYFhhxGpGI3SG8+mxieYlvkDfIPN4Sf7AN+uKXgZf4H28QmykXGyC+MKHMKf
RFuqGVpRi4h7x8CPS7DpJlpBP6IV1MmyQ8wU4e7OdfTzz1W18GI0WcIYTo10
T7mXHvrqBg8XREFUnEQypmAUxhAgN/CKEoTze5QgWfoEqqNlplSmRxAiAsGy
LmNImDe1gmwsyGsVGtsiuXvwVfrSgSybQ6YkYEG53pEvr8nnq3l0MzcGKHua
xpHAnyIt85YnOViigdQg7zNMhJi/yuK9hKSc5stzzNqm5GsL5ZQqlRPMX1mQ
R4kir6sWYikNgD+tg0Xmb8id/gQ9D2kVJtGNSmaYgfIn3hyzyqMISpMWzkex
lmmqUkQDbUrDMawbm8BE5wJTV9+w3iRdznF3els1oheEgTiEUTSdYlShWsAC
MmNFy5OlmNMMaA/G0Gwi6aBo/2NQM4y12RoT25ZYF1gQL3BwsGBxY/hJHZGO
Vknr5RmNqXV0YrMotW4kLxyALHszTYX3J1EoRsnc8JIEBizIjemUVUFJDuty
wrsrID2L/mIaTSGl8Q0SglkBSkSCvOksSvg0QBIGHKZ0kiNI5RCNXIhnZUGJ
5Q2ntLJ0ftapoEM9W6QQM3ANIwWhnzrpkqnb/VihxIwJT664aKZfLmM0jmdg
v2WhB2J6mCIkbOJd03VOQyMs8Kk1bipDlOxSEqPsEBsagmzojJxJhgJpEs03
0McHKRGH/mT13Pp+mp5V5lJEYpeEEeM3CYExZCDel6aavAJBD3sK9zimHk11
TgkZDnppFwilhmawPmjMRUK+oAMg9IKgWQiUzWTrGFyOZMMpZx8nIbTWuQx5
8Oj5UY3R1OMj4zZyd7C6womXbMEI5YCraqx/0W0kNpUtExMBM1SErTgvm9+C
q6qqdktgWnbTuQtqkkgk5ShS03B+BUm+pbjCcE2XAQnWfYXVyKYyfUCvU+5K
YiZyC9JChxJ780SoKhBjkWckbL8WiknNzlzL/IEb5uPEIDfMVMYwfx00yoPl
40j8XKhxKA4FcRgsuZ4FVS+1S6Y1BHSFbsfR0o6mAVhnxCZ4IqHiTcTs38oT
k3A8AQVZGB2KAwdfSmWFigHjBKasqobLNGMpVgQUFV6HwRJa4+YA1tEmeZCl
MVXXZyJGHDwrm523oJ2OyTe0hVESr49Ggm9NT+geHgi6iUZYPsCKhyBDzYSy
HpdNdJDhj9x6V0XGMUI+HCeUw/0ylKMVSOCe+IQOaTAyvBqUZFKs/JSBnBXL
OeyZg8awkdF7ik107+MGBM5Af5UYAS+7JHKGdCAqO7r4QDkYip+Tib+m2onC
sfjx55/lK4sfqakrasHqeK6ZnhYkspA449LNhAq48G6nkRdYwRGgC1lORSIw
NyPJ1SLKxmUT1GReA2Sj/wHOu7VWfeZkH5OBU5mP04kVw3Bu12uct1FGKIdk
CauF3ulgh3gCyo11L2AmoaOMteDkAPK18TtxSIF+yb1pgsiCYgimKvhRw90k
MQV3xqBwHBJ0qOkLYHDCK3pRY5J4B2aprusGH23KGqHLv/73/6Zav4V9/R33
MC7NYn+7zwtKkyjeiHZT5m3jSkwcfWO1cnHd24k5kae8jbBQlkvBAFVYckmF
DcLEX8oRCedb6Xd8QZvGzRTARok0VTBSQ6YKNUYQpn9jobuFXM7nxaWdi2QT
/Mqx4kowOcq1ybMcmeZFp1UKkhkoFBz6N0kTkJr35Qlc5OXyBWEhtvv3kjgw
Zok1/DSCRqYs4cmDC0HYDqKb9MLG7MLns7NfnF/YFHq4qbq82pq8FJMPiYSz
D85B1NXJOrpJwhnrmriqgghUc4ozhC1wndsh4fw6cvaN+g/lF+pZw2uhpmWV
EY+//uv/BB3Sqa4xiIAgXZtyZFwXQEV20+6GkA7MigkQ6DRBTOmpYnFbIT0T
s1RunthQKDDgoQBVwG/mBEBphokWwbnhXI5JZ/s24QxsmmWbUJzGzOzjLLJ9
nNJMMkGTnRpqEETj3GZ+WvVOFjHZ3UAjiffnbjLuZzmcnRM3d3f4sLNwCRzD
UFcILGrJ22IgYCBX8zyCp+015mLmyu6cCyWIDDYYoIwOhSo2LlXKCInB86SJ
Doqisjq6KfMqZ0g4W9qb/LAbZ5VVKHbrrXbnr//6P+RLH3OQovIsQmUyiX2F
C6PnUXEu6+Pf3dkqW6qCN00n0XIs6hDTft7SHEuJj4iHrVvm5FjJy8pOmFrH
vxuPgWU4DueCAO2JF6MtWW18FdocaBMO80AUQl+g/2rB33jiOzX0XSwe1111
eUEjMLcSUYKaBSdsfC59jUiZBLA8BWjDMuJVY1poeuQMBsGcOZ9Q4hwsWxis
E84tspQ3IPcNEUUMq1IXZIMafBOSYl6uzvvuDt+MjBW52WlYbnYOLDc7Agge
8cgCy26E9uzoBRco9ikxHo6c4AnJRO2dfnN+wdOY/FRv38n3D8fvvzn5cPyC
389fD968yb5UbIvz1+++efMi/5Y/efTu9PT47QvzMK6q0qXK3ung+z2zvL13
Zxcn794O3uyZtF9R28XBilMXjw8ARaH0kgqYgUB6qAWhPj86+z//u9nB6v8J
Lq3VbB6CSuaPg2a/wzgXCmJGk+jE/MlwqmISDOxFUlLeIkwBxKtUXGCum7mi
KIOa//wnUuaHp+q3Q3/R7PzOXuCCSxcdzUoXhWbrV9YeNkTccGnDMBk1S9dX
KF2e7+D70t+O7oWLv/09D5+pWvPg97+rGBnJNQugyZqTxGAsm6V13HoKKqmv
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
j2seyzrwrxew0O3/AQto98q1kwAA

-->

</rfc>
