<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.3 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-aead-limits-02" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.42.0 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-aead-limits-02"/>
    <author initials="F." surname="Günther" fullname="Felix Günther">
      <organization>ETH Zurich</organization>
      <address>
        <email>mail@felixguenther.info</email>
      </address>
    </author>
    <author initials="M." surname="Thomson" fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <author initials="C.A." surname="Wood" fullname="Christopher A. Wood">
      <organization>Cloudflare</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2021" month="February" day="22"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <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>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>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>An Authenticated Encryption with Associated Data (AEAD) algorithm
provides confidentiality and integrity. <xref target="RFC5116" format="default"/> specifies an AEAD
as a function with four inputs - secret key, nonce, plaintext, associated data
(of which plaintext and associated data can optionally be zero-length) - that
produces ciphertext output and an error code
indicating success or failure. The ciphertext is typically composed of the encrypted
plaintext bytes and an authentication tag.</t>
      <t>The generic AEAD interface does not describe usage limits.  Each AEAD algorithm
does describe limits on its inputs, but these are formulated as strict
functional limits, such as the maximum length of inputs, which are determined by
the properties of the underlying AEAD composition.  Degradation of the security
of the AEAD as a single key is used multiple times is not given a thorough
treatment.</t>
      <t>These limits might also be influenced by the number of "users" of
a given key. In the traditional setting, there is one key shared between two
parties. Any limits on the maximum length of inputs or encryption operations
apply to that single key. The attacker's goal is to break security
(confidentiality or integrity) of that specific key. However, in practice, there
are often many users with independent keys. This multi-key security setting,
often referred to as the multi-user setting in the academic literature,
hence considers an attacker's advantage in breaking security of any of these many
keys, further assuming the attacker may have done some offline work to help break
security. As a result, AEAD algorithm limits may depend on offline work and the
number of keys. However, given that a multi-key attacker does not target any specific
key, acceptable advantages may differ from that of the single-key setting.</t>
      <t>The number of times a single pair of key and nonce can be used might also be
relevant to security.  For some algorithms, such as AEAD_AES_128_GCM or
AEAD_AES_256_GCM, this limit is 1 and using the same pair of key and nonce has
serious consequences for both confidentiality and integrity; see
<xref target="NonceDisrespecting" format="default"/>.  Nonce-reuse resistant algorithms like
AEAD_AES_128_GCM_SIV can tolerate a limited amount of nonce reuse.</t>
      <t>It is good practice to have limits on how many times the same key (or pair of
key and nonce) are used.  Setting a limit based on some measurable property of
the usage, such as number of protected messages or amount of data transferred,
ensures that it is easy to apply limits.  This might require the application of
simplifying assumptions.  For example, TLS 1.3 specifies limits on the number of
records that can be protected, using the simplifying assumption that records are
the same size; see Section 5.5 of <xref target="TLS" format="default"/>.</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" numbered="true" toc="default">
      <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&nbsp;14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="notation" numbered="true" toc="default">
      <name>Notation</name>
      <t>This document defines limitations in part using the quantities below.</t>
      <table align="center">
        <thead>
          <tr>
            <th align="right">Symbol</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="right">n</td>
            <td align="left">AEAD block length (in bits)</td>
          </tr>
          <tr>
            <td align="right">k</td>
            <td align="left">AEAD key length (in bits)</td>
          </tr>
          <tr>
            <td align="right">r</td>
            <td align="left">AEAD nonce length (in bits)</td>
          </tr>
          <tr>
            <td align="right">t</td>
            <td align="left">Size of the authentication tag (in bits)</td>
          </tr>
          <tr>
            <td align="right">l</td>
            <td align="left">Maximum length of each message (in blocks)</td>
          </tr>
          <tr>
            <td align="right">s</td>
            <td align="left">Total plaintext length in all messages (in blocks)</td>
          </tr>
          <tr>
            <td align="right">q</td>
            <td align="left">Number of protected messages (AEAD encryption invocations)</td>
          </tr>
          <tr>
            <td align="right">v</td>
            <td align="left">Number of attacker forgery attempts (failed AEAD decryption invocations)</td>
          </tr>
          <tr>
            <td align="right">p</td>
            <td align="left">Upper bound on adversary attack probability</td>
          </tr>
          <tr>
            <td align="right">o</td>
            <td align="left">Offline adversary work (in number of encryption and decryption queries; multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">u</td>
            <td align="left">Number of keys (multi-key setting only)</td>
          </tr>
          <tr>
            <td align="right">B</td>
            <td align="left">Maximum number of blocks encrypted by any key (multi-key setting only)</td>
          </tr>
        </tbody>
      </table>
      <t>For each AEAD algorithm, we define the (passive) confidentiality and (active)
integrity advantage roughly as the advantage an attacker has in breaking the
corresponding classical security property for the algorithm. A passive attacker
can query ciphertexts for arbitrary plaintexts. An active attacker can additionally
query plaintexts for arbitrary ciphertexts. Moreover, we define the combined
authenticated encryption advantage guaranteeing both confidentiality and integrity
against an active attacker. Specifically:</t>
      <ul spacing="normal">
        <li>Confidentiality advantage (CA): The probability of a passive attacker
succeeding in breaking the confidentiality properties (IND-CPA) of the AEAD scheme.
In this document, the definition of confidentiality advantage roughly is the
probability that an attacker successfully distinguishes the ciphertext outputs
of the AEAD scheme from the outputs of a random function.</li>
        <li>Integrity advantage (IA): The probability of a active attacker succeeding
in breaking the integrity properties (INT-CTXT) of the AEAD scheme. In this document,
the definition of integrity advantage roughly is the probability that an attacker
is able to forge a ciphertext that will be accepted as valid.</li>
        <li>Authenticated Encryption advantage (AEA): The probability of a active
attacker succeeding in breaking the authenticated-encryption properties of the
AEAD scheme. In this document, the definition of authenticated encryption
advantage roughly is the probability that an attacker successfully distinguishes
the ciphertext outputs of the AEAD scheme from the outputs of a random function
or is able to forge a ciphertext that will be accepted as valid.</li>
      </ul>
      <t>See <xref target="AEComposition" format="default"/>, <xref target="AEAD" format="default"/> for the formal definitions of and relations
between passive confidentiality (IND-CPA), ciphertext integrity (INT-CTXT),
and authenticated encryption security (AE).
The authenticated encryption advantage subsumes, and can be derived as the
combination of, both CA and IA:</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
CA <= AEA
IA <= AEA
AEA <= CA + IA
]]></artwork>
      <t>Each application requires an individual determination of limits in order to keep CA
