<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-13" 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-13"/>
    <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="September" day="03"/>
    <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. This document is a product of the Crypto
Forum Research Group (CFRG) in the IRTF.</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 149?>

<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.  The security degradation
caused by repeated use of a single key 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 can depend on offline work and the number of keys. However,
given that a multi-key attacker does not target any specific key, acceptable
advantage levels could be higher than those chosen in 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
key-nonce pair) is used.  Setting a limit based on some measurable property of
the usage -- such as the number of protected messages, the amount of data transferred, or
elapsed time -- 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 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. This document represents the consensus of the Crypto Forum Research Group (CFRG).</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 and AAD 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 an 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
additional authenticated 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 a significant, but not completely implausible sum 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 less than one in 281 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>When <tt>p * 2^127 / (L + 1)</tt> approaches or exceeds 2<sup>64</sup>,
the additional condition <tt>s + q + v &lt; 2^64</tt> becomes the binding constraint.</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 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 assumes limits to offline work of <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.
AEAD_AES_128_CCM_8 only permits small value of <tt>v</tt> due to the shorter tag,
which leaves a higher limit available for <tt>q</tt>.
The table assumes equal allocations to <tt>q</tt> and <tt>v</tt> for AEAD_AES_128_CCM.</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. The same nonce can be used, but only with
different keys (all of these modes are broken if key and nonce repeat).
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 applies 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.
          Else, it's the full \sigma*(2B+cn+3)/2^n = \sigma*(B+98)/2^127.  (GHASH is c-AXU for c=1.5.)
        - 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, any user enciphers
significantly more than 1600 bytes of data.
For smaller values of <tt>B</tt>, the value of <tt>B</tt> should be replaced by <tt>B+98</tt>.
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> becomes relevant.</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*C / 2^128 + v / 2^t + o / 2^(k-6)
]]></artwork>
        <t>Firstly, observe that offline work dominates
if the target advantage is small relative to the final term.
Thus, where <tt>p</tt> is very small (for instance, 2<sup>-60</sup>),
this requires an assumption that <tt>o</tt> is also small
(in the example, less than 2<sup>62</sup>).</t>
        <t>Where <tt>o</tt> is not constrained by the final term,
the simplifying assumption that <tt>o &lt;= q + v</tt>
(i.e., that the attacker does not spend more work than all
legitimate protocol users together) 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 and AEAD_AES_128_CCM, 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 1195?>

<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"/>,
<contact fullname="Stanislav Smyshlyaev"/>, and
<contact fullname="Alexander Tereschenko"/>
for helping make this document better.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
373kKNStZk3MSL3A15koUU+pY8BYbYzayihWC+ctTO269a+zECQqBpDZlUSp
lC1RvVxOXEeNb4DWJHfWuroRo0DgcenC0AORmEQ2qspMyn/TFOjYEQBZUpgC
VgpcZZLp0Hr2m2xqv3aLwol3ErJQaMdqU4V3CapQMAkx7dRLczdSCTWL+Da8
y21xR5GWjD1TrVyQT4rJAH21FLgT32JK3oEbE8uLuIoFcClKpDLDEFnJHprM
Ik3OjNSiozHoKHoAQISlBqiZAjvizXKuFocifAyQMechZuKT080zAtwBNTpK
QYx1gXnaohwrgaRQNipnaJhaJkHoqS1OEftLzhLDijpDM8eo8Vw5DQBlh+ah
cXYCbwpcDWGnNNk11wEkTRl+dqTu7iEPRUQH/JDJE0yYOStJUeG5J8H4K6QI
fIHau12yYfkIWlOzEpineNeTFJONfH3c1a/hk7HGQA15OICoyDgDGCEAsDkG
agZkYOSMBJSQCxruEkQC6rpSEJcvr691Lin6Uo8GJHmNBaQlwyLi2iV0uhMu
EalRhlZQikXN0wLbfuiplx0FbBT3lCFdkJJBcVtGPMyHR8HhPEhBqwJpmpvM
nlnICeO4x8O+ApsojuEc26IVgKnixTHxSHydlJ1fCC/bWePKFKIhMITl13Q+
ymmtaHprJJcv/VhZYhci6SCm/ReqdVcp6gMI9ZKcZfZrVd6pSVB+aeoxcB3A
HBOQ97C8sWqxp/a85J9lH+64MA/RFJws4fRPl2ZjaJRsORHm49y623JmTDXr
1Evmxe9hJpMHHVZSC0pbJH/Vd7U4IBkCHG8lKTVKM6w4AOG+w3ZRFU6mHpQ2
r5EnMII25qXw3hzQhbWSkwjjkr/5x26X2ln401ZXznw5Z6DxCHjeeNaiTNcn
fsqt/YjNc3V0KetRldJlyGFiizNN3QNy61i1JiDlS1Wm0yifLKngF1SdbvdH
Pwuk1cJk5o+U0PzLoM0O5cETT2g4f6sPFy/gLFklOEaOQy5+afW3YCh0ybZg
LPy5q/o85M/oZ+9IgVfZx2gMK4bRmMb6CKOcjonZ34pDRnQV8rIFC+QbJNDJ
UzI+Ha9HNtsTwZoJduXkQ25eNoKkdUrw4R0gTroAcBUbX3xcSn7TAN5vwkfU
cSnYQMqcK7oDrj42Z7FSv4FV7O+Oy3WH7EqOC68DhVjuJlVG4ouB4crEBwcd
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

-->

</rfc>
