<?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.31 (Ruby 3.2.3) -->
<?rfc tocompact="yes"?>
<?rfc tocindent="yes"?>
<?rfc compact="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bonica-tcpm-tcp-ao-algs-01" category="std" consensus="true" submissionType="IETF" updates="RFC 5926" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.32.0 -->
  <front>
    <title abbrev="tcp-ao-algs">Additional Security Algorithms For Use With TCP-AO</title>
    <seriesInfo name="Internet-Draft" value="draft-bonica-tcpm-tcp-ao-algs-01"/>
    <author initials="R." surname="Bonica" fullname="Ron Bonica">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>ronald.bonica@hpe.com</email>
      </address>
    </author>
    <author initials="T." surname="Li" fullname="Tony Li">
      <organization>HPE</organization>
      <address>
        <postal>
          <country>USA</country>
        </postal>
        <email>tony.li@tony.li</email>
      </address>
    </author>
    <date year="2026" month="April" day="01"/>
    <area>Transport</area>
    <workgroup>TCPM Working Group</workgroup>
    <keyword>TCP-AO</keyword>
    <abstract>
      <?line 49?>

<t>RFC5926 specifies cryptographic algorithms for TCP-AO.
It explains how to use KDF_HMAC_SHA1 and KDF_AES_128_CMAC 
as KDFs. It also explains how to use HMAC-SHA-1-96 and 
AES-128-CMAC-96 as MAC algorithms.</t>
      <t>This document specifies several new KDFs and MAC
algorithms for TCP-AO. The KDFs and MAC algorithms specified in 
this document use stronger cryptography.</t>
    </abstract>
  </front>
  <middle>
    <?line 60?>

<section anchor="intro">
      <name>Introduction</name>
      <t>TCP end-points use the TCP Authentication Option (TCP-AO) <xref target="RFC5925"/> to authenticate
segments. TCP-AO relies upon:</t>
      <ul spacing="normal">
        <li>
          <t>A Master Key Tuple (MKT)</t>
        </li>
        <li>
          <t>A Key Derivation Function (KDF)</t>
        </li>
        <li>
          <t>A Message Authentication Code (MAC) algorithm</t>
        </li>
      </ul>
      <t>TCP-AO systems are configured with one or more MKTs for each connection that they protect.
When a connection is associated with multiple MKTs, TCP-AO can rotate among them during
the course of a TCP session. This facilitates dynamic key change and authentication algorithm
agility.</t>
      <t>An MKT includes:</t>
      <ul spacing="normal">
        <li>
          <t>Two MKT identifiers, one used for sending and one used for receiving</t>
        </li>
        <li>
          <t>A connection identifier (i.e., a TCP socket pair)</t>
        </li>
        <li>
          <t>A master key (i.e., a shared secret)</t>
        </li>
        <li>
          <t>A KDF</t>
        </li>
        <li>
          <t>A MAC algorithm</t>
        </li>
        <li>
          <t>A flag indicating whether TCP options other than TCP-AO are authenticated</t>
        </li>
      </ul>
      <t>The KDF generates a traffic key. Its inputs are:</t>
      <ul spacing="normal">
        <li>
          <t>A pseudorandom function (PRF) used to generate the traffic key</t>
        </li>
        <li>
          <t>The master key</t>
        </li>
        <li>
          <t>Context (i.e., A binary string containing information related to the connection)</t>
        </li>
        <li>
          <t>Output length (i.e., the length of the traffic key, in bits)</t>
        </li>
      </ul>
      <t>The MAC algorithm produces a MAC. It is defined by:</t>
      <ul spacing="normal">
        <li>
          <t>The KDF algorithm used to generate the traffic key</t>
        </li>
        <li>
          <t>The length of the traffic key, in bits</t>
        </li>
        <li>
          <t>The length of the MAC, in bits</t>
        </li>
      </ul>
      <t>The following are inputs to the MAC Algorithm:</t>
      <ul spacing="normal">
        <li>
          <t>traffic key</t>
        </li>
        <li>
          <t>message</t>
        </li>
      </ul>
      <t>TCP-AO systems include the MAC in the TCP-AO. They use the MAC
to authenticate segments.</t>
      <t><xref target="RFC5926"/> specifies cryptographic algorithms for TCP-AO.
It explains how to use KDF_HMAC_SHA1 and KDF_AES_128_CMAC 
as KDFs. It also explains how to use HMAC-SHA-1-96 and 
AES-128-CMAC-96 as MAC algorithms.</t>
      <t>This document specifies several new KDFs and MAC
