<?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.8 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-08" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-08"/>
    <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="April" day="01"/>
    <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 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.</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)</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 (passive) confidentiality and (active)
integrity advantage roughly as the advantage an attacker has in breaking the
corresponding classical security property for the algorithm. A passive attacker
can query ciphertexts for arbitrary plaintexts. An active 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 a passive attacker
succeeding in breaking the confidentiality properties (IND-CPA) 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 active attacker succeeding
in breaking the integrity properties (INT-CTXT) 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>See <xref target="AEComposition"/>, <xref target="AEAD"/> for the formal definitions of and relations
between passive confidentiality (IND-CPA), ciphertext integrity (INT-CTXT),
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.  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> and <tt>t = 128</tt> <xref target="GCM"/>. 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>, <tt>k = 256</tt>, and <tt>t = 128</tt>; the length <tt>L</tt> is the sum of AAD
and plaintext (in 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.

    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.
-->

<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> 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>, <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_128_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>, <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 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 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. In
particular, in two-party communication, one participant cannot regard apparent
overuse of a key by other participants as being in error, when it could be that
the other participant has better information about bounds.</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>
      <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="http://www.isg.rhul.ac.uk/~kp/TLS-AEbounds.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="Selected Areas in Cryptography" 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 1026?>

<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 Flurer"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="John Mattsson"/>,
<contact fullname="David McGrew"/>,
<contact fullname="Yoav Nir"/>, and
<contact fullname="Alexander Tereschenko"/> for helping making this document better.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
