<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.34 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-07" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-07"/>
    <author initials="F." surname="Günther" fullname="Felix Günther">
      <organization>ETH 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="2023" month="May" day="31"/>
    <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 users with independent keys. 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 to help break
security. 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 or amount of data transferred,
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.</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 (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)</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 (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>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.</li>
        <li>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.</li>
        <li>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.</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>Confidentiality limit (CL): The number of messages an application can encrypt
before giving the adversary a confidentiality advantage higher than CA.</li>
        <li>Integrity limit (IL): The number ciphertexts an application can decrypt,
either successfully or not, before giving the adversary an integrity advantage
higher than IA.</li>
        <li>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.</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>This implies the following limit:</t>
          <artwork><![CDATA[
v <= (p * 2^127) / (L + 1)
]]></artwork>
        </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"/> combine the confidentiality and
integrity limits into a single expression, covered 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 / 3.4:
      AE <= v * 2^25 * (L+1) / 2^t
    where t = 128.
    (NB: The bound component "c * L" (for c = 3*2^24) is upper-bounding
    2^25 * (L+1) for the worst case L = |AAD|+|m| = 2; cf. Theorem 3.4.)
-->
<artwork><![CDATA[
AEA <= (v * (L + 1)) / 2^103
]]></artwork>
        <t>This advantage is a tight reduction based on the underlying Poly1305 PRF <xref target="Poly1305"/>.
It implies the following limit:</t>
        <artwork><![CDATA[
v <= (p * 2^103) / (L + 1)
]]></artwork>
      </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-1">
          <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^126) / L^2)
]]></artwork>
        </section>
        <section anchor="integrity-limit-1">
          <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>
      </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>71</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>71</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.9</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.7 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-2">
          <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-2">
          <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.8
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.8; 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.8
        - this limits the number of encryption queries to q <= r * 2^(r-1) <= 2^101
        - o, B <= 2^261 as required for Theorem 7.8

    We can simplify the Theorem 7.8 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-3">
          <name>Confidentiality Limit</name>
          <!--
    From {{ChaCha20Poly1305-MU}} Theorem 7.8
    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.8
    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-3">
          <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 failed decryption queries (that is, failed forgery
attempts), 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>
        <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">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms.  The interface and registry can be used as an application-independent set of cryptoalgorithm suites.  This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8439">
          <front>
            <title>ChaCha20 and Poly1305 for IETF Protocols</title>
            <author fullname="Y. Nir" initials="Y." surname="Nir">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="D. Bailey" initials="D." surname="Bailey">
              <organization/>
            </author>
            <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="Poly1305">
          <front>
            <title>The Poly1305-AES Message-Authentication Code</title>
            <author fullname="Daniel J. Bernstein" initials="D." surname="Bernstein">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
          <seriesInfo name="Fast Software Encryption" value="pp. 32-49"/>
          <seriesInfo name="DOI" value="10.1007/11502760_3"/>
        </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"/>
        </reference>
      </references>
      <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="Y. Lindell" initials="Y." surname="Lindell">
              <organization/>
            </author>
            <date month="April" year="2019"/>
            <abstract>
              <t>This memo specifies two authenticated encryption algorithms that are nonce misuse resistant -- that is, they do not fail catastrophically if a nonce is repeated.</t>
              <t>This document is the product of the Crypto Forum Research Group.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8452"/>
          <seriesInfo name="DOI" value="10.17487/RFC8452"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="A. Choudhury" initials="A." surname="Choudhury">
              <organization/>
            </author>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <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>
  </back>
  <!-- ##markdown-source:
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
d5gAAA==

-->

</rfc>
