<?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.23 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-cfrg-aes-gcm-sst-17" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title abbrev="GCM-SST">Galois Counter Mode with Strong Secure Tags (GCM-SST)</title>
    <seriesInfo name="Internet-Draft" value="draft-mattsson-cfrg-aes-gcm-sst-17"/>
    <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="2025" month="February" day="07"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 507?>

<t>This  document defines the Galois Counter Mode with Strong Secure 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 H<sub>2</sub>, the derivation of fresh subkeys H and H<sub>2</sub> for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV. This enables truncated tags with near-ideal forgery probabilities, even against multiple forgery attacks, which are significant security improvements over GCM. GCM-SST is designed for security protocols with replay protection and addresses the strong industry demand for fast encryption with minimal overhead and high security. This document registers several instances of GCM-SST using Advanced Encryption Standard (AES) and Rijndael-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 511?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Advanced Encryption Standard (AES) in Galois Counter Mode (AES-GCM) <xref target="GCM"/> is a widely used AEAD algorithm <xref target="RFC5116"/> due to its attractive performance in both software and hardware as well as its provable security. During the NIST standardization, Ferguson pointed out two weaknesses in the GCM authentication function <xref target="Ferguson"/>. The first weakness significantly increases the probability of successful forgery for long messages. 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. The two weaknesses are problematic for all tag lengths but are especially critical when short tags are used.</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"/>. NIST has not addressed the weaknesses for longer tags, such as the absence of reforgeability resistance <xref target="Reforge"/>. When AES-GCM is used in QUIC <xref target="RFC9001"/>, the expected number of forgeries can be equivalent to that of an ideal MAC with a length of 64.4 bits. Reforgeability resistance is a key design criterion in modern AEAD algorithms such as <xref target="AEZ"/>.</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 as each packet typically encodes only 20 ms of audio, forgery of individual packets is not a big concern and barely noticeable. 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 limits the number of forgery attempts. For all applications of short tags it is essential that the MAC behaves like an ideal MAC, i.e., the forgery probability is ≈ 1 / 2<sup>tag_length</sup> even after many generated MACs, many forgery attempts, and after a successful forgery. 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. 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 Strong Secure Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface, allowing it to be used with any keystream generator, not just 128-bit block ciphers. The main differences from GCM <xref target="GCM"/> are the introduction of an additional subkey H<sub>2</sub>, the derivation of fresh subkeys H and H<sub>2</sub> for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, see <xref target="GCM-SST"/>. These changes enable truncated tags with near-ideal forgery probabilities, even against multiple forgery attacks, see <xref target="Security"/>. GCM-SST is designed for use in security protocols with replay protection such as TLS <xref target="RFC8446"/>, QUIC <xref target="RFC9000"/>, SRTP <xref target="RFC3711"/>, PDCP <xref target="PDCP"/>, etc. Security protocols with replay protection are by far the most important use case for GCM. In unicast scenarios, its authentication tag behaves like an ideal MAC, including reforgeability resistance. Users and implementers of cryptography expect algorithms to behave like ideal MACs. Compared to Poly1305 <xref target="RFC7539"/> and GCM <xref target="RFC5116"/>, GCM-SST can provide better integrity with less overhead. Its performance in hardware and software is similar to GCM <xref target="GCM"/>. In software, the two additional AES invocations are 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) <xref target="Rijndael"/> in counter mode as keystream generators and with tag lengths of 48, 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 for authentication and key generation in 3GPP TS 35.234–35.237 <xref target="WID23"/>. NIST plans to standardize Rijndael-256 <xref target="Plans"/>, although there might be revisions to the key schedule. Rijndael-256 has very good performance on modern x86-64 platforms equipped with AES-NI and VAES instructions <xref target="Ducker"/>. Compared to AEGIS <xref target="I-D.irtf-cfrg-aegis-aead"/>, AES-GCM-SST offers significantly higher performance in pure hardware implementations while retaining the advantage of being a mode of operation for AES.</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 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>tag_length is the length of tag in bits</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>⊕ is the bitwise exclusive or operator XOR</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 Strong Secure Tags (GCM-SST)</name>
      <t>This section defines the Galois Counter Mode with Strong Secure 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, H<sub>2</sub>, 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 H<sub>2</sub> 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. Figures illustrating the GCM-SST encryption and decryption functions can be found in <xref target="SST1"/>, <xref target="SST2"/>, and <xref target="Inoue"/>.</t>
      <t>For every computational procedure that is specified in this document, a conforming implementation <bcp14>MAY</bcp14> replace the given set of steps with any mathematically equivalent set of steps. In other words, different procedures that produce the correct output for every input are permitted.</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 (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], H<sub>2</sub> = Z[1], M = Z[2]</t>
          </li>
          <li>
            <t>Let ct = P ⊕ 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(H<sub>2</sub>, X ⊕ L) ⊕ M</t>
          </li>
          <li>
            <t>Let tag = truncate(full_tag, tag_length)</t>
          </li>
          <li>
            <t>Return (ct, tag)</t>
          </li>
        </ol>
        <t>The encoding of L aligns with existing implementations of GCM.</t>
      </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 (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], H<sub>2</sub> = 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(H<sub>2</sub>, X ⊕ L) ⊕ 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 ⊕ truncate(Z[3:n + 2], len(ct))</t>
          </li>
          <li>
            <t>If N passes replay protection, 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 been returned for the same nonce. Replay protection can be performed either before step 1 or during step 11. Protocols with nonce-hiding mechanisms <xref target="Bellare"/>, such as QUIC <xref target="RFC9001"/>, implement replay protection after decryption to mitigate timing side-channel attacks.</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 in GCM-SST</name>
      <t>This section defines Advanced Encryption Standard (AES) and Rijndael with 256-bit keys and blocks (Rijndael-256) <xref target="Rijndael"/> in Galois Counter Mode with Strong Secure 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 AES in counter mode.</t>
      </section>
      <section anchor="rijndael-gcm-sst">
        <name>Rijndael-GCM-SST</name>
        <t>When GCM-SST is instantiated with Rijndael-256 (Rijndael-GCM-SST), the keystream generator is Rijndael-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 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 with tag lengths of 48, 96, and 112 bits. The key length and tag length are related to different security properties, and an application encrypting audio packets with short tags might require high 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_6</td>
              <td align="right">16</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">48</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_6</td>
              <td align="right">32</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">48</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_6</td>
              <td align="right">32</td>
              <td align="right">2<sup>36</sup> - 48</td>
              <td align="right">48</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, 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>
          <li>
            <t>Q_MAX (maximum number of invocations of the encryption function) is 2<sup>32</sup> for AES-GCM-SST, while for Rijndael-GCM-SST, it is 2<sup>88</sup>.</t>
          </li>
          <li>
            <t>V_MAX (maximum number of invocations of the decryption function) is 2<sup>48</sup> for AES-GCM-SST, while for Rijndael-GCM-SST, it is 2<sup>88</sup>.</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> - 48). Protocols that employ GCM-SST <bcp14>MAY</bcp14> impose stricter limits on P_MAX and A_MAX. Just like <xref target="RFC5116"/>, AES-GCM-SST and Rijndael-GCM-SST only allow a fixed nonce length (N_MIN = N_MAX) of 96 bits and 224 bits, respectively. For the AEAD algorithms in <xref target="iana-algs"/> the worst-case forgery probability is bounded by ≈ 1 / 2<sup>tag_length</sup> <xref target="Nyberg"/>. This is true for all allowed plaintext and associated data lengths.</t>
        <t>The V_MAX constraint ensures that the Bernstein bound factor is δ ≈ 1 for AES-GCM-SST in protocols where ℓ ≈ 2<sup>12</sup>, such as QUIC <xref target="RFC9000"/>, and always δ ≈ 1 for Rijndael-GCM-SST. In addition to restricting the Bernstein bound factor, the Q_MAX constraint establishes a minimum threshold for the complexity of distinguishing attacks and a maximum threshold for the fraction of a plaintext bit that an attacker can recover. Since encryption and decryption queries play an equivalent role in the Bernstein bound, it follows that Q_MAX ≤ V_MAX. Protocols that employ GCM-SST <bcp14>MAY</bcp14> impose stricter limits on Q_MAX and V_MAX.</t>
        <t>Protocols utilizing AES-GCM-SST <bcp14>MUST</bcp14> enforce stricter limits on P_MAX, A_MAX, Q_MAX, and/or V_MAX to ensure that (P_MAX + A_MAX) ⋅ (Q_MAX + V_MAX) ⪅ 2<sup>66</sup>. This ensures that δ ≈ 1.</t>
        <t>Protocols utilizing AES-GCM-SST <bcp14>MUST</bcp14> enforce stricter limits on P_MAX and/or Q_MAX to ensure that Q_MAX ⋅ P_MAX ⪅ 2<sup>63</sup>. This aligns with <xref target="ANSSI"/> requirements and ensures that an attacker cannot recover more than ≈ 1 / 2<sup>10.47</sup> ≈ 0.0007 bits of the plaintexts <xref target="Entropy"/>.</t>
        <t>Refer to Sections <xref target="Int" format="counter"/>, <xref target="Conf" format="counter"/>, and <xref target="Comp" format="counter"/> for further details.</t>
      </section>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>GCM-SST introduces an additional subkey H<sub>2</sub>, alongside the subkey H. The inclusion of H<sub>2</sub> enables truncated tags with forgery probabilities close to ideal. Both H and H<sub>2</sub> 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 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 and <bcp14>MUST</bcp14> be used with replay protection. Reuse of nonces in successful encryption and decryption function calls enable universal forgery <xref target="Lindell"/><xref target="Inoue"/>. For a given tag length, GCM-SST has strictly better security properties than GCM. GCM allows universal forgery with lower complexity than GCM-SST, even when nonces are not reused. Implementations <bcp14>SHOULD</bcp14> add randomness to the nonce by XORing a unique number like a sequence number with a per-key random secret salt of the same length as the nonce. This significantly improves security against precomputation attacks and multi-key attacks <xref target="Bellare"/> and is for example implemented in TLS 1.3 <xref target="RFC8446"/>, OSCORE <xref target="RFC8613"/>, and <xref target="Ascon"/>. By increasing the nonce length from 96 bits to 224 bits, Rijndael-GCM-SST can offer significantly greater security against precomputation and multi-key attacks compared to AES-256-GCM-SST.</t>
      <t>Refer to <xref target="onemany"/> for considerations on using GCM-SST in multicast or broadcast scenarios. Unless otherwise specified, formulas for expected number of forgeries apply to unicast scenarios.</t>
      <section anchor="Int">
        <name>Integrity</name>
        <t>The GCM-SST tag_length <bcp14>SHOULD NOT</bcp14> be smaller than 4 bytes and cannot be larger than 16 bytes. Let ℓ = (P_MAX + A_MAX) / 16 + 1. When tag_length &lt; 128 - log2(ℓ) bits, the worst-case forgery probability is bounded by ≈ 1 / 2<sup>tag_length</sup> <xref target="Nyberg"/>. The tags in the AEAD algorithms 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(ℓ) 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 expected number of forgeries, when tag_length &lt; 128 - log2(ℓ) bits, depends on the keystream generator. For an ideal keystream generator, the expected number of forgeries is ≈ v / 2<sup>tag_length</sup>, where v is the number of decryption queries, which is ideal. For AES-GCM-SST, the expected number of forgeries is ≈ δ<sub>128</sub> ⋅ v / 2<sup>tag_length</sup>, where the Bernstein bound factor δ<sub>b</sub> ⪅ 1 + (q + v)<sup>2</sup> ⋅ ℓ<sup>2</sup> / 2<sup>b+1</sup>, which is ideal when δ<sub>128</sub> ≈ 1. This far outperforms AES-GCM, where the expected number of forgeries is ≈ δ<sub>128</sub> ⋅ v<sup>2</sup> ⋅ ℓ / 2<sup>tag_length+1</sup>. For Rijndael-GCM-SST, the expected number of forgeries is ≈ δ<sub>256</sub> ⋅ v / 2<sup>tag_length</sup> ≈ v / 2<sup>tag_length</sup>, which is ideal. For further details on the integrity advantages and expected number of forgeries for GCM and GCM-SST, see <xref target="Iwata"/>, <xref target="Inoue"/>, <xref target="Bernstein"/>, and <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-bit tags satisfies when δ ≈ 1. Achieving a comparable level of security with GCM, CCM, or Poly1305 is nearly impossible.</t>
      </section>
      <section anchor="Conf">
        <name>Confidentiality</name>
        <t>The confidentiality offered by GCM-SST against passive attackers depends on the keystream generator. For block ciphers in counter mode it is determined by the birthday bound, with AES-based ciphers particularly constrained by their narrow 128-bit block size. For AES-GCM-SST, the confidentiality is equal to AES-GCM <xref target="GCM"/>. Regardless of key length, an attacker can mount a distinguishing attack with a complexity of approximately 2<sup>129</sup> / σ, where σ ⪅ P_MAX ⋅ Q_MAX / 16 is is the total plaintext length measured in 128-bit chunks. In contrast, the confidentiality offered by Rijndael-GCM-SST against passive attackers is significantly higher. The complexity of distinguishing attacks for Rijndael-GCM-SST is approximately 2<sup>258</sup> / σ. McGrew, Leurent, and Sibleyras <xref target="Impossible"/><xref target="Difference"/> demonstrate that for block ciphers in counter mode, an attacker with partial knowledge of the plaintext can execute plaintext-recovery attacks against counter mode with roughly the same complexity (up to logaritmic factors) as distinguishing attacks. However, Preuß Mattsson <xref target="Entropy"/> demonstrated that an attacker cannot recover more than ≈ σ<sup>2</sup> / 2<sup>b</sup> bits of the plaintext, where b is the block size. Given the constraints outlined in <xref target="instances"/>, an attacker cannot recover more than 0.0007 bits of AES-GCM-SST plaintexts.</t>
        <t>While Rijndael-256 in counter mode can provide 128-bit 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 GCM-SST against active attackers is directly linked to the forgery probability. Depending on the protocol and application, forgeries can 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>
      </section>
      <section anchor="weak-keys">
        <name>Weak keys</name>
        <t>In general, there is a very small possibility in GCM-SST that either or both of the subkeys H and H<sub>2</sub> 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 H<sub>2</sub> is zero, the authentication tag does not depend on P and A. Due to the masking with M, 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 H<sub>2</sub> are generated with a permutation on different input, so H and H<sub>2</sub> cannot both be zero.</t>
      </section>
      <section anchor="replay-protection">
        <name>Replay Protection</name>
        <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"/>. Implementing replay protection by requiring ciphertexts to arrive in order and terminating the connection if a single decryption fails is <bcp14>NOT RECOMMENDED</bcp14> as this approach reduces robustness and availability while exposing the system to denial-of-service attacks <xref target="Robust"/>.</t>
      </section>
      <section anchor="Comp">
        <name>Comparison with ChaCha20-Poly1305 and AES-GCM</name>
        <t><xref target="comp1"/> compares the integrity of GCM-SST, ChaCha20-Poly1305 <xref target="RFC7539"/>, and AES-GCM <xref target="RFC5116"/> in unicast security protocols with replay protection, where v represents the number of decryption queries. In Poly1305 and GCM, the forgery probability depends on ℓ = (P_MAX + A_MAX) / 16 + 1. In AES-based algorithms, the Bernstein bound introduces a factor δ ⪅ 1 + (q + v)<sup>2</sup> ⋅ ℓ<sup>2</sup> / 2<sup>129</sup>. GCM-SST requires δ ≈ 1, a property not mandated by GCM. Notably, GCM does not provide any reforgeability resistance, which significantly increases the expected number of forgeries. Refer to <xref target="Procter"/>, <xref target="Iwata"/>, and <xref target="Multiple"/> for further details.</t>
        <table anchor="comp1">
          <name>Comparison of integrity among GCM-SST, ChaCha20-Poly1305, and AES-GCM in unicast security protocols with replay protection. v is the number of decryption queries, ℓ is the maximum length of plaintext and associated data, measured in 128-bit chunks, and δ is the Bernstein bound factor.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="right">Forgery probability before first forgery</th>
              <th align="right">Forgery probability after first forgery</th>
              <th align="right">Expected number of forgeries</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">GCM_SST_14</td>
              <td align="right">1 / 2<sup>112</sup></td>
              <td align="right">1 / 2<sup>112</sup></td>
              <td align="right">v / 2<sup>112</sup></td>
            </tr>
            <tr>
              <td align="left">GCM_SST_12</td>
              <td align="right">1 / 2<sup>96</sup></td>
              <td align="right">1 / 2<sup>96</sup></td>
              <td align="right">v / 2<sup>96</sup></td>
            </tr>
            <tr>
              <td align="left">POLY1305</td>
              <td align="right">ℓ / 2<sup>103</sup></td>
              <td align="right">ℓ / 2<sup>103</sup></td>
              <td align="right">v ⋅ ℓ / 2<sup>103</sup></td>
            </tr>
            <tr>
              <td align="left">GCM</td>
              <td align="right">ℓ / 2<sup>128</sup></td>
              <td align="right">1</td>
              <td align="right">δ ⋅ v<sup>2</sup> ⋅ ℓ / 2<sup>129</sup></td>
            </tr>
          </tbody>
        </table>
        <t><xref target="comp2"/> compares the integrity of GCM-SST, ChaCha20-Poly1305 <xref target="RFC7539"/>, and AES-GCM <xref target="RFC5116"/> in unicast QUIC <xref target="RFC9000"/><xref target="RFC9001"/>, a security protocol with mandatory replay protection, and where the combined size of plaintext and associated data is less than ≈ 2<sup>16</sup> bytes (ℓ ≈ 2<sup>12</sup>). GCM_SST_14 and GCM_SST_12 provide better integrity than ChaCha20-Poly1305 <xref target="RFC7539"/> and AES-GCM <xref target="RFC5116"/>, while also reducing overhead by 2–4 bytes. For GCM-SST and ChaCha20-Poly1305, the expected number of forgeries is linear in v when replay protection is employed. ChaCha20-Poly1305 achieves a security level equivalent to that of an ideal MAC with a length of 91 bits. For AES-GCM, replay protection does not mitigate reforgeries, the expected number of forgeries grows quadratically with v, and GCM provides significantly worse integrity than GCM-SST and ChaCha20-Poly1305 unless v is kept very small. With v = 2<sup>52</sup> as allowed for AES-GCM in QUIC <xref target="RFC9001"/>, the expected number of forgeries for AES-GCM is equivalent to that of an ideal MAC with a length of 64.4 bits. The effective tag length of AES-GCM in QUIC is 117 - log2(δ ⋅ v).</t>
        <table anchor="comp2">
          <name>Comparison of integrity among GCM-SST, ChaCha20-Poly1305, and AES-GCM in unicast QUIC, where the maximum packet size is 65536 bytes.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="right">Tag length (bytes)</th>
              <th align="right">Forgery probability before first forgery</th>
              <th align="right">Forgery probability after first forgery</th>
              <th align="right">Expected number of forgeries</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">GCM_SST_14</td>
              <td align="right">14</td>
              <td align="right">1 / 2<sup>112</sup></td>
              <td align="right">1 / 2<sup>112</sup></td>
              <td align="right">v / 2<sup>112</sup></td>
            </tr>
            <tr>
              <td align="left">GCM_SST_12</td>
              <td align="right">12</td>
              <td align="right">1 / 2<sup>96</sup></td>
              <td align="right">1 / 2<sup>96</sup></td>
              <td align="right">v / 2<sup>96</sup></td>
            </tr>
            <tr>
              <td align="left">POLY1305</td>
              <td align="right">16</td>
              <td align="right">1 / 2<sup>91</sup></td>
              <td align="right">1 / 2<sup>91</sup></td>
              <td align="right">v / 2<sup>91</sup></td>
            </tr>
            <tr>
              <td align="left">GCM</td>
              <td align="right">16</td>
              <td align="right">1 / 2<sup>116</sup></td>
              <td align="right">1</td>
              <td align="right">δ ⋅ v<sup>2</sup> / 2<sup>117</sup></td>
            </tr>
          </tbody>
        </table>
        <t><xref target="comp3"/> compares the confidentiality of Rijndael-GCM-SST, AES-256-GCM-SST, SNOW 5G-GCM-SST, and ChaCha20-Poly1305 <xref target="RFC7539"/>, all of which use 256-bit keys, against passive attackers. The confidentiality of block ciphers in counter mode is determined by the birthday bound, with AES-based ciphers particularly constrained by their narrow 128-bit block size. While plaintext-recovery attacks on block ciphers in counter mode have a complexity similar to distinguishing attacks, the attacker cannot recover more than ≈ σ<sup>2</sup> / 2<sup>b</sup> bits of the plaintexts <xref target="Entropy"/>.</t>
        <table anchor="comp3">
          <name>Comparison of confidentiality against passive attackers among Rijndael-GCM-SST, SNOW 5G-GCM-SST, ChaCha20-Poly1305, and AES-256-GCM. σ is is the total plaintext length measured in 128-bit chunks.</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="center">Key size (bits)</th>
              <th align="center">Complexity of distinguishing attacks</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CHACHA20_POLY1305</td>
              <td align="center">256</td>
              <td align="center">2<sup>256</sup></td>
            </tr>
            <tr>
              <td align="left">SNOW_5G_GCM_SST</td>
              <td align="center">256</td>
              <td align="center">2<sup>256</sup></td>
            </tr>
            <tr>
              <td align="left">RIJNDAEL_GCM_SST</td>
              <td align="center">256</td>
              <td align="center">≈ 2<sup>258</sup> / σ</td>
            </tr>
            <tr>
              <td align="left">AES_256_GCM_SST</td>
              <td align="center">256</td>
              <td align="center">≈ 2<sup>129</sup> / σ</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="onemany">
        <name>Multicast and Broadcast</name>
        <t>While GCM-SST offers stronger security properties than GCM for a given tag length in multicast or broadcast contexts, it does not behave exactly like an ideal MAC. With an ideal MAC, a successful forgery against one recipient allows the attacker to reuse the same forgery against all other recipients. In contrast, with GCM, a successful forgery against one recipient enables the attacker to generate an unlimited number of new forgeries for all recipients.</t>
        <t>With GCM-SST, a few successful forgeries against a few recipients allow the attacker to create one new forgery for all other recipients. While the total number of forgeries in GCM-SST matches that of an ideal MAC, the diversity of these forgeries is higher. To achieve one distinct forgery per recipient with an ideal MAC, the attacker would need to send on average 2<sup>tag_length</sup> forgery attempts to each recipient. GCM-SST performs equally well or better than an ideal MAC with length tag_length - log2(r), where r is the number of recipients. Thus, in one-to-many scenarios with replay protection, the expected number of distinct forgeries is ≈ v ⋅ r / 2<sup>tag_length</sup>, and the effective tag length of GCM-SST is tag_length - log2(r).</t>
      </section>
    </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="RFC7539">
          <front>
            <title>ChaCha20 and Poly1305 for IETF Protocols</title>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a "combined mode", or Authenticated Encryption with Associated Data (AEAD) algorithm.</t>
              <t>This document does not introduce any new crypto, but is meant to serve as a stable reference and an implementation guide. It is a product of the Crypto Forum Research Group (CFRG).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7539"/>
          <seriesInfo name="DOI" value="10.17487/RFC7539"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </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="10" month="January" year="2025"/>
            <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-15"/>
        </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="ANSSI" target="https://cyber.gouv.fr/sites/default/files/2021/03/anssi-guide-mecanismes_crypto-2.04.pdf">
          <front>
            <title>Guide des mécanismes cryptographiques</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="January"/>
          </front>
          <seriesInfo name="ANSSI" value="PG-083"/>
        </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="2005" month="May"/>
          </front>
        </reference>
        <reference anchor="Difference" target="https://link.springer.com/chapter/10.1007/978-3-319-78375-8_24">
          <front>
            <title>The Missing Difference Problem, and Its Applications to Counter Mode Encryption</title>
            <author initials="" surname="Gaëtan Leurent">
              <organization/>
            </author>
            <author initials="" surname="Ferdinand Sibleyras">
              <organization/>
            </author>
            <date year="2018" month="March"/>
          </front>
        </reference>
        <reference anchor="Impossible" target="https://eprint.iacr.org/2012/623.pdf">
          <front>
            <title>Impossible plaintext cryptanalysis and probable-plaintext collision attacks of 64-bit block cipher modes</title>
            <author initials="" surname="David McGrew">
              <organization/>
            </author>
            <date year="2012" month="November"/>
          </front>
        </reference>
        <reference anchor="Reforge" target="https://eprint.iacr.org/2017/332.pdf">
          <front>
            <title>Reforgeability of Authenticated Encryption Schemes</title>
            <author initials="" surname="Christian Forler">
              <organization/>
            </author>
            <author initials="" surname="Eik List">
              <organization/>
            </author>
            <author initials="" surname="Stefan Lucks">
              <organization/>
            </author>
            <author initials="" surname="akob Wenzel">
              <organization/>
            </author>
            <date year="2017" month="April"/>
          </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="Iwata" target="https://eprint.iacr.org/2012/438.pdf">
          <front>
            <title>Breaking and Repairing GCM Security Proofs</title>
            <author initials="" surname="Tetsu Iwata">
              <organization/>
            </author>
            <author initials="" surname="Keisuke Ohashi">
              <organization/>
            </author>
            <author initials="" surname="Kazuhiko Minematsu">
              <organization/>
            </author>
            <date year="2012" month="August"/>
          </front>
        </reference>
        <reference anchor="Bernstein" target="https://cr.yp.to/antiforgery/permutations-20050323.pdf">
          <front>
            <title>Stronger Security Bounds for Permutations</title>
            <author initials="" surname="Daniel J Bernstein">
              <organization/>
            </author>
            <date year="2005" month="March"/>
          </front>
        </reference>
        <reference anchor="Ducker" target="https://rd.springer.com/chapter/10.1007/978-3-030-97652-1_18">
          <front>
            <title>Software Optimization of Rijndael for Modern x86-64 Platforms</title>
            <author initials="" surname="Nir Drucker">
              <organization/>
            </author>
            <author initials="" surname="Shay Gueron">
              <organization/>
            </author>
            <date year="2022" month="May"/>
          </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>
        <reference anchor="Procter" target="https://eprint.iacr.org/2014/613.pdf">
          <front>
            <title>A Security Analysis of the Composition of ChaCha20 and Poly1305</title>
            <author initials="" surname="Gordon Procter">
              <organization/>
            </author>
            <date year="2014" month="August"/>
          </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="Plans" target="https://csrc.nist.gov/pubs/sp/800/197/iprd">
          <front>
            <title>NIST Proposes to Standardize a Wider Variant of AES</title>
            <author initials="" surname="NIST">
              <organization/>
            </author>
            <date year="2024" month="December"/>
          </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="PDCP" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=3196">
          <front>
            <title>NR; Packet Data Convergence Protocol (PDCP) specification</title>
            <author initials="" surname="3GPP TS 38 323">
              <organization/>
            </author>
            <date year="2024" month="December"/>
          </front>
        </reference>
        <reference anchor="Entropy" target="https://eprint.iacr.org/2024/1111.pdf">
          <front>
            <title>Collision Attacks on Galois/Counter Mode (GCM)</title>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2025" month="February"/>
          </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://doi.org/10.3929/ethz-b-000654260">
          <front>
            <title>SoK: Efficient Design and Implementation of Polynomial Hash Functions over Prime Fields</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="May"/>
          </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="AEZ" target="https://eprint.iacr.org/2014/793.pdf">
          <front>
            <title>Robust Authenticated-Encryption: AEZ and the Problem that it Solves</title>
            <author initials="" surname="Viet Tung Hoang">
              <organization/>
            </author>
            <author initials="" surname="Ted Krovetz">
              <organization/>
            </author>
            <author initials="" surname="Phillip Rogaway">
              <organization/>
            </author>
            <date year="2017" month="March"/>
          </front>
        </reference>
        <reference anchor="Robust" target="https://link.springer.com/article/10.1007/s00145-023-09489-9">
          <front>
            <title>Robust Channels: Handling Unreliable Networks in the Record Layers of QUIC and DTLS 1.3</title>
            <author initials="M." surname="Fischlin">
              <organization/>
            </author>
            <author initials="F." surname="Günther">
              <organization/>
            </author>
            <author initials="C." surname="Janson">
              <organization/>
            </author>
            <date year="2024" month="January"/>
          </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 Strong Secure 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 Strong Secure 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="Ascon" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-232.ipd.pdf">
          <front>
            <title>Ascon-Based Lightweight Cryptography Standards for Constrained Devices</title>
            <author initials="" surname="Meltem Sönmez Turan">
              <organization/>
            </author>
            <author initials="" surname="Kerry A McKay">
              <organization/>
            </author>
            <author initials="" surname="Donghoon Chang">
              <organization/>
            </author>
            <author initials="" surname="Jinkeon Kang">
              <organization/>
            </author>
            <author initials="" surname="John Kelsey">
              <organization/>
            </author>
            <date year="2024" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-232 Initial Public Draft"/>
        </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>
      </references>
    </references>
    <?line 796?>