and IA sufficiently small.  For instance, TLS aims to keep CA below 2^-60 and IA
below 2^-57 (in the single-key setting). See <xref target="TLS" format="default"/>, Section 5.5.</t>
    </section>
    <section anchor="calculating-limits" numbered="true" toc="default">
      <name>Calculating Limits</name>
      <t>Once upper bounds on CA, IA, or AEA are determined, this document
defines a process for determining three overall operational limits:</t>
      <ul spacing="normal">
        <li>Confidentiality limit (CL): The number of messages an application can encrypt
before giving the adversary a confidentiality advantage higher than CA.</li>
        <li>Integrity limit (IL): The number ciphertexts an application can decrypt,
either successfully or not, before giving the adversary an integrity advantage
higher than IA.</li>
        <li>Authenticated encryption limit (AEL): The combined number of messages and
number of ciphertexts an application can encrypt or decrypt before giving the
adversary an authenticated encryption advantage higher than AEA.</li>
      </ul>
      <t>When limits are expressed as a number of messages an application can encrypt or
decrypt, this requires assumptions about the size of messages and any
authenticated additional data (AAD).  Limits can instead be expressed in terms
of the number of bytes, or blocks, of plaintext and maybe AAD in total.
To aid in translating between message-based and byte/block-based limits,
a formulation of limits that includes a maximum message size (l) and the AEAD
schemes' block length in bits (n) is provided.</t>
      <t>All limits are based on the total number of messages, either the number of
protected messages (q) or the number of forgery attempts (v); 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>
    </section>
    <section anchor="su-limits" numbered="true" toc="default">
      <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" format="default"/>, AEAD_AES_256_GCM <xref target="RFC5116" format="default"/>,
AEAD_AES_128_CCM <xref target="RFC5116" format="default"/>, AEAD_CHACHA20_POLY1305 <xref target="RFC8439" format="default"/>, AEAD_AES_128_CCM_8 <xref target="RFC6655" format="default"/>.</t>
      <t>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" numbered="true" toc="default">
        <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" format="default"/> and summarized below.
For this AEAD, n = 128 and t = 128 <xref target="GCM" format="default"/>. In this example, the length s is the sum
of AAD and plaintext, as described in <xref target="GCMProofs" format="default"/>.</t>
        <section anchor="confidentiality-limit" numbered="true" toc="default">
          <name>Confidentiality Limit</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
