<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-12" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-12"/>
    <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="2026" month="August" day="07"/>
    <keyword>safe</keyword>
    <keyword>limits</keyword>
    <keyword>crypto</keyword>
    <abstract>
      <?line 139?>

<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 148?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>An Authenticated Encryption with Associated Data (AEAD) algorithm
provides confidentiality and integrity. <xref target="RFC5116"/> specifies an AEAD
as a function with four inputs -- secret key, nonce, plaintext, associated data
(of which nonce, plaintext, and associated data can optionally be zero-length) --
that produces ciphertext output and an error code
indicating success or failure. The ciphertext is typically composed of the encrypted
plaintext bytes and an authentication tag.</t>
      <t>The generic AEAD interface does not describe usage limits.  Each AEAD algorithm
does describe limits on its inputs, but these are formulated as strict
functional limits, such as the maximum length of inputs, which are determined by
the properties of the underlying AEAD composition.  Degradation of the security
of the AEAD as a single key is used multiple times is not given the same
thorough treatment.</t>
      <t>Effective limits can be influenced by the number of "users" of
a given key. In the traditional setting, there is one key shared between two
parties. Any limits on the maximum length of inputs or encryption operations
apply to that single key. The attacker's goal is to break security
(confidentiality or integrity) of that specific key. However, in practice, there
are often many parties with independent keys, multiple sessions between two
parties, and even many keys used within a single session due to rekeying. This
multi-key security setting, often referred to as the multi-user setting in the
academic literature, considers an attacker's advantage in breaking security of
any of these many keys, further assuming the attacker may have done some offline
work (measuring time, but not memory) to help break any key. As a result, AEAD
algorithm limits may depend on offline work and the number of keys. However,
given that a multi-key attacker does not target any specific key, acceptable
advantages may differ from that of the single-key setting.</t>
      <t>The number of times a single pair of key and nonce can be used might also be
relevant to security.  For some algorithms, such as AEAD_AES_128_GCM or
AEAD_AES_256_GCM, this limit is 1 and using the same pair of key and nonce has
serious consequences for both confidentiality and integrity; see
<xref target="NonceDisrespecting"/>.  Nonce-reuse resistant algorithms like
AEAD_AES_128_GCM_SIV can tolerate a limited amount of nonce reuse.
This document focuses on AEAD schemes requiring non-repeating nonces.</t>
      <t>It is good practice to have limits on how many times the same key (or pair of
key and nonce) are used.  Setting a limit based on some measurable property of
the usage, such as number of protected messages, amount of data transferred, or
time passed ensures that it is easy to apply limits.  This might require the
application of simplifying assumptions.  For example, TLS 1.3 and QUIC both
specify limits on the number of records that can be protected, using the
simplifying assumption that records are the same size; see <xref section="5.5" sectionFormat="of" target="TLS"/> and <xref section="6.6" sectionFormat="of" target="RFC9001"/>.</t>
      <t>Exceeding the determined usage limit for a single key can be avoided using rekeying.
Rekeying can also provide a measure of forward and backward (post-compromise) security.
<xref target="RFC8645"/> contains a thorough survey of rekeying and the consequences of different
design choices. Additional rekeying mechanisms, such as running an ephemeral asymmetric
key exchange, can provide further security guarantees such as post-compromise security
(PCS); they are out of scope for this document, which focuses on AEAD advantage bounds
resulting from for limiting the use of keys.  When considering rekeying, the multi-user
limits SHOULD be applied.</t>
      <t>Currently, AEAD limits and usage requirements are scattered among peer-reviewed
papers, standards documents, and other RFCs. Determining the correct limits for
a given setting is challenging as papers do not use consistent labels or
conventions, and rarely apply any simplifications that might aid in reaching a
simple limit.</t>
      <t>The intent of this document is to collate all relevant information about the
proper usage and limits of AEAD algorithms in one place.  This may serve as a
standard reference when considering which AEAD algorithm to use, and how to use
it.</t>
    </section>
    <section anchor="requirements-notation">
      <name>Requirements Notation</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
    </section>
    <section anchor="notation">
      <name>Notation</name>
      <t>This document defines limitations in part using the quantities in
