<?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.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-mlkem-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="ietf-tls-mlkem">ML-KEM Post-Quantum Key Agreement for TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-mlkem-02"/>
    <author fullname="Deirdre Connolly">
      <organization>SandboxAQ</organization>
      <address>
        <email>durumcrustulum@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="22"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>kems</keyword>
    <keyword>tls</keyword>
    <abstract>
      <?line 102?>

<t>This memo defines ML-KEM-512, ML-KEM-768, and ML-KEM-1024 as a standalone
<tt>NamedGroup</tt>s for use in TLS 1.3 to achieve post-quantum key agreement.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-tls-mlkem/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/tlswg/draft-ietf-tls-mlkem"/>.</t>
    </note>
  </front>
  <middle>
    <?line 107?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="motivation">
        <name>Motivation</name>
        <t>FIPS 203 (ML-KEM) is a new FIPS standard for post-quantum key agreement via
lattice-based key establishment mechanism (KEM). Having a purely post-quantum
(not hybrid) key agreement option for TLS 1.3 is necessary for migrating
beyond hybrids and for users that need to be fully post-quantum.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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.</t>
      <?line -18?>

</section>
    <section anchor="kems">
      <name>Key encapsulation mechanisms</name>
      <t>This document models key agreement as key encapsulation mechanisms
(KEMs), which consist of three algorithms:</t>
      <ul spacing="normal">
        <li>
          <t><tt>KeyGen() -&gt; (pk, sk)</tt>: A probabilistic key generation algorithm,
which generates a public encapsulation key <tt>pk</tt> and a secret
decapsulation key <tt>sk</tt>.</t>
        </li>
        <li>
          <t><tt>Encaps(pk) -&gt; (ct, shared_secret)</tt>: A probabilistic encapsulation
algorithm, which takes as input a public encapsulation key <tt>pk</tt> and
outputs a ciphertext <tt>ct</tt> and shared secret <tt>shared_secret</tt>.</t>
        </li>
        <li>
          <t><tt>Decaps(sk, ct) -&gt; shared_secret</tt>: A decapsulation algorithm, which takes as
input a secret decapsulation key <tt>sk</tt> and ciphertext <tt>ct</tt> and outputs
a shared secret <tt>shared_secret</tt>.</t>
        </li>
      </ul>
      <t>ML-KEM-512, ML-KEM-768 and ML-KEM-1024 conform to this API:</t>
      <ul spacing="normal">
        <li>
          <t>ML-KEM-512 has encapsulation keys of size 800 bytes, expanded decapsulation
keys of 1632 bytes, decapsulation key seeds of size 64 bytes, ciphertext
size of 768 bytes, and shared secrets of size 32 bytes</t>
        </li>
        <li>
          <t>ML-KEM-768 has encapsulation keys of size 1184 bytes, expanded
decapsulation keys of 2400 bytes, decapsulation key seeds of size 64 bytes,
ciphertext size of 1088 bytes, and shared secrets of size 32 bytes</t>
        </li>
        <li>
          <t>ML-KEM-1024 has encapsulation keys of size 1568 bytes, expanded
decapsulation keys of 3168 bytes, decapsulation key seeds of size 64 bytes,
ciphertext size of 1568 bytes, and shared secrets of size 32 bytes</t>
        </li>
      </ul>
    </section>
    <section anchor="construction">
      <name>Construction</name>
      <t>We define the KEMs as <tt>NamedGroup</tt>s, sent in the <tt>supported_groups</tt>
extension.</t>
      <section anchor="negotiation">
        <name>Negotiation</name>
        <t>Each method is its own solely post-quantum key agreement method, which
are assigned their own identifiers, registered by IANA in the TLS
Supported Groups registry:</t>
        <artwork><![CDATA[
    enum {

         ...,

          /* ML-KEM Key Agreement Methods */
          mlkem512(0x0200),
          mlkem768(0x0201),
          mlkem1024(0x0202)

         ...,

    } NamedGroup;
]]></artwork>
      </section>
      <section anchor="construction-transmitting">
        <name>Transmitting encapsulation keys and ciphertexts</name>
        <t>The encapsulation key and ciphertext values are directly encoded with fixed
lengths as in <xref target="FIPS203"/>.</t>
        <t>In TLS 1.3 a KEM encapsulation key or KEM ciphertext is
