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

<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>
    <?line 183?>

<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"/>, an attacker can almost always gain feedback on success or failure of forgery attempts, 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. NIST is planning to remove support for GCM with tags shorter than 96-bits <xref target="Revise"/>. While Counter with CBC-MAC (CCM) <xref target="RFC5116"/> with short tags has forgery probabilities close to ideal, 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 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="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"/>. 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"/>. GCM-SST has been standardized for use with AES-256 and SNOW 5G <xref target="SNOW"/> in 3GPP 5G Advance.</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>Primitives:</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>= is the assignment operator</t>
        </li>
        <li>
          <t>!= is the inequality operator</t>
        </li>
        <li>
          <t>x || y is concatenation of the octet strings x and y</t>
        </li>
        <li>
          <t>XOR is the bitwise exclusive OR operator</t>
        </li>
        <li>
          <t>len(x) is the length of x in bits.</t>
        </li>
        <li>
          <t>zeropad(x) right pads an octet string x with zeroes to a multiple of 128 bits</t>
        </li>
        <li>
          <t>truncate(x, t) is the truncation operation.  The first t bits of x are kept</t>
        </li>
        <li>
          <t>n is the number of 128-bit chunks in zeropad(P)</t>
        </li>
        <li>
          <t>m is the number of 128-bit chunks in zeropad(A)</t>
        </li>
        <li>
          <t>POLYVAL is defined in <xref target="RFC8452"/></t>
        </li>
        <li>
          <t>BE32(x) is the big-endian encoding of 32-bit integer x</t>
        </li>
        <li>
          <t>LE64(x) is the little-endian encoding of 64-bit integer x</t>
        </li>
        <li>
          <t>V[y] is the 128-bit chunk with index y in the array V; the first chunk has index 0.</t>
        </li>
        <li>
          <t>V[x:y] are the range of chunks x to y in the array V</t>
        </li>
      </ul>
    </section>
    <section anchor="GCM-SST">
      <name>Galois Counter Mode with Secure Short Tags (GCM-SST)</name>
      <t>This section defines the Galois Counter Mode with Secure Short Tags (GCM-SST) AEAD algorithm following the recommendations from Nyberg et al. <xref target="Nyberg"/>. GCM-SST is defined with a general interface so that it can be used with any keystream generator, not just a 128-bit block cipher.</t>
      <t>GCM-SST adheres to an AEAD interface <xref target="RFC5116"/> and the encryption function takes four variable-length octet string parameters. A secret key K, a nonce N, the associated data A, and a plaintext P. The keystream generator is instantiated with K and N. The keystream <bcp14>MAY</bcp14> depend on P and A. The minimum and maximum lengths of all parameters depend on the keystream generator. The keystream generator produces a keystream Z consisting of 128-bit chunks where the first three chunks Z[0], Z[1], and Z[2] are used as the three subkeys H, Q, and M. The following keystream chunks Z[3], Z[4], ..., Z[n + 2] are used to encrypt the plaintext. Instead of GHASH <xref target="GCM"/>, GCM-SST makes use of the POLYVAL function from AES-GCM-SIV <xref target="RFC8452"/>, which results in more efficient software implementations on little-endian architectures. GHASH and POLYVAL can be defined in terms of one another <xref target="RFC8452"/>. The subkeys H and Q are field elements used in POLYVAL while the subkey M is used for the final masking of the tag. Both encryption and decryption are only defined on inputs that are a whole number of octets.</t>
      <t>Figures illustrating the GCM-SST encryption and decryption functions are shown in <xref target="SST1"/><xref target="SST2"/>.</t>
      <section anchor="authenticated-encryption-function">
        <name>Authenticated Encryption Function</name>
        <t>Encrypt(K, N, A, P)</t>
        <t>The encryption 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>
            <t>The key <bcp14>MUST</bcp14> be randomly chosen from a uniform distribution.</t>
          </li>
          <li>
            <t>For a given key, the nonce <bcp14>MUST NOT</bcp14> be reused under any circumstances.</t>
          </li>
          <li>
            <t>Supported tag_length associated with the key.</t>
          </li>
          <li>
            <t>Definitions of supported input-output lengths.</t>
          </li>
        </ul>
        <t>Inputs:</t>
        <ul spacing="normal">
          <li>
            <t>Key K (variable-length octet string)</t>
          </li>
          <li>
            <t>Nonce N (variable-length octet string)</t>
          </li>
          <li>
            <t>Associated data A (variable-length octet string)</t>
          </li>
          <li>
            <t>Plaintext P (variable-length octet string)</t>
          </li>
        </ul>
        <t>Outputs:</t>
        <ul spacing="normal">
          <li>
            <t>Ciphertext ct (variable-length octet string)</t>
          </li>
          <li>
            <t>Tag tag (octet string with length tag_length)</t>
          </li>
        </ul>
        <t>Steps:</t>
        <ol spacing="normal" type="1"><li>
            <t>If the lengths of K, N, A, P are not supported return error and abort</t>
          </li>
          <li>
            <t>Initiate keystream generator with K and N</t>
          </li>
          <li>
            <t>Let H = Z[0], Q = Z[1], M = Z[2]</t>
          </li>
          <li>
            <t>Let ct = P XOR truncate(Z[3:n + 2], len(P))</t>
          </li>
          <li>
            <t>Let S = zeropad(A) || zeropad(ct) || LE64(len(ct)) || LE64(len(A))</t>
          </li>
          <li>
            <t>Let X = POLYVAL(H, S[0], S[1], ..., S[m + n - 1])</t>
          </li>
          <li>
            <t>Let full_tag = POLYVAL(Q, X XOR S[m + n]) XOR M</t>
          </li>
          <li>
            <t>Let tag = truncate(full_tag, tag_length)</t>
          </li>
          <li>
            <t>Return (ct, tag)</t>
          </li>
        </ol>
      </section>
      <section anchor="authenticated-decryption-function">
        <name>Authenticated Decryption Function</name>
        <t>Decrypt(K, N, A, ct, tag)</t>
        <t>The decryption 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>
            <t>The calculation of the plaintext P (step 9) <bcp14>MAY</bcp14> be done in parallel with the tag verification (step 3-8). If tag verification fails, the plaintext P and the expected_tag <bcp14>MUST NOT</bcp14> be given as output.</t>
          </li>
          <li>
            <t>The comparison of the input tag with the expected_tag <bcp14>MUST</bcp14> be done in constant time.</t>
          </li>
          <li>
            <t>Supported tag_length associated with the key.</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) || LE64(len(ct)) || LE64(len(A))</t>
          </li>
          <li>
            <t>Let X = POLYVAL(H, S[0], S[1], ..., S[m + n - 1])</t>
          </li>
          <li>
            <t>Let full_tag = POLYVAL(Q, X XOR S[m + n]) XOR M</t>
          </li>
          <li>
            <t>Let expected_tag = truncate(full_tag, tag_length)</t>
          </li>
          <li>
            <t>If tag != expected_tag, return error and abort</t>
          </li>
          <li>
            <t>Let P = ct XOR truncate(Z[3:n + 2], len(ct))</t>
          </li>
          <li>
            <t>Return P</t>
          </li>
        </ol>
      </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>
            <t>P_MAX (maximum size of the plaintext) is 2<sup>36</sup> - 48 octets.</t>
          </li>
          <li>
            <t>A_MAX (maximum size of the associated data) is 2<sup>36</sup> octets.</t>
          </li>
          <li>
            <t>N_MIN and N_MAX (minimum and maximum size of the nonce) are both 12 octets</t>
          </li>
          <li>
            <t>C_MAX (maximum size of the ciphertext and tag) is P_MAX + tag_length (in bytes)</t>
          </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 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="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"/>
            <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="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="5" month="December" 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-06"/>
        </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="20" month="January" 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-10"/>
        </reference>
        <reference anchor="MoQ" target="https://datatracker.ietf.org/wg/moq/about/">
          <front>
            <title>Media Over QUIC</title>
            <author initials="" surname="IETF">
              <organization/>
            </author>
            <date year="2022" month="September"/>
          </front>
        </reference>
        <reference anchor="Revise" target="https://csrc.nist.gov/news/2023/proposal-to-revise-sp-800-38d">
          <front>
            <title>Announcement of Proposal to Revise SP 800-38D</title>
            <author initials="" surname="NIST">
              <organization/>
            </author>
            <date year="2023" month="August"/>
          </front>
        </reference>
        <reference anchor="SNOW" target="https://eprint.iacr.org/2021/236">
          <front>
            <title>SNOW-Vi: an extreme performance variant of SNOW-V for lower grade CPUs</title>
            <author initials="P." surname="Ekdahl">
              <organization/>
            </author>
            <author initials="T." surname="Johansson">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="J." surname="Yang">
              <organization/>
            </author>
            <date year="2021" month="March"/>
          </front>
        </reference>
        <reference anchor="SST1" target="https://csrc.nist.gov/csrc/media/Events/2023/third-workshop-on-block-cipher-modes-of-operation/documents/accepted-papers/Galois%20Counter%20Mode%20with%20Secure%20Short%20Tags.pdf">
          <front>
            <title>Galois Counter Mode with Secure Short Tags (GCM-SST)</title>
            <author initials="M." surname="Campagna">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="SST2" target="https://csrc.nist.gov/csrc/media/Presentations/2023/galois-counter-mode-with-secure-short-tags/images-media/sess-5-mattsson-bcm-workshop-2023.pdf">
          <front>
            <title>Galois Counter Mode with Secure Short Tags (GCM-SST)</title>
            <author initials="M." surname="Campagna">
              <organization/>
            </author>
            <author initials="A." surname="Maximov">
              <organization/>
            </author>
            <author initials="J." surname="Preuß Mattsson">
              <organization/>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="GCM" target="https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
            <author initials="M." surname="Dworkin">
              <organization/>
            </author>
            <date year="2007" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-38D"/>
        </reference>
        <reference anchor="Ferguson" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/Ferguson2.pdf">
          <front>
            <title>Authentication weaknesses in GCM</title>
            <author initials="N." surname="Ferguson">
              <organization/>
            </author>
            <date year="2005" month="May"/>
          </front>
        </reference>
        <reference anchor="Nyberg" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/general-comments/papers/Nyberg_Gilbert_and_Robshaw.pdf">
          <front>
            <title>Galois MAC with forgery probability close to ideal</title>
            <author initials="K." surname="Nyberg">
              <organization/>
            </author>
            <author initials="H." surname="Gilbert">
              <organization/>
            </author>
            <author initials="M." surname="Robshaw">
              <organization/>
            </author>
            <date year="2005" month="June"/>
          </front>
        </reference>
        <reference anchor="Mattsson" target="https://eprint.iacr.org/2015/477.pdf">
          <front>
            <title>Authentication Key Recovery on Galois/Counter Mode (GCM)</title>
            <author initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author initials="M." surname="Westerlund">
              <organization/>
            </author>
            <date year="2015" month="May"/>
          </front>
        </reference>
        <reference anchor="Rogaway" target="https://www.cryptrec.go.jp/exreport/cryptrec-ex-2012-2010r1.pdf">
          <front>
            <title>Evaluation of Some Blockcipher Modes of Operation</title>
            <author initials="P." surname="Rogaway">
              <organization/>
            </author>
            <date year="2011" month="February"/>
          </front>
        </reference>
        <reference anchor="Bellare" target="https://eprint.iacr.org/2016/564.pdf">
          <front>
            <title>The Multi-User Security of Authenticated Encryption: AES-GCM in TLS 1.3</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="B." surname="Tackmann">
              <organization/>
            </author>
            <date year="2017" month="November"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 386?>

