<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.21 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-cfrg-aes-gcm-sst-15" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.25.0 -->
  <front>
    <title abbrev="GCM-SST">Galois Counter Mode with Strong Secure Tags (GCM-SST)</title>
    <seriesInfo name="Internet-Draft" value="draft-mattsson-cfrg-aes-gcm-sst-15"/>
    <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="January" day="07"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <?line 482?>

<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 Q, the derivation of fresh subkeys H and Q for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV. This enables truncated tags with near-ideal forgery probabilities, even against multiple forgery attacks, which are significant security improvements over GCM. GCM-SST is designed for unicast security protocols with replay protection and addresses the strong industry demand for fast encryption with 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 486?>

<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 <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 preclude many repeated trial. For all applications of short tags it is essential that the MAC behaves like an ideal MAC, i.e., the forgery probability is ≈ 2<sup>-tag_length</sup> even after many generated MACs, many forgery attempts, and after a successful forgery. 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 Q, the derivation of fresh subkeys H and Q for each nonce, and the replacement of the GHASH function with the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, see <xref target="GCM-SST"/>. These changes enable truncated tags with near-ideal forgery probabilities, even against multiple forgery attacks, see <xref target="Security"/>. GCM-SST is designed for use in unicast security protocols with replay protection such as TLS <xref target="RFC8446"/>, QUIC <xref target="RFC9000"/>, SRTP <xref target="RFC3711"/>, and PDCP <xref target="PDCP"/>, where its authentication tag behaves like an ideal MAC, including reforgeability resistance. Users and implementors 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>= 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, Q, and M. The following keystream chunks Z[3], Z[4], ..., Z[n + 2] are used to encrypt the plaintext. Instead of GHASH <xref target="GCM"/>, GCM-SST makes use of the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, which results in more efficient software implementations on little-endian architectures. GHASH and POLYVAL can be defined in terms of one another <xref target="RFC8452"/>. The subkeys H and Q are field elements used in POLYVAL while the subkey M is used for the final masking of the tag. Both encryption and decryption are only defined on inputs that are a whole number of octets. 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 tag (octet string with length tag_length)</t>
          </li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the lengths of K, N, A, P are not supported return error and abort</t>
          </li>
          <li>
            <t>Initiate keystream generator with K and N</t>
          </li>
          <li>
            <t>Let H = Z[0], Q = Z[1], M = Z[2]</t>
          </li>
          <li>
            <t>Let ct = P ⊕ truncate(Z[3:n + 2], len(P))</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct)</t>
          </li>
          <li>
            <t>Let L = LE64(len(ct)) || LE64(len(A))</t>
          </li>
          <li>
            <t>Let X = POLYVAL(H, S[0], S[1], ...)</t>
          </li>
          <li>
            <t>Let full_tag = POLYVAL(Q, X ⊕ 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 tag (octet string with length tag_length)</t>
          </li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>
            <t>Plaintext P (variable-length octet string) or an error indicating that the authentication tag is invalid for the given inputs.</t>
          </li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the lengths of K, N, A, or ct are not supported, or if len(tag) != tag_length return error and abort</t>
          </li>
          <li>
            <t>Initiate keystream generator with K and N</t>
          </li>
          <li>
            <t>Let H = Z[0], Q = Z[1], M = Z[2]</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct)</t>
          </li>
          <li>
            <t>Let L = LE64(len(ct)) || LE64(len(A))</t>
          </li>
          <li>
            <t>Let X = POLYVAL(H, S[0], S[1], ...)</t>
          </li>
          <li>
            <t>Let full_tag = POLYVAL(Q, X ⊕ 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 ≈ 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. 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 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>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 Q, alongside the subkey H. The inclusion of Q enables truncated tags with forgery probabilities close to ideal. Both H and Q are derived for each nonce, which significantly decreases the probability of multiple successful forgeries. These changes are based on proven theoretical constructions and follows the recommendations in <xref target="Nyberg"/>. Inoue et al. <xref target="Inoue"/> prove that GCM-SST is a provably secure authenticated encryption mode, with security guaranteed for evaluations under fresh nonces, even if some earlier nonces have been reused.</t>
      <t>GCM-SST is designed for use in unicast security protocols with replay protection. Every key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution. GCM-SST <bcp14>MUST</bcp14> be used in a nonce-respecting setting: for a given key, a nonce <bcp14>MUST</bcp14> only be used once in the encryption function and only once in a successful decryption function call. The nonce <bcp14>MAY</bcp14> be public or predictable. It can be a counter, the output of a permutation, or a generator with a long period. GCM-SST <bcp14>MUST NOT</bcp14> be used with random nonces <xref target="Collision"/> and <bcp14>MUST</bcp14> be used with replay protection. 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. This specification does not allow the use of GCM-SST in multicast or broadcast scenarios. While GCM-SST offers better security properties than GCM for a given tag length in such contexts, it does not behave like an ideal MAC.</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 ≈ 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 AES-GCM-SST against passive attackers is equal to AES-GCM <xref target="GCM"/> and given by the birthday bound. Regardless of key length, an attacker can mount a distinguishing attack with a complexity of approximately 2<sup>129</sup> / q, where q is the number of invocations of the AES encryption function. 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>257</sup> / q, where q is the number of invocations of the Rijndael-256 encryption function. While Rijndael-256 in counter mode can provide strong confidentiality for plaintexts much larger than 2<sup>36</sup> octets, GHASH and POLYVAL do not offer adequate integrity for long plaintexts. To ensure robust integrity for long plaintexts, an AEAD mode would need to replace POLYVAL with a MAC that has better security properties, such as a Carter-Wegman MAC in a larger field <xref target="Degabriele"/> or other alternatives such as <xref target="SMAC"/>.</t>
        <t>The confidentiality offered by AES-GCM-SST against active attackers is directly linked to the forgery probability. Depending on the protocol and application, forgeries 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 Q are zero, so called weak keys. If H is zero, the authentication tag depends only on the length of P and A and not on their content. If Q is zero, the authentication tag does not 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 Q are generated with a permutation on different input, so H and Q 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 AES-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 between AES-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 AES-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 AES-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 AES-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 between AES-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>
      </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="12" month="December" year="2024"/>
            <abstract>
              <t>   This document describes the AEGIS-128L, AEGIS-256, AEGIS-128X, and
   AEGIS-256X AES-based authenticated encryption algorithms designed for
   high-performance applications.

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

Discussion Venues

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aegis-aead-14"/>
        </reference>
        <reference anchor="UIA2" target="https://www.gsma.com/solutions-and-impact/technologies/security/wp-content/uploads/2019/05/uea2uia2d1v21.pdf">
          <front>
            <title>UEA2 and UIA2 Specification</title>
            <author initials="" surname="ETSI SAGE">
              <organization/>
            </author>
            <date year="2009" month="March"/>
          </front>
        </reference>
        <reference anchor="EIA3" target="https://www.gsma.com/solutions-and-impact/technologies/security/wp-content/uploads/2019/05/EEA3_EIA3_specification_v1_8.pdf">
          <front>
            <title>128-EEA3 and 128-EIA3 Specification</title>
            <author initials="" surname="ETSI SAGE">
              <organization/>
            </author>
            <date year="2019" month="January"/>
          </front>
        </reference>
        <reference anchor="BSI" target="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TG02102/BSI-TR-02102-1.html">
          <front>
            <title>Cryptographic Mechanisms Recommendations and Key Lengths</title>
            <author>
              <organization/>
            </author>
            <date year="2024" month="February"/>
          </front>
          <seriesInfo name="BSI" value="Technical Guideline TR-02102-1"/>
        </reference>
        <reference anchor="Multiple" target="https://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/cwc-gcm/multi-forge-01.pdf">
          <front>
            <title>Multiple Forgery Attacks Against Message Authentication Codes</title>
            <author initials="" surname="David McGrew">
              <organization/>
            </author>
            <author initials="" surname="Scott Fluhrer">
              <organization/>
            </author>
            <date year="2024" month="November"/>
          </front>
        </reference>
        <reference anchor="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="Collision" target="https://eprint.iacr.org/2021/236">
          <front>
            <title>Collision Attacks on Galois/Counter Mode (GCM)</title>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2024" month="September"/>
          </front>
        </reference>
        <reference anchor="Lindell" target="https://mailarchive.ietf.org/arch/browse/cfrg/?gbt=1&amp;index=cWpv0QgX2ltkWhtd3R9pEW7E1CA">
          <front>
            <title>Comment on AES-GCM-SST</title>
            <author initials="Y." surname="Lindell">
              <organization/>
            </author>
            <date year="2024" month="May"/>
          </front>
        </reference>
        <reference anchor="Degabriele" target="https://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 749?>

<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 }
         Q = { 03 13 63 96 74 be fa 86 4d fa fb 80 36 b7 a0 3c }
         M = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
]]></artwork>
        <section numbered="false" anchor="case-1a">
          <name>Case #1a</name>
          <artwork><![CDATA[
         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 }
         Q = { 3b fd 00 96 25 84 2a 86 65 71 a4 66 e5 62 05 92 }
         M = { 9e 6c 98 3e e0 6c 1a ab c8 99 b7 8d 57 32 0a f5 }
         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 }
         Q = { af 7f 54 00 16 aa b8 bc 91 56 d9 d1 83 59 cc e5 }
         M = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
]]></artwork>
        <section numbered="false" anchor="case-3a">
          <name>Case #3a</name>
          <artwork><![CDATA[
         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 }
         Q = { 32 69 75 a3 3a ff ae ac af a8 fb d1 bd 62 66 95 }
         M = { 59 48 44 80 b6 cd 59 06 69 27 5e 7d 81 4a d1 74 }
         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 -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="Scott Fluhrer"/>, <contact fullname="Eric Lagergren"/>, <contact fullname="Yehuda Lindell"/>, <contact fullname="Kazuhiko Minematsu"/>, and <contact fullname="Erik Thormarker"/> for their valuable comments and feedback. Some of the formatting and text were inspired by and borrowed from <xref target="I-D.irtf-cfrg-aegis-aead"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19S3PjWJbeXr/ijjLsyXTz/ZKY09U9TEmZqaqUUpVSVXZX
TzkDBC9JtEiABYBSqlTlmIUnwmMvJ7x02AuvvJ6YlVfu/fyI+iX+zjn3Ahck
KFGqR8yrOluiQOA+zj3vF6rV6k4apDP9XO2+8mZRkKiDaBmmOlYn0Uir6yCd
qvM0jsKJOtf+Mtbqwpsk6umrg5Pq+fnFs90dbziM9RU9L5d2d3wv1ZMovnmu
gnAc7eyMIj/05phiFHvjtDr30jRJorDqj+NJ1dNJdeLPq0mSVpvdnWQ5nAdJ
EkRherPAI8fvLl4q9UR5syTCHEE40guNH2G6W1G7x4MX+BXF+IT7dnfC5Xyo
4+c7I6zg+Y4fhYkOk2XyXKXxUu9gke0dL9bec3v/dRRfTuJoucCVg/hmkUbq
ZRQv57s7l/oGX46e76iqCvXHVE10qGMvxcLo0jIM/Cjmj8nCiy9nAQA0CpI0
DobLVI/UTI8mOt650uESK1GqfBalZJe773Sivdifqld0H30x94IZviAY/WWg
03Etiid0ne7C9WmaLpLn9TrdRpeCK12zt9XpQl0GrP9W0y0fZljbJzQYjTHB
qS6HGAXfhX+Mwvo9B0PPzADSJHVmNs/WZLBaEN03yn3f16bpfLa7s+Mt02mE
Q6wCfYI0wMk/Vyc1LCFZxoJHB9584U1CD9fkwgnGnOpr9wvA4bkazL1vo1C9
10Ngb3wV+DrBVz5hOKHngRd6I7pZC7R98/hfevxczY/mhVUMCqs48T4G8+gq
W8Rgpj96QM3Y+YZXcRQHPu2YTs8Qi3MpW835tQZe56vx7Hi1uYz3l9o8tbaw
TwsLO4v18k//k4Fi5pDrn0bTsOTLH7PGP2LImj3R4vp2wijGN0DM5zt44N3L
g26z2XsuH/c73RZfHhyd0yUQghdPNPDLold4NVssh0ktBOLWJtFVnT7QlfrL
47Pz+unx+UWNPtWa/b3qcjFq1hajsYxk+NlgdOWFPmjxKPSJ6kC6YGWAqBeP
1FNM/GyX70+wbJ0Qq5KVKLVLo+9iiJfYbezN1DG+5M1EBMAIaJQQwdvREnW2
HM4CX27AgmRg5kKA9I1qNVptBkLwRzygZ+Vb9pPYz/dLf9XnehR49UUc/VH7
aVLnfUST2FtMA7+a2Omr+F2dLIORBh/SSR0MdzkHi0zqRF4jfaVn0YIu1GOz
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

-->

</rfc>