represented as a <tt>KeyShareEntry</tt>:</t>
        <artwork><![CDATA[
    struct {
        NamedGroup group;
        opaque key_exchange<1..2^16-1>;
    } KeyShareEntry;
]]></artwork>
        <t>These are transmitted in the <tt>extension_data</tt> fields of
<tt>KeyShareClientHello</tt> and <tt>KeyShareServerHello</tt> extensions:</t>
        <artwork><![CDATA[
    struct {
        KeyShareEntry client_shares<0..2^16-1>;
    } KeyShareClientHello;

    struct {
        KeyShareEntry server_share;
    } KeyShareServerHello;
]]></artwork>
        <t>The client's shares are listed in descending order of client preference;
the server selects one algorithm and sends its corresponding share.</t>
        <t>For the client's share, the <tt>key_exchange</tt> value contains the <tt>pk</tt>
output of the corresponding KEM <tt>NamedGroup</tt>'s <tt>KeyGen</tt> algorithm.</t>
        <t>For the server's share, the <tt>key_exchange</tt> value contains the <tt>ct</tt>
output of the corresponding KEM <tt>NamedGroup</tt>'s <tt>Encaps</tt> algorithm.</t>
        <t>For all parameter sets, the server <bcp14>MUST</bcp14> perform the encapsulation key check
described in Section 7.2 of <xref target="FIPS203"/> on the client's encapsulation key,
and abort with an <tt>illegal_parameter</tt> alert if it fails.</t>
        <t>For all parameter sets, the client <bcp14>MUST</bcp14> check if the ciphertext length
matches the selected parameter set, and abort with an <tt>illegal_parameter</tt>
alert if it fails.</t>
        <t>If ML-KEM decapsulation fails for any other reason, the connection <bcp14>MUST</bcp14> be
aborted with an <tt>internal_error</tt> alert.</t>
      </section>
      <section anchor="construction-shared-secret">
        <name>Shared secret calculation</name>
        <t>The shared secret output from the ML-KEM <tt>Encaps</tt> and <tt>Decaps</tt>