<xref target="notation-table"/> below.</t>
      <table anchor="notation-table">
        <name>Notation</name>
        <thead>
          <tr>
            <th align="right">Symbol</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">n</td>
            <td align="left">AEAD block length (in bits), of the underlying block cipher</td>
          </tr>
          <tr>
            <td align="right">k</td>
            <td align="left">AEAD key length (in bits)</td>
          </tr>
          <tr>
            <td align="right">r</td>
            <td align="left">AEAD nonce length (in bits)</td>
          </tr>
          <tr>
            <td align="right">t</td>
            <td align="left">Size of the authentication tag (in bits)</td>
          </tr>
          <tr>
            <td align="right">L</td>
            <td align="left">Maximum length of each message, including both plaintext and AAD (in blocks)</td>
          </tr>
          <tr>
            <td align="right">s</td>
            <td align="left">Total plaintext length in all messages (in blocks)</td>
          </tr>
          <tr>
            <td align="right">q</td>
            <td align="left">Number of protected messages (AEAD encryption invocations)</td>
          </tr>
          <tr>
            <td align="right">v</td>
            <td align="left">Number of attacker forgery attempts (failed AEAD decryption invocations + 1)</td>
          </tr>
          <tr>
            <td align="right">p</td>
            <td align="left">Upper bound on adversary attack probability</td>
          </tr>
          <tr>
            <td align="right">o</td>
            <td align="left">Offline adversary work (measured in number of encryption and decryption queries)</td>
          </tr>
          <tr>
            <td align="right">u</td>
            <td align="left">Number of keys (multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">B</td>
            <td align="left">Maximum number of blocks encrypted by any key (multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">C</td>
            <td align="left">Maximum number of blocks encrypted or decrypted by any key (multi-key setting only)</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-definitions">
      <name>Security Definitions</name>
      <t>For each AEAD algorithm, we define the chosen-plaintext confidentiality (IND-CPA) and ciphertext
integrity (INT-CTXT) advantage roughly as the advantage an attacker has in breaking the
corresponding classical security property for the algorithm.
Mathematically rigorous definitions for these advantages can be found, e.g., in Chapters 5 and 9 of <xref target="INTRO"/>.</t>
      <t>An IND-CPA attacker
can query ciphertexts for arbitrary plaintexts. An INT-CTXT attacker can additionally
query plaintexts for arbitrary ciphertexts. Moreover, we define the combined
authenticated encryption advantage guaranteeing both confidentiality and integrity
against an active attacker. Specifically:</t>
      <ul spacing="normal">
        <li>
          <t>Confidentiality advantage (CA): The probability of an attacker
succeeding in breaking the IND-CPA (confidentiality) properties of the AEAD scheme.
In this document, the definition of confidentiality advantage roughly is the
probability that an attacker successfully distinguishes the ciphertext outputs
of the AEAD scheme from the outputs of a random function.</t>
        </li>
        <li>
          <t>Integrity advantage (IA): The probability of an attacker succeeding
in breaking the INT-CTXT (integrity) properties of the AEAD scheme. In this document,
the definition of integrity advantage roughly is the probability that an attacker
is able to forge a ciphertext that will be accepted as valid.</t>
        </li>
        <li>
          <t>Authenticated Encryption advantage (AEA): The probability of an active
attacker succeeding in breaking the authenticated-encryption properties of the
AEAD scheme. In this document, the definition of authenticated encryption
advantage roughly is the probability that an attacker successfully distinguishes
the ciphertext outputs of the AEAD scheme from the outputs of a random function
or is able to forge a ciphertext that will be accepted as valid.</t>
        </li>
      </ul>
      <t>Here, we consider advantages beyond distinguishing underlying primitives from their
ideal instances, for example, a block cipher from a random permutation (PRP advantage)
or a pseudorandom function from a truly random function (PRF advantage).</t>
      <t>See <xref target="AEComposition"/>, <xref target="AEAD"/> for the formal definitions of and relations
between IND-CPA (confidentiality), INT-CTXT (integrity),
and authenticated encryption security (AE).
The authenticated encryption advantage subsumes, and can be derived as the
combination of, both CA and IA:</t>
      <artwork><![CDATA[
CA <= AEA
IA <= AEA
AEA <= CA + IA
]]></artwork>
      <t>The AEADs described in this document all use ciphers in counter mode,
where a pseudorandom bitstream is XORed with plaintext to produce ciphertext.</t>
      <t>Confidentiality under definitions other than IND-CPA,
such as IND-CCA definition that allows an active attacker to adaptively decrypt ciphertexts,
depends critically on retaining integrity.
A cipher in counter mode cannot guarantee confidentiality
if integrity is not maintained.</t>
      <t>This combined risk to AE security is included in the definition of AEA,
which bounds the overall risk of attack on the AEAD.
This document decomposes AEA into CA and IA as a way
to help set specific limits on different types of usage.
AE security depends on retaining both confidentiality and integrity,
and SHOULD be the default basis for setting limits.</t>
    </section>
    <section anchor="calculating-limits">
      <name>Calculating Limits</name>
      <t>Applications choose their own targets for AEA.
Each application requires an analysis of how it uses an AEAD
to determine what usage limits will keep AEA sufficiently small.</t>
      <t>Once an upper bound on AEA is determined (or bounds on CA and IA separately),
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>As a general rule, a value for AEA can be evenly allocated to CA and IA
by halving the target.  This split allows for the computation of separate limits,
CL and IL. For example, given a value <tt>AEA &lt;= 2^-60</tt> one may choose
<tt>IA &lt;= 2^-61</tt> and <tt>CA &lt;= 2^-61</tt>.</t>
      <t>Some applications might choose to set different targets for CA and IA.
For example, TLS sets 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>
      <t>When limits are expressed as a number of messages an application can encrypt or
decrypt, this requires assumptions about the size of messages and any
authenticated additional data (AAD).  Limits can instead be expressed in terms
of the number of bytes, or blocks, of plaintext and maybe AAD in total.</t>
      <t>To aid in translating between message-based and byte/block-based limits,
a formulation of limits that includes a maximum message size (<tt>L</tt>) and the AEAD
schemes' block length in bits (<tt>n</tt>) is provided.</t>
      <t>All limits are based on the total number of messages, either the number of
protected messages (<tt>q</tt>) or the number of forgery attempts (<tt>v</tt>); which correspond
to CL and IL respectively.</t>
      <t>Limits are then derived from those bounds using a target attacker probability.
For example, given an integrity advantage of <tt>IA = v * (8L / 2^106)</tt> and a
targeted maximum attacker success probability of <tt>IA = p</tt>, the algorithm remains
secure, i.e., the adversary's advantage does not exceed the targeted probability
of success, provided that <tt>v &lt;= (p * 2^106) / 8L</tt>. In turn, this implies that
<tt>v &lt;= (p * 2^103) / L</tt> is the corresponding limit.</t>
      <t>To apply these limits, implementations can count the number of messages that are
protected or rejected against the determined limits (<tt>q</tt> and <tt>v</tt> respectively).
This requires that messages cannot exceed the maximum message size (<tt>L</tt>) that is
chosen.</t>
      <section anchor="approximations">
        <name>Approximations</name>
        <t>This analysis assumes a message-based approach to setting limits.
Implementations that use byte counting rather than message counting could use a
maximum message size (<tt>L</tt>) of one to determine a limit for the number of
protected messages (<tt>q</tt>) that can be applied with byte counting.  This results
in attributing per-message overheads to every byte, so the resulting limit could
be significantly lower than necessary.  Actions, like rekeying, that are taken
to avoid the limit might occur more often as a result.</t>
        <t>To simplify formulae, estimates in this document elide terms that contribute
negligible advantage to an attacker relative to other terms.</t>
        <t>In other respects, this document seeks to make conservative choices that err on
the side of overestimating attacker advantage.  Some of these assumptions are
present in the papers that this work is based on.  For instance, analyses are
simplified by using a single message size that covers both AAD and plaintext.
AAD can contribute less toward attacker advantage for confidentiality limits, so
applications where AAD comprises a significant proportion of messages might find
the estimates provided to be slightly more conservative than necessary to meet a
given goal.</t>
        <t>This document assumes the use of non-repeating nonces (in particular, non-zero-length
nonces).  The modes covered here are not robust if the same nonce and key are used to
protect different messages, so deterministic generation of nonces from a counter or
similar techniques is strongly encouraged.  If an application cannot guarantee that
nonces will not repeat, a nonce-misuse resistant AEAD like AES-GCM-SIV <xref target="SIV"/> is
likely to be a better choice.</t>
      </section>
    </section>
    <section anchor="su-limits">
      <name>Single-Key AEAD Limits</name>
      <t>This section summarizes the confidentiality and integrity bounds and limits for modern AEAD algorithms
used in IETF protocols, including: AEAD_AES_128_GCM <xref target="RFC5116"/>, AEAD_AES_256_GCM <xref target="RFC5116"/>,
AEAD_AES_128_CCM <xref target="RFC5116"/>, AEAD_CHACHA20_POLY1305 <xref target="RFC8439"/>, AEAD_AES_128_CCM_8 <xref target="RFC6655"/>.
The limits in this section apply to using these schemes with a single key;
for settings where multiple keys are deployed (for example, when rekeying within
a connection or when using multiple connections between two parties), the limits
in this section MUST NOT be used, but instead those in <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="offline-work">
        <name>Offline Work</name>
        <t>Single-key analyses of different cipher modes typically concentrate on the advantage
that an attacker might gain through the mode itself.  These analyses
assume that the underlying cipher is an ideal PRP or PRF, and we make the same
assumptions here.  But even an ideal PRP or PRF can be attacked through exhaustive
key search (in the key length, <tt>k</tt>) given sufficient resources.</t>
        <t>An attacker that is able to deploy sufficient offline resources (<tt>o</tt>) can
increase their success probability independent of any usage.  In even the best
case, single key bounds are always limited to the maximum of the stated bound and</t>
        <artwork><![CDATA[
AEA <= o / 2^k
]]></artwork>
        <t>This constrains the security that can be achieved for modes that use smaller key
sizes, depending on what assumptions can be made about attacker resources.</t>
        <t>For example, given a 128-bit key and a single nonce, if an attacker could be
assumed to have the resources to perform in the order of 2<sup>80</sup> AES
operations, an attacker gains an attack probability of 2<sup>-48</sup>.  That
might seem like it requires a lot of compute resources, but that amount of
compute could cost less than 1 million USD in 2025. That cost can only reduce
over time, suggesting that a much greater advantage is likely achievable for a
sufficiently motivated attacker.  Of course, for such a small chance of success
(2<sup>-48</sup> is around one in 250 trillion) this sort of attack seems likely
to remain impractical for some time.</t>
      </section>
      <section anchor="aeadaes128gcm-and-aeadaes256gcm">
        <name>AEAD_AES_128_GCM and AEAD_AES_256_GCM</name>
        <t>The CL and IL values for AES-GCM are derived in <xref target="AEBounds"/>, following <xref target="GCMProofs"/>, and summarized below.
For this AEAD, <tt>n = 128</tt> (the AES block length) and <tt>t = 128</tt> <xref target="GCM"/>, <xref target="RFC5116"/>. In this example,
the length <tt>s</tt> is the sum of AAD and plaintext (in blocks of 128 bits), as described in <xref target="GCMProofs"/>.</t>
        <section anchor="confidentiality-limit">
          <name>Confidentiality Limit</name>
          <t>Applying Corollary 3 from <xref target="GCMProofs"/>, assuming AES behaves like a random permutation,
the following bound applies:</t>
          <!--
    Corollary 3 in {{GCMProofs}} states this bound for GCM with a random permutation;
    so there is an additional PRP advantage term in the standard model (cf. offline work discussion).
-->

<artwork><![CDATA[
CA <= ((s + q + 1)^2) / 2^129
]]></artwork>
          <t>This implies the following usage limit:</t>
          <artwork><![CDATA[
q + s <= p^(1/2) * 2^(129/2) - 1
]]></artwork>
          <t>Which, for a message-based protocol with <tt>s &lt;= q * L</tt>, if we assume that every
packet is size <tt>L</tt> (in blocks of 128 bits), produces the limit:</t>
          <artwork><![CDATA[
q <= (p^(1/2) * 2^(129/2) - 1) / (L + 1)
]]></artwork>
        </section>
        <section anchor="integrity-limit">
          <name>Integrity Limit</name>
          <t>Applying Equation (22) from <xref target="GCMProofs"/>, in which the assumption of
<tt>s + q + v &lt; 2^64</tt> ensures that the delta function cannot produce a value
greater than 2, the following bound applies:</t>
          <!--
    Equation (22) in {{GCMProofs}} includes an additional PRP advantage term,
    which we omit here (cf. offline work discussion).
-->

<artwork><![CDATA[
IA <= 2 * (v * (L + 1)) / 2^128
]]></artwork>
          <t>For the assumption of <tt>s + q + v &lt; 2^64</tt>, observe that this applies when <tt>p &gt; L / 2^63</tt>.
<tt>s + q &lt;= q * (L + 1)</tt> is always small relative to <tt>2^64</tt> if the same advantage is
applied to the confidentiality limit on <tt>q</tt>.</t>
          <t>This produces the following limit:</t>
          <artwork><![CDATA[
v <= min(2^64, (p * 2^127) / (L + 1))
]]></artwork>
          <!--
Note that values of p that cause v to exceed 2^64 are where `p > L / 2^63`.
The same p value produces q = 2^33 * L^(-1/2) in the CA limit.
L is at most 2^32 by construction (that's the block counter),
so s + q <= q * (L+1) would be at most 2^49 which can be ignored
(ignoring the +1 as also being insignificant).
-->

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

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

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

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

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

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

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

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

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

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

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

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

    to

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

    and assuming o <= q+v
    yields

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<t>This implies the following simplified limit, which for most reasonable values of
<tt>p</tt> is dominated by a technical limitation of approximately <tt>q = 2^100</tt>:</t>
          <artwork><![CDATA[
q <= min( p * 2^247 - o, 2^100 )
]]></artwork>
        </section>
        <section anchor="integrity-limit-4">
          <name>Integrity Limit</name>
          <t>The AE limit for AEAD_CHACHA20_POLY1305 essentially is the integrity (multi-key)
bound. The former hence also applies to the latter:</t>
          <artwork><![CDATA[
IA <= AEA
]]></artwork>
          <t><xref target="mu-ccp-ae"/> therefore contains the integrity limits.</t>
        </section>
      </section>
      <section anchor="aeadaes128ccm-and-aeadaes128ccm8">
        <name>AEAD_AES_128_CCM and AEAD_AES_128_CCM_8</name>
        <t>Concrete multi-key bounds for AEAD_AES_128_CCM and AEAD_AES_128_CCM_8 are given
in Theorem 7.2 in <xref target="CCM-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 = 128</tt> (the AES block length), <tt>k = 128</tt>, <tt>r = 96</tt>, and the tag
length is <tt>t = 128</tt> (for AEAD_AES_128_CCM) or <tt>t = 64</tt> (for AEAD_AES_128_CCM_8).</t>
        <!--
    From {{CCM-MU}} Theorem 7.2; for d-bound adversaries assuming nonce randomization.

    Let:
        - #blocks encrypted/verified overall:   \sigma = (q + v) * L
        - #blocks encrypted/verified per user:  \sigma_u = C
        - nonce length r = 96, block length n = 128
        - d-bound for d = 96 / log(96) ~ 15,
          ensured up to q = 2^96 total encryption queries

    Following the discussion of Theorem 7.2, the dominant terms in the bound are:
        - 1st term:   q_d / 2^t
        - 2nd term:   \sigma_u * \sigma / 2^n
        - 3rd term:   (d + n/log(n))*o / 2^k  <=  o / 2^(k-6)

    Going from d-bound adversaries to unbounded introduces an additional term of
      2^-(\delta * r)
    ({{ChaCha20Poly1305-MU}} Theorem 7.1)
    for which \delta can be chosen as \delta = 2 for d < 2^9.
    As d < 2^9 does not affect the above simplifications, this makes this
    term negligible (2^-192 for nonce length r=96), and allows to omit it.
-->
<t>Protocols with nonce randomization have a limit of:</t>
        <artwork><![CDATA[
AEA <= (q+v)*L*B / 2^127 + v / 2^t + o / 2^(k-6)
]]></artwork>
        <t>Assuming <tt>o &lt;= q + v</tt> (i.e., that the attacker does not spend more work than all
legitimate protocol users together), this implies the following two limits
(distributing the attack probability evenly among the first two terms):</t>
        <!--
    Simplifying
      p >= (q+v)*L*B / 2^n + v / 2^t

    to

      p/2 >= (q+v)*L*C / 2^n
      AND
      p/2 >= v / 2^t

    (and assuming o <= q+v meaning the 3rd term is dominated)
    yields, for n = 128,

      q+v <= p * 2^127 / (L * C)
      AND
      v <= p * 2^(t-1)
-->

<artwork><![CDATA[
q + v <= p * 2^127 / (L * C)
v <= p * 2^(t-1)
]]></artwork>
      </section>
      <section anchor="multi-key-examples">
        <name>Multi-Key Examples</name>
        <t>Note: The following example limits purely serve as illustration of the formulas
given in this section. They do not constitute general guidance; every application
has to choose their own advantage targets and consider their deployment properties,
such as message sizes.</t>
        <t>An example protocol might choose to aim for a multi-key AEA, CA, and IA that is at
most 2<sup>-50</sup>.  If the messages exchanged in the protocol are at most a
common Internet MTU of around 1500 bytes, then a value for <tt>L</tt> might be set to
2<sup>7</sup>.  <xref target="ex-table-mu"/> shows limits for <tt>q</tt> and <tt>v</tt> across all keys that
might be chosen under these conditions.</t>
        <table anchor="ex-table-mu">
          <name>Example multi-key limits; see text for parameter details</name>
          <thead>
            <tr>
              <th align="left">AEAD</th>
              <th align="right">Maximum q</th>
              <th align="right">Maximum v</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">AEAD_AES_128_GCM</td>
              <td align="right">2<sup>69</sup>/B</td>
              <td align="right">2<sup>69</sup>/B</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_256_GCM</td>
              <td align="right">2<sup>69</sup>/B</td>
              <td align="right">2<sup>69</sup>/B</td>
            </tr>
            <tr>
              <td align="left">AEAD_CHACHA20_POLY1305</td>
              <td align="right">2<sup>100</sup></td>
              <td align="right">2<sup>46</sup></td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM</td>
              <td align="right">2<sup>69</sup>/C</td>
              <td align="right">2<sup>69</sup>/C</td>
            </tr>
            <tr>
              <td align="left">AEAD_AES_128_CCM_8</td>
              <td align="right">2<sup>69</sup>/C</td>
              <td align="right">2<sup>13</sup></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
all schemes assume the use
of nonce randomization, like in TLS 1.3 <xref target="TLS"/> and QUIC <xref target="RFC9001"/>, and
offline work limited to <tt>o &lt;= 2^70</tt>.</t>
        <t>The limits for AEAD_AES_128_GCM, AEAD_AES_256_GCM, AEAD_AES_128_CCM and
AEAD_AES_128_CCM_8 further depend on the maximum number (<tt>B</tt> resp. <tt>C</tt>) of 128-bit
blocks encrypted resp. encrypted or decrypted by any single key. For example,
limiting the number of messages (of size &lt;= 2<sup>7</sup> blocks) encrypted,
resp. encrypted or decrypted, to at most 2<sup>20</sup> (about a million) per key
results in <tt>B</tt> resp. <tt>C</tt> of 2<sup>27</sup>, which
limits both <tt>q</tt> and <tt>v</tt> to 2<sup>42</sup> messages for GCM and CCM, except
for CCM_8 where the short tag length limits <tt>v</tt> to 2<sup>13</sup>.</t>
      </section>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>The different analyses of AEAD functions that this work is based upon generally
assume that the underlying primitives are ideal.  For example, that a
pseudorandom function (PRF) used by the AEAD is indistinguishable from a truly
random function or that a pseudorandom permutation (PRP) is indistinguishable
from a truly random permutation. Thus, the advantage estimates assume that the
attacker is not able to exploit a weakness in an underlying primitive.</t>
      <t>Many of the formulae in this document depend on simplifying assumptions from
differing models, which means that results are not universally applicable. When
using this document to set limits, it is necessary to validate all these
assumptions for the setting in which the limits might apply. In most cases, the
goal is to use assumptions that result in setting a more conservative limit, but
this is not always the case. As an example of one such simplification, this
document defines <tt>v</tt> as the total number of decryption queries leading to a
successful forgery (that is, the number of failed forgery attempts plus one),
whereas models usually include all forgery attempts when determining <tt>v</tt>.</t>
      <t>The CA, IA, and AEA values defined in this document are upper bounds based on existing
cryptographic research. Future analysis may introduce tighter bounds. Applications
SHOULD NOT assume these bounds are rigid, and SHOULD accommodate changes.</t>
      <t>Note that the limits in this document apply to the adversary's ability to
conduct a single successful forgery. For some algorithms and in some cases,
an adversary's success probability in repeating forgeries may be noticeably
larger than that of the first forgery. As an example, <xref target="MF05"/> describes
such multiple forgery attacks in the context of AES-GCM in more detail.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document does not make any request of IANA.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="GCM">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
            <author initials="M." surname="Dworkin">
              <organization/>
            </author>
            <date year="2007" month="November"/>
          </front>
          <seriesInfo name="NIST" value="Special Publication 800-38D"/>
        </reference>
        <reference anchor="GCMProofs" target="https://eprint.iacr.org/2012/438.pdf">
          <front>
            <title>Breaking and Repairing GCM Security Proofs</title>
            <author initials="T." surname="Iwata">
              <organization/>
            </author>
            <author initials="K." surname="Ohashi">
              <organization/>
            </author>
            <author initials="K." surname="Minematsu">
              <organization/>
            </author>
            <date year="2012" month="August" day="01"/>
          </front>
        </reference>
        <reference anchor="ChaCha20Poly1305-SU" target="https://eprint.iacr.org/2014/613.pdf">
          <front>
            <title>A Security Analysis of the Composition of ChaCha20 and Poly1305</title>
            <author initials="G." surname="Procter">
              <organization/>
            </author>
            <date year="2014" month="August" day="11"/>
          </front>
        </reference>
        <reference anchor="AEBounds" target="https://eprint.iacr.org/2024/051.pdf">
          <front>
            <title>Limits on Authenticated Encryption Use in TLS</title>
            <author initials="A." surname="Luykx">
              <organization/>
            </author>
            <author initials="K." surname="Paterson">
              <organization/>
            </author>
            <date year="2024" month="January" day="15"/>
          </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="CCM-MU" target="https://eprint.iacr.org/2025/953.pdf">
          <front>
            <title>Tight Multi-User Security of CCM and Enhancement by Tag-Based Key Derivation Applied to GCM and CCM</title>
            <author initials="Y." surname="Naito">
              <organization/>
            </author>
            <author initials="Y." surname="Sasaki">
              <organization/>
            </author>
            <author initials="T." surname="Sugawara">
              <organization/>
            </author>
            <date year="2025" month="May" day="29"/>
          </front>
        </reference>
        <reference anchor="RFC5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8439">
          <front>
            <title>ChaCha20 and Poly1305 for IETF Protocols</title>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <date month="June" year="2018"/>
            <abstract>
              <t>This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a "combined mode", or Authenticated Encryption with Associated Data (AEAD) algorithm.</t>
              <t>RFC 7539, the predecessor of this document, was meant to serve as a stable reference and an implementation guide. It was a product of the Crypto Forum Research Group (CFRG). This document merges the errata filed against RFC 7539 and adds a little text to the Security Considerations section.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8439"/>
          <seriesInfo name="DOI" value="10.17487/RFC8439"/>
        </reference>
        <reference anchor="RFC6655">
          <front>
            <title>AES-CCM Cipher Suites for Transport Layer Security (TLS)</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="D. Bailey" initials="D." surname="Bailey"/>
            <date month="July" year="2012"/>
            <abstract>
              <t>This memo describes the use of the Advanced Encryption Standard (AES) in the Counter with Cipher Block Chaining - Message Authentication Code (CBC-MAC) Mode (CCM) of operation within Transport Layer Security (TLS) and Datagram TLS (DTLS) to provide confidentiality and data origin authentication. The AES-CCM algorithm is amenable to compact implementations, making it suitable for constrained environments. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6655"/>
          <seriesInfo name="DOI" value="10.17487/RFC6655"/>
        </reference>
        <reference anchor="CCM-ANALYSIS">
          <front>
            <title>On the Security of CTR + CBC-MAC</title>
            <author fullname="Jakob Jonsson" initials="J." surname="Jonsson">
              <organization/>
            </author>
            <date year="2003"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 76-93"/>
          <seriesInfo name="DOI" value="10.1007/3-540-36492-7_7"/>
          <seriesInfo name="ISBN" value="[&quot;9783540006220&quot;, &quot;9783540364924&quot;]"/>
          <refcontent>Springer Berlin Heidelberg</refcontent>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NonceDisrespecting" target="https://eprint.iacr.org/2016/475.pdf">
          <front>
            <title>Nonce-Disrespecting Adversaries -- Practical Forgery Attacks on GCM in TLS</title>
            <author initials="H." surname="Bock">
              <organization/>
            </author>
            <author initials="A." surname="Zauner">
              <organization/>
            </author>
            <author initials="S." surname="Devlin">
              <organization/>
            </author>
            <author initials="J." surname="Somorovsky">
              <organization/>
            </author>
            <author initials="P." surname="Jovanovic">
              <organization/>
            </author>
            <date year="2016" month="May" day="17"/>
          </front>
        </reference>
        <reference anchor="MF05" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/multi-forge-01.pdf">
          <front>
            <title>Multiple forgery attacks against Message Authentication Codes</title>
            <author initials="D. A." surname="McGrew">
              <organization/>
            </author>
            <author initials="S. R." surname="Fluhrer">
              <organization/>
            </author>
            <date year="2005" month="May" day="31"/>
          </front>
        </reference>
        <reference anchor="TLS">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="INTRO" target="https://toc.cryptobook.us/book.pdf">
          <front>
            <title>A Graduate Course in Applied Cryptography</title>
            <author initials="D." surname="Boneh" fullname="Dan Boneh">
              <organization/>
            </author>
            <author initials="V." surname="Shoup" fullname="Victor Shoup">
              <organization/>
            </author>
            <date year="2023" month="January" day="19"/>
          </front>
        </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 1185?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>In addition to the authors of papers performing analysis of ciphers, thanks are
owed to
<contact fullname="Mihir Bellare"/>,
<contact fullname="Thomas Bellebaum"/>,
<contact fullname="Daniel J. Bernstein"/>,
<contact fullname="Mike Bishop"/>,
<contact fullname="Scott Fluhrer"/>,
<contact fullname="Thomas Fossati"/>,
<contact fullname="Jérôme Govinden"/>,
<contact fullname="John Mattsson"/>,
<contact fullname="David McGrew"/>,
<contact fullname="Yoav Nir"/>,
<contact fullname="Thomas Pornin"/>, and
<contact fullname="Alexander Tereschenko"/>
for helping making this document better.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+19W3sbx5Xge/+KivxgwAZAAryKip0BIclmhpS0IhUnk8RC
EygAPQS6oe4GKEZSfsu87vs+7tPmj+251aUvACnZk9n9vvHnxCDQXXXq1Klz
P6fa7XaQR/lcn6g3WTjV6jxaRHmmklj1n/Wfqv58mqRRPltkQXh9ner1CX/P
jwXjZBSHC3h5nIaTvB2l+aQ9mqTTdqjDcXtOD7W7vWAU5hoGujtRUTxJgixP
dbg4UWevr54HAYy5F9zou9skHZ8ESrVVFk40feAR6OMovVvmSRCEq3yWpPBc
W8Fg2Yl63lE//ON/x/lMp/CgUgzQcz2P3hd/SNIpTHl6oV7rTIfpaKaerdJk
qWGkf1ul0WhGT+lFGM1PFP7/v0xwkOlK0xgdAt1Oe9FRV7NkkSWxN+tFmOZR
XPiBZr1I/hbN52Fhgvxf5sktDA0g3HVinbuhBx3V76ifkmTsDT2YpVGWJ0uA
pPArjT+YJ6vxZB6m2p9iFN7+y0yHyyieXgMaaZIgTtJFmEdrjaj+YXBxQm8I
DTx6rUfJYqHjMTwCNDBJUnU6T0Y3ahDRzBfJWAN1TNTLpU7pmRP1QzhPomxn
kKziXB5RDRi5qcJ4rH646A8e0RwwJkzR2909ane79I3dS/qnbRH7FEjhJmL8
ZTqNdIa4N8+9OLu8OlGXSz2Kwrl6tbqeRyMG93h3t713/JQX9ipNkklWXN4p
0B0MPCXIXutlGKX4FzytLvUIiCC/U/weg5yH6VTnJ2qW58vsZGdHL+H5vBOF
o7QDiN/p7XZ7O/t7x53leFJYY7fX3j1u725Z5lVHnd2GeVj89l876uUszGZR
5euLKIZtzbMV/DKYhfBvb/dVMr/r7u0etC/fFNfZd8vpx+H8Loto04CM1SBZ
LJMsInzBV2YowogZ79FmsH/oIIJGuZwpu959XK9s6wOwtr9z2N0TrPWfnQLp
jEtb5TEigAPOCW6yHqtnMXECBP9NphWetvPLLQDDWTlf3d28ryD0FQyXmlNq
1tGDdXTb3YMHrqO3v7N70LXr8HBb2o8NSzgBIpwT7WYqXCRAinEif8F2hKWt
m+oYDsNIjbwtXIZpOI6miy0YgAN1queWOdjvgc28CBfLVOP/yid09+iBKNjd
3dntHVgU9J9uWXnb27xbkCqqn2UJnGL86SmchS2LeNVRr5NpeBveFSGFc/a4
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
w47ZB6E/mZzYnCheLIx8V+WQt8v38fjiMAhdG6g6/wN7ZGEBYHoYh1WBXt3m
+ZRLAQ5gbg2cvWVDHb0jj2qFbGmPXyS5IEHEEMYVjYaHStyafNQcP8AxSTax
DV9G0pWtYJawtYX3ncJg9N4ent2fG206VcKrgOlIpOWc0JkD0wKdA57uoaOT
ddCVZO4hXF/z8iVpkF1azVaA5lZxj76Fk3orap437v5jE72T5hHTOAHFJmjQ
BxPa/7ZLbm+uB+eULM9/aQjTyvyKt0WKsmLM5pEYN7UeEDNZsg7q3TQ1/dk+
fcIGD1SoZyBcphEa/bE2PKWmPeinT2zrZOT9k7yN/jPGuEncutUuLYESr7a7
wsQnxNqFMtpF4GkXB92eaBe2zWhBxUAjDAni4HDYKqobT5SvR5x/XaNIBFVF
wnalq2XynE1Qi9OOx+jO4k0obKnzrxGOjzD7RyCxj3Z2/KvLMMMHaRhCoxWi
2uhNJZunAGyOAJqKJYAEX3u+YScRWLTEgVAXar/TNV2oxHQDy7jteAvAQgHf
3s+9AzoIX3/bZT6ZCxPGwyso5w4jcAiprM2UUdJKOOSpCtmyNEDDj1WWttiI
oSZ1njChDxQXlMThlsACAX+dJUvRiagp79s9ntvriaL9+qUENPA5KNz4+mXC
2SeUllwBFpex20EEcCJjPe47TT7LWzRLpxzt1qtBrJ7FpndVCSCvOUjZZ2Kw
FxSx19mgVDhBKELwa18K7u7dq6RVREUxFm4G5HEqFs3gHuOl5JX2rRjhUb/B
7or9F/3zP12eXX739OVZp7sL/+4e7ey1D/Z323uH+4977aO3R8DwyJyRdlc2
/RSbD7Qx9WgB9EGdV0x1DBEHF8pLkb8qBqspJ9I6/wLn/NtUTOnMeXb94Eqo
YxMRK/O+gW3qIeMVGNaJbxeZQspS/yyrnLZU9WG/y9WG57iHk2WI3mPL+SpT
XY6T1pCBiZZGmfKCixh8FfGNMNxSZ40KXEbLtpMFnPEx7J1jfoKEPhkV2nVt
Eh9coVJxA8pbXOFgIptoAYCGIEdWEu4KteN+KJU9NdcSFTQp29J7rhCqNByP
+1yFKVgQzH1Eo3OtOSp9z5LFMpQWQ16+eTGNj3plYJ1eFx/b8yRUH5OgS+Ln
M05Hy/LS7reizXPqGA42f/sMDvP87XPXNIPlZwHXRTygTwcX7HnCd2gw4wtH
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

-->

</rfc>