<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[
         K = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f }
         N = { 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 }
       H_2 = { 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[
         A = { }
         P = { }
         L = { 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 42 b0 0a ec b0 bc eb 8d }
        ct = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1b">
          <name>Case #1b</name>
          <artwork><![CDATA[
         A = { 40 41 42 43 44 }
         P = { }
         L = { 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 d5 f3 08 a5 70 4e 2f d5 }
        ct = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1c">
          <name>Case #1c</name>
          <artwork><![CDATA[
         A = { }
         P = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
         L = { 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 fd 1a 90 d9 81 8f cb 7b }
        ct = { 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[
         A = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
         P = { 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 }
         L = { 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 0b 84 48 2c d0 14 c7 40 }
        ct = { 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[
         A = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
         P = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
         L = { 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 11 43 ab e9 31 5a d7 eb }
        ct = { 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[
         K = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb }
         N = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
         A = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
         P = { 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 }
       H_2 = { 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 }
         L = { 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 }
        ct = { 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[
         K = { 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 }
         N = { 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 }
       H_2 = { 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[
         A = { }
         P = { }
         L = { 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 2a 33 8e ec }
        ct = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3b">
          <name>Case #3b</name>
          <artwork><![CDATA[
         A = { 40 41 42 43 44 }
         P = { }
         L = { 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 28 ff c3 17 }
        ct = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3c">
          <name>Case #3c</name>
          <artwork><![CDATA[
         A = { }
         P = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
         L = { 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 48 bd 6f cc }
        ct = { 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[
         A = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
         P = { 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 }
         L = { 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 a5 a8 a2 8e }
        ct = { 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[
         A = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
         P = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
         L = { 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 64 ce fd 03 }
        ct = { 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[
         K = { 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 }
         N = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
         A = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
         P = { 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 }
       H_2 = { 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 }
         L = { 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 73 49 bf 3c }
        ct = { 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 -16 to -17:</t>
      <ul spacing="normal">
        <li>
          <t>Align with ANSSI requirement on the maximum number of plaintext blocks.</t>
        </li>
        <li>
          <t>Added informaion of how small fraction of a bit an attcker can theoretically recover.</t>
        </li>
        <li>
          <t>Editorial changes</t>
        </li>
      </ul>
      <t>Changes from -15 to -16:</t>
      <ul spacing="normal">
        <li>
          <t>Added section on multicast or broadcast allowing use in one-to-many scenarios. GCM-SST provides good security in such scenarios.</t>
        </li>
        <li>
          <t>Renamed Q to H<sub>2</sub> and some q to σ to avoid using the same symbol for different things.</t>
        </li>
        <li>
          <t>Updated information on confidentiality against passive attackers including comparison and links to papers showing that plaintext-recovery have similar complexity as distinguishing attacks.</t>
        </li>
        <li>
          <t>Editorial changes</t>
        </li>
      </ul>
      <t>Changes from -14 to -15:</t>
      <ul spacing="normal">
        <li>
          <t>Added 48-bit tags after feedback from media people.</t>
        </li>
        <li>
          <t>Added comparison to AEGIS in pure hardware based on Scott Fluhrer's analysis</t>
        </li>
        <li>
          <t>Changed "acceptable level" to "minimum threshold" as it can be discussed if 64-bit security is acceptable.</t>
        </li>
        <li>
          <t>Added requirement that security protocols using AES-GCM-SST <bcp14>MUST</bcp14> enforce limits to ensure that δ ≈ 1.</t>
        </li>
        <li>
          <t>Added that this specification does not allow use in multicast or broadcast. This simplify security considerations.</t>
        </li>
        <li>
          <t>Editorial changes</t>
        </li>
      </ul>
      <t>Changes from -13 to -14:</t>
      <ul spacing="normal">
        <li>
          <t>Explained the formatting of L as well as why replay protection after decryption may be used.</t>
        </li>
        <li>
          <t>Updated link to NIST's plans to standardize Rijndael-256 and aligned the name with NIST</t>
        </li>
        <li>
          <t>Aligned test vector tag length and terminology with the rest of the specification</t>
        </li>
        <li>
          <t>Editorial changes</t>
        </li>
      </ul>
      <t>Changes from -12 to -13:</t>
      <ul spacing="normal">
        <li>
          <t>Changed name to Strong Secure Tags to better illustrate that GCM-SST is intended to improve security for all tag lengths.</t>
        </li>
        <li>
          <t>Editorial changes</t>
        </li>
      </ul>
      <t>Changes from -11 to -12:</t>
      <ul spacing="normal">
        <li>
          <t>Introduced Q_MAX and V_MAX as formal names for the invocation constraints.</t>
        </li>
        <li>
          <t>Described that masking is important to mitigate weak keys.</t>
        </li>
        <li>
          <t>Improved and expanded the section comparing GCM-SST with Poly1305 and GCM.</t>
        </li>
        <li>
          <t>Editorial changes including subsections in the security considerations.</t>
        </li>
      </ul>
      <t>Changes from -10 to -11:</t>
      <ul spacing="normal">
        <li>
          <t>Added that protocols can impose stricter limits on P_MAX and A_MAX</t>
        </li>
        <li>
          <t>Added constraints on the number of decryption queries v</t>
        </li>
        <li>
          <t>More info on replay protection implementation</t>
        </li>
        <li>
          <t>More info on nonce constructions</t>
        </li>
        <li>
          <t>Introduced the Bernstein bound factor δ instead of just assuming that δ &lt; 2</t>
        </li>
        <li>
          <t>Clarified differences between GCM-SST with different keystream generators (ideal, AES, Rijndael)</t>
        </li>
        <li>
          <t>Made it clearer that Table 1 is for unicast security protocols with replay protection and that Poly1305 is keyed with ChaCha20.</t>
        </li>
        <li>
          <t>Editorial changes including RFC 2119 terminology</t>
        </li>
      </ul>
      <t>Changes from -09 to -10:</t>
      <ul spacing="normal">
        <li>
          <t>Corrected some probabilities that were off by a factor 2</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
      </ul>
      <t>Changes from -07 to -09:</t>
      <ul spacing="normal">
        <li>
          <t>Changed replay requirements to allow replay protection after decryption to align with protocols like QUIC and DTLS 1.3.</t>
        </li>
        <li>
          <t>Added a comparison between GCM_SST_14, GCM_SST_12, GCM_16, POLY1305 in protocols like QUIC</t>
        </li>
        <li>
          <t>Added text on the importance of behaving like an ideal MAC</t>
        </li>
        <li>
          <t>Consideration on replay protection mechanisms</t>
        </li>
        <li>
          <t>Added text and alternative implementations borrowed from NIST</t>
        </li>
        <li>
          <t>Added constraints of 2^32 encryption invocations aligning with NIST</t>
        </li>
        <li>
          <t>Added text explaining that GCM-SST offer strictly better security than GCM and 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>
      </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 expected 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="Patrik Ekdahl"/>, <contact fullname="Scott Fluhrer"/>, <contact fullname="Eric Lagergren"/>, <contact fullname="Yehuda Lindell"/>, <contact fullname="Kazuhiko Minematsu"/>, <contact fullname="Santeri Paavolainen"/>, <contact fullname="Sini Ruohomaa"/>, <contact fullname="Erik Thormarker"/>, and <contact fullname="Magnus Westerlund"/> 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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
PK87WNYCPx0P60b/P+96Uzmu6QAA

-->

</rfc>
