<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-09" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-09"/>
    <author initials="F." surname="Günther" fullname="Felix Günther">
      <organization>IBM Research Europe - Zurich</organization>
      <address>
        <email>mail@felixguenther.info</email>
      </address>
    </author>
    <author initials="M." surname="Thomson" fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <author initials="C. A." surname="Wood" fullname="Christopher A. Wood">
      <organization>Cloudflare</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2024" month="October" day="10"/>
    <keyword>safe</keyword>
    <keyword>limits</keyword>
    <keyword>crypto</keyword>
    <abstract>
      <?line 124?>

<t>An Authenticated Encryption with Associated Data (AEAD) algorithm provides
confidentiality and integrity.  Excessive use of the same key can give an
attacker advantages in breaking these properties.  This document provides simple
guidance for users of common AEAD functions about how to limit the use of keys
in order to bound the advantage given to an attacker.  It considers limits in
both single- and multi-key settings.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Crypto Forum Research Group mailing list (cfrg@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/cfrg/draft-irtf-cfrg-aead-limits"/>.</t>
    </note>
  </front>
  <middle>
    <?line 133?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An Authenticated Encryption with Associated Data (AEAD) algorithm
provides confidentiality and integrity. <xref target="RFC5116"/> specifies an AEAD
as a function with four inputs -- secret key, nonce, plaintext, associated data
(of which nonce, plaintext, and associated data can optionally be zero-length) --
that produces ciphertext output and an error code
indicating success or failure. The ciphertext is typically composed of the encrypted
plaintext bytes and an authentication tag.</t>
      <t>The generic AEAD interface does not describe usage limits.  Each AEAD algorithm
does describe limits on its inputs, but these are formulated as strict
functional limits, such as the maximum length of inputs, which are determined by
the properties of the underlying AEAD composition.  Degradation of the security
of the AEAD as a single key is used multiple times is not given the same
thorough treatment.</t>
      <t>Effective limits can be influenced by the number of "users" of
a given key. In the traditional setting, there is one key shared between two
parties. Any limits on the maximum length of inputs or encryption operations
apply to that single key. The attacker's goal is to break security
(confidentiality or integrity) of that specific key. However, in practice, there
are often many parties with independent keys, multiple sessions between two
parties, and even many keys used within a single session due to rekeying. This
multi-key security setting, often referred to as the multi-user setting in the
academic literature, considers an attacker's advantage in breaking security of
any of these many keys, further assuming the attacker may have done some offline
work (measuring time, but not memory) to help break any key. As a result, AEAD
algorithm limits may depend on offline work and the number of keys. However,
given that a multi-key attacker does not target any specific key, acceptable
advantages may differ from that of the single-key setting.</t>
      <t>The number of times a single pair of key and nonce can be used might also be
relevant to security.  For some algorithms, such as AEAD_AES_128_GCM or
AEAD_AES_256_GCM, this limit is 1 and using the same pair of key and nonce has
serious consequences for both confidentiality and integrity; see
<xref target="NonceDisrespecting"/>.  Nonce-reuse resistant algorithms like
AEAD_AES_128_GCM_SIV can tolerate a limited amount of nonce reuse.
This document focuses on AEAD schemes requiring non-repeating nonces.</t>
      <t>It is good practice to have limits on how many times the same key (or pair of
key and nonce) are used.  Setting a limit based on some measurable property of
the usage, such as number of protected messages, amount of data transferred, or
time passed ensures that it is easy to apply limits.  This might require the
application of simplifying assumptions.  For example, TLS 1.3 and QUIC both
specify limits on the number of records that can be protected, using the
simplifying assumption that records are the same size; see <xref section="5.5" sectionFormat="of" target="TLS"/> and <xref section="6.6" sectionFormat="of" target="RFC9001"/>.</t>
      <t>Exceeding the determined usage limit can be avoided using rekeying.  Rekeying
uses a lightweight transform to produce new keys.  Rekeying effectively resets
progress toward single-key limits, allowing a session to be extended without
degrading security.  Rekeying can also provide a measure of forward and
backward (post-compromise) security.  <xref target="RFC8645"/> contains a thorough survey
of rekeying and the consequences of different design choices.  When considering
rekeying, the multi-user limits should be applied.</t>
      <t>Currently, AEAD limits and usage requirements are scattered among peer-reviewed
papers, standards documents, and other RFCs. Determining the correct limits for
a given setting is challenging as papers do not use consistent labels or
conventions, and rarely apply any simplifications that might aid in reaching a
simple limit.</t>
      <t>The intent of this document is to collate all relevant information about the
proper usage and limits of AEAD algorithms in one place.  This may serve as a
standard reference when considering which AEAD algorithm to use, and how to use
it.</t>
    </section>
    <section anchor="requirements-notation">
      <name>Requirements Notation</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" 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.
<?line -6?>
      </t>
    </section>
    <section anchor="notation">
      <name>Notation</name>
      <t>This document defines limitations in part using the quantities in
<xref target="notation-table"/> below.</t>
      <table anchor="notation-table">
        <name>Notation</name>
        <thead>
          <tr>
            <th align="right">Symbol</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">n</td>
            <td align="left">AEAD block length (in bits), of the underlying block cipher</td>
          </tr>
          <tr>
            <td align="right">k</td>
            <td align="left">AEAD key length (in bits)</td>
          </tr>
          <tr>
            <td align="right">r</td>
            <td align="left">AEAD nonce length (in bits)</td>
          </tr>
          <tr>
            <td align="right">t</td>
            <td align="left">Size of the authentication tag (in bits)</td>
          </tr>
          <tr>
            <td align="right">L</td>
            <td align="left">Maximum length of each message, including both plaintext and AAD (in blocks)</td>
          </tr>
          <tr>
            <td align="right">s</td>
            <td align="left">Total plaintext length in all messages (in blocks)</td>
          </tr>
          <tr>
            <td align="right">q</td>
            <td align="left">Number of protected messages (AEAD encryption invocations)</td>
          </tr>
          <tr>
            <td align="right">v</td>
            <td align="left">Number of attacker forgery attempts (failed AEAD decryption invocations + 1)</td>
          </tr>
          <tr>
            <td align="right">p</td>
            <td align="left">Upper bound on adversary attack probability</td>
          </tr>
          <tr>
            <td align="right">o</td>
            <td align="left">Offline adversary work (time, measured in number of encryption and decryption queries; multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">u</td>
            <td align="left">Number of keys (multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">B</td>
            <td align="left">Maximum number of blocks encrypted by any key (multi-key setting only)</td>
          </tr>
        </tbody>
      </table>
      <t>For each AEAD algorithm, we define the chosen-plaintext confidentiality (IND-CPA) and ciphertext
integrity (INT-CTXT) advantage roughly as the advantage an attacker has in breaking the
corresponding classical security property for the algorithm. An IND-CPA attacker
can query ciphertexts for arbitrary plaintexts. An INT-CTXT attacker can additionally
query plaintexts for arbitrary ciphertexts. Moreover, we define the combined
authenticated encryption advantage guaranteeing both confidentiality and integrity
against an active attacker. Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>Confidentiality advantage (CA): The probability of an attacker
succeeding in breaking the IND-CPA (confidentiality) properties of the AEAD scheme.
In this document, the definition of confidentiality advantage roughly is the
probability that an attacker successfully distinguishes the ciphertext outputs
of the AEAD scheme from the outputs of a random function.</t>
        </li>
        <li>
          <t>Integrity advantage (IA): The probability of an attacker succeeding
in breaking the INT-CTXT (integrity) properties of the AEAD scheme. In this document,
the definition of integrity advantage roughly is the probability that an attacker
is able to forge a ciphertext that will be accepted as valid.</t>
        </li>
        <li>
          <t>Authenticated Encryption advantage (AEA): The probability of an active
attacker succeeding in breaking the authenticated-encryption properties of the
AEAD scheme. In this document, the definition of authenticated encryption
advantage roughly is the probability that an attacker successfully distinguishes
the ciphertext outputs of the AEAD scheme from the outputs of a random function
or is able to forge a ciphertext that will be accepted as valid.</t>
        </li>
      </ul>
      <t>Here, we consider advantages beyond distinguishing underyling primitives from their
ideal instances (for example, a pseudorandom from a truly random function).</t>
      <t>See <xref target="AEComposition"/>, <xref target="AEAD"/> for the formal definitions of and relations
between IND-CPA (confidentiality), INT-CTXT (integrity),
and authenticated encryption security (AE).
The authenticated encryption advantage subsumes, and can be derived as the
combination of, both CA and IA:</t>
      <artwork><![CDATA[
CA <= AEA
IA <= AEA
AEA <= CA + IA
]]></artwork>
      <t>Each application requires an individual determination of limits in order to keep CA
and IA sufficiently small.  For instance, TLS aims to keep CA below 2<sup>-60</sup> and IA
below 2<sup>-57</sup> in the single-key setting; see <xref section="5.5" sectionFormat="of" target="TLS"/>.</t>
    </section>
    <section anchor="calculating-limits">
      <name>Calculating Limits</name>
      <t>Once upper bounds on CA, IA, or AEA are determined, this document
defines a process for determining three overall operational limits:</t>
      <ul spacing="normal">
        <li>
          <t>Confidentiality limit (CL): The number of messages an application can encrypt
before giving the adversary a confidentiality advantage higher than CA.</t>
        </li>
        <li>
          <t>Integrity limit (IL): The number of ciphertexts an application can decrypt
unsuccessfully before giving the adversary an integrity advantage higher than
IA.</t>
        </li>
        <li>
          <t>Authenticated encryption limit (AEL): The combined number of messages and
number of ciphertexts an application can encrypt or decrypt before giving the
adversary an authenticated encryption advantage higher than AEA.</t>
        </li>
      </ul>
      <t>When limits are expressed as a number of messages an application can encrypt or
decrypt, this requires assumptions about the size of messages and any
authenticated additional data (AAD).  Limits can instead be expressed in terms
of the number of bytes, or blocks, of plaintext and maybe AAD in total.</t>
      <t>To aid in translating between message-based and byte/block-based limits,
a formulation of limits that includes a maximum message size (<tt>L</tt>) and the AEAD
schemes' block length in bits (<tt>n</tt>) is provided.</t>
      <t>All limits are based on the total number of messages, either the number of
protected messages (<tt>q</tt>) or the number of forgery attempts (<tt>v</tt>); which correspond
to CL and IL respectively.</t>
      <t>Limits are then derived from those bounds using a target attacker probability.
For example, given an integrity advantage of <tt>IA = v * (8L / 2^106)</tt> and a
targeted maximum attacker success probability of <tt>IA = p</tt>, the algorithm remains
secure, i.e., the adversary's advantage does not exceed the targeted probability
of success, provided that <tt>v &lt;= (p * 2^106) / 8L</tt>. In turn, this implies that
<tt>v &lt;= (p * 2^103) / L</tt> is the corresponding limit.</t>
      <t>To apply these limits, implementations can count the number of messages that are
protected or rejected against the determined limits (<tt>q</tt> and <tt>v</tt> respectively).
This requires that messages cannot exceed the maximum message size (<tt>L</tt>) that is
chosen.</t>
      <section anchor="approximations">
        <name>Approximations</name>
        <t>This analysis assumes a message-based approach to setting limits.
Implementations that use byte counting rather than message counting could use a
maximum message size (<tt>L</tt>) of one to determine a limit for the number of
protected messages (<tt>q</tt>) that can be applied with byte counting.  This results
in attributing per-message overheads to every byte, so the resulting limit could
be significantly lower than necessary.  Actions, like rekeying, that are taken
to avoid the limit might occur more often as a result.</t>
        <t>To simplify formulae, estimates in this document elide terms that contribute
negligible advantage to an attacker relative to other terms.</t>
        <t>In other respects, this document seeks to make conservative choices that err on
the side of overestimating attacker advantage.  Some of these assumptions are
present in the papers that this work is based on.  For instance, analyses are
simplified by using a single message size that covers both AAD and plaintext.
AAD can contribute less toward attacker advantage for confidentiality limits, so
applications where AAD comprises a significant proportion of messages might find
the estimates provided to be slightly more conservative than necessary to meet a
given goal.</t>
        <t>This document assumes the use of non-repeating nonces (in particular, non-zero-length
nonces).  The modes covered here are not robust if the same nonce and key are used to
protect different messages, so deterministic generation of nonces from a counter or
similar techniques is strongly encouraged.  If an application cannot guarantee that
nonces will not repeat, a nonce-misuse resistant AEAD like AES-GCM-SIV <xref target="SIV"/> is
likely to be a better choice.</t>
      </section>
    </section>
    <section anchor="su-limits">
      <name>Single-Key AEAD Limits</name>
      <t>This section summarizes the confidentiality and integrity bounds and limits for modern AEAD algorithms
used in IETF protocols, including: AEAD_AES_128_GCM <xref target="RFC5116"/>, AEAD_AES_256_GCM <xref target="RFC5116"/>,
AEAD_AES_128_CCM <xref target="RFC5116"/>, AEAD_CHACHA20_POLY1305 <xref target="RFC8439"/>, AEAD_AES_128_CCM_8 <xref target="RFC6655"/>.
The limits in this section apply to using these schemes with a single key;
for settings where multiple keys are deployed (for example, when rekeying within
a connection), see <xref target="mu-limits"/>.</t>
      <t>These algorithms, as cited, all define a nonce length (<tt>r</tt>) of 96 bits.  Some
definitions of these AEAD algorithms allow for other nonce lengths, but the
analyses in this document all fix the nonce length to <tt>r = 96</tt>.  Using other nonce
lengths might result in different bounds; for example, <xref target="GCMProofs"/> shows that
using a variable-length nonce for AES-GCM results in worse security bounds.</t>
      <t>The CL and IL values bound the total number of encryption and forgery queries (<tt>q</tt> and <tt>v</tt>).
Alongside each advantage value, we also specify these bounds.</t>
      <section anchor="aeadaes128gcm-and-aeadaes256gcm">
        <name>AEAD_AES_128_GCM and AEAD_AES_256_GCM</name>
        <t>The CL and IL values for AES-GCM are derived in <xref target="AEBounds"/> and summarized below.
For this AEAD, <tt>n = 128</tt> (the AES block length) and <tt>t = 128</tt> <xref target="GCM"/>, <xref target="RFC5116"/>. In this example,
the length <tt>s</tt> is the sum of AAD and plaintext (in blocks of 128 bits), as described in <xref target="GCMProofs"/>.</t>
        <section anchor="confidentiality-limit">
          <name>Confidentiality Limit</name>
          <artwork><![CDATA[
CA <= ((s + q + 1)^2) / 2^129
]]></artwork>
          <t>This implies the following usage limit:</t>
          <artwork><![CDATA[
q + s <= p^(1/2) * 2^(129/2) - 1
]]></artwork>
          <t>Which, for a message-based protocol with <tt>s &lt;= q * L</tt>, if we assume that every
packet is size <tt>L</tt> (in blocks of 128 bits), produces the limit:</t>
          <artwork><![CDATA[
q <= (p^(1/2) * 2^(129/2) - 1) / (L + 1)
]]></artwork>
        </section>
        <section anchor="integrity-limit">
          <name>Integrity Limit</name>
          <t>Applying Equation (22) from <xref target="GCMProofs"/>, in which the assumption of
<tt>s + q + v &lt; 2^64</tt> ensures that the delta function cannot produce a value
greater than 2, the following bound applies:</t>
          <artwork><![CDATA[
IA <= 2 * (v * (L + 1)) / 2^128
]]></artwork>
          <t>For the assumption of <tt>s + q + v &lt; 2^64</tt>, observe that this applies when <tt>p &gt; L / 2^63</tt>.
<tt>s + q &lt;= q * (L + 1)</tt> is always small relative to <tt>2^64</tt> if the same advantage is
applied to the confidentiality limit on <tt>q</tt>.</t>
          <t>This produces the following limit:</t>
          <artwork><![CDATA[
v <= min(2^64, (p * 2^127) / (L + 1))
]]></artwork>
          <!--
Note that values of p that cause v to exceed 2^64 are where `p > L / 2^63`.
The same p value produces q = 2^33 * L^(-1/2) in the CA limit.
L is at most 2^32 by construction (that's the block counter),
so s + q <= q * (L+1) would be at most 2^49 which can be ignored
(ignoring the +1 as also being insignificant).
-->

</section>
      </section>
      <section anchor="aeadchacha20poly1305">
        <name>AEAD_CHACHA20_POLY1305</name>
        <t>The known single-user analyses for AEAD_CHACHA20_POLY1305
<xref target="ChaCha20Poly1305-SU"/>, <xref target="ChaCha20Poly1305-MU"/> give a combined AE limit,
which we separate into confidentiality and integrity limits below. For this
AEAD, <tt>n = 512</tt> (the ChaCha20 block length), <tt>k = 256</tt>, and <tt>t = 128</tt>; the length <tt>L'</tt> is the sum of AAD
and plaintext (in Poly1305 blocks of 128 bits), see <xref target="ChaCha20Poly1305-MU"/>.</t>
        <!--
    In {{ChaCha20Poly1305-SU}}, L' is |AAD| + |plaintext| + 1; the + 1 is one
    block length encoding (in Poly1305 t bit blocks).

    From {{ChaCha20Poly1305-MU}} Theorem 4.1:
      AEA <= PRF-advantage  +  v * 2^25 * (L'+1) / 2^t
    where t = 128. The CA part of this is only the PRF advantage, as in the
    proof of Theorem 4.1, the hops bounding G_3 only apply to the decryption
    oracle. So CA beyond the PRF advantage is 0. (L' is in Poly1305 t bit blocks.)
-->

<section anchor="confidentiality-limit-1">
          <name>Confidentiality Limit</name>
          <artwork><![CDATA[
CA <= 0
]]></artwork>
          <t>This implies there is no limit beyond the PRF security of the underlying ChaCha20
block function.</t>
        </section>
        <section anchor="integrity-limit-1">
          <name>Integrity Limit</name>
          <artwork><![CDATA[
IA <= (v * (L' + 1)) / 2^103
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
v <= (p * 2^103) / (L' + 1)
]]></artwork>
        </section>
      </section>
      <section anchor="aeadaes128ccm">
        <name>AEAD_AES_128_CCM</name>
        <t>The CL and IL values for AEAD_AES_128_CCM are derived from <xref target="CCM-ANALYSIS"/>
and specified in the QUIC-TLS mapping specification <xref target="RFC9001"/>. This analysis uses the total
number of underlying block cipher operations to derive its bound. For CCM, this number is the sum of:
the length of the associated data in blocks, the length of the ciphertext in blocks, the length of
the plaintext in blocks, plus 1.</t>
        <t>In the following limits, this is simplified to a value of twice the length of the packet in blocks,
i.e., <tt>2L</tt> represents the effective length, in number of block cipher operations, of a message with
L blocks. This simplification is based on the observation that common applications of this AEAD carry
only a small amount of associated data compared to ciphertext. For example, QUIC has 1 to 3 blocks of AAD.</t>
        <!--
    In {{CCM-ANALYSIS}}, Theorem 1+2, the terms
    l_E / l_F are the sum of block cipher applications over all encryption /
    forgery calls, which count the number of message blocks twice: once as
    |m| (resp. |c|), and once in the encoding function \beta.

    We simplify this by doubling the the packet length, using `2L` instead of
    `L`, while ignoring the usually small additional overhead of associated data.
    Hence `l_E = 2L * q` and `l_F = 2L * v`.
-->

<t>For this AEAD, <tt>n = 128</tt> (the AES block length) and <tt>t = 128</tt>.</t>
        <section anchor="confidentiality-limit-2">
          <name>Confidentiality Limit</name>
          <artwork><![CDATA[
CA <= (2L * q)^2 / 2^n
   <= (2L * q)^2 / 2^128
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
q <= sqrt(p) * 2^63 / L
]]></artwork>
        </section>
        <section anchor="integrity-limit-2">
          <name>Integrity Limit</name>
          <artwork><![CDATA[
IA <= v / 2^t + (2L * (v + q))^2 / 2^n
   <= v / 2^128 + (2L * (v + q))^2 / 2^128
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
v + (2L * (v + q))^2 <= p * 2^128
]]></artwork>
          <t>In a setting where <tt>v</tt> or <tt>q</tt> is sufficiently large, <tt>v</tt> is negligible compared to
<tt>(2L * (v + q))^2</tt>, so this this can be simplified to:</t>
          <artwork><![CDATA[
v + q <= sqrt(p) * 2^63 / L
]]></artwork>
        </section>
      </section>
      <section anchor="aeadaes128ccm8">
        <name>AEAD_AES_128_CCM_8</name>
        <t>The analysis in <xref target="CCM-ANALYSIS"/> also applies to this AEAD, but the reduced tag
length of 64 bits changes the integrity limit calculation considerably.</t>
        <artwork><![CDATA[
IA <= v / 2^t + (2L * (v + q))^2 / 2^n
   <= v / 2^64 + (2L * (v + q))^2 / 2^128
]]></artwork>
        <t>This results in reducing the limit on <tt>v</tt> by a factor of 2<sup>64</sup>.</t>
        <artwork><![CDATA[
v * 2^64 + (2L * (v + q))^2 <= p * 2^128
]]></artwork>
        <t>Note that, to apply this result, two inequalities can be produced, with the
first applied to determine <tt>v</tt>, then applying the second to find <tt>q</tt>:</t>
        <artwork><![CDATA[
v * 2^64 <= p * 2^127
(2L * (v + q))^2 <= p * 2^127
]]></artwork>
        <t>This approach produces much smaller values for <tt>v</tt> than for <tt>q</tt>.  Alternative
allocations tend to greatly reduce <tt>q</tt> without significantly increasing <tt>v</tt>.</t>
      </section>
      <section anchor="single-key-examples">
        <name>Single-Key Examples</name>
        <t>An example protocol might choose to aim for a single-key CA and IA that is at
most 2<sup>-50</sup>.  If the messages exchanged in the protocol are at most a
common Internet MTU of around 1500 bytes, then a value for <tt>L</tt> might be set to
2<sup>7</sup>.  <xref target="ex-table-su"/> shows limits for <tt>q</tt> and <tt>v</tt> that might be
chosen under these conditions.</t>
        <table anchor="ex-table-su">
          <name>Example single-key limits</name>
          <thead>
            <tr>
              <th align="left">AEAD</th>
              <th align="right">Maximum q</th>
              <th align="right">Maximum v</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">AEAD_AES_128_GCM</td>
              <td align="right">2<sup>32.5</sup></td>
              <td align="right">2<sup>64</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM</td>
              <td align="right">2<sup>32.5</sup></td>
              <td align="right">2<sup>64</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_CHACHA20_POLY1305</td>
              <td align="right">n/a</td>
              <td align="right">2<sup>46</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM</td>
              <td align="right">2<sup>30</sup></td>
              <td align="right">2<sup>30</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM_8</td>
              <td align="right">2<sup>30.4</sup></td>
              <td align="right">2<sup>13</sup></td>
            </tr>
          </tbody>
        </table>
        <t>AEAD_CHACHA20_POLY1305 provides no limit to <tt>q</tt> based on the provided single-user
analyses.</t>
        <t>The limit for <tt>q</tt> on AEAD_AES_128_CCM and AEAD_AES_128_CCM_8 is reduced due to a
need to reduce the value of <tt>q</tt> to ensure that IA does not exceed the target.
This assumes equal proportions for <tt>q</tt> and <tt>v</tt> for AEAD_AES_128_CCM.
AEAD_AES_128_CCM_8 permits a much smaller value of <tt>v</tt> due to the shorter tag,
which permits a higher limit for <tt>q</tt>.</t>
        <t>Some protocols naturally limit <tt>v</tt> to 1, such as TCP-based variants of TLS, which
terminate sessions on decryption failure.  If <tt>v</tt> is limited to 1, <tt>q</tt> can be
increased to 2<sup>31</sup> for both CCM AEADs.</t>
      </section>
    </section>
    <section anchor="mu-limits">
      <name>Multi-Key AEAD Limits</name>
      <t>In the multi-key setting, each user is assumed to have an independent and
uniformly distributed key, though nonces may be re-used across users with some
very small probability. The success probability in attacking one of these many
independent keys can be generically bounded by the success probability of
attacking a single key multiplied by the number of keys present <xref target="MUSecurity"/>, <xref target="GCM-MU"/>.
Absent concrete multi-key bounds, this means the attacker advantage in the multi-key
setting is the product of the single-key advantage and the number of keys.</t>
      <t>This section summarizes the confidentiality and integrity bounds and limits for
the same algorithms as in <xref target="su-limits"/> for the multi-key setting. The CL
and IL values bound the total number of encryption and forgery queries (q and v).
Alongside each value, we also specify these bounds.</t>
      <section anchor="aeadaes128gcm-and-aeadaes256gcm-1">
        <name>AEAD_AES_128_GCM and AEAD_AES_256_GCM</name>
        <t>Concrete multi-key bounds for AEAD_AES_128_GCM and AEAD_AES_256_GCM exist due to
Theorem 4.3 in <xref target="GCM-MU2"/>, which covers protocols with nonce randomization,
like TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>. Here, the full nonce is XORed with
a secret, random offset. The bound for nonce randomization was further improved
in <xref target="ChaCha20Poly1305-MU"/>.</t>
        <t>Results for AES-GCM with random, partially implicit nonces <xref target="RFC5288"/> are
captured by Theorem 5.3 in <xref target="GCM-MU2"/>, which apply to protocols such as TLS 1.2
<xref target="RFC5246"/>. Here, the implicit part of the nonce is a random value, of length
at least 32 bits and fixed per key, while we assume that the explicit part of
the nonce is chosen using a non-repeating process. The full nonce is the
concatenation of the two parts. This produces similar limits under most
conditions.  Note that implementations that choose the explicit part at random
have a higher chance of nonce collisions and are not considered for the
limits in this section.</t>
        <t>For this AEAD, <tt>n = 128</tt> (the AES block length), <tt>t = 128</tt>, and <tt>r = 96</tt>; the key length is <tt>k = 128</tt>
or <tt>k = 256</tt> for AEAD_AES_128_GCM and AEAD_AES_256_GCM respectively.</t>
        <section anchor="mu-gcm-ae">
          <name>Authenticated Encryption Security Limit</name>
          <!--
    From {{GCM-MU2}} Theorem 4.3; for nonce randomization (XN transform).

    Let:
        - #blocks encrypted/verified overall:   \sigma = (q + v) * L
        - worst-case  o (offline work), q+v, \sigma <= 2^95
          (Theorem 4.3 requires q <= 2^(1-e)r ; this yields e >= 0.0104, hence
          d = 1,5/e -1 <= 143 <= 2^8.)

    We can simplify the Theorem 4.3 advantage bound as follows:
        - Note: Last term is 2^-48; hence any other term <= 2^-50 is negligible.
        - 1st term (../2^k):  roughly <= 2^8 * (o + q+v + \sigma) / 2^k
           roughly <= (o + (q+v)*L) / 2^(k-8)
          This is negligible for k = 256.
          For k = 128, it is negligible if o, (q+v)*L <= 2^70.
          For o <= 2^70 and B >= 2^8, it is dominated by the 2nd term;
            we assume that and hence omit the 1st term.
          If B is small and k = 128, then \sigma might be relevant and
            we can add n*\sigma/2^128
        - 2nd term (../2^n):
          \sigma*(2B + cn + 2)/2^n = \sigma*(B + 97)/2^127
          Assuming that B >> 100, the dominant term is \sigma*B/2^127
        - 3rd term (../2^2n):  <= 2^-160, negligible.
        - 4th term (../2^(k+n)):  roughly <= (\sigma^2 + 2o(q+v)) / 2^256
          <= 2^-64, negligible.
        - 5th term (2^(-r/2)):  = 2^-48

    The 5th term, ensuring that the adversary is d-repeating ({{GCM-MU2}},
    Theorem 4.2), was improved in {{ChaCha20Poly1305-MU}} Theorem 7.1 to
      2^-(\delta * r)
    for which \delta can be chosen as \delta = 2 for d < 2^9.
    As d < 2^9 does not affect the above simplifications, this only makes the
    5th term negligible (2^-192), and allows to omit it.
-->
<t>Protocols with nonce randomization have a limit of:</t>
          <artwork><![CDATA[
AEA <= (q+v)*L*B / 2^127
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
q + v <= p * 2^127 / (L * B)
]]></artwork>
          <t>This assumes that <tt>B</tt> is much larger than 100; that is, each user enciphers
significantly more than 1600 bytes of data.  Otherwise, <tt>B</tt> should be increased by 161 for
AEAD_AES_128_GCM and by 97 for AEAD_AES_256_GCM.</t>
          <!--
    From {{GCM-MU2}} Theorem 5.3; for partial random nonces (CN transform).

    Let:
        - #blocks encrypted/verified overall:   \sigma = (q + v) * L
        - length R of random implicit nonce part: R = 32 (bits), as in TLS 1.2/RFC5288
        - worst-case  o (offline work), q+v, \sigma <= 2^77  (as per 1st term)
          (Theorem 5.3 requires R >= 32 [satisfied], o <= 2^(n-2);
          yields d = (q+v)R/2^(R-1) = (q+v)/2^26.)

    We can simplify the Theorem 5.3 advantage bound as follows:
        - 1st term (../2^k):  roughly <= ((q+v)/2^26 * (o + q+v) + n*\sigma) / 2^k
           roughly <= ((q+v)*o + (q+v)^2) / 2^(k+26) + (q+v)*l / 2^(k-7)
          This is negligible for k = 256.
          The second part ("(q+v)*l / 2^(k-7)") is negligible compared to the
             first part (and the 2nd term).
          For k = 128, what remains is:  ((q+v)*o + (q+v)^2) / 2^(k+26)
             which dominates the 2nd term if q+v > B*L*2^25.
        - 2nd term (../2^n):
          \sigma*(2B + cn + 2)/2^n = \sigma*(B + 97)/2^127
          Assuming that B >> 100, the dominant term is \sigma*B/2^127
        - 3rd term (../2^2n):  <= 2^-160, negligible.
        - 4th term (../2^(k+n)):  roughly <= (\sigma^2 + 2o(q+v)) / 2^256
          <= 2^-100, negligible.
        - 5th term (2^(-7R)):  = 2^-224, negligible.
-->

<t>Protocols with random, partially implicit nonces have the following limit,
which is similar to that for nonce randomization:</t>
          <artwork><![CDATA[
AEA <= (((q+v)*o + (q+v)^2) / 2^(k+26)) + ((q+v)*L*B / 2^127)
]]></artwork>
          <t>The first term is negligible if <tt>k = 256</tt>; this implies the following simplified
limits:</t>
          <artwork><![CDATA[
AEA <= (q+v)*L*B / 2^127
q + v <= p * 2^127 / (L * B)
]]></artwork>
          <t>For <tt>k = 128</tt>, assuming <tt>o &lt;= q + v</tt> (i.e., that the attacker does not spend
more work than all legitimate protocol users together), the limits are:</t>
          <!--
    Simplifying
      p >= (((q+v)*o + (q+v)^2) / 2^(k+26)) + ((q+v)*L*B / 2^127)

    to

      p/2 >= ((q+v)*o + (q+v)^2) / 2^(k+26)
      AND
      p/2 >= (q+v)*L*B / 2^127

    and assuming o <= q+v
    yields

      q+v <= sqrt(p) * 2^76
      AND
      q+v <= p * 2^126 / (L * B)
-->

<artwork><![CDATA[
AEA <= (((q+v)*o + (q+v)^2) / 2^154) + ((q+v)*L*B / 2^127)
q + v <= min( sqrt(p) * 2^76,  p * 2^126 / (L * B) )
]]></artwork>
        </section>
        <section anchor="confidentiality-limit-3">
          <name>Confidentiality Limit</name>
          <!--
    From {{GCM-MU2}} Theorem 4.3,
    substracting terms for Pr[Bad_7] and Pr[Bad_8],
    and applying simplifications as above (note there are no verification queries),
    we obtain:

    Adv^{mu-ae w/o INT}_RCAU <=
        2^8 * (o + q) / 2^k   +  \sigma*B/2^127

    For o <= 2^70 and any B, the 1st term is dominated by the 2nd term;
    we assume that and hence again omit the 1st term.
-->

<t>The confidentiality advantage is essentially dominated by the same term as
the AE advantage for protocols with nonce randomization:</t>
          <artwork><![CDATA[
CA <= q*L*B / 2^127
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork><![CDATA[
q <= p * 2^127 / (L * B)
]]></artwork>
          <!--
    From {{GCM-MU2}} Theorem 5.3,
    subtracting terms for Pr[Bad_7] and Pr[Bad_8],
    and applying simplifications as above (note there are no verification queries),
    we obtain:

    Adv^{mu-ae w/o INT}_CGCM <=
        q * (o + q) / 2^(k+26)   +   \sigma*B/2^127
-->

<t>Similarly, the limits for protocols with random, partially implicit nonces are:</t>
          <artwork><![CDATA[
CA <= ((q*o + q^2) / 2^(k+26)) + (q*L*B / 2^127)
q <= min( sqrt(p) * 2^76,  p * 2^126 / (L * B) )
]]></artwork>
        </section>
        <section anchor="integrity-limit-3">
          <name>Integrity Limit</name>
          <t>There is currently no dedicated integrity multi-key bound available for
AEAD_AES_128_GCM and AEAD_AES_256_GCM. The AE limit can be used to derive
an integrity limit as:</t>
          <artwork><![CDATA[
IA <= AEA
]]></artwork>
          <t><xref target="mu-gcm-ae"/> therefore contains the integrity limits.</t>
        </section>
      </section>
      <section anchor="aeadchacha20poly1305-1">
        <name>AEAD_CHACHA20_POLY1305</name>
        <t>Concrete multi-key bounds for AEAD_CHACHA20_POLY1305 are given in Theorem 7.2
in <xref target="ChaCha20Poly1305-MU"/>, covering protocols with nonce randomization like
TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>.</t>
        <t>For this AEAD, <tt>n = 512</tt> (the ChaCha20 block length), <tt>k = 256</tt>, <tt>t = 128</tt>, and <tt>r = 96</tt>;
the length (<tt>L'</tt>) is the sum of AAD and plaintext (in Poly1305 blocks of 128 bits).</t>
        <section anchor="mu-ccp-ae">
          <name>Authenticated Encryption Security Limit</name>
          <!--
    From {{ChaCha20Poly1305-MU}} Theorem 7.2; for nonce randomization (XN transform).

    Let:
        - d: the max. number of times any nonce is repeated across users
        - \delta: the nonce-randomizer result's parameter
        - d = r * (\delta + 1) - 1 < 2^9, \delta = 2 be fixed, satisfying Theorem 7.2
        - this limits the number of encryption queries to q <= r * 2^(r-1) <= 2^101
        - o, B <= 2^261 as required for Theorem 7.2

    We can simplify the Theorem 7.2 advantage bound as follows:
        - 1st term:  v([constant]* L' + 3)/2^t
          Via Theorem 3.4, the more precise term is:  v * (2^25 * (L' + 1) + 3) / 2^128
          The 3v/2^t summand is dominated by the rest, so we simplify to
            (v * (L' + 1)) / 2^103

        - 2nd term:  d(o + q)/2^k
          For d < 2^9 (as above) and o + q <= 2^145, this is dominated by the 1st term;
          [[ 1st term <= 2nd term as long as v * (L' + 1)/2^103 <= d(o + q)/2^256;
          i.e., o + q <= v * (L' + 1) * 2^153 / d.
          Even for minimal values v = 1 and l = 1 in 1st term, with d < 2^9,
          this holds as long as o + q <= 2^145. ]]
            we assume that and hence omit the 2nd term.

        - 3rd term:  2o * (n - k)/2^k
          This is dominated by the 2nd term; we hence omit it.

        - 4th term:  2v * (n - k + 4t)/2^k
          This is dominated by the 1st term; we hence omit it.

        - 5th term:  (B + q)^2/2^(n+1)
          This is dominated by the 1st term as long as B + q < 2^205;
          i.e., negligible and we hence omit it.

        - 6th term:  1/2^(2t-2) = 2^-254
          This is negligible, we hence omit it.

        - 7th term:  1/2^(n - k - 2) = 2^-254
          This is negligible, we hence omit it.

        - 8th term:  1/(\delta * r)
          This is 2^-192 for the chosen \delta = 2, hence negligible and we omit it.
-->

<t>Protocols with nonce randomization have a limit of:</t>
          <artwork><![CDATA[
AEA <= (v * (L' + 1)) / 2^103
]]></artwork>
          <t>It implies the following limit:</t>
          <artwork><![CDATA[
v <= (p * 2^103) / (L' + 1)
]]></artwork>
          <t>Note that this is the same limit as in the single-user case except that the
total number of forgery attempts (<tt>v</tt>) and maximum message length in Poly1305 blocks (<tt>L'</tt>)
is calculated across all used keys.</t>
        </section>
        <section anchor="confidentiality-limit-4">
          <name>Confidentiality Limit</name>
          <!--
    From {{ChaCha20Poly1305-MU}} Theorem 7.2
    subtracting terms for Pr[Bad_5] and Pr[Bad_6],
    and applying simplifications as above (note there are no verification queries),
    the remaining relevant terms are:

        - 2nd term:  d(o + q)/2^k
          As d < 2^9, this is upper bounded by   (o+q)/2^247

        - 3rd term:  2o * (n - k)/2^k
          This is  o/2^247 , dominated by the 2nd term; we hence omit it.

        - 5th term:  (B + q)^2/2^(n+1)

          This is dominated by the 2nd term as long as B + q < sqrt(o+q) * 2^133.

          We omit this term on the basis that B <= qL and there is no value
          of q less than 2^100 (see below) for which B > sqrt(q) * 2^133 given
          that constraint.

          Even with a single user and a single key such that B = qL, and no
          offline work from the adversary (o = 0) the term is only relevant when
          qL = sqrt(q) * 2^133.  With q capped at 2^100, the smallest value
          of l that can result from this is 2^83, which far exceeds the maximum
          size of a single message at 2^32.

        - 8th term:  1/(\delta * r)
          This is 2^-192 for the chosen \delta = 2, hence negligible and we omit it.
-->

<t>While the AE advantage is dominated by the number of forgery attempts <tt>v</tt>, those
are irrelevant for the confidentiality advantage. The relevant limit for
protocols with nonce randomization becomes dominated, at a very low level, by
the adversary's offline work <tt>o</tt> and the number of protected messages <tt>q</tt>
across all used keys:</t>
          <artwork><![CDATA[
CA <= (o + q) / 2^247
]]></artwork>
          <!--
    In addition, the restrictions on q from {{ChaCha20Poly1305-MU}} Theorem 7.2
    applies: q <= r * 2^(r-1) <= 2^101.
    We round this to 2^100; this value can be slightly increased trading off d.
-->

<t>This implies the following simplified limit, which for most reasonable values of
<tt>p</tt> is dominated by a technical limitation of approximately <tt>q = 2^100</tt>:</t>
          <artwork><![CDATA[
q <= min( p * 2^247 - o, 2^100 )
]]></artwork>
        </section>
        <section anchor="integrity-limit-4">
          <name>Integrity Limit</name>
          <t>The AE limit for AEAD_CHACHA20_POLY1305 essentially is the integrity (multi-key)
bound. The former hence also applies to the latter:</t>
          <artwork><![CDATA[
IA <= AEA
]]></artwork>
          <t><xref target="mu-ccp-ae"/> therefore contains the integrity limits.</t>
        </section>
      </section>
      <section anchor="aeadaes128ccm-and-aeadaes128ccm8">
        <name>AEAD_AES_128_CCM and AEAD_AES_128_CCM_8</name>
        <t>There are currently no concrete multi-key bounds for AEAD_AES_128_CCM or
AEAD_AES_128_CCM_8. Thus, to account for the additional
factor <tt>u</tt>, i.e., the number of keys, each <tt>p</tt> term in the confidentiality and
integrity limits is replaced with <tt>p / u</tt>.</t>
        <t>The multi-key integrity limit for AEAD_AES_128_CCM is as follows.</t>
        <artwork><![CDATA[
v + q <= sqrt(p / u) * 2^63 / L
]]></artwork>
        <t>Likewise, the multi-key integrity limit for AEAD_AES_128_CCM_8 is as follows.</t>
        <artwork><![CDATA[
v * 2^64 + (2L * (v + q))^2 <= (p / u) * 2^128
]]></artwork>
      </section>
      <section anchor="multi-key-examples">
        <name>Multi-Key Examples</name>
        <t>An example protocol might choose to aim for a multi-key AEA, CA, and IA that is at
most 2<sup>-50</sup>.  If the messages exchanged in the protocol are at most a
common Internet MTU of around 1500 bytes, then a value for <tt>L</tt> might be set to
2<sup>7</sup>.  <xref target="ex-table-mu"/> shows limits for <tt>q</tt> and <tt>v</tt> across all keys that
might be chosen under these conditions.</t>
        <table anchor="ex-table-mu">
          <name>Example multi-key limits</name>
          <thead>
            <tr>
              <th align="left">AEAD</th>
              <th align="right">Maximum q</th>
              <th align="right">Maximum v</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">AEAD_AES_128_GCM</td>
              <td align="right">2<sup>69</sup>/B</td>
              <td align="right">2<sup>69</sup>/B</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM</td>
              <td align="right">2<sup>69</sup>/B</td>
              <td align="right">2<sup>69</sup>/B</td>
            </tr>
            <tr>
              <td align="left">AEAD_CHACHA20_POLY1305</td>
              <td align="right">2<sup>100</sup></td>
              <td align="right">2<sup>46</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM</td>
              <td align="right">2<sup>30</sup>/sqrt(u)</td>
              <td align="right">2<sup>30</sup>/sqrt(u)</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM_8</td>
              <td align="right">2<sup>30.9</sup>/sqrt(u)</td>
              <td align="right">2<sup>13</sup>/u</td>
            </tr>
          </tbody>
        </table>
        <t>The limits for AEAD_AES_128_GCM, AEAD_AES_256_GCM, AEAD_AES_128_CCM, and
AEAD_AES_128_CCM_8 assume equal proportions for <tt>q</tt> and <tt>v</tt>. The limits for
AEAD_AES_128_GCM, AEAD_AES_256_GCM and AEAD_CHACHA20_POLY1305 assume the use
of nonce randomization, like in TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>.</t>
        <t>The limits for AEAD_AES_128_GCM and AEAD_AES_256_GCM further depend on the
maximum number (<tt>B</tt>) of 128-bit blocks encrypted by any single key. For example,
limiting the number of messages (of size &lt;= 2<sup>7</sup> blocks) to at most
2<sup>20</sup> (about a million) per key results in <tt>B</tt> of 2<sup>27</sup>, which
limits both <tt>q</tt> and <tt>v</tt> to 2<sup>42</sup> messages.</t>
        <t>Only the limits for AEAD_AES_128_CCM and AEAD_AES_128_CCM_8 depend on the number
of used keys (<tt>u</tt>), which further reduces them considerably. If <tt>v</tt> is limited to 1,
<tt>q</tt> can be increased to 2<sup>31</sup>/sqrt(u) for both CCM AEADs.</t>
      </section>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>The different analyses of AEAD functions that this work is based upon generally
assume that the underlying primitives are ideal.  For example, that a
pseudorandom function (PRF) used by the AEAD is indistinguishable from a truly
random function or that a pseudorandom permutation (PRP) is indistinguishable
from a truly random permutation. Thus, the advantage estimates assume that the
attacker is not able to exploit a weakness in an underlying primitive.</t>
      <t>Many of the formulae in this document depend on simplifying assumptions, from
differing models, which means that results are not universally applicable. When
using this document to set limits, it is necessary to validate all these
assumptions for the setting in which the limits might apply. In most cases, the
goal is to use assumptions that result in setting a more conservative limit, but
this is not always the case. As an example of one such simplification, this
document defines <tt>v</tt> as the total number of decryption queries leading to a
successful forgery (that is, the number of failed forgery attempts plus one),
whereas models usually include all forgery attempts when determining <tt>v</tt>.</t>
      <t>The CA, IA, and AEA values defined in this document are upper bounds based on existing
cryptographic research. Future analysis may introduce tighter bounds. Applications
SHOULD NOT assume these bounds are rigid, and SHOULD accommodate changes.</t>
      <t>Note that the limits in this document apply to the adversary's ability to
conduct a single successful forgery. For some algorithms and in some cases,
an adversary's success probability in repeating forgeries may be noticeably
larger than that of the first forgery. As an example, <xref target="MF05"/> describes
such multiple forgery attacks in the context of AES-GCM in more detail.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any request of IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="GCM">
          <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="GCMProofs" target="https://eprint.iacr.org/2012/438.pdf">
          <front>
            <title>Breaking and Repairing GCM Security Proofs</title>
            <author initials="T." surname="Iwata">
              <organization/>
            </author>
            <author initials="K." surname="Ohashi">
              <organization/>
            </author>
            <author initials="K." surname="Minematsu">
              <organization/>
            </author>
            <date year="2012" month="August" day="01"/>
          </front>
        </reference>
        <reference anchor="ChaCha20Poly1305-SU" target="https://eprint.iacr.org/2014/613.pdf">
          <front>
            <title>A Security Analysis of the Composition of ChaCha20 and Poly1305</title>
            <author initials="G." surname="Procter">
              <organization/>
            </author>
            <date year="2014" month="August" day="11"/>
          </front>
        </reference>
        <reference anchor="AEBounds" target="https://eprint.iacr.org/2024/051.pdf">
          <front>
            <title>Limits on Authenticated Encryption Use in TLS</title>
            <author initials="A." surname="Luykx">
              <organization/>
            </author>
            <author initials="K." surname="Paterson">
              <organization/>
            </author>
            <date year="2016" month="March" day="08"/>
          </front>
        </reference>
        <reference anchor="AEComposition" target="https://eprint.iacr.org/2000/025.pdf">
          <front>
            <title>Authenticated Encryption: Relations among notions and analysis of the generic composition paradigm</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="C." surname="Namprempre">
              <organization/>
            </author>
            <date year="2007" month="July"/>
          </front>
        </reference>
        <reference anchor="AEAD" target="https://web.cs.ucdavis.edu/~rogaway/papers/ad.pdf">
          <front>
            <title>Authenticated-Encryption with Associated-Data</title>
            <author initials="P." surname="Rogaway">
              <organization/>
            </author>
            <date year="2002" month="September"/>
          </front>
        </reference>
        <reference anchor="MUSecurity" target="https://cseweb.ucsd.edu/~mihir/papers/musu.pdf">
          <front>
            <title>Public-Key Encryption in a Multi-user Setting: Security Proofs and Improvements</title>
            <author initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="A." surname="Boldyreva">
              <organization/>
            </author>
            <author initials="S." surname="Micali">
              <organization/>
            </author>
            <date year="2000" month="May"/>
          </front>
        </reference>
        <reference anchor="GCM-MU" 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" day="27"/>
          </front>
        </reference>
        <reference anchor="GCM-MU2" target="https://eprint.iacr.org/2018/993.pdf">
          <front>
            <title>The Multi-user Security of GCM, Revisited: Tight Bounds for Nonce Randomization</title>
            <author initials="V. T." surname="Hoang">
              <organization/>
            </author>
            <author initials="S." surname="Tessaro">
              <organization/>
            </author>
            <author initials="A." surname="Thiruvengadam">
              <organization/>
            </author>
            <date year="2018" month="October" day="15"/>
          </front>
        </reference>
        <reference anchor="ChaCha20Poly1305-MU" target="https://eprint.iacr.org/2023/085.pdf">
          <front>
            <title>The Security of ChaCha20-Poly1305 in the Multi-user Setting</title>
            <author initials="J. P." surname="Degabriele">
              <organization/>
            </author>
            <author initials="J." surname="Govinden">
              <organization/>
            </author>
            <author initials="F." surname="Günther">
              <organization/>
            </author>
            <author initials="K. G." surname="Paterson">
              <organization/>
            </author>
            <date year="2023" month="January" day="24"/>
          </front>
        </reference>
        <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="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>
        <reference anchor="RFC8439">
          <front>
            <title>ChaCha20 and Poly1305 for IETF Protocols</title>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a "combined mode", or Authenticated Encryption with Associated Data (AEAD) algorithm.</t>
              <t>RFC 7539, the predecessor of this document, was meant to serve as a stable reference and an implementation guide. It was a product of the Crypto Forum Research Group (CFRG). This document merges the errata filed against RFC 7539 and adds a little text to the Security Considerations section.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8439"/>
          <seriesInfo name="DOI" value="10.17487/RFC8439"/>
        </reference>
        <reference anchor="RFC6655">
          <front>
            <title>AES-CCM Cipher Suites for Transport Layer Security (TLS)</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="D. Bailey" initials="D." surname="Bailey"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This memo describes the use of the Advanced Encryption Standard (AES) in the Counter with Cipher Block Chaining - Message Authentication Code (CBC-MAC) Mode (CCM) of operation within Transport Layer Security (TLS) and Datagram TLS (DTLS) to provide confidentiality and data origin authentication. The AES-CCM algorithm is amenable to compact implementations, making it suitable for constrained environments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6655"/>
          <seriesInfo name="DOI" value="10.17487/RFC6655"/>
        </reference>
        <reference anchor="CCM-ANALYSIS">
          <front>
            <title>On the Security of CTR + CBC-MAC</title>
            <author fullname="Jakob Jonsson" initials="J." surname="Jonsson">
              <organization/>
            </author>
            <date year="2003"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 76-93"/>
          <seriesInfo name="DOI" value="10.1007/3-540-36492-7_7"/>
          <seriesInfo name="ISBN" value="[&quot;9783540006220&quot;, &quot;9783540364924&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NonceDisrespecting" target="https://eprint.iacr.org/2016/475.pdf">
          <front>
            <title>Nonce-Disrespecting Adversaries -- Practical Forgery Attacks on GCM in TLS</title>
            <author initials="H." surname="Bock">
              <organization/>
            </author>
            <author initials="A." surname="Zauner">
              <organization/>
            </author>
            <author initials="S." surname="Devlin">
              <organization/>
            </author>
            <author initials="J." surname="Somorovsky">
              <organization/>
            </author>
            <author initials="P." surname="Jovanovic">
              <organization/>
            </author>
            <date year="2016" month="May" day="17"/>
          </front>
        </reference>
        <reference anchor="MF05" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/multi-forge-01.pdf">
          <front>
            <title>Multiple forgery attacks against Message Authentication Codes</title>
            <author initials="D. A." surname="McGrew">
              <organization/>
            </author>
            <author initials="S. R." surname="Fluhrer">
              <organization/>
            </author>
            <date year="2005" month="May" day="31"/>
          </front>
        </reference>
        <reference anchor="TLS">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8645">
          <front>
            <title>Re-keying Mechanisms for Symmetric Keys</title>
            <author fullname="S. Smyshlyaev" initials="S." role="editor" surname="Smyshlyaev"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>A certain maximum amount of data can be safely encrypted when encryption is performed under a single key. This amount is called the "key lifetime". This specification describes a variety of methods for increasing the lifetime of symmetric keys. It provides two types of re-keying mechanisms based on hash functions and block ciphers that can be used with modes of operations such as CTR, GCM, CBC, CFB, and OMAC.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8645"/>
          <seriesInfo name="DOI" value="10.17487/RFC8645"/>
        </reference>
        <reference anchor="SIV">
          <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="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC5288">
          <front>
            <title>AES Galois Counter Mode (GCM) Cipher Suites for TLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="A. Choudhury" initials="A." surname="Choudhury"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This memo describes the use of the Advanced Encryption Standard (AES) in Galois/Counter Mode (GCM) as a Transport Layer Security (TLS) authenticated encryption operation. GCM provides both confidentiality and data origin authentication, can be efficiently implemented in hardware for speeds of 10 gigabits per second and above, and is also well-suited to software implementations. This memo defines TLS cipher suites that use AES-GCM with RSA, DSA, and Diffie-Hellman-based key exchange mechanisms. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5288"/>
          <seriesInfo name="DOI" value="10.17487/RFC5288"/>
        </reference>
        <reference anchor="RFC5246">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
            <author fullname="T. Dierks" initials="T." surname="Dierks"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol. The TLS protocol provides communications security over the Internet. The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5246"/>
          <seriesInfo name="DOI" value="10.17487/RFC5246"/>
        </reference>
      </references>
    </references>
    <?line 1027?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>In addition to the authors of papers performing analysis of ciphers, thanks are
owed to
<contact fullname="Scott Fluhrer"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="John Mattsson"/>,
<contact fullname="David McGrew"/>,
<contact fullname="Yoav Nir"/>,
<contact fullname="Thomas Pornin"/>, and
<contact fullname="Alexander Tereschenko"/> for helping making this document better.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