algorithms for TCP-AO. The KDFs and MAC algorithms defined in 
this document use stronger cryptography.</t>
      <t>According to <xref target="RFC2104"/>, "Applications of HMAC can choose to truncate the output of HMAC by outputting the t leftmost bits of the HMAC computation for some parameter t".</t>
      <t>The algorithms described in this document truncate the output of HMAC to 128 bits (i.e., 16 bytes). Therefore, when they are encoded in TCP-AO, the TCP-AO consumes 20 bytes.</t>
    </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 BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="updates-to-rfc-5926">
      <name>Updates to RFC 5926</name>
      <section anchor="concrete-kdfs">
        <name>Concrete KDFs</name>
        <section anchor="kdfhmacsha256">
          <name>KDF_HMAC_SHA256</name>
          <t>For KDF_HMAC_SHA256:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA256 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.180-4"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA256(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  256 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha384">
          <name>KDF_HMAC_SHA384</name>
          <t>For KDF_HMAC_SHA384:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA384 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.180-4"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA384(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  384 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha512">
          <name>KDF_HMAC_SHA512</name>
          <t>For KDF_HMAC_SHA512:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA512 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.180-4"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA512(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  512 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha3-256">
          <name>KDF_HMAC_SHA3-256</name>
          <t>For KDF_HMAC_SHA3-256:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA3-256 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.202"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA3-256(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  256 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha3-384">
          <name>KDF_HMAC_SHA3-384</name>
          <t>For KDF_HMAC_SHA3-384:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA3-384 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.202"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA3-384(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  384 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
        <section anchor="kdfhmacsha3-512">
          <name>KDF_HMAC_SHA3-512</name>
          <t>For KDF_HMAC_SHA3-512:</t>
          <ul spacing="normal">
            <li>
              <t>PRF for KDF_alg:  HMAC-SHA3-512 <xref target="RFC2104"/> <xref target="DOI.10.6028_NIST.FIPS.202"/></t>
            </li>
            <li>
              <t>Use:       HMAC-SHA3-512(Key, Input).</t>
            </li>
            <li>
              <t>Input:     ( i || Label || Context || Output_Length)</t>
            </li>
            <li>
              <t>Key:       Master_Key, configured by user, and passed to the KDF</t>
            </li>
            <li>
              <t>Output_Length:  512 bits</t>
            </li>
            <li>
              <t>Result:    Traffic_Key, used in the MAC function by TCP-AO</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="trunc">
        <name>MAC Algorithms</name>
        <t>The following subsections should be added to Section 3.2 of <xref target="RFC5926"/>.</t>
        <section anchor="the-use-of-hmac-sha256-128">
          <name>The Use of HMAC-SHA256-128</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA256 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA256-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA256</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA256-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA256</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha384-128">
          <name>The Use of HMAC-SHA384-128</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA384 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA384-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA384</t>
            </li>
            <li>
              <t>Key_Length:  384 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA384-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA384</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha512-128">
          <name>The Use of HMAC-SHA512-128</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA512 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA512-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA512</t>
            </li>
            <li>
              <t>Key_Length:  512 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA512-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA512</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha3-256-128">
          <name>The Use of HMAC-SHA3-256-128</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA3-256 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA3-256-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA3-256.</t>
            </li>
            <li>
              <t>Key_Length:  256 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA3-256-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA3-256.</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha3-384-128">
          <name>The Use of HMAC-SHA3-384-128</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA3-384 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA3-384-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA3-384.</t>
            </li>
            <li>
              <t>Key_Length:  384 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA3-384-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA3-384.</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
        <section anchor="the-use-of-hmac-sha3-512-128">
          <name>The Use of HMAC-SHA3-512-128</name>
          <t>By definition, HMAC <xref target="RFC2104"/> requires a cryptographic hash function.