algorithms over the appropriate keypair and ciphertext results in the
same shared secret <tt>shared_secret</tt>, which is inserted into the TLS 1.3
key schedule in place of the (EC)DHE shared secret, as shown in
<xref target="fig-key-schedule"/>.</t>
        <figure anchor="fig-key-schedule">
          <name>Key schedule for key agreement</name>
          <artwork><![CDATA[
                                    0
                                    |
                                    v
                      PSK ->  HKDF-Extract = Early Secret
                                    |
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    |
                                    v
                              Derive-Secret(., "derived", "")
                                    |
                                    v
             shared_secret -> HKDF-Extract = Handshake Secret
             ^^^^^^^^^^^^^          |
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    |
                                    v
                              Derive-Secret(., "derived", "")
                                    |
                                    v
                         0 -> HKDF-Extract = Master Secret
                                    |
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
                                    +-----> Derive-Secret(...)
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <section anchor="failures">
        <name>Failures</name>
        <t>Some post-quantum key exchange algorithms, including ML-KEM, have non-zero
probability of failure, meaning two honest parties may derive different
shared secrets. This would cause a handshake failure. ML-KEM has a
cryptographically-small failure rate <xref target="FIPS203"/>. In the case of failure,
clients can retry if a failure is encountered.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="ind-cca">
        <name>IND-CCA</name>
        <t>The main security property for KEMs is indistinguishability under adaptive
chosen ciphertext attack (IND-CCA2), which means that shared secret values
should be indistinguishable from random strings even given the ability to
have other arbitrary ciphertexts decapsulated.  IND-CCA2 corresponds to
security against an active attacker, and the public key / secret key pair can
be treated as a long-term key or reused.</t>
        <t>TLS 1.3 does not require that ephemeral public keys be used only in a single
key exchange session; some implementations may reuse them, at the cost of
limited forward secrecy. As a result, any KEM used in the manner described in
this document <bcp14>MUST</bcp14> explicitly be designed to be secure in the event that the
public key is reused. Finite-field and elliptic-curve Diffie-Hellman key
exchange methods used in TLS 1.3 satisfy this criteria. For generic KEMs,
this means satisfying IND-CCA2 security or having a transform like the
Fujisaki-Okamoto transform <xref target="FO"/> <xref target="HHK"/> applied. ML-KEM satisfies this
requirement <xref target="FIPS203"/>.</t>
        <t>Along with other TLS 1.3 key agreement methods, it is recommended that
implementations avoid reuse of ML-KEM keys. Implementations <bcp14>MUST NOT</bcp14> reuse
randomness in the generation of ML-KEM ciphertexts.</t>
      </section>
      <section anchor="binding-properties">
        <name>Binding properties</name>
        <t>TLS 1.3's key schedule commits to the the ML-KEM encapsulation key and the
ciphertext as the <tt>key_exchange</tt> field as part of the <tt>key_share</tt> extension
are populated with those values are included as part of the handshake
messages, providing resilience against re-encapsulation attacks against KEMs
used for key agreement.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests/registers three new entries to the TLS Named Group (or
Supported Group) registry, according to the procedures in <xref section="6" sectionFormat="of" target="tlsiana"/>.</t>
      <dl>
        <dt>Value:</dt>
        <dd>
          <t>0x0200</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>MLKEM512</t>
        </dd>
        <dt>DTLS-OK:</dt>
        <dd>
          <t>Y</t>
        </dd>
        <dt>Recommended:</dt>
        <dd>
          <t>N</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
        <dt>Comment:</dt>
        <dd>
          <t>FIPS 203 version of ML-KEM-512</t>
        </dd>
        <dt>Value:</dt>
        <dd>
          <t>0x0201</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>MLKEM768</t>
        </dd>
        <dt>DTLS-OK:</dt>
        <dd>
          <t>Y</t>
        </dd>
        <dt>Recommended:</dt>
        <dd>
          <t>N</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
        <dt>Comment:</dt>
        <dd>
          <t>FIPS 203 version of ML-KEM-768</t>
        </dd>
        <dt>Value:</dt>
        <dd>
          <t>0x0202</t>
        </dd>
        <dt>Description:</dt>
        <dd>
          <t>MLKEM1024</t>
        </dd>
        <dt>DTLS-OK:</dt>
        <dd>
          <t>Y</t>
        </dd>
        <dt>Recommended:</dt>
        <dd>
          <t>N</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>This document</t>
        </dd>
        <dt>Comment:</dt>
        <dd>
          <t>FIPS 203 version of ML-KEM-1024</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS203">
          <front>
            <title>Module-lattice-based key-encapsulation mechanism standard</title>
            <author>
              <organization/>
            </author>
            <date month="August" year="2024"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.203"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="AVIRAM" target="https://mailarchive.ietf.org/arch/msg/tls/F4SVeL2xbGPaPB2GW_GkBbD_a5M/">
          <front>
            <title>[TLS] Combining Secrets in Hybrid Key Exchange in TLS 1.3</title>
            <author initials="" surname="Nimrod Aviram">
              <organization/>
            </author>
            <author initials="" surname="Benjamin Dowling">
              <organization/>
            </author>
            <author initials="" surname="Ilan Komargodski">
              <organization/>
            </author>
            <author initials="" surname="Kenny Paterson">
              <organization/>
            </author>
            <author initials="" surname="Eyal Ronen">
              <organization/>
            </author>
            <author initials="" surname="Eylon Yogev">
              <organization/>
            </author>
            <date year="2021" month="September" day="01"/>
          </front>
        </reference>
        <reference anchor="CDM23" target="https://eprint.iacr.org/2023/1933.pdf">
          <front>
            <title>Keeping Up with the KEMs: Stronger Security Notions for KEMs and automated analysis of KEM-based protocols</title>
            <author initials="C." surname="Cremers" fullname="Cas Cremers">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <author initials="A." surname="Dax" fullname="Alexander Dax">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <author initials="N." surname="Medinger" fullname="Niklas Medinger">
              <organization>CISPA Helmholtz Center for Information Security</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="DOWLING">
          <front>
            <title>A Cryptographic Analysis of the TLS 1.3 Handshake Protocol</title>
            <author fullname="Benjamin Dowling" initials="B." surname="Dowling">
              <organization/>
            </author>
            <author fullname="Marc Fischlin" initials="M." surname="Fischlin">
              <organization/>
            </author>
            <author fullname="Felix Günther" initials="F." surname="Günther">
              <organization/>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization/>
            </author>
            <date month="July" year="2021"/>
          </front>
          <seriesInfo name="Journal of Cryptology" value="vol. 34, no. 4"/>
          <seriesInfo name="DOI" value="10.1007/s00145-021-09384-1"/>
          <refcontent>Springer Science and Business Media LLC</refcontent>
        </reference>
        <reference anchor="FO">
          <front>
            <title>Secure Integration of Asymmetric and Symmetric Encryption Schemes</title>
            <author fullname="Eiichiro Fujisaki" initials="E." surname="Fujisaki">
              <organization/>
            </author>
            <author fullname="Tatsuaki Okamoto" initials="T." surname="Okamoto">
              <organization/>
            </author>
            <date month="December" year="2011"/>
          </front>
          <seriesInfo name="Journal of Cryptology" value="vol. 26, no. 1, pp. 80-101"/>
          <seriesInfo name="DOI" value="10.1007/s00145-011-9114-1"/>
          <refcontent>Springer Science and Business Media LLC</refcontent>
        </reference>
        <reference anchor="HHK">
          <front>
            <title>A Modular Analysis of the Fujisaki-Okamoto Transformation</title>
            <author fullname="Dennis Hofheinz" initials="D." surname="Hofheinz">
              <organization/>
            </author>
            <author fullname="Kathrin Hövelmanns" initials="K." surname="Hövelmanns">
              <organization/>
            </author>
            <author fullname="Eike Kiltz" initials="E." surname="Kiltz">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 341-371"/>
          <seriesInfo name="DOI" value="10.1007/978-3-319-70500-2_12"/>
          <seriesInfo name="ISBN" value="[&quot;9783319704999&quot;, &quot;9783319705002&quot;]"/>
          <refcontent>Springer International Publishing</refcontent>
        </reference>
        <reference anchor="HPKE">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </reference>
        <reference anchor="hybrid">
          <front>
            <title>Hybrid key exchange in TLS 1.3</title>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shay Gueron" initials="S." surname="Gueron">
              <organization>University of Haifa and Meta</organization>
            </author>
            <date day="21" month="July" year="2025"/>
            <abstract>
              <t>   Hybrid key exchange refers to using multiple key exchange algorithms
   simultaneously and combining the result with the goal of providing
   security even if a way is found to defeat the encryption for all but
   one of the component algorithms.  It is motivated by transition to
   post-quantum cryptography.  This document provides a construction for
   hybrid key exchange in the Transport Layer Security (TLS) protocol
   version 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-14"/>
        </reference>
        <reference anchor="LUCKY13" target="https://ieeexplore.ieee.org/iel7/6547086/6547088/06547131.pdf">
          <front>
            <title>Lucky Thirteen: Breaking the TLS and DTLS record protocols</title>
            <author initials="N. J." surname="Al Fardan">
              <organization/>
            </author>
            <author initials="K. G." surname="Paterson">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RACCOON" target="https://raccoon-attack.com/">
          <front>
            <title>Raccoon Attack: Finding and Exploiting Most-Significant-Bit-Oracles in TLS-DH(E)</title>
            <author initials="R." surname="Merget">
              <organization/>
            </author>
            <author initials="M." surname="Brinkmann">
              <organization/>
            </author>
            <author initials="N." surname="Aviram">
              <organization/>
            </author>
            <author initials="J." surname="Somorovsky">
              <organization/>
            </author>
            <author initials="J." surname="Mittmann">
              <organization/>
            </author>
            <author initials="J." surname="Schwenk">
              <organization/>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="tlsiana">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="Joseph A. Salowey" initials="J. A." surname="Salowey">
              <organization>Venafi</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="21" month="July" year="2025"/>
            <abstract>
              <t>   This document updates the changes to TLS and DTLS IANA registries
   made in RFC 8447.  It adds a new value "D" for discouraged to the
   Recommended column of the selected TLS registries and adds a
   "Comment" column to all active registries that do not already have a
   "Comment" column.  Finally, it updates the registration request
   instructions.

   This document updates RFC 8447.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8447bis-15"/>
        </reference>
      </references>
    </references>
    <?line 394?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Douglas Stebila for consultation on the
draft-ietf-tls-hybrid-design design, and to Scott Fluhrer and Eric Rescorla
for reviews.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