CA <= ((s + q + 1)^2) / 2^129
]]></artwork>
          <t>This implies the following usage limit:</t>
          <artwork name="" type="" align="left" alt=""><![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>, produces the limit:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
q <= (p^(1/2) * 2^(129/2) - 1) / (l + 1)
]]></artwork>
        </section>
        <section anchor="integrity-limit" numbered="true" toc="default">
          <name>Integrity Limit</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
IA <= 2 * (v * (l + 1)) / 2^128
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
v <= (p * 2^127) / (l + 1)
]]></artwork>
        </section>
      </section>
      <section anchor="aeadchacha20poly1305" numbered="true" toc="default">
        <name>AEAD_CHACHA20_POLY1305</name>
        <t>The only known analysis for AEAD_CHACHA20_POLY1305 <xref target="ChaCha20Poly1305Bounds" format="default"/>
combines the confidentiality and integrity limits into a single expression,
covered below:</t>
        <!-- I've got to say that this is a pretty unsatisfactory situation. -->

<artwork name="" type="" align="left" alt=""><![CDATA[
CA <= v * ((8 * l) / 2^106)
IA <= v * ((8 * l) / 2^106)
]]></artwork>
        <t>This advantage is a tight reduction based on the underlying Poly1305 PRF <xref target="Poly1305" format="default"/>.
It implies the following limit:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
v <= (p * 2^103) / l
]]></artwork>
      </section>
      <section anchor="aeadaes128ccm" numbered="true" toc="default">
        <name>AEAD_AES_128_CCM</name>
        <t>The CL and IL values for AEAD_AES_128_CCM are derived from <xref target="CCM-ANALYSIS" format="default"/>
and specified in the QUIC-TLS mapping specification <xref target="I-D.ietf-quic-tls" format="default"/>. 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., 2l 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>
        <t>For this AEAD, n = 128 and t = 128.</t>
        <section anchor="confidentiality-limit-1" numbered="true" toc="default">
          <name>Confidentiality Limit</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
CA <= (2l * q)^2 / 2^n
   <= (2l * q)^2 / 2^128
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
q <= sqrt((p * 2^126) / l^2)
]]></artwork>
        </section>
        <section anchor="integrity-limit-1" numbered="true" toc="default">
          <name>Integrity Limit</name>
          <artwork name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![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 name="" type="" align="left" alt=""><![CDATA[
v + q <= p^(1/2) * 2^63 / l
]]></artwork>
        </section>
      </section>
      <section anchor="aeadaes128ccm8" numbered="true" toc="default">
        <name>AEAD_AES_128_CCM_8</name>
        <t>The analysis in <xref target="CCM-ANALYSIS" format="default"/> also applies to this AEAD, but the reduced tag
length of 64 bits changes the integrity limit calculation considerably.</t>
        <artwork name="" type="" align="left" alt=""><![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^64.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
v * 2^64 + (2l * (v + q))^2 <= p * 2^128
]]></artwork>
      </section>
    </section>
    <section anchor="mu-limits" numbered="true" toc="default">
      <name>Multi-Key AEAD Limits</name>
      <t>In the multi-key setting, each user is assumed to have an independent and
identically distributed key, though nonces may be re-used across users with some
very small probability. The success probability in attacking one of these many
independent keys can be generically bounded by the success probability of
attacking a single key multiplied by the number of keys present <xref target="MUSecurity" format="default"/>, <xref target="GCM-MU" format="default"/>.
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" format="default"/> 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" numbered="true" toc="default">
        <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 <xref target="GCM-MU2" format="default"/>. AES-GCM without nonce
randomization is also discussed in <xref target="GCM-MU2" format="default"/>, though this section does not
include those results as they do not apply to protocols such as TLS 1.3 <xref target="RFC8446" format="default"/>.</t>
        <t>For this AEAD, n = 128, t = 128, and r = 96; the key length is k = 128 or k = 256.</t>
        <section anchor="authenticated-encryption-security-limit" numbered="true" toc="default">
          <name>Authenticated Encryption Security Limit</name>
          <!--
    From {{GCM-MU2}} Theorem 4.3.

    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 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.
        - 2nd term (../2^n):  roughly  = \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