SHA3-512 will be that hash function used for authenticating and providing
integrity validation on TCP segments with HMAC.</t>
          <t>The three fixed elements for HMAC-SHA3-512-128 are:</t>
          <ul spacing="normal">
            <li>
              <t>KDF_Alg:     KDF_HMAC_SHA3-512.</t>
            </li>
            <li>
              <t>Key_Length:  512 bits.</t>
            </li>
            <li>
              <t>MAC_Length:  128 bits.</t>
            </li>
          </ul>
          <t>For:</t>
          <ul spacing="normal">
            <li>
              <t>MAC = MAC_alg (Traffic_Key, Message)</t>
            </li>
          </ul>
          <t>HMAC-SHA3-512-128 for TCP-AO has the following values:</t>
          <ul spacing="normal">
            <li>
              <t>MAC_alg:     HMAC-SHA3-512.</t>
            </li>
            <li>
              <t>Traffic_Key: Variable; the result of the KDF.</t>
            </li>
            <li>
              <t>Message:     The message to be authenticated, as specified in <xref target="RFC5925"/>, Section 5.1.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>According to <xref target="RFC2104"/>, "Applications of HMAC can choose to truncate the output of HMAC by outputting the t leftmost bits of the HMAC computation for some parameter t".</t>
      <t>The algorithms described in this document truncate the output of HMAC to 128 bits (i.e., 16 bytes). Therefore, when they are encoded in TCP-AO, the TCP-AO consumes 20 bytes.</t>
      <t><xref target="RFC2104"/> continues, "We recommend that the output length t be not less than half the length of the hash output (to match the birthday attack bound) and not less than 80 bits (a suitable lower bound on the number of bits that need to be predicted by an attacker).</t>
      <t>In this document, only the following MAC algorithms comply with that recommendation:</t>
      <ul spacing="normal">
        <li>
          <t>HMAC-SHA256-128</t>
        </li>
        <li>
          <t>HMAC-SHA3-256-128</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to the "Cryptographic Algorithms for TCP-AO Registration" (https://www.iana.org/assignments/tcp-parameters/tcp-parameters.xhtml#tcp-parameters-3).</t>
      <table anchor="iana">
        <name>IANA Actions</name>
        <thead>
          <tr>
            <th align="left">Algorithm</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">SHA256-128</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA384-128</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA512-128</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA3-256-128</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA3-384-128</td>
            <td align="left">This Document</td>
          </tr>
          <tr>
            <td align="left">SHA3-512-128</td>
            <td align="left">This Document</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thanks to Lars Eggert, Gorry Fairhurst, C.M. Heard, Russ Housley, John Mattsson, Yoshifumi Nishida, Joe Touch, Michael Tuxen, and Magnus Westerlund for their review and comments.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2104">
        <front>
          <title>HMAC: Keyed-Hashing for Message Authentication</title>
          <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
          <author fullname="M. Bellare" initials="M." surname="Bellare"/>
          <author fullname="R. Canetti" initials="R." surname="Canetti"/>
          <date month="February" year="1997"/>
          <abstract>
            <t>This document describes HMAC, a mechanism for message authentication using cryptographic hash functions. HMAC can be used with any iterative cryptographic hash function, e.g., MD5, SHA-1, in combination with a secret shared key. The cryptographic strength of HMAC depends on the properties of the underlying hash function. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="2104"/>
        <seriesInfo name="DOI" value="10.17487/RFC2104"/>
      </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="RFC4615">
        <front>
          <title>The Advanced Encryption Standard-Cipher-based Message Authentication Code-Pseudo-Random Function-128 (AES-CMAC-PRF-128) Algorithm for the Internet Key Exchange Protocol (IKE)</title>
          <author fullname="J. Song" initials="J." surname="Song"/>
          <author fullname="R. Poovendran" initials="R." surname="Poovendran"/>
          <author fullname="J. Lee" initials="J." surname="Lee"/>
          <author fullname="T. Iwata" initials="T." surname="Iwata"/>
          <date month="August" year="2006"/>
          <abstract>
            <t>Some implementations of IP Security (IPsec) may want to use a pseudo-random function (PRF) based on the Advanced Encryption Standard (AES). This memo describes such an algorithm, called AES-CMAC-PRF-128. It supports fixed and variable key sizes. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4615"/>
        <seriesInfo name="DOI" value="10.17487/RFC4615"/>
      </reference>
      <reference anchor="RFC5925">
        <front>
          <title>The TCP Authentication Option</title>
          <author fullname="J. Touch" initials="J." surname="Touch"/>
          <author fullname="A. Mankin" initials="A." surname="Mankin"/>
          <author fullname="R. Bonica" initials="R." surname="Bonica"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5925"/>
        <seriesInfo name="DOI" value="10.17487/RFC5925"/>
      </reference>
      <reference anchor="RFC5926">
        <front>
          <title>Cryptographic Algorithms for the TCP Authentication Option (TCP-AO)</title>
          <author fullname="G. Lebovitz" initials="G." surname="Lebovitz"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="June" year="2010"/>
          <abstract>
            <t>The TCP Authentication Option (TCP-AO) relies on security algorithms to provide authentication between two end-points. There are many such algorithms available, and two TCP-AO systems cannot interoperate unless they are using the same algorithms. This document specifies the algorithms and attributes that can be used in TCP-AO's current manual keying mechanism and provides the interface for future message authentication codes (MACs). [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5926"/>
        <seriesInfo name="DOI" value="10.17487/RFC5926"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="DOI.10.6028_NIST.FIPS.180-4">
        <front>
          <title>Secure hash standard</title>
          <author>
            <organization/>
          </author>
          <date year="2015"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.fips.180-4"/>
        <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.FIPS.197">
        <front>
          <title>Advanced Encryption Standard (AES)</title>
          <author>
            <organization/>
          </author>
          <date year="2001"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.fips.197"/>
        <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.FIPS.202">
        <front>
          <title>SHA-3 standard :: permutation-based hash and extendable-output functions</title>
          <author>
            <organization/>
          </author>
          <date year="2015"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.fips.202"/>
        <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
      </reference>
      <reference anchor="DOI.10.6028_NIST.SP.800-38B">
        <front>
          <title>Recommendation for block cipher modes of operation :: the CMAC mode for authentication</title>
          <author fullname="M J Dworkin" initials="M." surname="Dworkin">
            <organization/>
          </author>
          <date year="2016"/>
        </front>
        <seriesInfo name="DOI" value="10.6028/nist.sp.800-38b"/>
        <refcontent>National Institute of Standards and Technology</refcontent>
      </reference>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
