<?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.6 -->
<!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-wood-cfrg-aead-limits-00" category="info" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.44.0 -->
  <front>
    <title abbrev="AEAD Limits">Usage Limits on AEAD Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-wood-cfrg-aead-limits-00"/>
    <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="2020" month="May" day="20"/>
    <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.</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/chris-wood/draft-wood-cfrg-aead-limits">https://github.com/chris-wood/draft-wood-cfrg-aead-limits</eref>.</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,
and optional associated data - that produces ciphertext output and 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>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">Size of the AEAD block cipher (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">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 encryption attempts</td>
          </tr>
          <tr>
            <td align="right">v</td>
            <td align="left">Number of forgery attempts</td>
          </tr>
          <tr>
            <td align="right">p</td>
            <td align="left">Adversary attack probability</td>
          </tr>
        </tbody>
      </table>
      <t>For each AEAD algorithm, we define the confidentiality and integrity advantage
roughly as the advantage an attacker has in breaking the corresponding security
property for the algorithm. Specifically:</t>
      <ul spacing="normal">
        <li>Confidentiality advantage (CA): The advantage of an attacker succeeding in breaking
the confidentiality properties of the AEAD. In this document, the definition of
confidentiality advantage is the increase in the probability that an attacker is
able to successfully distinguish an AEAD ciphertext from the output of an ideal
pseudorandom permutation (PRP).</li>
        <li>Integrity advantage (IA): The probability of an attacker succeeding in breaking
the integrity properties of the AEAD. In this document, the definition of
integrity advantage is the probability that an attacker is able to forge a
ciphertext that will be accepted as valid.</li>
      </ul>
      <t>Each application requires a different application 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. 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 an upper bound on CA and IA are determined, this document
defines a process for determining two overall limits:</t>
      <ul spacing="normal">
        <li>Confidentiality limit (CL): The number of bytes of plaintext and maybe
authenticated additional data (AAD) an application can encrypt before giving
the adversary a non-negligible CA.</li>
        <li>Integrity limit (IL): The number of bytes of ciphertext and maybe authenticated
additional data (AAD) an application can process, either successfully or not,
before giving the adversary a non-negligible IA.</li>
      </ul>
      <t>For an AEAD based on a block function, it is common for these limits to be