-->
<artwork name="" type="" align="left" alt=""><![CDATA[
AEA <= ((q+v)*l*B / 2^127) + (1 / 2^48)
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
q + v <= (p * 2^127 - 2^79) / (l * B)
]]></artwork>
        </section>
        <section anchor="confidentiality-limit-2" numbered="true" toc="default">
          <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  +  2^48

    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 terms as
the AE advantage:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
CA <= (q*l*B / 2^127) + (1 / 2^48)
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
q <= (p * 2^127 - 2^79) / (l * B)
]]></artwork>
        </section>
        <section anchor="integrity-limit-2" numbered="true" toc="default">
          <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 name="" type="" align="left" alt=""><![CDATA[
IA <= AEA <= (q+v)*l*B / 2^127 + 1/2^48
]]></artwork>
          <t>This implies the following limit:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
q + v <= (p * 2^127 - 2^79) / (l * B)
]]></artwork>
        </section>
      </section>
      <section anchor="aeadchacha20poly1305-aeadaes128ccm-and-aeadaes128ccm8" numbered="true" toc="default">
        <name>AEAD_CHACHA20_POLY1305, AEAD_AES_128_CCM, and AEAD_AES_128_CCM_8</name>
        <t>There are currently no concrete multi-key bounds for AEAD_CHACHA20_POLY1305,
AEAD_AES_128_CCM, or AEAD_AES_128_CCM_8. Thus, to account for the additional
factor <tt>u</tt>, i.e., the number of keys, each <tt>p</tt> term in the confidentiality and
integrity limits is replaced with <tt>p / u</tt>.</t>
        <section anchor="aeadchacha20poly1305-1" numbered="true" toc="default">
          <name>AEAD_CHACHA20_POLY1305</name>
          <t>The combined confidentiality and integrity limit for AEAD_CHACHA20_POLY1305 is
as follows.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
v <= ((p / u) * 2^106) / 8l
  <= (p * 2^103) / (l * u)
]]></artwork>
        </section>
        <section anchor="aeadaes128ccm-and-aeadaes128ccm8" numbered="true" toc="default">
          <name>AEAD_AES_128_CCM and AEAD_AES_128_CCM_8</name>
          <t>The integrity limit for AEAD_AES_128_CCM is as follows.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
v + q <= (p / u)^(1/2) * 2^63 / l
]]></artwork>
          <t>Likewise, the integrity limit for AEAD_AES_128_CCM_8 is as follows.</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
v * 2^64 + (2l * (v + q))^2 <= (p / u) * 2^128
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <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 v as the total number of failed decryption queries (that is, failed forgery
attempts), whereas models usually count in v all forgery attempts.</t>
      <t>The CA and IL values defined in this document are upper bounds based on existing
cryptographic research. Future analysis may introduce tighter bounds. Applications
SHOULD NOT assume these bounds are rigid, and SHOULD accommodate changes. In
particular, in two-party communication, one participant cannot regard apparent
overuse of a key by other participants as being in error, when it could be that
the other participant has better information about bounds.</t>
      <t>Note that the limits in this document apply to the adversary's ability to
