<?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.27 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-10" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-10"/>
    <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="2025" month="April" day="07"/>
    <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 for a single key can be avoided using rekeying.
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 (measured in number of encryption and decryption queries)</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 blockcipher from a random permutation (PRP advantage)
or a pseudorandom function from a truly random function (PRF advantage).</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), the limits in <xref target="mu-limits"/> SHOULD be used.</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="offline-work">
        <name>Offline Work</name>
        <t>Single-key analyses of different cipher modes typically concentrate on the advantage
that an attacker might gain through the mode itself.  These analyses
assume that the underlying cipher is an ideal PRP or PRF, and we make the same
assumptions here.  But even an ideal PRP or PRF can be attacked through exhaustive
key search (in the key length, <tt>k</tt>) given sufficient resources.</t>
        <t>An attacker that is able to deploy sufficient offline resources (<tt>o</tt>) can
increase their success probability independent of any usage.  In even the best
case, single key bounds are always limited to the maximum of the stated bound and</t>
        <artwork><![CDATA[
AEA <= o / 2^k
]]></artwork>
        <t>This constrains the security that can be achieved for modes that use smaller key
sizes, depending on what assumptions can be made about attacker resources.</t>
        <t>For example, if an attacker could be assumed to have the resources to perform in
the order of 2^80 AES operations, an attacker gains an attack probability of
2<sup>-48</sup>.  That might seem like it requires a lot of compute resources,
but amount of compute could cost less than 1 million USD in 2025. That cost can
only reduce over time, suggesting that a much greater advantage is likely
achievable for a sufficiently motivated attacker.</t>
      </section>
      <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"/>, following <xref target="GCMProofs"/>, 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>
          <t>Applying Corollary 3 from <xref target="GCMProofs"/>, assuming AES behaves like a random permutation,
the following bound applies:</t>
          <!--
    Corollary 3 in {{GCMProofs}} states this bound for GCM with a random permutation;
    so there is an additional PRP advantage term in the standard model (cf. offline work discussion).
-->

<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>
          <!--
    Equation (22) in {{GCMProofs}} includes an additional PRP advantage term,
    which we omit here (cf. offline work discussion).
-->

<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 result for AEAD_CHACHA20_POLY1305 <xref target="ChaCha20Poly1305-MU"/>
(correcting the prior one from <xref target="ChaCha20Poly1305-SU"/>) gives 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
    (against the ChaCha20 block function). 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`.

    The bounds stated are those beyond the PRP security of the AES blockcipher.
-->

<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>.  (This in particular limits offline work to <tt>o &lt;= 2^(k-50)</tt>,
see <xref target="offline-work"/>.)  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; see text for parameter details</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.  For AEAD_AES_128_GCM, it further assumes
<tt>o &lt;= 2^70</tt>, otherwise a term in the order of <tt>o / 2^120</tt> starts dominating.</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>Note that this factor also applies to the generic exhaustive key search attack
discussed for single-key analyses in <xref target="offline-work"/>.</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; see text for parameter details</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"/>, and
offline work limited to <tt>o &lt;= 2^70</tt>.</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. (In particular
offline work is assumed limited to <tt>o &lt;= 2^(k-50) / u = 2^78 / u</tt>, see <xref target="offline-work"/>.)</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 1076?>

<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="Mihir Bellare"/>,
<contact fullname="Daniel J. Bernstein"/>,
<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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
F/xP7GUew7CpAAA=

-->

</rfc>