<section anchor="aes-gcm-sst-test-vectors">
      <name>AES-GCM-SST Test Vectors</name>
      <section anchor="aes-gcm-sst-test-1-128-bit-key">
        <name>AES-GCM-SST Test #1 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 22 ce 92 da cb 50 77 4b ab 0d 18 29 3d 6e ae 7f }
         Q = { 03 13 63 96 74 be fa 86 4d fa fb 80 36 b7 a0 3c }
         M = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
]]></artwork>
        <section numbered="false" anchor="case-1a">
          <name>Case #1a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { 9b 1d 49 ea 42 b0 0a ec b0 bc eb 8d d0 ef c2 b9 }
       TAG = { 9b 1d 49 ea }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1b">
          <name>Case #1b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 7f f3 cb a4 d5 f3 08 a5 70 4e 2f d5 f2 3a e8 f9 }
       TAG = { 7f f3 cb a4 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1c">
          <name>Case #1c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { f8 de 17 85 fd 1a 90 d9 81 8f cb 7b 44 69 8a 8b }
       TAG = { f8 de 17 85 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1d">
          <name>Case #1d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { 93 43 56 14 0b 84 48 2c d0 14 c7 40 7e e9 cc b6 }
       TAG = { 93 43 56 14 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d c0 cb c7 85 a7 a9 20 db 42 28 ff 63 32 10 }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-1e">
          <name>Case #1e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { f8 50 b7 97 11 43 ab e9 31 5a d7 eb 3b 0a 16 81 }
       TAG = { f8 50 b7 97 }
CIPHERTEXT = { 64 f0 5b ae 1e d2 40 3a 71 25 5e dd 53 49 5c e1
               7d }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-2-128-bit-key">
        <name>AES-GCM-SST Test #2 (128-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 2d 6d 7f 1c 52 a7 a0 6b f2 bc bd 23 75 47 03 88 }
         Q = { 3b fd 00 96 25 84 2a 86 65 71 a4 66 e5 62 05 92 }
         M = { 9e 6c 98 3e e0 6c 1a ab c8 99 b7 8d 57 32 0a f5 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { 45 03 bf b0 96 82 39 b3 67 e9 70 c3 83 c5 10 6f }
       TAG = { 45 03 bf b0 96 82 39 b3 }
CIPHERTEXT = { b8 65 d5 16 07 83 11 73 21 f5 6c b0 75 45 16 b3
               da 9d b8 09 }
]]></artwork>
      </section>
      <section anchor="aes-gcm-sst-test-3-256-bit-key">
        <name>AES-GCM-SST Test #3 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
               10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f }
     NONCE = { 30 31 32 33 34 35 36 37 38 39 3a 3b }
         H = { 3b d9 9f 8d 38 f0 2e a1 80 96 a4 b0 b1 d9 3b 1b }
         Q = { af 7f 54 00 16 aa b8 bc 91 56 d9 d1 83 59 cc e5 }
         M = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
]]></artwork>
        <section numbered="false" anchor="case-3a">
          <name>Case #3a</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { b3 35 31 c0 e9 6f 4a 03 2a 33 8e ec 12 99 3e 68 }
       TAG = { b3 35 31 c0 e9 6f 4a 03 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3b">
          <name>Case #3b</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 }
 PLAINTEXT = { }
encode-LEN = { 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 00 }
  full-TAG = { 63 ac ca 4d 20 9f b3 90 28 ff c3 17 04 01 67 61 }
       TAG = { 63 ac ca 4d 20 9f b3 90 }
CIPHERTEXT = { }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3c">
          <name>Case #3c</name>
          <artwork><![CDATA[
       AAD = { }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b }
encode-LEN = { 60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 }
  full-TAG = { e1 de bf fd 5f 3a 85 e3 48 bd 6f cc 6e 62 10 90 }
       TAG = { e1 de bf fd 5f 3a 85 e3 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3d">
          <name>Case #3d</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e }
encode-LEN = { f8 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 }
  full-TAG = { c3 5e d7 83 9f 21 f7 bb a5 a8 a2 8e 1f 49 ed 04 }
       TAG = { c3 5e d7 83 9f 21 f7 bb }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 11 7e 17 58 b5 ed d0 d6 5d 68 32 06 bb ad }
]]></artwork>
        </section>
        <section numbered="false" anchor="case-3e">
          <name>Case #3e</name>
          <artwork><![CDATA[
       AAD = { 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e }
 PLAINTEXT = { 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
               70 }
encode-LEN = { 88 00 00 00 00 00 00 00 78 00 00 00 00 00 00 00 }
  full-TAG = { 49 7c 14 77 67 a5 3d 57 64 ce fd 03 26 fe e7 b5 }
       TAG = { 49 7c 14 77 67 a5 3d 57 }
CIPHERTEXT = { fc 46 2d 34 a7 5b 22 62 4f d7 3b 27 84 de 10 51
               33 }
]]></artwork>
        </section>
      </section>
      <section anchor="aes-gcm-sst-test-4-256-bit-key">
        <name>AES-GCM-SST Test #4 (256-bit key)</name>
        <artwork><![CDATA[
       KEY = { 29 23 be 84 e1 6c d6 ae 52 90 49 f1 f1 bb e9 eb
               b3 a6 db 3c 87 0c 3e 99 24 5e 0d 1c 06 b7 b3 12 }
     NONCE = { 9a 50 ee 40 78 36 fd 12 49 32 f6 9e }
       AAD = { 1f 03 5a 7d 09 38 25 1f 5d d4 cb fc 96 f5 45 3b
               13 0d }
 PLAINTEXT = { ad 4f 14 f2 44 40 66 d0 6b c4 30 b7 32 3b a1 22
               f6 22 91 9d }
         H = { 13 53 4b f7 8a 91 38 fd f5 41 65 7f c2 39 55 23 }
         Q = { 32 69 75 a3 3a ff ae ac af a8 fb d1 bd 62 66 95 }
         M = { 59 48 44 80 b6 cd 59 06 69 27 5e 7d 81 4a d1 74 }
encode-LEN = { a0 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 }
  full-TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c 73 49 bf 3c d5 4d }
       TAG = { c4 a1 ca 9a 38 c6 73 af bf 9c }
CIPHERTEXT = { b5 c2 a4 07 f3 3e 99 88 de c1 2f 10 64 7b 3d 4f
               eb 8f f7 cc }
]]></artwork>
      </section>
    </section>
    <section removeInRFC="true" numbered="false" anchor="change-log">
      <name>Change log</name>
      <t>Changes from -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 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:
H4sIAAAAAAAAA+196XYbSXbmfzxFmDo+Q9oEiB0gXdXdEERJrBIplsjaulxH
J5AZALMIZKIzE1xarTnz0/7tB/A8y8yb+Enm+25ELtgkirWM3e463SSYGRF5
467fvXETqlarlTRIp+ZI7bzQ0yhI1DBahKmJ1WnkG3UbpFfqwniL2KiLqyhO
1aWeJGr3xfC0enFxubdT0aNRbG443V7aqXg6NZMovj9SQTiOKhU/8kI9wxP8
WI/T6kynaZJEYdUbx5OqNkl14s2qSZJW641KshjNgiQJojC9n2PKyZvL50o9
UXqaRHhGEPpmbvAjTHf21c7J4Cl+RTE+YdxOJVzMRiY+qvig4KjiRWFiwmSR
HKk0XpgKiGxVdGz0UTb+NoqvJ3G0mOPKML6fp5F6HsWL2U7l2tzjpn9UUVUV
mrtUTUxoYp2CMF5ahIEXxfIxmev4ehqEE+UHSRoHo0VqfDU1/sTElRsTLkCJ
UpufopTd5c4bkxgde1fqBcfxxkwHU9wgj/4QmHRci+IJr3MUrl+l6Tw5Ojjg
MF4KbkwtG3bACwd2wYPfGw55OwVtn3MxrjGBUBcjrIJ74U9RePARwXDOFCxN
0tKT3dyaXawWRB9b5WP3a1fpbLpTqehFCkU7qlShPkEaQPJH6rQGEpJFbPVo
qGdzPQk1rtkLp1jzytyWb4APR2ow03+OQvWtGUGH45vAMwlueVRwqudQh9rn
YGO57bnpf9Ayr+ZFsyUqBktUnOq7YBbd5EQMpuZOQzXj0h2h4jgOPO5YDZ5S
gM5esqtlgi5uDVS7IEhnS9Zmdsk/GDdrjbYvlmg7j83i//678MU9w17/IroK
N9z8mWT+hFVrmVyXSQyjGDegnUcVjH/zfNhpNLpH9mO/3WnK5cHxBS/BGnQ8
MVCyTMfCm+l8MUpqIbS3NoluDviBVw6en5xfHJydXFzW+KnWOOxVF3O/UZv7
Y7uS82mDZ98MzobHz9Tx2fDN9+eXJ6/P1MXl4OzZ4M0ztYsH7+3I+ARUm4T+
ylKi1A5X38ESz7HZWE/VCW7KZiKyMIIuJbT6ixQS0rGfqPPFaBp4dgAIsguL
K1Jn0Y2ha1LNOpxcJciWKvjS6jUafPRJ9ZkYcjUZxxBZ1YRefjnGZWc1kyDB
T+3L9NPoq838w8N1GmvvGhqUe4fbycEs+tOBHkWL9GCJWafGD7R6fQM6v/r6
ZGg3kJmj5UrV/VZQPWjdyfHl89I2L8w8zfbZbMrOzE2QmM3UeUnslURrbpMD
TGsdzONoHiV6Wk2jaizzq8m82q/Xq62+vyzdMIROemaGeKCiMcUiMxVcrH2y
ujhXduazB2yHIi9tZ7CYLJKUe2lxLxdnr7/dvBMzj4MwrQXai4XFmNE4aLa6
S8RyevWbAFYdKkSUGFSruYlFE7AHdaPjQNt92KEKt9Q0ugU7J7FGMB6ef508
YBfnNXV87eur6ebblzW6AR06q94wYlArubAN97+oqe91OClx6lSCF7ctjLq4
bDxE5PzrYEalOzhGpEyd/NOrIParjM3JVTSvIlSMppF3XfWC+ZWJqzPgkqQa
javR3EXkAyCMxUwW0J5HHfSrc427yYHFNH/frDtUg0/ENfhFZINfFtvwA9EN
fhPfrLmRx0Gjj0rqtFYOWY+TxLo3z4Ty2ksjZ4stJ5bmJ4oFiwNCpcJlJ52J
sKLqWVaINKpkRTURVlQTsqKaghUHwUxPICq7VAJ/We0U4X+EqJ/LmCv/dTId
hH1qbHtlJtq7P7g4l0vJ3HgI8fMiuDhPuMavNwYRF2bg2xBE7/GUhqOGYjjC
wITu5XVmOEfK8vhgicdk5h68lK9enA6GH42PF5bApfD3cJcLaTyjGgRlJpbD
ZY9cfG5iuGIQ/AD1HV68GebqG/1kPLgF4UPV8qF6abyrMPjTwiQlx/F0eAou
zOwfw2+HVTDhIHtscx1XYE8Ymu331ujrEAoO/gYhZf6QYFPLt7XkSe+56w53
fXYPHkx+oz3bBGda9bILzoNaIt6+CKb4nb6FWrx9E42SK327zWChNNZOoYFI
gu4VAvpIj4JpkN4rbxohKiM+B77R0wew6cua48Pm2y9rypG2Vb8cuSUmf7EI
Tc7lzIgfGtobnYN2r/cxjfjS3Csa5A0ZgL+3GtoDWPBFbdnTbNrkt8jOTDxd
hP6aMjVkm2+iib7V95t3eXt7W/OYmsbGg0LVfpofmLvYzOFgD7LrVXMHP91o
8kc9Xofaxzd6urCbJ4SJAG9EBb1t3udhUMbRXdrVczOKFzqWrQneeGqmSIK3
oMwNAuwedLrtNfovr4w6XUzToPo1vJ0NMtRYkFySLXL741BYIv4TGQQ9Ba3+
8tWFatRaD/N5juTN95/WENW8a8DCLU6xAadYrVaRpCWE92mlcnkFw8ssW/lm
HMAdKVCtHhNFt27YzhxAE+HyeesZMgzmUYNniBjTSQSOXc1qyi2EjDpUI6MW
CYbKVB3eq2tzD7KNnmVFlSjeV2GUqp+ItrUStKes2oAT2APSzFD5wXhsYuRD
2Bic1Bzs8+lIyP537/Dz/XsVcM86zZ+/oEcGDdr3A9KPMJUsRiBAfbVvR46B
cK7cxUS9lLD3lcLaYGKM/MyXOGo04G0Y4dn7MkKmkrvnr199/83glRojDbFR
N45mmVZUL06+IUmyfUg2RcJGdXrxcnDxkjvDPRPq0RRECmxShE3bfGfAfS95
T7dELnYWyVTM3BCSxpLmRhJXPlkL26jK/g0/Lwk1S2FtQmyf/ylqk28XqlNb
1cXAqiH24S88yW74Z7kOpparXzWr27PA96emUnmCxDu1k1l8qzxgA0G4kfyM
zr2yumjsyjfTeyskKnKhxxjnKhYY6y8s41PMScXqoB1LCRweO4rAoSQap7fU
IGrKFciyf0CwMHr+5hrgxw0lrxLnZ4CD8DucCHuIrVTidhX8Wdzlfg4X1DyC
SwO5yOBVehutwA+xehiFXo5IuYq+e5ct9P69ta/SfJJqHOYEVzzqfBySrlss
JutmGi3qUOitXWocxDDibEGVBJMwGIOEMMVqAURmdGJylchhAdQiWXisqYwX
00z57YpgUARG5kvGUGtouizhjPmlCqxaQTJS7YDHCJl7UGJ8ZGrWl4c9IWxy
D9dhdCsF20w7s2X3lxfVUwSixK5kfGeoGJsYACuoemndy/X9zRhb5tPNlDgz
iQ2umC1c82EZA2qsg2jcHBVl3wEkZegCapCv/RtKa+7mU/hOCOsqulXJDDJV
HnJ/smbEJQlNqIpG1AbPprpMKXa4aGtyCUwxDSbkIYYkZW2pqa9ZyUoXIe5O
7/et3vqBL+58HE2neKqw0Gfx1TrHZWJpI5lrFLUbB6Cq5K9jMDeIpcSTiC9e
JGZV9aj1gzkPBoI7NSSznYXXlima0GQZgmYRrNdmtbKmCN0+3QODIhKLVRBj
9MzQmcopgx0Jz88k1rhZGUyYQi2tVt6DQ2LwCTyghCg+t4awSZJv4SXuczxX
yCy78v79vkSsTOkYQvV0FjE0Wv2bMBqOoYEjjKAAnUIJiTqY0j2D+CyCkNbZ
PMUWIFU4Lj+AWGHP5Mz/SCyZ84IVZYMW5klU0eCujsWervSNi+gIiNUIU6FW
jl5rcHrqLaZOX0o8BAcQVFNQiLlmCS2Ku4ImRLSBJQCgZhluzMs9tBVyVBgJ
F20BIoXtPnKAB6GIKrvVVzWGT4uzhDnh2Y2mtpIx+XAZKHNE2BDEYbc6gvd2
nMFjYF6heMeUkXcGQ4I05sTNwsyPL8UNSKWS9H97Bd7kQUsmDp8Oq0yodoc2
cBUBaXVHVzp5EGrYV1hKRtvaYjmECWUgGp6m1SR9jln0SVmMhfKJNlKTIjUN
wms11fcEHHBU04VPbnRe7Ktue3kByYTIcEoQ7ibWYSKMoiigX3nxwK3mfPEJ
eREaQQ5AFuEksRAM9Mkz7F/9+vLDiudIVswyegYWSo+iSi64izltLXUbpZcE
IIXxAo64pxno4oxoah/hnTZH0iJkkWCYv2+tPt8kTx0DgQd4PtjrsYSG6IKN
zFxIEvTD5PAKjs8+IltUTMAum4kTWw/g224CfwGNzoiF+tGpATAHkyxQE0Xk
OKVw1PtZ4E7v57QKRBVO3R7GgYoRrjjDBEKQb1wQWtIXcehTZlxOq0O4Jfo8
ygE+LfqK7iz64PSFHKPMFsB/idXI5eiT8A60lehtePmGoh1JSBPCX9I4xCx4
gvL+/bt3G05QaFsXJdund6ZXw/4ZhcEuGExqAE8z3ubaSdq0BGTSru+nEQOV
I0kT7swE3i3mzNLW0O//50zMxeAMVsZLFcJkUzwuwEORxXFDso8siXOJG1ML
7GSsIUpwU0IjjPBRSV+j2RcL/utK/kQxec5pyftlEsHVIpoQtQwZM3PbCLQ/
CERhKMZYlpKJNkP4z5ZkMhfBbVwCpfhJ7obKHUkIYsi5rS0LNqhfttPSwmWl
Z4AcGYCMIg1z+pADUM5sdrrCfx7ZIexhPX6yBLVenJ/zmmNHjcnsMAp51CXm
x3nPaFiingl9h1Cq2HqSqJ3Try8u2ebC3+rstXx+c/zV1ydvjp/x88XLwatX
+YeKG3Hx8vXXr54Vn4qZw9enp8dnz+xkXFVLlyo7p4Pvd6yK77yWo/LBqx2b
UC4pQCyqNzLW+ufIGYTPFeA0oK6RqLh6Ojz/P/+70QY//g4m0Gw0DsET+0e/
0WsTv8CvZZEPKmv/ZCCtWLDJVSRf0fMghdbtU5YWQFP64OY//EDO/HikPht5
80b7d+4CN7x0MePZ0kXh2fqVtcmWiRsubXhMzs2l6yucXqZ38P3S3xnfSxc/
+z0wllHVRv/3v6tUKudxMBNwkRyBA+rLrMBCvdGFow7CMljEwLNsoHiyDw4d
ZEN1EV7YSvDBSed5pYcZZ8qeqQ8N/7z0DLgue4I/t5aJ23+X38f0PwH1iO8q
7t+pf/7LP/9FWaiPDYHGMM8mBEZ5KSIaG7KAGDGcenaPid+9fpOtjHBzyxYB
cwfYmhCu4V7pGVMT7t7tZaPx1wQ2j+XvpNLDNACD/gyQONc+B8bB5IoIwpeo
UyYAU8RhcLAtSujCC2NFBD9ZEOsB98hudu9gDPnD3VXZX5YG1VSp4JLKfEsd
DfTazFOsFuZCl8449ywJtN7VIryWzDnbwvkeZsw+ZcaAM7IoGKxL20Y+jHl6
3GqWeAnAWmWyzk6I0IskZcCDXMpB7SGgvMPEV8fddlkIQZpOzaa5Ltsoz/3m
h/sfs4lLe7DCYC/hHTXI4m4dx8gcv/kn+cMy1Q5mILBj6zVZ9e4I64oXJKRi
MYUEOO7cUbqri9LxPwr9vXuSRSYHLBNjkcbPx5XLlc7/2jixUslI0D5jgzWx
0G6yeHY5e7ZAzqhSYpjDuFRfG+bSi9g25QCXVTPzL1v1cmkjIeZKxQ9/iVjl
/OzZ/kZPOrCRT5e85bmFuxsYQMZafJXaJYRbX8oKZ6uzEFGUbZJlRnkugwYO
SQNpzBYzuSQNhfhs9yWeg8G22FJpka0Aahu9tthP9F26/UfJ6wAbncWuuBUL
6QrjS69iwDN3848/1H/cx8/Gj5Zvf/yhaU2wjPHsjBzN7xPmc/Cpq0znKl7Q
lC/fkuXb+Fmr1fgxVP+oys+AQjlVWQ5yNXWyguezfGQ/t4uZ6BNhowtOn5Q4
7IM1ATIQm5Intv7CKv0YcD9g3MwPHIIZAsosb9ih7JY9prQKM9GFX4DSWnrJ
o4wiZ5MlR26LFqy/hayd2vJEiTxXpN+QQ40DM/WVmbrarUt+8kfdSrGrVG4v
ThaykiyIgPOY6eTa6YyIWU9q6ikPWspFHTyVSU/2J0ugoSRCdiNSC5ovUpci
SgUAFETTcqAT40ZUrzwPJmSQCqYABinDrXOMmUS3PzkTqaslCVyVcMimOJYn
2IUFriEkPNme3D93q1Qq7uIuXApcCdwGorTkCZscl7uWLPkVW+mExENrJtZn
2lvTiAc71veunheBz5ZZSPBYlXdwLRvkkskVxEeftuzq9nk2wyMG5Ko8wTiP
jZT0E+ihTYGyErrg2SwFEiA/kvjqRzOeRF0h53WWotmAzypS0XNPQMT5z6E6
2pWHsc5+CfJmuYEsa0TRFtKvzbjjBTHyG5fDykoXto5rq1lvnf8vbc7WdS25
MqGUytnzrGy+aF41WqT4lTlczDgRhbQonkFD7X4o2hBqndmQ8vGBg9Vw8/Ep
50Ug+tjgymvZiiV9WKiTl378MZfUKvx/dymSCi/djILbeNJFauZ8TgN+dlzC
4cLhwibE2IgSCqZblVcmjqkR1MsRblSadNiBxNGNoascWiutmnoFIl8iW7ER
6Cv5xCh0Kp+aP1badgz2/jnoYHqRQ3iElSMbR/YlmTjf26t07PALjC5QtE1m
sr+91F0Q8MuJuLJ6aYC1unat7/hk61R3EfUuhNILoVKC2cUPMxARqqpq/LhX
6dlJ48V0+paCKOYiXH4nG3ATftyTv04rfTvFjs53l62wvySxw5p6YzkPquXW
3gZX98xscHXuYuHqigXoFTY42eyaHIrmerhf9liuVLfBt0nmGAPqpvtrPrLw
aMvHazpTKJ43Yw37oOyAXU62HubisjOyUsY6LxsgIMVcHe4JmmM8ZvDlYQLg
2XRqpoXzWaPCTm1V+3vWZDZRmeyvPTHHw3dzcMT4ohtlj2ldKqCW9WO1fCdS
jQ2SYiPi7uTBOZXrq5Y2JeV+dr6nwcz8d3S9v64LLTvrhzv5ZW0HevQyFPRB
iwrCGz0NCgRntcZCr9pD3Tnmeum6S5cbMDy6P7oFFolK+vEbO/xfxIN3HuPB
u5/uwZ3TXzLDj7ryfu5AwOjy1P1tvD60jznH2hDgB2MhGVJp1PNocS5R4jir
6OTBQ10ukNMklcqgdGwrbvHawM+tAlrnxTYpZyhgMUDkUPZ0USA+z3f4UGN7
t+RQjweS0+USohpSjazG2uYPTydmP3fB4tOCmRw2sxWm3Pzilc0byj+07BFt
wFwWh3iS8aknIu+elE8uttSHfvV2P/WtawvDn6ebCxUYv7+thsAZ3PzK8U2l
8scfgh/BJz7r+GwomMByTEqJAZSnkh8CcURW6ONiWaJe6niTQyKXdBXk2wLR
SX509e5JfowFhn6b5cFQiDsZirjpCnv2/T3baZQXldypIhP90kMkQb53J5g2
Kw0kN8m89e6Xb18dn9k3LqhL9rLNq4u/E9VqsuEh63ewfThyQuVSI9a8psHE
HQ3b13Fs+4OSk3CeyG85HM+yrizULlEinjg2U5EoHpKdxaZF8xNf2YOKB8a1
S+ilNos8V+VZ+lK/haVU2tLkxHMmJXTX8qWana6tEEXhOOA734GcA0CMf1Fn
bM8IPHXyTOEPbAW/hI9qd3QP2LWn/lIODrssj+MaZl4+fdbATcrzLcT0ttHs
v4Wo3kJUb9u40ejiR6uZjW1uG9vPxnbb2djWtrGNejYYgnOD2+XB2OoSEXx+
iYjOtrH9bGxBRHfbWCFCBgsR747Uk0CHuqqn4Lx0wX++IwYxyMrCyQ54P00+
34nVVMUq3oFVDG1nTalQmDfQZVZiocbb08F3ajerMybBn80a0pW6fvMzRPjf
tbqfHfA3Yly7X1RigKe2r7NSadi0Wmmhs7enJ2c2zrslN5RDy8tL1WBPtF9i
Q6PplpO0dztZq/GIUQyUWYb845JW8iBJtJVBIH/jYMg6qe+OeZKiuP2Bhoai
MSE0t0s10A+0M1i7d3XJLev+vP70Z3wuzX6NqmVKfsH2hUvpUc2aXEV4D250
JRNt4E42noNIIa8497D9A3mz7Vj6nNjfmLUX5i0r4EjZV0bjwmrKFJQOMrIk
KauauvOEaizN2eJKE5Py95EstVTz0uWKl0ScbKVC7G6EzS/t24VKSveGDaIU
ek2pk/yURmfx2YZyl1FRb9jRNVukrkfdkrKMrrWSOiPGBZFfU8fSJPfYIp86
WSlyu9N4uwbNsKj4je4RUe5sC9dCXn/Lqr3T4Jp7sp3bXn7ZkQtKq6TPrqkS
PU1dG0wwEyVKCnFqtuMmKRnHd+fmjhN5Q6x4F3mtSE7o3dV379wbQIJKLkul
5ZJ7KPoMyCQJk1mfXdv6DVkdEmKeNDJLnXiINjKkJiXRkvlG4zxNVJ/J0XMV
8pk0dwnPmTY09uQw2Qr6NoqTtEqwu7ETCSwZRayi+mT2f/zrvzgHXE2dAy7b
y7dZ2m51nkEgUfxmkuzIuEBfwFI5OaDSefWWW3TpENBBjpW9LeY0usOOPRcv
WusFNRUt1exGZN/fcht3JuzV9xdGJs37d6W1Nz+zWp7PmWJ2qfqP//VvG7lb
dKgPEjlaoZ1BjEa6PvMd5r3KYkHAcAlfa9jPMOgmeVAXNjaIzfhVMStNc59Q
I5I22IdWh+yJW5ahBmGu3j4bIEji8vFiGfcOlsEjGcMTtHxc/hVA65OphEUX
csmUHGwXt5D8xhb3yxiS07W8I6TYs+tGKYciae6m2yv3riSbKo15xrxWtrK4
R0h6oD3Yjf9NdX991V3JiCBYQg1RnXJ6m8cmNlndFG8yiSilrYo8zd5hzfpo
ya38/QrbrhOnV76+t+qQdeV+ANerXQG7e0UTpfbZv0EEytBun1ZqxnAe2urA
7cpJfqlhNr2NeDzroNPSVvOcxYWSLLPB8r+1+RXmwu8ds/CMb/4RWLKL/EPH
pXmReiuXVyfsDlZ4LU3021gtfQzy4uEDGotJefnNCkOlEIy0RFi+oWTTjmrq
C7buCOIqU1KWngRLbYG3fTGm0HdYeZwhMXux6MrIDwISVgDy814krYAVgYX8
+ea4m/JDIR8KOhZBN52cD5zgD3v2gsTn1fex+FVoIMpRw3XzJ7r0iEhwau74
WIeYk/L75CUqZPjy9jL0UKhhRg3Ii2tE5UuvC640mFJ+KzWoDU+RU5CsQWu/
sD/t3mGRosw8guPITKTwhJJouhdDsHnJjpdenVxuBGFZXN6b4Zsnxr7KKcVA
ceEyW+YUY23yxX4X5wyxAZCz7nxdWBFrYU+HnBmoaHQTRAuIgq/LsWJl5OUO
6WPmy6RB/gUpJcnu57EwexPQAXl/ZiEkX/da5sdY30TSOSLiLo5IYFws/tps
okiqvSuTZQSxKb5QkAvwbTgih5OwLLb9JTa6GWW1z4qfpRSMnCkqdHLyIrzP
VsqwC7k+svyWxvSTwdlgrfIgF4NEKnImcfU/27HruudS+/ZqWO7cuo1oD4uZ
PYxb8cWRjFwvNNlXCqB5tifDDnrMyy/neWVqR/HtqvxwbKWNPSkSdPfKOd+n
dNX43HAuaerfQHsQP9bKx3LzSUPtZpgHarxXqfzPzf9lX/Lw5fH36nP1TtXr
qt5Q9aaqt1S9reodVe+qek/V+6p+qOpa1Ueq7qm6r+pG1cfqvV3g7PXZ8FgW
aNVVq8GKXqulWm3V6qhWV7V6qtVXrUPV0qo1yibxv5cyqdlUyHcPm/DNyhup
Tl31eqo9UnrEJzX6qompvurCmIzqjcsLfGXJbqlGS3VbcNSq16YOjbXqd1Xb
54fxiNVF0DHqKY0PXnmBU1ngcKQavmofKqNVu6lGde7VePww8pTBAggcdWVg
Vrh7iAW2MRTyeKKGjOlPGrry7shm8cb/fGesp4lhufIjshhAC0kTiDx/NTg5
uzz+7tJdsMdCVZaUM2l9yv+4baLI6uXgxSO37WjctMD7yvDk/OXxmxK9D2HS
6GcxqV1X7QZpb7dUu/0zeNbsP5Bn0L9xi2qq28rv8DOMQ3dUD5QY1RzLxSZV
3fTVeAPPygs8kmfeL6tY3brqNlS3SQvqtlW3o7pd1e2pbl91D1VXq+5onZHd
n6t84z6CoGr0VB8Mg5lrdVhX/qHqN1R/TP70RhQpKOjDmEfrjCwvsMZI7GNc
V50RXUbDKL9JVYFQeg3V7KgOrvgPZLb/Sypou6Pa8Es9nijAbNqafq7t0VNB
e9rjxwmn66mu+MfuuPBs9j+oJbbca6pei66xB0Xt0r32+qp3qHqaXO55quer
nlkX8niLVfQf7GFa3Hinqxptxo5+mxtvevQquOL1yB882BwqD26nu8HDlBZ4
lJA7LTK6A3fWWOONr7w6Nc0THdIID4eqCSUcUWDwCOMxuY5o1qg/UFnMb6cs
v4KmrMm/v0X+vYd6SygQwjkC72FPNRrcF4I6pA2Q0NHK7zHIABIg7DS6tPxN
Rp4v8CvI/4NS3QCsmo8EVkAwzRaBCSzANCgGv0uqO016PRA4bvB/I2GOyZ1d
AawONflgjBhMn2iGPrPJqdDPcVcdmoJ5mT41xoRGYDR2CvwGEAa24GIHYb1N
xR97hEzjDlWtNVrlDzBV3V/XM+3TUcEeEeaopXXqGQwa6uW1iQAhLSJAiAVy
aK6uCloB+A4b6tDfAAV96idCZMMjb7QgNiyMRwGRjHxyET4MNoGNQTvXoCCe
CsZAFbEvbBbsbgoUhDVAKxByQavp0EoAbgE516GgoXQOwWK4pTo/IzJBab2+
Ojzk1oCJOrJBKO24s24zeotvPHyoz4QssLnRmDAMu+g3CZ1HLZoylANm6mHr
QBAduqXueN1mti2wZj+jPvkCwNIQlI9FYaMIFM0Gd9YVINgT5WAhubUqScB1
yHAkucGnGlJL7Wa9FL9mhrKm0nVuEXYD3YYGN2RngBBIMhqHlHRjRNUDqIU/
afxSCQ6uAdgcjqk7GAif1TQ0jr7IB0pJwN3gGIxsjNa1Wo9pE502tw+CtSbX
YRCwIoRGzPMblF5HwqjprGs1pE9SGwx4UCJoDaIJWAjjwEb6hqgfXIGGQ+27
/YdFu9Z/+gTn07e9YkrbFngccG/9V0t2gCS0pzxNyAFgBA0GQw7rDhvBD8F0
aIUNwRkbwve2BR7Jv7+KxAfxn72dYwaqzpg+A+DTtIjyEOCgYrBhIjSBnYf1
daZuW2CNqQjvAJCIqfBUCKUASoi8WBfhG9ALvqbZeyDj/5YE/YwkCHZCLCoB
FhbA6Noj1NPIOfpKN+mIEGtYRvFpTmsC37bAowQOSMS0Gbh5DRC3LACQpLoD
beyQICA7YFVARjCbqKcrpD8we279LSFaAXeH1DRAD6gfSIEKtARPgj5++5Qv
0QmQHKGpRwGsg7stC/wKuvCpmK79SEz3icnRKqWIKLrLpL3lqX6P6A/BHCG9
2abVsILsidb2OLKRQ/7/drkVHslkeETn0dccRSzqC4kNSZCkzgsY2+lQIOu5
VZN2A++pWww6QAAQEsI70Cn82HhEFMoI1iTRhxtQKPApLbdN1znqKs/nFYgG
q0IZISzwst+gXWOlXvtXyK3ARDAOeAQyx+69LkMC6EcwPfT4GTLHZ2gSsqK2
v8EVf3CB9QyrQ5YC4SNFGbecYvalcOk1WC1mCtdm/GlR8qvyZAl+THl53get
UQ2luZRtXfC39lsfT8I3z4ef7/C8f0dtcMFD148qZ/JVMCuN8KshndKv+BWK
7rtc2fpqT64f/YWSebvryneM4kmn9pun7PntyrdT2RNWnhsvnRlv+I4rrjS0
b06aUperNLny3UO7/UT59vuMi/c2OU/44KtLjs6bbJbfXOCV1Y6dEpvsvypi
OclTQmFb6W347B8V+Vlv73OPX8tX+vn2JRD3FV3/oI79II3iQOdfpCunpwMv
+xJh+bKDzXH40r2ZFMU8mrZf4EvRXat37969CTx+V7R6quOQDZC2n5hHlvJN
qezYyP5pBtun7L4Atma/at8dv9v3UuybFjzNZpeJfBttECbzwLUI8c4IApRu
FOGjezFkwz8wxf7U/wfgA1ioJXAAAA==

-->

</rfc>