conduct a single successful forgery. For some algorithms and in some cases,
an adversary's success probability in repeating forgeries may be noticeably
larger than that of the first forgery. As an example, <xref target="MF05" format="default"/> describes
such multiple forgery attacks in the context of AES-GCM in more detail.</t>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <t>This document does not make any request of IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="GCM">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC</title>
            <seriesInfo name="NIST" value="Special Publication 800-38D"/>
            <author initials="M." surname="Dworkin">
              <organization/>
            </author>
            <date year="2007" month="November"/>
          </front>
        </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="ChaCha20Poly1305Bounds" target="https://eprint.iacr.org/2014/613.pdf">
          <front>
            <title>A Security Analysis of the Composition of ChaCha20 and Poly1305</title>
            <author initials="G." surname="Procter">
              <organization/>
            </author>
            <date year="2014" month="August" day="11"/>
          </front>
        </reference>
        <reference anchor="AEBounds" target="http://www.isg.rhul.ac.uk/~kp/TLS-AEbounds.pdf">
          <front>
            <title>Limits on Authenticated Encryption Use in TLS</title>
            <author initials="A." surname="Luykx">
              <organization/>
            </author>
            <author initials="K." surname="Paterson">
              <organization/>
            </author>
            <date year="2016" month="March" day="08"/>
          </front>
        </reference>
        <reference anchor="AEComposition" target="http://cseweb.ucsd.edu/~mihir/papers/oem.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://cseweb.ucsd.edu/~mihir/papers/musu.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="RFC5116" target="https://www.rfc-editor.org/info/rfc5116">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <seriesInfo name="DOI" value="10.17487/RFC5116"/>
            <seriesInfo name="RFC" value="5116"/>
            <author initials="D." surname="McGrew" fullname="D. McGrew">
              <organization/>
            </author>
            <date year="2008" month="January"/>
            <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>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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>
        </reference>
        <reference anchor="RFC8439" target="https://www.rfc-editor.org/info/rfc8439">
          <front>
            <title>ChaCha20 and Poly1305 for IETF Protocols</title>
            <seriesInfo name="DOI" value="10.17487/RFC8439"/>
            <seriesInfo name="RFC" value="8439"/>
            <author initials="Y." surname="Nir" fullname="Y. Nir">
              <organization/>
            </author>
            <author initials="A." surname="Langley" fullname="A. Langley">
              <organization/>
            </author>
            <date year="2018" month="June"/>
            <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>
        </reference>
        <reference anchor="RFC6655" target="https://www.rfc-editor.org/info/rfc6655">
          <front>
            <title>AES-CCM Cipher Suites for Transport Layer Security (TLS)</title>
            <seriesInfo name="DOI" value="10.17487/RFC6655"/>
            <seriesInfo name="RFC" value="6655"/>
            <author initials="D." surname="McGrew" fullname="D. McGrew">
              <organization/>
            </author>
            <author initials="D." surname="Bailey" fullname="D. Bailey">
              <organization/>
            </author>
            <date year="2012" month="July"/>
            <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>
        </reference>
        <reference anchor="Poly1305">
          <front>
            <title>The Poly1305-AES Message-Authentication Code</title>
            <seriesInfo name="DOI" value="10.1007/11502760_3"/>
            <seriesInfo name="Fast Software Encryption" value="pp. 32-49"/>
            <author initials="D." surname="Bernstein" fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <date year="2005"/>
          </front>
        </reference>
        <reference anchor="CCM-ANALYSIS">
          <front>
            <title>On the Security of CTR + CBC-MAC</title>
            <seriesInfo name="DOI" value="10.1007/3-540-36492-7_7"/>
            <seriesInfo name="Selected Areas in Cryptography" value="pp. 76-93"/>
            <author initials="J." surname="Jonsson" fullname="Jakob Jonsson">
              <organization/>
            </author>
            <date year="2003"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="NonceDisrespecting" target="https://eprint.iacr.org/2016/475.pdf">
          <front>
            <title>Nonce-Disrespecting Adversaries -- Practical Forgery Attacks on GCM in TLS</title>
            <author initials="H." surname="Bock">
              <organization/>
            </author>
            <author initials="A." surname="Zauner">
              <organization/>
            </author>
            <author initials="S." surname="Devlin">
              <organization/>
            </author>
            <author initials="J." surname="Somorovsky">
              <organization/>
            </author>
            <author initials="P." surname="Jovanovic">
              <organization/>
            </author>
            <date year="2016" month="May" day="17"/>
          </front>
        </reference>
        <reference anchor="MF05" target="https://csrc.nist.gov/CSRC/media/Projects/Block-Cipher-Techniques/documents/BCM/Comments/CWC-GCM/multi-forge-01.pdf">
          <front>
            <title>Multiple forgery attacks against Message Authentication Codes</title>
            <author initials="D.A." surname="McGrew">
              <organization/>
            </author>
            <author initials="S.R." surname="Fluhrer">
              <organization/>
            </author>
            <date year="2005" month="May" day="31"/>
          </front>
        </reference>
        <reference anchor="TLS" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <seriesInfo name="DOI" value="10.17487/RFC8446"/>
            <seriesInfo name="RFC" value="8446"/>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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>
        </reference>
        <reference anchor="I-D.ietf-quic-tls" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-tls-34.txt">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-34"/>
            <author initials="M" surname="Thomson" fullname="Martin Thomson">
              <organization/>
            </author>
            <author initials="S" surname="Turner" fullname="Sean Turner">
              <organization/>
            </author>
            <date month="January" day="14" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org), which is archived at https://mailarchive.ietf.org/arch/search/?email_list=quic.  Working Group information can be found at https://github.com/quicwg; source code and issues list for this draft can be found at https://github.com/quicwg/base-drafts/labels/-tls.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <seriesInfo name="DOI" value="10.17487/RFC8446"/>
            <seriesInfo name="RFC" value="8446"/>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
fN78JswYThf/Cw27uANjVAAA

-->

</rfc>
