<?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.6.31 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mattsson-cfrg-aes-gcm-sst-00" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="GCM-SST">Galois Counter Mode with Secure Short Tags (GCM-SST)</title>
    <seriesInfo name="Internet-Draft" value="draft-mattsson-cfrg-aes-gcm-sst-00"/>
    <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 AB</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 AB</organization>
      <address>
        <postal>
          <country>Sweden</country>
        </postal>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <date year="2023" month="May" day="05"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>next generation</keyword>
    <keyword>unicorn</keyword>
    <keyword>sparkling distributed ledger</keyword>
    <abstract>
      <t>This document defines the Galois Counter Mode with Secure Short Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm. GCM-SST can be used with any keystream generator, not just a block cipher. The main differences compared to GCM <xref target="GCM"/> is that GCM-SST uses an additional subkey Q, that fresh subkeys H and Q are derived for each nonce, and that the POLYVAL function from AES-GCM-SIV is used instead of GHASH. This enables short tags with forgery probabilities close to ideal. This document also registers several instances of Advanced Encryption Standard (AES) with Galois Counter Mode with Secure Short Tags (AES-GCM-SST).</t>
      <t>This document is the product of the Crypto Forum Research Group.</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>
    <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 weaknesses are especially concerning when GCM is used with short tags. The first weakness significantly increases the probability of successful forgery. The second weakness reveals the subkey H if the attacker manages to create successful forgeries. With knowledge of the subkey H, the attacker always succeeds with subsequent forgeries. The probability of multiple successful forgeries is therefore significantly increased.</t>
      <t>As 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 specific choice of parameters, or for that matter the security levels they were assumed to give. As shown by Mattsson et al. <xref target="Mattsson"/>, feedback of successful or unsuccessful forgery attempts is almost always possible, contradicting NIST's assumptions for short tags. NIST also appears to have used non-optimal attacks to calculate the parameters. A detailed evaluation of GCM and other block cipher modes of operation is given by <xref target="Rogaway"/>. Rogaway is critical of GCM with short tags and recommends disallowing GCM with tags shorter than 96-bits. While Counter with CBC-MAC (CCM) <xref target="RFC5116"/> with short tags has forgery probabilities close to ideal, CCM has lower performance than GCM.</t>
      <t>32-bit tags are standard in most radio link layers including 5G, 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, so on the one hand, they are very sensitive in percentage terms to crypto overhead, and on the other hand, forgery of individual packets is not a big concern. Due to its weaknesses, GCM is typically not used with short tags. The result is 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="I-D.ietf-sframe-enc"/>. Short tags are also useful to protect packets transporting a signed payload such as a firmware update.</t>
      <t>This document defines the Galois Counter Mode with Secure Short Tags (GCM-SST) Authenticated Encryption with Associated Data (AEAD) algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface so that it can be used with any keystream generator, not just a 128-bit block cipher. The main differences compared to GCM <xref target="GCM"/> is that GCM-SST uses an additional subkey Q, that fresh subkeys H and Q are derived for each nonce, and that the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/> is used instead of GHASH. This enables short tags with forgery probability close to ideal and significantly decreases the probability of multiple successful forgeries. See <xref target="GCM-SST"/>.</t>
      <t>This document also registers several instances of Advanced Encryption Standard (AES) with Galois Counter Mode with Secure Short Tags (AES-GCM-SST) where AES <xref target="AES"/> in counter mode is used as the keystream generator. See <xref target="AES-GCM-SST"/>.</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>
      <t>Primitives:</t>
      <ul spacing="normal">
        <li>= is the assignment operator</li>
        <li>!= is the inequality operator</li>
        <li>x || y is concatenation of the octet strings x and y</li>
        <li>XOR is the bitwise exclusive OR operator</li>
        <li>len(x) is the length of x in bits.</li>
        <li>zeropad(x) right pads an octet string x with zeroes to a multiple of 128 bits</li>
        <li>truncate(x, t) is the truncation operation.  The first t bits of x are kept</li>
        <li>n is the number of 128-bit chunks in zeropad(P)</li>
        <li>m is the number of 128-bit chunks in zeropad(A)</li>
        <li>POLYVAL is defined in <xref target="RFC8452"/></li>
        <li>BE32(x) is the big-endian encoding of 32-bit integer x</li>
        <li>LE64(x) is the little-endian encoding of 64-bit integer x</li>
        <li>A[y] is the 128-bit chunk with index y in the array A; the first chunk has index 0.</li>
        <li>A[x:y] are the range of chunks x to y in the array A</li>
      </ul>
    </section>
    <section anchor="GCM-SST">
      <name>Galois Counter Mode with Secure Short Tags (GCM-SST)</name>
      <t>This section defines the Galois Counter Mode with Secure Short Tags (GCM-SST) AEAD algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface so that it can be used with any keystream generator, not just a 128-bit block cipher.</t>
      <t>GCM-SST adheres to an AEAD interface <xref target="RFC5116"/> and the encryption function takes four variable-length octet string parameters. A secret key K, a nonce N, the associated data A, and a plaintext P. The keystream generator is instantiated with K and N. The keystream <bcp14>MAY</bcp14> depend on P and A. The minimum and maximum lengths of all parameters depend on the keystream generator. The keystream generator produces a keystream Z consisting of 128-bit chunks where the first three chunks Z[0], Z[1], and Z[2] are used as the three subkeys H, Q, and M. The following keystream chunks Z[3], Z[4], ..., Z[n + 2] are used to encrypt the plaintext. Instead of GHASH <xref target="GCM"/>, GCM-SST makes use of the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, which results in more efficient software implementations on little-endian architectures. GHASH and POLYVAL can be defined in terms of one another <xref target="RFC8452"/>. The subkeys H and Q are field elements used in POLYVAL while the subkey M is used for the final masking of the tag. Both encryption and decryption are only defined on inputs that are a whole number of octets.</t>
      <section anchor="authenticated-encryption">
        <name>Authenticated Encryption</name>
        <t>Encrypt(K, N, A, P)</t>
        <t>The Encrypt function 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>The key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution.</li>
          <li>For a given key, the nonce <bcp14>MUST NOT</bcp14> be reused under any circumstances.</li>
          <li>Supported tag_length associated with the key.</li>
          <li>Definitions of supported input-output lengths.</li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>Key K (variable-length octet string)</li>
          <li>Nonce N (variable-length octet string)</li>
          <li>Associated data A (variable-length octet string)</li>
          <li>Plaintext P (variable-length octet string)</li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>Ciphertext ct (variable-length octet string)</li>
          <li>Tag tag (octet string with length tag_length)</li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>If the lengths of K, N, A, P are not supported return error and abort</li>
          <li>Initiate keystream generator with K and N</li>
          <li>Let H = Z[0], Q = Z[1], M = Z[2]</li>
          <li>Let ct = P XOR truncate(Z[3:n + 2], len(P))</li>
          <li>Let S = zeropad(A) || zeropad(ct) || LE64(len(ct)) || LE64(len(A))</li>
          <li>Let X = POLYVAL(H, S[0], S[1], ..., S[m + n - 1])</li>
          <li>Let full_tag = POLYVAL(Q, X XOR S[m + n]) XOR M</li>
          <li>Let tag = truncate(full_tag, tag_length)</li>
          <li>Return (ct, tag)</li>
        </ol>
      </section>
      <section anchor="authenticated-decryption">
        <name>Authenticated Decryption</name>
        <t>Decrypt(K, N, A, ct, tag)</t>
        <t>The Decrypt function decrypts a ciphertext, verifies that the authentication tag is correct, and returns the plaintext on success or an error if tag verification failed.</t>
        <t>Prerequisites and security:</t>
        <ul spacing="normal">
          <li>The calculation of the plaintext P (step 8) <bcp14>MAY</bcp14> be done in parallel with the tag verification (step 2-7). If tag verification fails, the plaintext P and the expected_tag <bcp14>MUST NOT</bcp14> be given as output.</li>
          <li>The comparison of the input tag with the expected_tag <bcp14>MUST</bcp14> be done in constant time.</li>
          <li>Supported tag_length associated with the key.</li>
          <li>Definitions of supported input-output lengths.</li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>Key K (variable-length octet string)</li>
          <li>Nonce N (variable-length octet string)</li>
          <li>Associated data A (variable-length octet string)</li>
          <li>Ciphertext ct (variable-length octet string)</li>
          <li>Tag tag (octet string with length tag_length)</li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>Plaintext P (variable-length octet string) or an error indicating that the authentication tag is invalid for the given inputs.</li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>If the lengths of K, N, A, or ct are not supported, or if len(tag) != tag_length return error and abort</li>
          <li>Initiate keystream generator with K and N</li>
          <li>Let H = Z[0], Q = Z[1], M = Z[2]</li>
          <li>Let S = zeropad(A) || zeropad(ct) || LE64(len(ct)) || LE64(len(A))</li>
          <li>Let X = POLYVAL(H, S[0], S[1], ..., S[m + n - 1])</li>
          <li>Let T = POLYVAL(Q, X XOR S[m + n]) XOR M</li>
          <li>Let expected_tag = truncate(T, tag_length)</li>
          <li>If tag != expected_tag, return error and abort</li>
          <li>Let P = ct XOR truncate(Z[3:n + 2], len(ct))</li>
          <li>Return P</li>
        </ol>
      </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 with Galois Counter Mode with Secure Short Tags</name>
      <t>This section defines Advanced Encryption Standard (AES) with Galois Counter Mode with Secure Short Tags (AES-GCM-SST). When GCM-SSM is instantiated with AES, the keystream generator is AES in counter mode</t>
      <t>Z[i] = AES-ENC(K, N || BE32(i))</t>
      <t>where AES-ENC is the AES encrypt function <xref target="AES"/>.</t>
      <section anchor="instances">
        <name>AES-GCM-SST AEAD Instances</name>
        <t>We define six AEADs, in the format of <xref target="RFC5116"/>, that use AES-GCM-SST. They differ only in key length (K_LEN) and tag length. The tag lengths 32, 64, and 80 have been chosen to align with secure media frames <xref target="I-D.ietf-sframe-enc"/>. The key length and tag length are related to different security properties, and an application encrypting audio packets with small tags might require 256-bit confidentiality.</t>
        <table anchor="iana-algs">
          <name>AEAD Algorithms</name>
          <thead>
            <tr>
              <th align="right">Numeric ID</th>
              <th align="left">Name</th>
              <th align="right">K_LEN (bytes)</th>
              <th align="right">tag_length (bits)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="right">TBD1</td>
              <td align="left">AEAD_AES_128_GCM_SST_4</td>
              <td align="right">16</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD2</td>
              <td align="left">AEAD_AES_128_GCM_SST_8</td>
              <td align="right">16</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD3</td>
              <td align="left">AEAD_AES_128_GCM_SST_10</td>
              <td align="right">16</td>
              <td align="right">80</td>
            </tr>
            <tr>
              <td align="right">TBD4</td>
              <td align="left">AEAD_AES_256_GCM_SST_4</td>
              <td align="right">32</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="right">TBD5</td>
              <td align="left">AEAD_AES_256_GCM_SST_8</td>
              <td align="right">32</td>
              <td align="right">64</td>
            </tr>
            <tr>
              <td align="right">TBD6</td>
              <td align="left">AEAD_AES_256_GCM_SST_10</td>
              <td align="right">32</td>
              <td align="right">80</td>
            </tr>
          </tbody>
        </table>
        <t>Common parameters for the six AEADs:</t>
        <ul spacing="normal">
          <li>P_MAX (maximum size of the plaintext) is 2<sup>36</sup> - 48 octets.</li>
          <li>A_MAX (maximum size of the associated data) is 2<sup>36</sup> octets.</li>
          <li>N_MIN and N_MAX (minimum and maximum size of the nonce) are both 12 octets</li>
          <li>C_MAX (maximum size of the ciphertext and tag) is P_MAX + tag_length (in bytes)</li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>GCM-SST uses an additional subkey Q and that new subkeys H, Q are derived for each nonce. The use of an additional subkey Q enables short tags with forgery probabilities close to ideal. Deriving new subkeys H, Q for each nonce significantly decreases the probability of multiple successful forgeries. These changes are based on proven theoretical constructions and follows the recommendations in <xref target="Nyberg"/>. See <xref target="Nyberg"/> for details and references to security proofs for the construction.</t>
      <t>GCM-SST <bcp14>MUST</bcp14> be used in a nonce-respecting setting: for a given key, a nonce <bcp14>MUST</bcp14> only be used once. The nonce <bcp14>MAY</bcp14> be public or predictable.  It can be a counter, the output of a permutation, or a generator with a long period. Every key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution. Implementations <bcp14>SHOULD</bcp14> randomize the nonce by mixing a unique number like a sequence number with a per-key random salt. This improves security against pre-computation attacks and multi-key attacks <xref target="Bellare"/>.</t>
      <t>The GCM-SST tag_length <bcp14>SHOULD NOT</bcp14> be smaller than 4 bytes and cannot be larger than 16 bytes. For short tags of length t &lt; 128 - log2(n + m + 1) bits, the worst-case forgery probability is bounded by ≈ 2<sup>-t</sup> <xref target="Nyberg"/>. With the constraints listed in <xref target="instances"/>, n + m + 1 &lt; 2<sup>33</sup> 128-bit blocks, and tags of length up to 95 bits therefore have an almost perfect security level. This is significantly better than GCM where the security level is only t – log2(n + m + 1) bits <xref target="GCM"/>. 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. The full_tag in GCM-SST does not depend on the tag length. An application can make the tag dependent on the tag length by including tag_length in the nonces.</t>
      <t>The GCM-SST tag_length <bcp14>SHOULD NOT</bcp14> be smaller than 4 bytes and cannot be larger than 16 bytes. For short tags, the worst-case forgery probability is bounded by ≈ 2<sup>-t</sup> where t is the tag length in bits <xref target="Nyberg"/> as long as the lengths of the plaintext P and the associated data A are bounded. This is significantly better than GCM. 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. The full_tag in GCM-SST does not depend on the tag length. An application can make the tag dependent on the tag length by including tag_length in the nonces.</t>
      <t>The confidentiality offered by AES-GCM-SST against passive attackers is equal to AES-GCM <xref target="GCM"/> and given by the birthday bound. The maximum size of the plaintext (P_MAX) has been adjusted from GCM <xref target="RFC5116"/> as there is now three subkeys instead of two.</t>
      <t>For the AES-GCM-SST algorithms in <xref target="iana-algs"/> the worst-case forgery probability is bounded by ≈ 2<sup>-t</sup> where t is the tag length in bits <xref target="Nyberg"/>. This is true for all allowed plaintext and associated data lengths. The maximum size of the associated data (A_MAX) has been lowered from GCM <xref target="RFC5116"/> to enable forgery probability close to ideal for 80-bit tags even with maximum size plaintexts and associated data. Just like <xref target="RFC5116"/> AES-GCM-SST only allows 96-bit nonces.</t>
      <t>If r random nonces are used with the same key, the collision probability for AES-GCM-SST is ≈ r<sup>2</sup> / 2<sup>97</sup>. As an attacker can test r nonces for collisions with complexity r, the security of AES-GCM-SST with random nonces is only ≈ 2<sup>97</sup> / r. It is therefore <bcp14>NOT RECOMMENDED</bcp14> to use AES-GCM-SST with random nonces.</t>
      <t>In general, there is a very small possibility in GCM-SST that either or both of the subkeys H and Q are zero, so called weak keys. If both keys are zero, the resulting tag will not depend on the message. 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 the AES-ENC permutation on different input, so H and Q cannot both be zero.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign the entries in the first two columns of <xref target="iana-algs"/> to the "AEAD Algorithms" registry under the "Authenticated Encryption with Associated Data (AEAD) Parameters" heading with this document as reference.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="Y. Lindell" initials="Y." surname="Lindell">
              <organization/>
            </author>
            <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.pdf">
          <front>
            <title>ADVANCED ENCRYPTION STANDARD (AES)</title>
            <author>
              <organization/>
            </author>
            <date year="2001" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Federal Information Processing Standards Publication 197"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <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">
              <organization/>
            </author>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <author fullname="M. Naslund" initials="M." surname="Naslund">
              <organization/>
            </author>
            <author fullname="E. Carrara" initials="E." surname="Carrara">
              <organization/>
            </author>
            <author fullname="K. Norrman" initials="K." surname="Norrman">
              <organization/>
            </author>
            <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="I-D.ietf-sframe-enc">
          <front>
            <title>Secure Frame (SFrame)</title>
            <author fullname="Emad Omara" initials="E." surname="Omara">
              <organization>Apple</organization>
            </author>
            <author fullname="Justin Uberti" initials="J." surname="Uberti">
              <organization>Google</organization>
            </author>
            <author fullname="Sergio Garcia Murillo" initials="S. G." surname="Murillo">
              <organization>CoSMo Software</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Youenn Fablet" initials="Y." surname="Fablet">
              <organization>Apple</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <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.

   The proposed 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="Internet-Draft" value="draft-ietf-sframe-enc-01"/>
        </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="Fabio Enrico Renzo Scotoni" initials="F. E. R." surname="Scotoni">
              <organization>Individual Contributor</organization>
            </author>
            <author fullname="Samuel Lucas" initials="S." surname="Lucas">
              <organization>Individual Contributor</organization>
            </author>
            <date day="28" month="April" year="2023"/>
            <abstract>
              <t>   This document describes AEGIS-128L and AEGIS-256, two AES-based
   authenticated encryption algorithms designed for high-performance
   applications.  This 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/jedisct1/draft-aegis-aead.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aegis-aead-03"/>
        </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="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="Ferguson" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/Ferguson2.pdf">
          <front>
            <title>Authentication weaknesses in GCM</title>
            <author initials="N." surname="Ferguson">
              <organization/>
            </author>
            <date year="2005" month="May"/>
          </front>
        </reference>
        <reference anchor="Nyberg" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/general-comments/papers/Nyberg_Gilbert_and_Robshaw.pdf">
          <front>
            <title>Galois MAC with forgery probability close to ideal</title>
            <author initials="K." surname="Nyberg">
              <organization/>
            </author>
            <author initials="H." surname="Gilbert">
              <organization/>
            </author>
            <author initials="M." surname="Robshaw">
              <organization/>
            </author>
            <date year="2005" month="June"/>
          </front>
        </reference>
        <reference anchor="Mattsson" target="https://eprint.iacr.org/2015/477.pdf">
          <front>
            <title>Authentication Key Recovery on Galois/Counter Mode (GCM)</title>
            <author initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author initials="M." surname="Westerlund">
              <organization/>
            </author>
            <date year="2015" month="May"/>
          </front>
        </reference>
        <reference anchor="Rogaway" target="https://www.cryptrec.go.jp/exreport/cryptrec-ex-2012-2010r1.pdf">
          <front>
            <title>Evaluation of Some Blockcipher Modes of Operation</title>
            <author initials="P." surname="Rogaway">
              <organization/>
            </author>
            <date year="2011" month="February"/>
          </front>
        </reference>
        <reference anchor="Bellare" target="https://eprint.iacr.org/2016/564.pdf">
          <front>
            <title>The Multi-User Security of Authenticated Encryption: AES-GCM in TLS 1.3</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="B." surname="Tackmann">
              <organization/>
            </author>
            <date year="2017" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <section anchor="aes-gcm-sst-test-vectors">
      <name>AES-GCM-SST Test Vectors</name>
      <section anchor="aes-gcm-sst-test-1-128-bit-key">
        <name>AES-GCM-SST Test #1 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 22 ce 92 da cb 50 77 4b ab 0d 18 29 3d 6e ae 7f }
         Q = { 03 13 63 96 74 be fa 86 4d fa fb 80 36 b7 a0 3c }
         M = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
]]></artwork>
        <section anchor="case-1a">
          <name>Case #1a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
       TAG = { 9b 1d 49 ea }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section anchor="case-1b">
          <name>Case #1b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 7f f3 cb a4 d5 f3 08 a5 70 4e 2f d5 f2 3a e8 f9 }
       TAG = { 7f f3 cb a4 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section anchor="case-1c">
          <name>Case #1c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { f8 de 17 85 fd 1a 90 d9 81 8f cb 7b 44 69 8a 8b }
       TAG = { f8 de 17 85 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd }
]]></artwork>
        </section>
        <section anchor="case-1d">
          <name>Case #1d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { 93 43 56 14 0b 84 48 2c d0 14 c7 40 7e e9 cc b6 }
       TAG = { 93 43 56 14 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d c0 cb c7 85 a7 a9 20 db 42 28 ff 63 32 10 }
]]></artwork>
        </section>
        <section anchor="case-1e">
          <name>Case #1e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { f8 50 b7 97 11 43 ab e9 31 5a d7 eb 3b 0a 16 81 }
       TAG = { f8 50 b7 97 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-2-128-bit-key">
        <name>AES-GCM-SST Test #2 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 2d 6d 7f 1c 52 a7 a0 6b f2 bc bd 23 75 47 03 88 }
         Q = { 3b fd 00 96 25 84 2a 86 65 71 a4 66 e5 62 05 92 }
         M = { 9e 6c 98 3e e0 6c 1a ab c8 99 b7 8d 57 32 0a f5 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { 45 03 bf b0 96 82 39 b3 67 e9 70 c3 83 c5 10 6f }
       TAG = { 45 03 bf b0 96 82 39 b3 }
CIPHERTEXT = { b8 65 d5 16 07 83 11 73 21 f5 6c b0 75 45 16 b3
               da 9d b8 09 }
]]></artwork>
      </section>
      <section anchor="aes-gcm-sst-test-3-256-bit-key">
        <name>AES-GCM-SST Test #3 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
               10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 3b d9 9f 8d 38 f0 2e a1 80 96 a4 b0 b1 d9 3b 1b }
         Q = { af 7f 54 00 16 aa b8 bc 91 56 d9 d1 83 59 cc e5 }
         M = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
]]></artwork>
        <section anchor="case-3a">
          <name>Case #3a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
       TAG = { b3 35 31 c0 e9 6f 4a 03 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section anchor="case-3b">
          <name>Case #3b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 63 ac ca 4d 20 9f b3 90 28 ff c3 17 04 01 67 61 }
       TAG = { 63 ac ca 4d 20 9f b3 90 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section anchor="case-3c">
          <name>Case #3c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { e1 de bf fd 5f 3a 85 e3 48 bd 6f cc 6e 62 10 90 }
       TAG = { e1 de bf fd 5f 3a 85 e3 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 }
]]></artwork>
        </section>
        <section anchor="case-3d">
          <name>Case #3d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { c3 5e d7 83 9f 21 f7 bb a5 a8 a2 8e 1f 49 ed 04 }
       TAG = { c3 5e d7 83 9f 21 f7 bb }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 11 7e 17 58 b5 ed d0 d6 5d 68 32 06 bb ad }
]]></artwork>
        </section>
        <section anchor="case-3e">
          <name>Case #3e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { 49 7c 14 77 67 a5 3d 57 64 ce fd 03 26 fe e7 b5 }
       TAG = { 49 7c 14 77 67 a5 3d 57 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-4-256-bit-key">
        <name>AES-GCM-SST Test #4 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb
               b3 a6 db 3c 87 0c 3e 99 24 5e 0d 1c 06 b7 b3 12 }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 13 53 4b f7 8a 91 38 fd f5 41 65 7f c2 39 55 23 }
         Q = { 32 69 75 a3 3a ff ae ac af a8 fb d1 bd 62 66 95 }
         M = { 59 48 44 80 b6 cd 59 06 69 27 5e 7d 81 4a d1 74 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c 73 49 bf 3c d5 4d }
       TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c }
CIPHERTEXT = { b5 c2 a4 07 f3 3e 99 88 de c1 2f 10 64 7b 3d 4f
               eb 8f f7 cc }
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors want to thank <contact fullname="Richard Barnes"/> for his valuable comments and feedback. Some of the formatting and text were inspired by and borrowed from <xref target="I-D.irtf-cfrg-aegis-aead"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
juJYtuxlK92dnt/wfzzAQ3z/C9YnwGc5ZgAA

-->

</rfc>