expressed instead in terms of the number of blocks rather than bytes.
Furthermore, it might be more appropriate to track the number of messages rather
than track bytes.  Therefore, the guidance is usually based on the total number
of blocks processed (s).  To aid in calculating limits for message-based
protocols, a formulation of limits that includes a maximum message size (l) is
included.</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 a confidentiality advantage of <tt>v * (8l / 2^106)</tt> and attacker
success probability of <tt>p</tt>, the algorithm remains secure, i.e., the adversary's
advantage does not exceed the probability of success, provided that
<tt>v &lt;= (p * 2^106) / 8l</tt>. In turn, this implies that <tt>v &lt;= (p * 2^106) / 8l</tt>
is the corresponding limit.</t>
    </section>
    <section anchor="limits" numbered="true" toc="default">
      <name>AEAD Limits and Requirements</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 = IA = v * (8l / 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^106) / 8l
]]></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^127)) / 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="sec-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>Many of the formulae in this document depend on simplifying assumptions that 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.</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>n.d.</date>
          </front>
        </reference>
        <reference anchor="Poly1305" target="https://link.springer.com/content/pdf/10.1007/11502760_3.pdf">
          <front>
            <title>The Poly1305-AES message-authentication code</title>
            <seriesInfo name="International Workshop on Fast Software Encryption, 2005" value=""/>
            <author initials="D.J." surname="Bernstein">
              <organization/>
            </author>
            <date>n.d.</date>
          </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"/>
          </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="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="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="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-28.txt">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-28"/>
            <author initials="M" surname="Thomson" fullname="Martin Thomson">
              <organization/>
            </author>
            <author initials="S" surname="Turner" fullname="Sean Turner">
              <organization/>
            </author>
            <date month="May" day="19" year="2020"/>
            <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 (mailto: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>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAO0pxV4AA61a7XbbSHL930/RK/9YapagRH1Z5u4kQ1OyrY1kaS05c2Zz
MlITaJI4AgEKDZDmyp5nyYPkV/JiuVXdDQKkZHuSzJkzQ4GN7vq8dauaQRCI
Ii4S3ZMfjRpreR5P48LILJX90/6J7CfjLI+LydQINRzmet6zz+0yEWVhqqZ4
OcrVqAgWWRYF4SgfB0qrKEh4UbC7KyJV6J4I8V9st+zJOB1lQsSzvCeLvDTF
3u7uq909ca+XiyyPevIsLXSe6iI4oX2FMIVKo1uVZCnOWmojZnFP/luRhW1p
srzI9cjg03JKH/5dCFUWkyzvCRlIHGV68k1Hvv3v/0yLic6FxD9W6Dc6iT81
v8jycU+e3ryTfy/zOJzwMz1VcdKT9N+fRvTKuNT8RofVqA656MibSTY1WVo7
40LlRZw2vuAzLrJ/xEmiGgcUPyXZAlvn2WzZgfarrQcd2e/In2He2taDSR6b
IptBksa3vP8gycpolKhc148I1eKniVazOB0P4Ro+RKRZPlVFPIeHpHw7uOjx
Gy4qtj7oMJtOdQoXxoiKUZbL10kW3stBzCdfZJFGvIzk5UznvKYn38JTsdkZ
ZCX5kZfIFnbelnCjfHvRH2zxGRwWEs5/GXS7/KTyHP8TVIY9QVzcx9Z+Ruex
NmR7v+792fVNT17PdBirRF6VwyQOrbjHu7vB/vGJVewqz7KRaar3OtcKG49Z
sg96puKc/sJqea1DBEGxlPY9K3Kh8rEuenJSFDPT29nRM6wvOrEK8w4Mv7O3
293bOdg/7syi0fMa3XTk2UIVqvn0XzrycqLMJN54fBGn8GBhSnxzlSXL7v7u
YVOPm4muvgn6p9dyqg0ldEDnI6a8QUL44mlNkji97xhSZ4zQhtN3wgzuS4sd
qLLT3e104aedbvdwd+/l0e7t/tc1POnIv3bka2SxKfSm4+SWTXEWCj77Ge41
k2xGwPNGmUJeZ6NigeiVp2mYL2e0rE2RckjCDyYK/+7teoVfI9CiNcf2V/7r
44SliTlKYQw5yKazzMRsDzzyu3EI+C23nlftbYciIiwcZPgg7h58b4Ac7Bx1
vfn6p08JX0Phlft0VDMG4FpLApbz66+IClg4L5f3nzYC6grb5R6QKg2Ogt39
YPd4Qw+osVgsOrEZd/JJmXRU2Cnvd367n+3geETbkFVgjQS5t4Yn77M01Cex
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
vjV8w6gS23lpGz3gjxIy8OLCfX58xNY0lvQksspwMpbry4ynijiC4LpPgYNN
VjcOxPkazTTvay/W2SsvYIh1ssKhL8Rvv/0mQJSQQC0j/4Qm70+yu/3r3rZF
jb1XvMAmwSrraCKfQEnKqNrAv2e3oz0M5eTs11Z3B1tRYrawF30OZNdu+TOB
aZttrJqlpAp/e/dyx3s9YJcEyBSP2Ok0mdM2/zUgCB0ZgRqXda4id7S2umNh
azYkZMR4WjxSvZWwHaykZL0VWarZ7Yzstkcoy1Br3/GWO/6m5eoSNTBs7+UT
MjyToTZ0eSJyn9KsQ/n7eBu9z2T105f8X76gEZwOmQ1/G9+qToGmvP4CwtEm
olnYa86jS04IKPqXPwSgnX+cg6Nk9sZBuabHorql4LrA3mVqwB7MSIVFltO0
sCiVvXIJgn+qRS27YL3Q1Szf6LdQYt3g2V06NrlE7abHm0VefXgDa/k/KZlo
rP/73OlLUtOTNRj9KvysoXYdh5hKAIDxPOi/75//cn12/ePJ5VnH/55kPzg8
2A32jw5e7QUvb1/CvQxVbloe+V7+bx/PBgG1bFMQUp5z+BEGGwlN2Vlw0ol1
MQpQI8OgSAhW7PyzCjcUMLPCeLHC+JpZGyOvzP+kiRm31YnvABm+O9xRDqqb
JLffCgqxdU/UYNKPytbuW6shVgNT3eL6vekz6+ytYNW11ZbNktLILl30pE9F
gmlXUe1n3cRyKFXYvyzDgi+FNuTyYFYdJizl2qNpNuUXkxS+0UUXz5zT7UCE
Yb0x2TR4mycgFe8mmBWJO8v5tTmfJy0auZINaeitVncjrpmqdXqmGs7bOY/K
AdMMVMpODWo3Suteo0tWlVt7rZzUad7+UNjy0K5Ly/Z9H2NLpGsGv16Av7c0
wu4/yAeURYYY/i3KxtPfi/hcg8xDXrQYJ1oW9wkpEpTf76k8cz63QJWwoqAK
oYBvr4k599I9t+73l6onNqJq74qX2+2MGhR/kbSgFhVM/Y5arbuHO86K+hgp
od6nzSso2VdtfS0SxN36sXf0C1XrY/6Pu9hr5FtN6od1UnK0T+Z+Fpdvjy0y
VxjH1KoBt8T+iIBy3GtGslrIuV8x2IJD0qixWGX60QFP8OmKLR1rP2ZtDmWq
1jtb3SGpITeY/6s4wJnfFQbAmDKxY0AW3g9grFQQhjw1pFS2JZr0od073to/
PHvYZqi8WP2acOB1tAjy+AKdVxA2HqInu6AbRIeVbtSgNy+eIj3TdhL4zHWy
G7jmWvBlZhpzM5u4e0rAGAKwI+XP1L77S6D6AfybiaKCe54qiVRTY0sjKnzN
k1h/Eel+z1I7398eVPetqZsxVKY2wt2J0sUpZEFWTTNDcWG0K1XjDC2VvfYs
1/Z3t9bkSuwtTPVLAZ4+8Y8rGMT9LxJ8xMbVL1FUslBLRwYV/6wBiITgX3PU
xnWanwBM1b3m+14aPWvDYE/vu9+CDVHoxP8AQ0YNHicvAAA=

-->

</rfc>
