<?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.6.20 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lwig-security-protocol-comparison-07" category="info" submissionType="IETF" tocDepth="3" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title>Comparison of CoAP Security Protocols</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lwig-security-protocol-comparison-07"/>
    <author initials="J" surname="Preuß Mattsson" fullname="John Preuß Mattsson">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <email>john.mattsson@ericsson.com</email>
      </address>
    </author>
    <author initials="F." surname="Palombini" fullname="Francesca Palombini">
      <organization abbrev="Ericsson">Ericsson AB</organization>
      <address>
        <email>francesca.palombini@ericsson.com</email>
      </address>
    </author>
    <author initials="M." surname="Vučinić" fullname="Mališa Vučinić">
      <organization>INRIA</organization>
      <address>
        <email>malisa.vucinic@inria.fr</email>
      </address>
    </author>
    <date year="2023" month="January" day="24"/>
    <workgroup>LWIG Working Group</workgroup>
    <abstract>
      <t>This document analyzes and compares the sizes of key exchange flights and the per-packet message size overheads when using different security protocols to secure CoAP. Small message sizes are very important for reducing energy consumption, latency, and time to completion in constrained radio network such as Low-Power Wide Area Networks (LPWANs). The analyzed security protocols are DTLS 1.2, DTLS 1.3, TLS 1.2, TLS 1.3, cTLS, EDHOC, OSCORE, and Group OSCORE. The DTLS and TLS record layers are analyzed with and without 6LoWPAN-GHC compression. DTLS is analyzed with and without Connection ID.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Small message sizes are very important for reducing energy consumption, latency, and time to completion in constrained radio network such as Low-Power Personal Area Networks (LPPANs) and Low-Power Wide Area Networks (LPWANs). Constrained radio networks are not only characterized by very small frame sizes on the order of tens of bytes transmitted a few times per day at ultra-low speeds, but also high latency, and severe duty cycles constraints. Some constrained radio networks are also multi-hop where the already small frame sizes are additionally reduced for each additional hop. Too large payload sizes can easily lead to unacceptable completion times due to fragmentation into a large number of frames and long waiting times between frames can be sent (or resent in the case of transmission errors). In constrained radio networks, the processing energy costs are typically almost negligible compared to the energy costs for radio and the energy costs for sensor measurement. Keeping the number of bytes or frames low is also essential for low latency and time to completion as well as efficient use of spectrum to support a large number of devices. For an overview of LPWANs and their limitations, see <xref target="RFC8376"/>.</t>
      <t>To reduce overhead, processing, and energy consumption in constrained radio networks, IETF has created several working groups and technologies for constrained networks, e.g., (here technologies in parenthesis when the name is different from the working group): 6lo, 6LoWPAN, 6TiSCH, ACE, CBOR, CoRE (CoAP, OSCORE), COSE, LAKE (EDHOC), LPWAN (SCHC), ROLL (RPL), and TLS (cTLS). Compact formats and protocol have also been suggested as a way to decrease the energy consumption of Internet Applications and Systems in general <xref target="E-impact"/>.</t>
      <t>This document analyzes and compares the sizes of key exchange flights and the per-packet message size overheads when using different security protocols to secure CoAP over UPD <xref target="RFC7252"/> and TCP <xref target="RFC8323"/>. The analyzed security protocols are DTLS 1.2 <xref target="RFC6347"/>, DTLS 1.3 <xref target="RFC9147"/>, TLS 1.2 <xref target="RFC5246"/>, TLS 1.3 <xref target="RFC8446"/>, cTLS <xref target="I-D.ietf-tls-ctls"/>, EDHOC <xref target="I-D.ietf-lake-edhoc"/> <xref target="I-D.ietf-core-oscore-edhoc"/>, OSCORE <xref target="RFC8613"/>, and Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>.</t>
      <t>The protocols are analyzed with different algorithms and options. The DTLS and TLS record layers are analyzed with and without 6LoWPAN-GHC compression <xref target="RFC7400"/>. DTLS is analyzed with and without Connection ID <xref target="RFC9146"/>. Readers are expected to be familiar with some of the terms described in RFC 7925 <xref target="RFC7925"/>, such as Integrity Check Value (ICV). <xref target="handshake"/> compares the overhead of mutually authenticated key exchange, while <xref target="record"/> covers the overhead for protection of application data.</t>
      <t>Readers of this document also might be interested in the following documents: <xref target="Illustrated-TLS12"/>, <xref target="Illustrated-TLS13"/>, <xref target="Illustrated-DTLS13"/>, and <xref target="I-D.ietf-lake-traces"/> gives an explanation of every byte in example TLS 1.2, TLS 1.3, DTLS 1.3, and EDHOC instances. <xref target="RFC9191"/> looks at potential tools available for overcoming the deployment challenges induced by large certificates and long certificate chains and discusses solutions available to overcome these challenges. <xref target="I-D.ietf-cose-cbor-encoded-cert"/> gives examples of IoT and Web certificates as well as examples on how effective C509 an TLS certificate compression <xref target="RFC8879"/> is at compressing example certificate and certificate chains. <xref target="I-D.mattsson-tls-compact-ecc"/> proposes new optimized encodings for key exchange and signatures with P-256 in TLS 1.3.</t>
    </section>
    <section anchor="handshake">
      <name>Overhead of Key Exchange Protocols</name>
      <t>This section analyzes and compares the sizes of key exchange flights for different protocols.</t>
      <t>To enable a fair comparison between protocols, the following assumptions are made:</t>
      <ul spacing="normal">
        <li>The overhead calculations in this section use an 8 bytes ICV (e.g., AES_128_CCM_8 or AES-CCM-16-64-128) or 16 bytes (e.g., AES-CCM, AES-GCM, or ChaCha20-Poly1305).</li>
        <li>A minimum number of algorithms and cipher suites is offered. The algorithm used/offered are P-256 or Curve25519, ECDSA with P-256 and SHA-256 or Ed25519, AES-CCM_8, and SHA-256.</li>
        <li>The length of key identifiers are 1 byte.</li>
        <li>The length of connection identifiers are 1 byte.</li>
        <li>DTLS handshake message fragmentation is not considered.</li>
        <li>As many (D)TLS handshake messages as possible are sent in a single record.</li>
        <li>Only mandatory (D)TLS extensions are included.</li>
      </ul>
      <t>The choices of algorithms are based on the profiles in <xref target="RFC7925"/>, <xref target="I-D.ietf-uta-tls13-iot-profile"/>, and <xref target="I-D.ietf-core-oscore-edhoc"/>.</t>
      <t><xref target="summ-handshake"/> gives a short summary of the message overhead based on different parameters and some assumptions. The following sections detail the assumptions and the calculations.</t>
      <section anchor="summ-handshake">
        <name>Summary</name>
        <t>The DTLS and cTLS overhead is dependent on the parameter Connection ID. The following overheads apply for all Connection IDs of the same length, when Connection ID is used.</t>
        <t>The TLS, DTLS, and cTLS overhead is dependent on the group used for key exchange and the signature algorithm. secp256r1 and ecdsa_secp256r1_sha256 have less optimized encoding than x25519, ed25519, and <xref target="I-D.mattsson-tls-compact-ecc"/>.</t>
        <t>The EDHOC overhead is dependent on the key identifiers included. The following overheads apply for Sender IDs of the same length.</t>
        <t>All the overhead are dependent on the tag length. The following overheads apply for tags of the same length.</t>
        <t><xref target="fig-compare1"/> compares the message sizes of DTLS 1.3, cTLS, and EDHOC handshakes with connection ID and the mandatory to implement algorithms CCM_8, P-256, and ECDSA <xref target="I-D.ietf-uta-tls13-iot-profile"/> <xref target="I-D.ietf-core-oscore-edhoc"/>. EDHOC is typically sent over CoAP which would add 4 bytes to flight #1 and #2 and 5 or 20 bytes to flight #3 depending on if OSCORE is used <xref target="I-D.ietf-core-oscore-edhoc"/>.</t>
        <figure anchor="fig-compare1">
          <name>Comparison of message sizes in bytes with CCM_8, P-256, and ECDSA and with Connection ID</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="560" viewBox="0 0 560 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 552,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 552,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 552,64" fill="none" stroke="black"/>
                <path d="M 8,176 L 552,176" fill="none" stroke="black"/>
                <path d="M 8,254 L 552,254" fill="none" stroke="black"/>
                <path d="M 8,258 L 552,258" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Flight</text>
                  <text x="348" y="52">#1</text>
                  <text x="412" y="52">#2</text>
                  <text x="476" y="52">#3</text>
                  <text x="528" y="52">Total</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="88" y="84">-</text>
                  <text x="120" y="84">RPKs,</text>
                  <text x="168" y="84">ECDHE</text>
                  <text x="344" y="84">185</text>
                  <text x="408" y="84">454</text>
                  <text x="472" y="84">255</text>
                  <text x="536" y="84">894</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="88" y="100">-</text>
                  <text x="140" y="100">Compressed</text>
                  <text x="208" y="100">RPKs,</text>
                  <text x="256" y="100">ECDHE</text>
                  <text x="344" y="100">185</text>
                  <text x="408" y="100">422</text>
                  <text x="472" y="100">223</text>
                  <text x="536" y="100">830</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.3</text>
                  <text x="88" y="116">-</text>
                  <text x="124" y="116">Cached</text>
                  <text x="172" y="116">RPK,</text>
                  <text x="212" y="116">PRK,</text>
                  <text x="256" y="116">ECDHE</text>
                  <text x="344" y="116">224</text>
                  <text x="408" y="116">402</text>
                  <text x="472" y="116">255</text>
                  <text x="536" y="116">881</text>
                  <text x="28" y="132">DTLS</text>
                  <text x="64" y="132">1.3</text>
                  <text x="88" y="132">-</text>
                  <text x="124" y="132">Cached</text>
                  <text x="180" y="132">X.509,</text>
                  <text x="228" y="132">RPK,</text>
                  <text x="272" y="132">ECDHE</text>
                  <text x="344" y="132">218</text>
                  <text x="408" y="132">396</text>
                  <text x="472" y="132">255</text>
                  <text x="536" y="132">869</text>
                  <text x="28" y="148">DTLS</text>
                  <text x="64" y="148">1.3</text>
                  <text x="88" y="148">-</text>
                  <text x="116" y="148">PSK,</text>
                  <text x="160" y="148">ECDHE</text>
                  <text x="344" y="148">219</text>
                  <text x="408" y="148">226</text>
                  <text x="476" y="148">56</text>
                  <text x="536" y="148">501</text>
                  <text x="28" y="164">DTLS</text>
                  <text x="64" y="164">1.3</text>
                  <text x="88" y="164">-</text>
                  <text x="112" y="164">PSK</text>
                  <text x="344" y="164">136</text>
                  <text x="408" y="164">153</text>
                  <text x="476" y="164">56</text>
                  <text x="536" y="164">345</text>
                  <text x="32" y="196">EDHOC</text>
                  <text x="64" y="196">-</text>
                  <text x="104" y="196">X.509s,</text>
                  <text x="180" y="196">Signature,</text>
                  <text x="244" y="196">x5t,</text>
                  <text x="288" y="196">ECDHE</text>
                  <text x="348" y="196">37</text>
                  <text x="408" y="196">115</text>
                  <text x="476" y="196">90</text>
                  <text x="536" y="196">242</text>
                  <text x="32" y="212">EDHOC</text>
                  <text x="64" y="212">-</text>
                  <text x="96" y="212">RPKs,</text>
                  <text x="180" y="212">Signature,</text>
                  <text x="244" y="212">kid,</text>
                  <text x="288" y="212">ECDHE</text>
                  <text x="348" y="212">37</text>
                  <text x="408" y="212">102</text>
                  <text x="476" y="212">77</text>
                  <text x="536" y="212">216</text>
                  <text x="32" y="228">EDHOC</text>
                  <text x="64" y="228">-</text>
                  <text x="104" y="228">X.509s,</text>
                  <text x="164" y="228">Static</text>
                  <text x="208" y="228">DH,</text>
                  <text x="244" y="228">x5t,</text>
                  <text x="288" y="228">ECDHE</text>
                  <text x="348" y="228">37</text>
                  <text x="412" y="228">58</text>
                  <text x="476" y="228">33</text>
                  <text x="536" y="228">128</text>
                  <text x="32" y="244">EDHOC</text>
                  <text x="64" y="244">-</text>
                  <text x="96" y="244">RPKs,</text>
                  <text x="164" y="244">Static</text>
                  <text x="208" y="244">DH,</text>
                  <text x="244" y="244">kid,</text>
                  <text x="288" y="244">ECDHE</text>
                  <text x="348" y="244">37</text>
                  <text x="412" y="244">45</text>
                  <text x="476" y="244">19</text>
                  <text x="536" y="244">101</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
=====================================================================
 Flight                                   #1      #2      #3   Total
---------------------------------------------------------------------
 DTLS 1.3 - RPKs, ECDHE                  185     454     255     894
 DTLS 1.3 - Compressed RPKs, ECDHE       185     422     223     830
 DTLS 1.3 - Cached RPK, PRK, ECDHE       224     402     255     881
 DTLS 1.3 - Cached X.509, RPK, ECDHE     218     396     255     869
 DTLS 1.3 - PSK, ECDHE                   219     226      56     501
 DTLS 1.3 - PSK                          136     153      56     345
---------------------------------------------------------------------
 EDHOC - X.509s, Signature, x5t, ECDHE    37     115      90     242
 EDHOC - RPKs,   Signature, kid, ECDHE    37     102      77     216
 EDHOC - X.509s, Static DH, x5t, ECDHE    37      58      33     128
 EDHOC - RPKs,   Static DH, kid, ECDHE    37      45      19     101
=====================================================================
]]></artwork>
          </artset>
        </figure>
        <t><xref target="fig-compare2"/> compares of message sizes of DTLS 1.3 <xref target="RFC9147"/> and TLS 1.3 <xref target="RFC8446"/> handshakes without connection ID but with the same algorithms CCM_8, P-256, and ECDSA. DTLS is typically sent over 8 bytes UDP datagram headers while TLS is typically sent over 20 bytes TCP segment headers. TCP also uses some more bytes for additional messages used in TCP internally.</t>
        <figure anchor="fig-compare2">
          <name>Comparison of message sizes in bytes with CCM_8, secp256r1, and ecdsa_secp256r1_sha256 or PSK and without Connection ID</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="560" viewBox="0 0 560 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 552,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 552,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 552,64" fill="none" stroke="black"/>
                <path d="M 8,128 L 552,128" fill="none" stroke="black"/>
                <path d="M 8,192 L 552,192" fill="none" stroke="black"/>
                <path d="M 8,254 L 552,254" fill="none" stroke="black"/>
                <path d="M 8,258 L 552,258" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Flight</text>
                  <text x="348" y="52">#1</text>
                  <text x="412" y="52">#2</text>
                  <text x="476" y="52">#3</text>
                  <text x="528" y="52">Total</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="88" y="84">-</text>
                  <text x="120" y="84">RPKs,</text>
                  <text x="168" y="84">ECDHE</text>
                  <text x="344" y="84">179</text>
                  <text x="408" y="84">447</text>
                  <text x="472" y="84">254</text>
                  <text x="536" y="84">880</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="88" y="100">-</text>
                  <text x="116" y="100">PSK,</text>
                  <text x="160" y="100">ECDHE</text>
                  <text x="344" y="100">213</text>
                  <text x="408" y="100">219</text>
                  <text x="476" y="100">55</text>
                  <text x="536" y="100">487</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.3</text>
                  <text x="88" y="116">-</text>
                  <text x="112" y="116">PSK</text>
                  <text x="344" y="116">130</text>
                  <text x="408" y="116">146</text>
                  <text x="476" y="116">55</text>
                  <text x="536" y="116">331</text>
                  <text x="24" y="148">TLS</text>
                  <text x="56" y="148">1.3</text>
                  <text x="88" y="148">-</text>
                  <text x="120" y="148">RPKs,</text>
                  <text x="168" y="148">ECDHE</text>
                  <text x="344" y="148">162</text>
                  <text x="408" y="148">394</text>
                  <text x="472" y="148">233</text>
                  <text x="536" y="148">789</text>
                  <text x="24" y="164">TLS</text>
                  <text x="56" y="164">1.3</text>
                  <text x="88" y="164">-</text>
                  <text x="116" y="164">PSK,</text>
                  <text x="160" y="164">ECDHE</text>
                  <text x="344" y="164">196</text>
                  <text x="408" y="164">190</text>
                  <text x="476" y="164">50</text>
                  <text x="536" y="164">436</text>
                  <text x="24" y="180">TLS</text>
                  <text x="56" y="180">1.3</text>
                  <text x="88" y="180">-</text>
                  <text x="112" y="180">PSK</text>
                  <text x="344" y="180">113</text>
                  <text x="408" y="180">117</text>
                  <text x="476" y="180">50</text>
                  <text x="536" y="180">280</text>
                  <text x="28" y="212">cTLS</text>
                  <text x="56" y="212">-</text>
                  <text x="92" y="212">X.509s</text>
                  <text x="132" y="212">by</text>
                  <text x="188" y="212">reference,</text>
                  <text x="256" y="212">ECDHE</text>
                  <text x="344" y="212">104</text>
                  <text x="408" y="212">195</text>
                  <text x="476" y="212">96</text>
                  <text x="536" y="212">395</text>
                  <text x="28" y="228">cTLS</text>
                  <text x="56" y="228">-</text>
                  <text x="84" y="228">PSK,</text>
                  <text x="128" y="228">ECDHE</text>
                  <text x="344" y="228">105</text>
                  <text x="408" y="228">119</text>
                  <text x="476" y="228">20</text>
                  <text x="536" y="228">226</text>
                  <text x="28" y="244">cTLS</text>
                  <text x="56" y="244">-</text>
                  <text x="80" y="244">PSK</text>
                  <text x="348" y="244">40</text>
                  <text x="412" y="244">58</text>
                  <text x="476" y="244">20</text>
                  <text x="536" y="244">118</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
=====================================================================
 Flight                                   #1      #2      #3   Total
---------------------------------------------------------------------
 DTLS 1.3 - RPKs, ECDHE                  179     447     254     880
 DTLS 1.3 - PSK, ECDHE                   213     219      55     487
 DTLS 1.3 - PSK                          130     146      55     331
---------------------------------------------------------------------
 TLS 1.3  - RPKs, ECDHE                  162     394     233     789
 TLS 1.3  - PSK, ECDHE                   196     190      50     436
 TLS 1.3  - PSK                          113     117      50     280
---------------------------------------------------------------------
 cTLS - X.509s by reference, ECDHE       104     195      96     395
 cTLS - PSK, ECDHE                       105     119      20     226
 cTLS - PSK                               40      58      20     118 
=====================================================================
]]></artwork>
          </artset>
        </figure>
        <t><xref target="fig-compare3"/> is the same as <xref target="fig-compare2"/> but with more efficiently encoded key shares and signatures such as x25519 and ed25519. The algorithms in <xref target="I-D.mattsson-tls-compact-ecc"/> with point compressed secp256r1 RPKs would add 15 bytes to #2 and #3 in the rows with RPKs.</t>
        <figure anchor="fig-compare3">
          <name>Comparison of message sizes in bytes with CCM_8, x25519, and ed25519 or PSK and without Connection ID</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="560" viewBox="0 0 560 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 552,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 552,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 552,64" fill="none" stroke="black"/>
                <path d="M 8,128 L 552,128" fill="none" stroke="black"/>
                <path d="M 8,192 L 552,192" fill="none" stroke="black"/>
                <path d="M 8,254 L 552,254" fill="none" stroke="black"/>
                <path d="M 8,258 L 552,258" fill="none" stroke="black"/>
                <g class="text">
                  <text x="36" y="52">Flight</text>
                  <text x="348" y="52">#1</text>
                  <text x="412" y="52">#2</text>
                  <text x="476" y="52">#3</text>
                  <text x="528" y="52">Total</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.3</text>
                  <text x="88" y="84">-</text>
                  <text x="120" y="84">RPKs,</text>
                  <text x="168" y="84">ECDHE</text>
                  <text x="344" y="84">146</text>
                  <text x="408" y="84">360</text>
                  <text x="472" y="84">200</text>
                  <text x="536" y="84">706</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="88" y="100">-</text>
                  <text x="116" y="100">PSK,</text>
                  <text x="160" y="100">ECDHE</text>
                  <text x="344" y="100">180</text>
                  <text x="408" y="100">186</text>
                  <text x="476" y="100">55</text>
                  <text x="536" y="100">421</text>
                  <text x="28" y="116">DTLS</text>
                  <text x="64" y="116">1.3</text>
                  <text x="88" y="116">-</text>
                  <text x="112" y="116">PSK</text>
                  <text x="344" y="116">130</text>
                  <text x="408" y="116">146</text>
                  <text x="476" y="116">55</text>
                  <text x="536" y="116">331</text>
                  <text x="24" y="148">TLS</text>
                  <text x="56" y="148">1.3</text>
                  <text x="88" y="148">-</text>
                  <text x="120" y="148">RPKs,</text>
                  <text x="168" y="148">ECDHE</text>
                  <text x="344" y="148">129</text>
                  <text x="408" y="148">307</text>
                  <text x="472" y="148">179</text>
                  <text x="536" y="148">615</text>
                  <text x="24" y="164">TLS</text>
                  <text x="56" y="164">1.3</text>
                  <text x="88" y="164">-</text>
                  <text x="116" y="164">PSK,</text>
                  <text x="160" y="164">ECDHE</text>
                  <text x="344" y="164">163</text>
                  <text x="408" y="164">157</text>
                  <text x="476" y="164">50</text>
                  <text x="536" y="164">370</text>
                  <text x="24" y="180">TLS</text>
                  <text x="56" y="180">1.3</text>
                  <text x="88" y="180">-</text>
                  <text x="112" y="180">PSK</text>
                  <text x="344" y="180">113</text>
                  <text x="408" y="180">117</text>
                  <text x="476" y="180">50</text>
                  <text x="536" y="180">280</text>
                  <text x="28" y="212">cTLS</text>
                  <text x="56" y="212">-</text>
                  <text x="92" y="212">X.509s</text>
                  <text x="132" y="212">by</text>
                  <text x="188" y="212">reference,</text>
                  <text x="256" y="212">ECDHE</text>
                  <text x="348" y="212">71</text>
                  <text x="408" y="212">155</text>
                  <text x="476" y="212">89</text>
                  <text x="536" y="212">315</text>
                  <text x="28" y="228">cTLS</text>
                  <text x="56" y="228">-</text>
                  <text x="84" y="228">PSK,</text>
                  <text x="128" y="228">ECDHE</text>
                  <text x="348" y="228">72</text>
                  <text x="412" y="228">86</text>
                  <text x="476" y="228">20</text>
                  <text x="536" y="228">178</text>
                  <text x="28" y="244">cTLS</text>
                  <text x="56" y="244">-</text>
                  <text x="80" y="244">PSK</text>
                  <text x="348" y="244">40</text>
                  <text x="412" y="244">58</text>
                  <text x="476" y="244">20</text>
                  <text x="536" y="244">118</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
=====================================================================
 Flight                                   #1      #2      #3   Total
---------------------------------------------------------------------
 DTLS 1.3 - RPKs, ECDHE                  146     360     200     706
 DTLS 1.3 - PSK, ECDHE                   180     186      55     421
 DTLS 1.3 - PSK                          130     146      55     331
---------------------------------------------------------------------
 TLS 1.3  - RPKs, ECDHE                  129     307     179     615
 TLS 1.3  - PSK, ECDHE                   163     157      50     370
 TLS 1.3  - PSK                          113     117      50     280
---------------------------------------------------------------------
 cTLS - X.509s by reference, ECDHE        71     155      89     315
 cTLS - PSK, ECDHE                        72      86      20     178
 cTLS - PSK                               40      58      20     118 
=====================================================================
]]></artwork>
          </artset>
        </figure>
        <t>The numbers in <xref target="fig-compare2"/>, <xref target="fig-compare2"/>, and <xref target="fig-compare3"/> were calculated with 8 bytes tags which is the mandatory to implement in <xref target="I-D.ietf-uta-tls13-iot-profile"/> and <xref target="I-D.ietf-core-oscore-edhoc"/>. If 16 bytes tag are used, the numbers in the #2 and #3 columns increases with 8 and the numbers in the Total column increases with 16.</t>
      </section>
      <section anchor="dtls-13">
        <name>DTLS 1.3</name>
        <t>This section gives an estimate of the message sizes of DTLS 1.3 with different authentication methods. Note that the examples in this section are not test vectors, the cryptographic parts are just replaced with byte strings of the same length, while other fixed length fields are replaced with arbitrary strings or omitted, in which case their length is indicated. Values that are not arbitrary are given in hexadecimal.</t>
        <section anchor="size-dtls13rpk">
          <name>Message Sizes RPK + ECDHE</name>
          <t>In this section, CCM_8, P-256, and ECDSA and a Connection ID of 1 byte are used.</t>
          <section anchor="dtls13f1rpk">
            <name>Flight #1</name>
            <artwork><![CDATA[
Record Header - DTLSPlaintext (13 bytes):
16 fe fd EE EE SS SS SS SS SS SS LL LL

  Handshake Header - Client Hello (12 bytes):
  01 LL LL LL SS SS 00 00 00 LL LL LL

    Legacy Version (2 bytes):
    fe fd

    Client Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Legacy Cookie (1 bytes):
    00

    Cipher Suites (TLS_AES_128_CCM_8_SHA256) (4 bytes):
    00 02 13 05

    Compression Methods (null) (2 bytes):
    01 00

    Extensions Length (2 bytes):
    LL LL

      Extension - Supported Groups (secp256r1) (8 bytes):
      00 0a 00 04 00 02 00 17

      Extension - Signature Algorithms (ecdsa_secp256r1_sha256)
      (8 bytes):
      00 0d 00 04 00 02 04 03

      Extension - Key Share (secp256r1) (75 bytes):
      00 33 00 27 00 25 00 1d 00 41
      04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12
      13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 00 01 02 03 04 05 06
      07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a
      1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (7 bytes):
      00 2b 00 03 02 03 04

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 02 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 02 01 02

      Extension - Connection Identifier (42) (6 bytes):
      00 36 00 02 01 42

13 + 12 + 2 + 32 + 1 + 1 + 4 + 2 + 2 + 8 + 8 + 75 + 7 + 6 + 6 + 6
= 185 bytes
]]></artwork>
            <t>DTLS 1.3 RPK + ECDHE flight #1 gives 185 bytes of overhead.
With efficiently encoded key share such as x25519 or <xref target="I-D.mattsson-tls-compact-ecc"/> the overhead is 185 - 33 = 152 bytes.</t>
          </section>
          <section anchor="dtls13f2rpk">
            <name>Flight #2</name>
            <artwork><![CDATA[
Record Header - DTLSPlaintext (13 bytes):
16 fe fd EE EE SS SS SS SS SS SS LL LL

  Handshake Header - Server Hello (12 bytes):
  02 LL LL LL SS SS 00 00 00 LL LL LL

    Legacy Version (2 bytes):
    fe fd

    Server Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Cipher Suite (TLS_AES_128_CCM_8_SHA256) (2 bytes):
    13 05

    Compression Method (null) (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Key Share (secp256r1) (73 bytes):
      00 33 00 45 00 1d 00 41
      04 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12
      13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 00 01 02 03 04 05 06
      07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a
      1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (6 bytes):
      00 2b 00 02 03 04

      Extension - Connection Identifier (43) (6 bytes):
      00 36 00 02 01 43

Record Header - DTLSCiphertext (3 bytes):
HH 42 SS

  Handshake Header - Encrypted Extensions (12 bytes):
  08 LL LL LL SS SS 00 00 00 LL LL LL

    Extensions Length (2 bytes):
    LL LL

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

  Handshake Header - Certificate Request (12 bytes):
  0d LL LL LL SS SS 00 00 00 LL LL LL

    Request Context (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Signature Algorithms (ecdsa_secp256r1_sha256)
      (8 bytes):
      00 0d 00 04 00 02 08 07

  Handshake Header - Certificate (12 bytes):
  0b LL LL LL SS SS 00 00 00 LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL

    Certificate Length (3 bytes):
    LL LL LL

    Certificate (Uncompressed secp256r1 RPK) (91 bytes):
    30 59 30 13 ... // DER encoded RPK, See Section 2.2.7.

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (12 bytes):
  0f LL LL LL SS SS 00 00 00 LL LL LL

    Signature (ecdsa_secp256r1_sha256) (average 75 bytes):
    04 03 LL LL
    30 LL 02 LL ... 02 LL ... // DER encoded signature

  Handshake Header - Finished (12 bytes):
  14 LL LL LL SS SS 00 00 00 LL LL LL

    Verify Data (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte):
  16

Auth Tag (8 bytes):
e0 8b 0e 45 5a 35 0a e5

13 + 137 + 3 + 26 + 23 + 112 + 87 + 44 + 1 + 8 = 454 bytes
]]></artwork>
            <t>DTLS 1.3 RPK + ECDHE flight #2 gives 454 bytes of overhead.
With a point compressed secp256r1 RPK the overhead is 454 - 32 = 422 bytes, see <xref target="rpkformat"/>.
With an ed25519 RPK and signature the overhead is 454 - 47 - 7 = 400 bytes.
With an efficiently encoded key share such as x25519 or <xref target="I-D.mattsson-tls-compact-ecc"/> the overhead is 454 - 33 = 421 bytes.
With an efficiently encoded signature such <xref target="I-D.mattsson-tls-compact-ecc"/> the overhead is 454 - 7 = 447 bytes.
With x25519 and ed25519 he overhead is 454 - 47 - 33 - 7 = 367 bytes.</t>
          </section>
          <section anchor="dtls13f3rpk">
            <name>Flight #3</name>
            <artwork><![CDATA[
Record Header (3 bytes): // DTLSCiphertext
ZZ 43 SS

  Handshake Header - Certificate (12 bytes):
  0b LL LL LL SS SS XX XX XX LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL

    Certificate Length (3 bytes):
    LL LL LL

    Certificate (Uncompressed secp256r1 RPK) (91 bytes):
    30 59 30 13 ... // DER encoded RPK, See Section 2.2.7.

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (12 bytes):
  0f LL LL LL SS SS 00 00 00 LL LL LL

    Signature (ecdsa_secp256r1_sha256) (average 75 bytes):
    04 03 LL LL
    30 LL 02 LL ... 02 LL ... // // DER encoded signature

  Handshake Header - Finished (12 bytes):
  14 LL LL LL SS SS 00 00 00 LL LL LL

    Verify Data (32 bytes) // SHA-256:
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte):
  16

Auth Tag (8 bytes) // AES-CCM_8:
00 01 02 03 04 05 06 07

3 + 112 + 87 + 44 + 1 + 8 = 255 bytes
]]></artwork>
            <t>DTLS 1.3 RPK + ECDHE flight #3 gives 255 bytes of overhead.
With a point compressed secp256r1 RPK the overhead is 255 - 32 = 223 bytes, see <xref target="rpkformat"/>.
With an ed25519 RPK and signature the overhead is 255 - 47 - 7 = 201 bytes.
With an efficiently encoded signature such as <xref target="I-D.mattsson-tls-compact-ecc"/> the overhead is 255 - 7 = 248 bytes.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk-ecdhe">
          <name>Message Sizes PSK + ECDHE</name>
          <section anchor="dtls13f1pskecdhe">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="dtls13f1rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - PSK Key Exchange Modes (6 bytes):
  00 2d 00 02 01 01

+ Extension - Pre-Shared Key (48 bytes):
  00 29 00 2F
  00 0a 00 01 ID 00 00 00 00
  00 21 20 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10
  11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Signature Algorithms (ecdsa_secp256r1_sha256) (8 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
185 + 6 + 48 - 8 - 6 - 6 = 219 bytes
]]></artwork>
            <t>DTLS 1.3 PSK + ECDHE flight #1 gives 219 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f2pskecdhe">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="dtls13f2rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - Pre-Shared Key (6 bytes)
  00 29 00 02 00 00
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (112 bytes)

- Handshake Message CertificateVerify (87 bytes)

- Handshake Message CertificateRequest (23 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
454 + 6 - 112 - 87 - 23 - 6 - 6 = 226 bytes
]]></artwork>
            <t>DTLS 1.3 PSK + ECDHE flight #2 gives 226 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f3pskecdhe">
            <name>Flight #3</name>
            <t>The differences in overhead compared to <xref target="dtls13f3rpk"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (112 bytes)

- Handshake Message Certificate Verify (87 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
255 - 112 - 87 = 56 bytes
]]></artwork>
            <t>DTLS 1.3 PSK + ECDHE flight #3 gives 56 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk">
          <name>Message Sizes PSK</name>
          <section anchor="dtls13f1psk">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="dtls13f1pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Supported Groups (x25519) (8 bytes)

- Extension - Key Share (75 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
219 - 8 - 75 = 136 bytes
]]></artwork>
            <t>DTLS 1.3 PSK flight #1 gives 136 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f2psk">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="dtls13f2pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Key Share (73 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
226 - 73 = 153 bytes
]]></artwork>
            <t>DTLS 1.3 PSK flight #2 gives 153 bytes of overhead.</t>
          </section>
          <section anchor="dtls13f3psk">
            <name>Flight #3</name>
            <t>There are no differences in overhead compared to <xref target="dtls13f3pskecdhe"/>.</t>
            <t>DTLS 1.3 PSK flight #3 gives 56 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="cached-information">
          <name>Cached Information</name>
          <t>In this section, we consider the effect of <xref target="RFC7924"/> on the message size overhead.</t>
          <t>Cached information can be used to use a cached server certificate from a previous connection and move bytes from flight #2 to flight #1. The cached certificate can be a RPK or X.509.</t>
          <t>The differences compared to <xref target="size-dtls13rpk"/> are the following.</t>
          <section anchor="flight-1">
            <name>Flight #1</name>
            <t>For the flight #1, the following is added:</t>
            <artwork><![CDATA[
+ Extension - Client Cashed Information (39 bytes):
  00 19 LL LL LL LL
  01 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11
  12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
185 + 39 = 224 bytes
]]></artwork>
            <t>In the case the cached certificate is X.509 the following is removed:</t>
            <artwork><![CDATA[
- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
224 - 6 = 218 bytes
]]></artwork>
          </section>
          <section anchor="flight-2">
            <name>Flight #2</name>
            <t>For the flight #2, the following is added:</t>
            <artwork><![CDATA[
+ Extension - Server Cashed Information (7 bytes):
  00 19 LL LL LL LL 01
]]></artwork>
            <t>And the following is reduced:</t>
            <artwork><![CDATA[
- Server Certificate (91 bytes -> 32 bytes)
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
454 + 7 - 59 = 402 bytes
]]></artwork>
            <t>In the case the cached certificate is X.509 the following is removed:</t>
            <artwork><![CDATA[
- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>Giving a total of:</t>
            <artwork><![CDATA[
402 - 6 = 396 bytes
]]></artwork>
          </section>
        </section>
        <section anchor="resumption">
          <name>Resumption</name>
          <t>To enable resumption, a 4th flight with the handshake message New Session Ticket is added to the DTLS handshake.</t>
          <artwork><![CDATA[
Record Header - DTLSCiphertext (3 bytes):
HH 42 SS

  Handshake Header - New Session Ticket (12 bytes):
  04 LL LL LL SS SS 00 00 00 LL LL LL

    Ticket Lifetime (4 bytes):
    00 01 02 03

    Ticket Age Add (4 bytes):
    00 01 02 03

    Ticket Nonce (2 bytes):
    01 00

    Ticket (6 bytes):
    00 04 ID ID ID ID

    Extensions (2 bytes):
    00 00

Auth Tag (8 bytes) // AES-CCM_8:
00 01 02 03 04 05 06 07

3 + 12 + 4 + 4 + 2 + 6 + 2 + 8 = 41 bytes
]]></artwork>
          <t>Enabling resumption adds 41 bytes to the initial DTLS handshake. The resumption handshake is an ordinary PSK handshake with our without ECDHE.</t>
        </section>
        <section anchor="dtls-without-connection-id">
          <name>DTLS Without Connection ID</name>
          <t>Without a Connection ID the DTLS 1.3 flight sizes changes as follows.</t>
          <artwork><![CDATA[
DTLS 1.3 flight #1:   -6 bytes
DTLS 1.3 flight #2:   -7 bytes
DTLS 1.3 flight #3:   -1 byte
]]></artwork>
        </section>
        <section anchor="rpkformat">
          <name>Raw Public Keys</name>
          <t>This sections illustrates the format of P-256 (secp256r1) SubjectPublicKeyInfo <xref target="RFC5480"/> with and without point compression as well as an ed25519 SubjectPublicKeyInfo. Point compression in SubjectPublicKeyInfo is standardized in <xref target="RFC5480"/> and is therefore theoretically possible to use in PRKs and X.509 certificates used in (D)TLS but does not seems to be supported by (D)TLS implementations.</t>
          <section anchor="secp256r1-subjectpublickeyinfo-without-point-compression">
            <name>secp256r1 SubjectPublicKeyInfo Without Point Compression</name>
            <artwork><![CDATA[
0x30 // Sequence
0x59 // Size 89

0x30 // Sequence
0x13 // Size 19
0x06 0x07 0x2A 0x86 0x48 0xCE 0x3D 0x02 0x01
     // OID 1.2.840.10045.2.1 (ecPublicKey)
0x06 0x08 0x2A 0x86 0x48 0xCE 0x3D 0x03 0x01 0x07
     // OID 1.2.840.10045.3.1.7 (secp256r1)

0x03 // Bit string
0x42 // Size 66
0x00 // Unused bits 0
0x04 // Uncompressed
...... 64 bytes X and Y

Total of 91 bytes
]]></artwork>
          </section>
          <section anchor="secp256r1-subjectpublickeyinfo-with-point-compression">
            <name>secp256r1 SubjectPublicKeyInfo With Point Compression</name>
            <artwork><![CDATA[
0x30 // Sequence
0x39 // Size 57

0x30 // Sequence
0x13 // Size 19
0x06 0x07 0x2A 0x86 0x48 0xCE 0x3D 0x02 0x01
     // OID 1.2.840.10045.2.1 (ecPublicKey)
0x06 0x08 0x2A 0x86 0x48 0xCE 0x3D 0x03 0x01 0x07
     // OID 1.2.840.10045.3.1.7 (secp256r1)

0x03 // Bit string
0x22 // Size 34
0x00 // Unused bits 0
0x03 // Compressed
...... 32 bytes X

Total of 59 bytes
]]></artwork>
          </section>
          <section anchor="ed25519-subjectpublickeyinfo">
            <name>ed25519 SubjectPublicKeyInfo</name>
            <artwork><![CDATA[
0x30 // Sequence
0x2A // Size 42

0x30 // Sequence
0x05 // Size 5
0x06 0x03 0x2B 0x65 0x70
     // OID 1.3.101.112 (ed25519)

0x03 // Bit string
0x21 // Size 33
0x00 // Unused bits 0
...... 32 bytes 

Total of 44 bytes
]]></artwork>
          </section>
        </section>
      </section>
      <section anchor="tls-13">
        <name>TLS 1.3</name>
        <t>In this section, the message sizes are calculated for TLS 1.3. The major changes compared to DTLS 1.3 are a different record header, the handshake headers is smaller, and that Connection ID is not supported.  Recently, additional work has taken shape with the goal to further reduce overhead for TLS 1.3 (see <xref target="I-D.ietf-tls-ctls"/>).</t>
        <section anchor="message-sizes-rpk-ecdhe">
          <name>Message Sizes RPK + ECDHE</name>
          <t>In this section, CCM_8, x25519, and ed25519 are used.</t>
          <section anchor="tls13f1rpk">
            <name>Flight #1</name>
            <artwork><![CDATA[
Record Header - TLSPlaintext (5 bytes):
16 03 03 LL LL

  Handshake Header - Client Hello (4 bytes):
  01 LL LL LL

    Legacy Version (2 bytes):
    03 03

    Client Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Cipher Suites (TLS_AES_128_CCM_8_SHA256) (4 bytes):
    00 02 13 05

    Compression Methods (null) (2 bytes):
    01 00

    Extensions Length (2 bytes):
    LL LL

      Extension - Supported Groups (x25519) (8 bytes):
      00 0a 00 04 00 02 00 1d

      Extension - Signature Algorithms (ed25519)
      (8 bytes):
      00 0d 00 04 00 02 08 07

      Extension - Key Share (x25519) (42 bytes):
      00 33 00 26 00 24 00 1d 00 20
      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
      14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (7 bytes):
      00 2b 00 03 02 03 04

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

5 + 4 + 2 + 32 + 1 + 4 + 2 + 2 + 8 + 8 + 42 + 7 + 6 + 6 = 129 bytes
]]></artwork>
            <t>TLS 1.3 RPK + ECDHE flight #1 gives 129 bytes of overhead.</t>
          </section>
          <section anchor="tls13f2rpk">
            <name>Flight #2</name>
            <artwork><![CDATA[
Record Header - TLSPlaintext (5 bytes):
16 03 03 LL LL

  Handshake Header - Server Hello (4 bytes):
  02 LL LL LL

    Legacy Version (2 bytes):
    fe fd

    Server Random (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

    Legacy Session ID (1 bytes):
    00

    Cipher Suite (TLS_AES_128_CCM_8_SHA256) (2 bytes):
    13 05

    Compression Method (null) (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Key Share (x25519) (40 bytes):
      00 33 00 24 00 1d 00 20
      00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
      14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

      Extension - Supported Versions (1.3) (6 bytes):
      00 2b 00 02 03 04

Record Header - TLSCiphertext (5 bytes):
17 03 03 LL LL

  Handshake Header - Encrypted Extensions (4 bytes):
  08 LL LL LL

    Extensions Length (2 bytes):
    LL LL

      Extension - Client Certificate Type (Raw Public Key) (6 bytes):
      00 13 00 01 01 02

      Extension - Server Certificate Type (Raw Public Key) (6 bytes):
      00 14 00 01 01 02

  Handshake Header - Certificate Request (4 bytes):
  0d LL LL LL

    Request Context (1 bytes):
    00

    Extensions Length (2 bytes):
    LL LL

      Extension - Signature Algorithms (ed25519)
      (8 bytes):
      00 0d 00 04 00 02 08 07

  Handshake Header - Certificate (4 bytes):
  0b LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL

    Certificate Length (3 bytes):
    LL LL LL

    Certificate (ed25519 RPK) (44 bytes):
    30 2A 30 05 ... // DER encoded RPK, see Section 2.2.7.     
     
    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (4 bytes):
  0f LL LL LL

    Signature (ed25519) (68 bytes):
    08 07 LL LL
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Handshake Header - Finished (4 bytes):
  14 LL LL LL

    Verify Data (32 bytes):
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte):
  16

Auth Tag (8 bytes):
e0 8b 0e 45 5a 35 0a e5

5 + 90 + 5 + 18 + 15 + 57 + 72 + 36 + 1 + 8 = 307 bytes
]]></artwork>
            <t>TLS 1.3 RPK + ECDHE flight #2 gives 307 bytes of overhead.</t>
          </section>
          <section anchor="tls13f3rpk">
            <name>Flight #3</name>
            <!--TODO: Don't know why this is not formatting correctly in txt, tried to separate in several code sections, it still doesn't work. -->

<artwork><![CDATA[
Record Header - TLSCiphertext (5 bytes):
17 03 03 LL LL

  Handshake Header - Certificate (4 bytes):
  0b LL LL LL

    Request Context (1 bytes):
    00

    Certificate List Length (3 bytes):
    LL LL LL


    Certificate Length (3 bytes):
    LL LL LL

    Certificate (ed25519 RPK) (44 bytes):
    30 2A 30 05 ... // DER encoded RPK, see Section 2.2.7.     

    Certificate Extensions (2 bytes):
    00 00

  Handshake Header - Certificate Verify (4 bytes):
  0f LL LL LL

    Signature (ed25519) (68 bytes):
    08 07 LL LL
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Handshake Header - Finished (4 bytes):
  14 LL LL LL

    Verify Data (32 bytes) // SHA-256:
    00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13
    14 15 16 17 18 19 1a 1b 1c 1d 1e 1f

  Record Type (1 byte)
  16

Auth Tag (8 bytes) // AES-CCM_8:
00 01 02 03 04 05 06 07

5 + 57 + 72 + 36 + 1 + 8 = 179 bytes
]]></artwork>
            <t>TLS 1.3 RPK + ECDHE flight #3 gives 179 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk-ecdhe-1">
          <name>Message Sizes PSK + ECDHE</name>
          <section anchor="tls13f1pskecdhe">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="tls13f3rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - PSK Key Exchange Modes (6 bytes):
  00 2d 00 02 01 01

+ Extension - Pre-Shared Key (48 bytes):
  00 29 00 2F
  00 0a 00 01 ID 00 00 00 00
  00 21 20 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10
  11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Signature Algorithms (ecdsa_secp256r1_sha256) (8 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
129 + 6 + 48 - 8 - 6 - 6 = 163 bytes
]]></artwork>
            <t>TLS 1.3 PSK + ECDHE flight #1 gives 163 bytes of overhead.</t>
          </section>
          <section anchor="tls13f2pskecdhe">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="tls13f2rpk"/> are:</t>
            <t>The following is added:</t>
            <artwork><![CDATA[
+ Extension - Pre-Shared Key (6 bytes)
  00 29 00 02 00 00
]]></artwork>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (57 bytes)

- Handshake Message CertificateVerify (72 bytes)

- Handshake Message CertificateRequest (15 bytes)

- Extension - Client Certificate Type (Raw Public Key) (6 bytes)

- Extension - Server Certificate Type (Raw Public Key) (6 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
307 - 57 - 72 - 15 - 6 - 6  + 6 = 157 bytes
]]></artwork>
            <t>TLS 1.3 PSK + ECDHE flight #2 gives 157 bytes of overhead.</t>
          </section>
          <section anchor="tls13f3pskecdhe">
            <name>Flight #3</name>
            <t>The differences in overhead compared to <xref target="tls13f3rpk"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Handshake Message Certificate (57 bytes)

- Handshake Message Certificate Verify (72 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
179 - 57 - 72 = 50 bytes
]]></artwork>
            <t>TLS 1.3 PSK + ECDHE flight #3 gives 50 bytes of overhead.</t>
          </section>
        </section>
        <section anchor="message-sizes-psk-1">
          <name>Message Sizes PSK</name>
          <section anchor="tls13f1psk">
            <name>Flight #1</name>
            <t>The differences in overhead compared to <xref target="tls13f1pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Supported Groups (x25519) (8 bytes)

- Extension - Key Share (42 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
163 - 8 - 42 = 113 bytes
]]></artwork>
            <t>TLS 1.3 PSK flight #1 gives 113 bytes of overhead.</t>
          </section>
          <section anchor="tls13f2psk">
            <name>Flight #2</name>
            <t>The differences in overhead compared to <xref target="tls13f2pskecdhe"/> are:</t>
            <t>The following is removed:</t>
            <artwork><![CDATA[
- Extension - Key Share (40 bytes)
]]></artwork>
            <t>In total:</t>
            <artwork><![CDATA[
157 - 40 = 117 bytes
]]></artwork>
            <t>TLS 1.3 PSK flight #2 gives 117 bytes of overhead.</t>
          </section>
          <section anchor="tls13f3psk">
            <name>Flight #3</name>
            <t>There are no differences in overhead compared to <xref target="tls13f3pskecdhe"/>.</t>
            <t>TLS 1.3 PSK flight #3 gives 50 bytes of overhead.</t>
          </section>
        </section>
      </section>
      <section anchor="tls-12-and-dtls-12">
        <name>TLS 1.2 and DTLS 1.2</name>
        <t>The TLS 1.2 and DTLS 1.2 handshakes are not analyzed in detail in this document. One rough comparison on expected size between the TLS 1.2 and TLS 1.3 handshakes can be found by counting the number of bytes in the example handshakes of <xref target="Illustrated-TLS12"/> and <xref target="Illustrated-TLS13"/>. In these examples the server authenticates with a certificate and the client is not authenticated.</t>
        <t>In TLS 1.2 the number of bytes in the four flights are 170, 1188, 117, and 75 for a total of 1550 bytes. In TLS 1.3 the number of bytes in the three flights are 253, 1367, and 79 for a total of 1699 bytes. In general, the (D)TLS 1.2 and (D)TLS 1.3 handshakes can be expected to have similar number of bytes.</t>
      </section>
      <section anchor="ctls">
        <name>cTLS</name>
        <t>The cTLS specification <xref target="I-D.ietf-tls-ctls"/> has a single example in Appendix A. The numbers given are correct for the algorithms CCM_8, x25519, and ed25519 but are missing overhead from CTLSCiphertext which adds 11 bytes to flight #2 and #3. The sizes for flights are therefore 71, 155 (66 + 79 + 11), and 89 (78 + 11) bytes for a total of 315 bytes.</t>
        <t>Using secp256r1 instead x25519 add 33 bytes to flight #1 and flight #2.</t>
        <t>Using ecdsa_secp256r1_sha256 instead ed25519 add an average of 7 bytes to flight #2 and flight #3.</t>
        <t>Using PSK authentication instead of ed25519 add 1 byte (psk identifier) to flight #1 and removes 69 bytes from flight #2 and #3.</t>
        <t>Using Connection ID adds 1 byte to flight #1 and #3, and 2 bytes to flight #2.</t>
      </section>
      <section anchor="edhoc">
        <name>EDHOC</name>
        <t>This section gives an estimate of the message sizes of EDHOC <xref target="I-D.ietf-lake-edhoc"/> authenticated with static Diffie-Hellman keys and where the static Diffie-Hellman are identified with a key identifier (kid). All examples are given in CBOR diagnostic notation and hexadecimal, and are based on the test vectors in Section 4 of <xref target="I-D.ietf-lake-traces"/>.</t>
        <section anchor="message-sizes-rpk">
          <name>Message Sizes RPK</name>
          <section anchor="message1">
            <name>message_1</name>
            <artwork><![CDATA[
message_1 = (
  3,
  2,
  h'8af6f430ebe18d34184017a9a11bf511c8dff8f834730b96c1b7c8dbca2f
    c3b6',
  -24
)
]]></artwork>
            <artwork><![CDATA[
message_1 (37 bytes):
03 02 58 20 8a f6 f4 30 eb e1 8d 34 18 40 17 a9 a1 1b f5 11 c8
df f8 f8 34 73 0b 96 c1 b7 c8 db ca 2f c3 b6 37
]]></artwork>
          </section>
          <section anchor="message2">
            <name>message_2</name>
            <artwork><![CDATA[
message_2 = (
  h'419701D7F00A26C2DC587A36DD752549F33763C893422C8EA0F955A13A4F
    F5D5042459E2DA6C75143F35',
  -8
)
]]></artwork>
            <artwork><![CDATA[
message_2 (45 bytes):
 58 2a 41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37
 63 c8 93 42 2c 8e a0 f9 55 a1 3a 4f f5 d5 04 24 59 e2 da 6c
 75 14 3f 35 27
]]></artwork>
          </section>
          <section anchor="message3">
            <name>message_3</name>
            <artwork><![CDATA[
message_3 = (
  h'C2B62835DC9B1F53419C1D3A2261EEED3505'
)
]]></artwork>
            <artwork><![CDATA[
message_3 (19 bytes):
52 c2 b6 28 35 dc 9b 1f 53 41 9c 1d 3a 22 61 ee ed 35 05
]]></artwork>
          </section>
        </section>
        <section anchor="summary">
          <name>Summary</name>
          <t>Based on the example above it is relatively easy to calculate numbers also for EDHOC authenticated with signature keys and for authentication keys identified with a SHA-256/64 hash (x5t). Signatures increase the size of flight #2 and #3 with (64 - 8 + 1) bytes while x5t increases the size with 13-14 bytes. The typical message sizes for the previous example and for the other combinations are summarized in <xref target="fig-summary"/>. Note that EDHOC treats authentication keys stored in RPK and X.509 in the same way. More detailed examples can be found in <xref target="I-D.ietf-lake-traces"/>.</t>
          <figure anchor="fig-summary">
            <name>Typical message sizes in bytes</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="472" viewBox="0 0 472 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                  <path d="M 8,30 L 464,30" fill="none" stroke="black"/>
                  <path d="M 8,34 L 464,34" fill="none" stroke="black"/>
                  <path d="M 168,64 L 288,64" fill="none" stroke="black"/>
                  <path d="M 344,64 L 464,64" fill="none" stroke="black"/>
                  <path d="M 8,96 L 464,96" fill="none" stroke="black"/>
                  <path d="M 8,160 L 464,160" fill="none" stroke="black"/>
                  <path d="M 8,190 L 464,190" fill="none" stroke="black"/>
                  <path d="M 8,194 L 464,194" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="196" y="52">Static</text>
                    <text x="236" y="52">DH</text>
                    <text x="268" y="52">Keys</text>
                    <text x="384" y="52">Signature</text>
                    <text x="444" y="52">Keys</text>
                    <text x="184" y="84">kid</text>
                    <text x="272" y="84">x5t</text>
                    <text x="360" y="84">kid</text>
                    <text x="448" y="84">x5t</text>
                    <text x="48" y="116">message_1</text>
                    <text x="188" y="116">37</text>
                    <text x="276" y="116">37</text>
                    <text x="364" y="116">37</text>
                    <text x="452" y="116">37</text>
                    <text x="48" y="132">message_2</text>
                    <text x="188" y="132">45</text>
                    <text x="276" y="132">58</text>
                    <text x="360" y="132">102</text>
                    <text x="448" y="132">115</text>
                    <text x="48" y="148">message_3</text>
                    <text x="188" y="148">19</text>
                    <text x="276" y="148">33</text>
                    <text x="364" y="148">77</text>
                    <text x="452" y="148">90</text>
                    <text x="32" y="180">Total</text>
                    <text x="184" y="180">101</text>
                    <text x="272" y="180">128</text>
                    <text x="360" y="180">216</text>
                    <text x="448" y="180">242</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
==========================================================
                     Static DH Keys        Signature Keys
                    ----------------      ----------------
                     kid        x5t        kid        x5t
----------------------------------------------------------
 message_1            37         37         37         37
 message_2            45         58        102        115
 message_3            19         33         77         90
----------------------------------------------------------
 Total               101        128        216        242
==========================================================
]]></artwork>
            </artset>
          </figure>
        </section>
      </section>
      <section anchor="conclusion">
        <name>Conclusion</name>
        <t>To do a fair comparison, one has to choose a specific deployment and look at the topology, the whole protocol stack, frame sizes (e.g., 51 or 128 bytes), how and where in the protocol stack fragmentation is done, and the expected packet loss. Note that the number of bytes in each frame that is available for the key exchange protocol may depend on the underlying protocol layers as well as on the number of hops in multi-hop networks. The packet loss may depend on how many other devices are transmitting at the same time, and may increase during network formation.  The total overhead will be larger due to mechanisms for fragmentation, retransmission, and packet ordering.  The overhead of fragmentation is roughly proportional to the number of fragments, while the expected overhead due to retransmission in noisy environments is a superlinear function of the flight sizes.</t>
      </section>
    </section>
    <section anchor="record">
      <name>Overhead for Protection of Application Data</name>
      <t>To enable comparison, all the overhead calculations in this section use an 8 bytes ICV (e.g., AES_128_CCM_8 or AES-CCM-16-64-128) or 16 bytes (e.g., AES-CCM, AES-GCM, or ChaCha20-Poly1305), a plaintext of 6 bytes, and the sequence number ‘05’. This follows the example in <xref target="RFC7400"/>, Figure 16.</t>
      <t>Note that the compressed overhead calculations for DLTS 1.2, DTLS 1.3, TLS 1.2 and TLS 1.3 are dependent on the parameters epoch, sequence number, and length (where applicable), and all the overhead calculations are dependent on the parameter Connection ID when used. Note that the OSCORE overhead calculations are dependent on the CoAP option numbers, as well as the length of the OSCORE parameters Sender ID, ID Context, and Sequence Number (where applicable). cTLS uses the DTLS 1.3 record layer. The following calculations are only examples.</t>
      <t><xref target="summ-record"/> gives a short summary of the message overhead based on different parameters and some assumptions. The following sections detail the assumptions and the calculations.</t>
      <section anchor="summ-record">
        <name>Summary</name>
        <t>The DTLS overhead is dependent on the parameter Connection ID. The following overheads apply for all Connection IDs with the same length.</t>
        <t>The compression overhead (GHC) is dependent on the parameters epoch, sequence number, Connection ID, and length (where applicable). The following overheads should be representative for sequence numbers and Connection IDs with the same length.</t>
        <t>The OSCORE overhead is dependent on the included CoAP Option numbers as well as the length of the OSCORE parameters Sender ID and sequence number. The following overheads apply for all sequence numbers and Sender IDs with the same length.</t>
        <figure anchor="fig-overhead">
          <name>Overhead (8 bytes ICV) in bytes as a function of sequence number (Connection/Sender ID = '')</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="368" width="512" viewBox="0 0 512 368" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 504,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 504,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 504,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 504,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 504,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 504,208" fill="none" stroke="black"/>
                <path d="M 8,256 L 504,256" fill="none" stroke="black"/>
                <path d="M 8,304 L 504,304" fill="none" stroke="black"/>
                <path d="M 8,350 L 504,350" fill="none" stroke="black"/>
                <path d="M 8,354 L 504,354" fill="none" stroke="black"/>
                <g class="text">
                  <text x="44" y="52">Sequence</text>
                  <text x="108" y="52">Number</text>
                  <text x="292" y="52">'05'</text>
                  <text x="380" y="52">'1005'</text>
                  <text x="468" y="52">'100005'</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.2</text>
                  <text x="292" y="84">29</text>
                  <text x="380" y="84">29</text>
                  <text x="468" y="84">29</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="292" y="100">11</text>
                  <text x="380" y="100">11</text>
                  <text x="468" y="100">11</text>
                  <text x="28" y="132">DTLS</text>
                  <text x="64" y="132">1.2</text>
                  <text x="104" y="132">(GHC)</text>
                  <text x="292" y="132">16</text>
                  <text x="380" y="132">16</text>
                  <text x="468" y="132">16</text>
                  <text x="28" y="148">DTLS</text>
                  <text x="64" y="148">1.3</text>
                  <text x="104" y="148">(GHC)</text>
                  <text x="292" y="148">12</text>
                  <text x="380" y="148">12</text>
                  <text x="468" y="148">12</text>
                  <text x="24" y="180">TLS</text>
                  <text x="64" y="180">1.2</text>
                  <text x="292" y="180">21</text>
                  <text x="380" y="180">21</text>
                  <text x="468" y="180">21</text>
                  <text x="24" y="196">TLS</text>
                  <text x="64" y="196">1.3</text>
                  <text x="292" y="196">14</text>
                  <text x="380" y="196">14</text>
                  <text x="468" y="196">14</text>
                  <text x="24" y="228">TLS</text>
                  <text x="64" y="228">1.2</text>
                  <text x="104" y="228">(GHC)</text>
                  <text x="292" y="228">17</text>
                  <text x="380" y="228">18</text>
                  <text x="468" y="228">19</text>
                  <text x="24" y="244">TLS</text>
                  <text x="64" y="244">1.3</text>
                  <text x="104" y="244">(GHC)</text>
                  <text x="292" y="244">15</text>
                  <text x="380" y="244">16</text>
                  <text x="468" y="244">17</text>
                  <text x="36" y="276">OSCORE</text>
                  <text x="96" y="276">request</text>
                  <text x="292" y="276">13</text>
                  <text x="380" y="276">14</text>
                  <text x="468" y="276">15</text>
                  <text x="36" y="292">OSCORE</text>
                  <text x="100" y="292">response</text>
                  <text x="292" y="292">11</text>
                  <text x="380" y="292">11</text>
                  <text x="468" y="292">11</text>
                  <text x="32" y="324">Group</text>
                  <text x="84" y="324">OSCORE</text>
                  <text x="148" y="324">pairwise</text>
                  <text x="216" y="324">request</text>
                  <text x="292" y="324">14</text>
                  <text x="380" y="324">15</text>
                  <text x="468" y="324">16</text>
                  <text x="32" y="340">Group</text>
                  <text x="84" y="340">OSCORE</text>
                  <text x="148" y="340">pairwise</text>
                  <text x="220" y="340">response</text>
                  <text x="292" y="340">11</text>
                  <text x="380" y="340">11</text>
                  <text x="468" y="340">11</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
===============================================================
 Sequence Number                  '05'      '1005'    '100005'
---------------------------------------------------------------
 DTLS 1.2                          29         29         29
 DTLS 1.3                          11         11         11
---------------------------------------------------------------
 DTLS 1.2 (GHC)                    16         16         16
 DTLS 1.3 (GHC)                    12         12         12
---------------------------------------------------------------
 TLS  1.2                          21         21         21
 TLS  1.3                          14         14         14
---------------------------------------------------------------
 TLS  1.2 (GHC)                    17         18         19
 TLS  1.3 (GHC)                    15         16         17
---------------------------------------------------------------
 OSCORE request                    13         14         15
 OSCORE response                   11         11         11
---------------------------------------------------------------
 Group OSCORE pairwise request     14         15         16
 Group OSCORE pairwise response    11         11         11
===============================================================
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-overhead2">
          <name>Overhead (8 bytes ICV) in bytes as a function of Connection/Sender ID (Sequence Number = '05')</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="504" viewBox="0 0 504 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 496,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 496,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 496,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 496,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 496,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 496,208" fill="none" stroke="black"/>
                <path d="M 8,254 L 496,254" fill="none" stroke="black"/>
                <path d="M 8,258 L 496,258" fill="none" stroke="black"/>
                <g class="text">
                  <text x="80" y="52">Connection/Sender</text>
                  <text x="164" y="52">ID</text>
                  <text x="292" y="52">''</text>
                  <text x="380" y="52">'42'</text>
                  <text x="468" y="52">'4002'</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.2</text>
                  <text x="292" y="84">29</text>
                  <text x="380" y="84">30</text>
                  <text x="468" y="84">31</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="292" y="100">11</text>
                  <text x="380" y="100">12</text>
                  <text x="468" y="100">13</text>
                  <text x="28" y="132">DTLS</text>
                  <text x="64" y="132">1.2</text>
                  <text x="104" y="132">(GHC)</text>
                  <text x="292" y="132">16</text>
                  <text x="380" y="132">17</text>
                  <text x="468" y="132">18</text>
                  <text x="28" y="148">DTLS</text>
                  <text x="64" y="148">1.3</text>
                  <text x="104" y="148">(GHC)</text>
                  <text x="292" y="148">12</text>
                  <text x="380" y="148">13</text>
                  <text x="468" y="148">14</text>
                  <text x="36" y="180">OSCORE</text>
                  <text x="96" y="180">request</text>
                  <text x="292" y="180">13</text>
                  <text x="380" y="180">14</text>
                  <text x="468" y="180">15</text>
                  <text x="36" y="196">OSCORE</text>
                  <text x="100" y="196">response</text>
                  <text x="292" y="196">11</text>
                  <text x="380" y="196">11</text>
                  <text x="468" y="196">11</text>
                  <text x="32" y="228">Group</text>
                  <text x="84" y="228">OSCORE</text>
                  <text x="148" y="228">pairwise</text>
                  <text x="216" y="228">request</text>
                  <text x="292" y="228">14</text>
                  <text x="380" y="228">15</text>
                  <text x="468" y="228">16</text>
                  <text x="32" y="244">Group</text>
                  <text x="84" y="244">OSCORE</text>
                  <text x="148" y="244">pairwise</text>
                  <text x="220" y="244">response</text>
                  <text x="292" y="244">11</text>
                  <text x="380" y="244">13</text>
                  <text x="468" y="244">14</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
==============================================================
 Connection/Sender ID              ''        '42'      '4002'
--------------------------------------------------------------
 DTLS 1.2                          29         30         31
 DTLS 1.3                          11         12         13
--------------------------------------------------------------
 DTLS 1.2 (GHC)                    16         17         18
 DTLS 1.3 (GHC)                    12         13         14
--------------------------------------------------------------
 OSCORE request                    13         14         15
 OSCORE response                   11         11         11
--------------------------------------------------------------
 Group OSCORE pairwise request     14         15         16
 Group OSCORE pairwise response    11         13         14
==============================================================
]]></artwork>
          </artset>
        </figure>
        <figure anchor="fig-overhead3">
          <name>Overhead (excluding ICV) in bytes (Connection/Sender ID = '', Sequence Number = '05')</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="272" width="496" viewBox="0 0 496 272" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
                <path d="M 8,30 L 488,30" fill="none" stroke="black"/>
                <path d="M 8,34 L 488,34" fill="none" stroke="black"/>
                <path d="M 8,64 L 488,64" fill="none" stroke="black"/>
                <path d="M 8,112 L 488,112" fill="none" stroke="black"/>
                <path d="M 8,160 L 488,160" fill="none" stroke="black"/>
                <path d="M 8,208 L 488,208" fill="none" stroke="black"/>
                <path d="M 8,254 L 488,254" fill="none" stroke="black"/>
                <path d="M 8,258 L 488,258" fill="none" stroke="black"/>
                <g class="text">
                  <text x="44" y="52">Protocol</text>
                  <text x="292" y="52">Overhead</text>
                  <text x="404" y="52">Overhead</text>
                  <text x="464" y="52">(GHC)</text>
                  <text x="28" y="84">DTLS</text>
                  <text x="64" y="84">1.2</text>
                  <text x="292" y="84">21</text>
                  <text x="424" y="84">8</text>
                  <text x="28" y="100">DTLS</text>
                  <text x="64" y="100">1.3</text>
                  <text x="296" y="100">3</text>
                  <text x="424" y="100">4</text>
                  <text x="24" y="132">TLS</text>
                  <text x="64" y="132">1.2</text>
                  <text x="292" y="132">13</text>
                  <text x="424" y="132">9</text>
                  <text x="24" y="148">TLS</text>
                  <text x="64" y="148">1.3</text>
                  <text x="296" y="148">6</text>
                  <text x="424" y="148">7</text>
                  <text x="36" y="180">OSCORE</text>
                  <text x="96" y="180">request</text>
                  <text x="296" y="180">5</text>
                  <text x="36" y="196">OSCORE</text>
                  <text x="100" y="196">response</text>
                  <text x="296" y="196">3</text>
                  <text x="32" y="228">Group</text>
                  <text x="84" y="228">OSCORE</text>
                  <text x="148" y="228">pairwise</text>
                  <text x="216" y="228">request</text>
                  <text x="296" y="228">7</text>
                  <text x="32" y="244">Group</text>
                  <text x="84" y="244">OSCORE</text>
                  <text x="148" y="244">pairwise</text>
                  <text x="220" y="244">response</text>
                  <text x="296" y="244">4</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
=============================================================
 Protocol                       Overhead      Overhead (GHC)
-------------------------------------------------------------
 DTLS 1.2                          21               8
 DTLS 1.3                           3               4
-------------------------------------------------------------
 TLS  1.2                          13               9
 TLS  1.3                           6               7
-------------------------------------------------------------
 OSCORE request                     5
 OSCORE response                    3
-------------------------------------------------------------
 Group OSCORE pairwise request      7
 Group OSCORE pairwise response     4
=============================================================
]]></artwork>
          </artset>
        </figure>
        <t>The numbers in <xref target="fig-overhead"/>, <xref target="fig-overhead2"/>, and <contact fullname="{fig-overhead3"/>} do not consider the different Token processing requirements for clients <xref target="RFC9175"/> required for secure operation as motivated by <xref target="I-D.ietf-core-attacks-on-coap"/>. As reuse of Tokens is easier in OSCORE than DTLS, OSCORE might have slightly lower overhead than DTLS 1.3 for long connection even if DTLS 1.3 has slightly lower overhead than OSCORE for short connections.</t>
        <t>The numbers in <xref target="fig-overhead"/>, <xref target="fig-overhead2"/>, and <contact fullname="{fig-overhead3"/>} do not consider underlying layers. DTLS is typically sent over 8 bytes UDP datagram headers while TLS is typically sent over 20 bytes TCP segment headers. TCP also uses some more bytes for additional messages used in TCP internally. The total overhead for DTLS 1.3 over UDP is significantly less than TLS 1.3 over TCP.</t>
        <t>The numbers in <xref target="fig-overhead"/> and <xref target="fig-overhead2"/> were calculated with 8 bytes ICV which is the mandatory to implement in <xref target="I-D.ietf-uta-tls13-iot-profile"/>, and <xref target="I-D.ietf-core-oscore-edhoc"/>. If 16 bytes tag are used, all numbers increases with 8.</t>
      </section>
      <section anchor="dtls-12">
        <name>DTLS 1.2</name>
        <section anchor="dtls-12-1">
          <name>DTLS 1.2</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/>. The nonce follow the strict profiling given in <xref target="RFC7925"/>.  This example is taken directly from <xref target="RFC7400"/>, Figure 16.</t>
          <artwork><![CDATA[
DTLS 1.2 record layer (35 bytes, 29 bytes overhead):
17 fe fd 00 01 00 00 00 00 00 05 00 16 00 01 00
00 00 00 00 05 ae a0 15 56 67 92 4d ff 8a 24 e4
cb 35 b9

Content type:
17
Version:
fe fd
Epoch:
00 01
Sequence number:
00 00 00 00 00 05
Length:
00 16
Nonce:
00 01 00 00 00 00 00 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.2 gives 29 bytes overhead.</t>
        </section>
        <section anchor="dtls-12-with-6lowpan-ghc">
          <name>DTLS 1.2 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/>. The compression was done with <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that the sequence number ‘01’ used in <xref target="RFC7400"/>, Figure 15 gives an exceptionally small overhead that is not representative.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.2 record layer (22 bytes, 16 bytes overhead):
b0 c3 03 05 00 16 f2 0e ae a0 15 56 67 92 4d ff
8a 24 e4 cb 35 b9

Compressed DTLS 1.2 record layer header and nonce:
b0 c3 03 05 00 16 f2 0e
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.2 with the above parameters (epoch, sequence number, length) gives 16 bytes overhead.</t>
        </section>
        <section anchor="dtls-12-with-connection-id">
          <name>DTLS 1.2 with Connection ID</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/> with Connection ID <xref target="RFC9146"/>. The overhead calculations in this section uses Connection ID = '42'. DTLS record layer with a Connection ID = '' (the empty string) is equal to DTLS without Connection ID.</t>
          <artwork><![CDATA[
DTLS 1.2 record layer (36 bytes, 30 bytes overhead):
17 fe fd 00 01 00 00 00 00 00 05 42 00 16 00 01
00 00 00 00 00 05 ae a0 15 56 67 92 4d ff 8a 24
e4 cb 35 b9

Content type:
17
Version:
fe fd
Epoch:
00 01
Sequence number:
00 00 00 00 00 05
Connection ID:
42
Length:
00 16
Nonce:
00 01 00 00 00 00 00 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.2 with Connection ID gives 30 bytes overhead.</t>
        </section>
        <section anchor="dtls-12-with-connection-id-and-6lowpan-ghc">
          <name>DTLS 1.2 with Connection ID and 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.2 <xref target="RFC6347"/> with Connection ID <xref target="RFC9146"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that the sequence number ‘01’ used in <xref target="RFC7400"/>, Figure 15 gives an exceptionally small overhead that is not representative.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.2 record layer (23 bytes, 17 bytes overhead):
b0 c3 04 05 42 00 16 f2 0e ae a0 15 56 67 92 4d
ff 8a 24 e4 cb 35 b9

Compressed DTLS 1.2 record layer header and nonce:
b0 c3 04 05 42 00 16 f2 0e
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.2 with the above parameters (epoch, sequence number, Connection ID, length) gives 17 bytes overhead.</t>
        </section>
      </section>
      <section anchor="dtls-13-1">
        <name>DTLS 1.3</name>
        <section anchor="dtls-13-2">
          <name>DTLS 1.3</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/>. The changes compared to DTLS 1.2 are: omission of version number, merging of epoch into the first byte containing signaling bits, optional omission of length, reduction of sequence number into a 1 or 2-bytes field.</t>
          <t>DTLS 1.3 is only analyzed with an omitted length field and with an 8-bit sequence number (see Figure 4 of <xref target="RFC9147"/>).</t>
          <artwork><![CDATA[
DTLS 1.3 record layer (17 bytes, 11 bytes overhead):
21 05 ae a0 15 56 67 92 ec 4d ff 8a 24 e4 cb 35 b9

First byte (including epoch):
21
Sequence number:
05
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.3 gives 11 bytes overhead.</t>
        </section>
        <section anchor="dtls-13-with-6lowpan-ghc">
          <name>DTLS 1.3 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.3 record layer (18 bytes, 12 bytes overhead):
11 21 05 ae a0 15 56 67 92 ec 4d ff 8a 24 e4 cb
35 b9

Compressed DTLS 1.3 record layer header and nonce:
11 21 05
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.3 with the above parameters (epoch, sequence number, no length) gives 12 bytes overhead.</t>
        </section>
        <section anchor="dtls-13-with-connection-id">
          <name>DTLS 1.3 with Connection ID</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/> with Connection ID <xref target="RFC9146"/>.</t>
          <t>In this example, the length field is omitted, and the 1-byte field is used for the sequence number. The minimal DTLSCiphertext structure is used (see Figure 4 of <xref target="RFC9147"/>), with the addition of the Connection ID field.</t>
          <artwork><![CDATA[
DTLS 1.3 record layer (18 bytes, 12 bytes overhead):
31 42 05 ae a0 15 56 67 92 ec 4d ff 8a 24 e4 cb 35 b9

First byte (including epoch):
31
Connection ID:
42
Sequence number:
05
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>DTLS 1.3 with Connection ID gives 12 bytes overhead.</t>
        </section>
        <section anchor="dtls-13-with-connection-id-and-6lowpan-ghc">
          <name>DTLS 1.3 with Connection ID and 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of DTLS 1.3 <xref target="RFC9147"/> with Connection ID <xref target="RFC9146"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when DTLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed DTLS 1.3 record layer (19 bytes, 13 bytes overhead):
12 31 05 42 ae a0 15 56 67 92 ec 4d ff 8a 24 e4
cb 35 b9

Compressed DTLS 1.3 record layer header and nonce:
12 31 05 42
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, DTLS 1.3 with the above parameters (epoch, sequence number, Connection ID, no length) gives 13 bytes overhead.</t>
        </section>
      </section>
      <section anchor="tls-12">
        <name>TLS 1.2</name>
        <section anchor="tls-12-1">
          <name>TLS 1.2</name>
          <t>This section analyzes the overhead of TLS 1.2 <xref target="RFC5246"/>. The changes compared to DTLS 1.2 is that the TLS 1.2 record layer does not have epoch and sequence number, and that the version is different.</t>
          <artwork><![CDATA[
TLS 1.2 Record Layer (27 bytes, 21 bytes overhead):
17 03 03 00 16 00 00 00 00 00 00 00 05 ae a0 15
56 67 92 4d ff 8a 24 e4 cb 35 b9

Content type:
17
Version:
03 03
Length:
00 16
Nonce:
00 00 00 00 00 00 00 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>TLS 1.2 gives 21 bytes overhead.</t>
        </section>
        <section anchor="tls-12-with-6lowpan-ghc">
          <name>TLS 1.2 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of TLS 1.2 <xref target="RFC5246"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when TLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed TLS 1.2 record layer (23 bytes, 17 bytes overhead):
05 17 03 03 00 16 85 0f 05 ae a0 15 56 67 92 4d
ff 8a 24 e4 cb 35 b9

Compressed TLS 1.2 record layer header and nonce:
05 17 03 03 00 16 85 0f 05
Ciphertext:
ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, TLS 1.2 with the above parameters (epoch, sequence number, length) gives 17 bytes overhead.</t>
        </section>
      </section>
      <section anchor="tls-13-1">
        <name>TLS 1.3</name>
        <section anchor="tls-13-2">
          <name>TLS 1.3</name>
          <t>This section analyzes the overhead of TLS 1.3 <xref target="RFC8446"/>. The change compared to TLS 1.2 is that the TLS 1.3 record layer uses a different version.</t>
          <artwork><![CDATA[
TLS 1.3 Record Layer (20 bytes, 14 bytes overhead):
17 03 03 00 16 ae a0 15 56 67 92 ec 4d ff 8a 24
e4 cb 35 b9

Content type:
17
Legacy version:
03 03
Length:
00 0f
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>TLS 1.3 gives 14 bytes overhead.</t>
        </section>
        <section anchor="tls-13-with-6lowpan-ghc">
          <name>TLS 1.3 with 6LoWPAN-GHC</name>
          <t>This section analyzes the overhead of TLS 1.3 <xref target="RFC8446"/> when compressed with 6LoWPAN-GHC <xref target="RFC7400"/> <xref target="OlegHahm-ghc"/>.</t>
          <t>Note that this header compression is not available when TLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
          <artwork><![CDATA[
Compressed TLS 1.3 record layer (21 bytes, 15 bytes overhead):
14 17 03 03 00 0f ae a0 15 56 67 92 ec 4d ff 8a
24 e4 cb 35 b9

Compressed TLS 1.3 record layer header and nonce:
14 17 03 03 00 0f
Ciphertext (including encrypted content type):
ae a0 15 56 67 92 ec
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
          <t>When compressed with 6LoWPAN-GHC, TLS 1.3 with the above parameters (epoch, sequence number, length) gives 15 bytes overhead.</t>
        </section>
      </section>
      <section anchor="oscore">
        <name>OSCORE</name>
        <t>This section analyzes the overhead of OSCORE <xref target="RFC8613"/>.</t>
        <t>The below calculation Option Delta = ‘9’, Sender ID = ‘’ (empty string), and Sequence Number = ‘05’ and is only an example. Note that Sender ID = ‘’ (empty string) can only be used by one client per server.</t>
        <artwork><![CDATA[
OSCORE request (19 bytes, 13 bytes overhead):
92 09 05
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP option delta and length:
92
Option value (flag byte and sequence number):
09 05
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The below calculation Option Delta = ‘9’, Sender ID = ‘42’, and Sequence Number = ‘05’, and is only an example.</t>
        <artwork><![CDATA[
OSCORE request (20 bytes, 14 bytes overhead):
93 09 05 42
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP option delta and length:
93
Option Value (flag byte, sequence number, and Sender ID):
09 05 42
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The below calculation uses Option Delta = ‘9’.</t>
        <artwork><![CDATA[
OSCORE response (17 bytes, 11 bytes overhead):
90
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP delta and option length:
90
Option value:
-
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>OSCORE with the above parameters gives 13-14 bytes overhead for requests and 11 bytes overhead for responses.</t>
        <t>Unlike DTLS and TLS, OSCORE has much smaller overhead for responses than requests.</t>
      </section>
      <section anchor="group-oscore">
        <name>Group OSCORE</name>
        <t>This section analyzes the overhead of Group OSCORE <xref target="I-D.ietf-core-oscore-groupcomm"/>. Group OSCORE defines a pairwise mode where each member of the group can efficiently derive a symmetric pairwise key with any other member of the group for pairwise OSCORE communication. Additional requirements compared to <xref target="RFC8613"/> is that ID Context is always included in requests and that Sender ID is always included in responses. Assuming 1 byte ID Context and Sender ID this adds 2 bytes to requests and 1 byte to responses.</t>
        <t>The below calculation Option Delta = ‘9’, ID Context = ‘’, Sender ID = ‘42’, and Sequence Number = ‘05’, and is only an example. ID Context = ‘’ would be the standard for local deployments only having a single group.</t>
        <artwork><![CDATA[
OSCORE request (21 bytes, 15 bytes overhead):
93 09 05 42
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP option delta and length:
93
Option Value (flag byte, ID Context length, sequence nr, Sender ID):
19 00 05 42
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The below calculation uses Option Delta = ‘9’ and Sender ID = ‘69’, and is only an example.</t>
        <artwork><![CDATA[
OSCORE response (18 bytes, 12 bytes overhead):
90
ff ec ae a0 15 56 67 92 4d ff 8a 24 e4 cb 35 b9

CoAP delta and option length:
90
Option value (flag byte, Sender ID):
08 69
Payload marker:
ff
Ciphertext (including encrypted code):
ec ae a0 15 56 67 92
ICV:
4d ff 8a 24 e4 cb 35 b9
]]></artwork>
        <t>The pairwise mode OSCORE with the above parameters gives 15 bytes overhead for requests and 12 bytes overhead for responses.</t>
      </section>
      <section anchor="conclusion-1">
        <name>Conclusion</name>
        <t>DTLS 1.2 has quite a large overhead as it uses an explicit sequence number and an explicit nonce. TLS 1.2 has significantly less (but not small) overhead. TLS 1.3 has quite a small overhead. OSCORE and DTLS 1.3 (using the minimal structure) format have very small overhead.</t>
        <t>The Generic Header Compression (6LoWPAN-GHC) can in addition to DTLS 1.2 handle TLS 1.2, and DTLS 1.2 with Connection ID. The Generic Header Compression (6LoWPAN-GHC) works very well for Connection ID and the overhead seems to increase exactly with the length of the Connection ID (which is optimal). The compression of TLS 1.2 is not as good as the compression of DTLS 1.2 (as the static dictionary only contains the DTLS 1.2 version number). Similar compression levels as for DTLS could be achieved also for TLS 1.2, but this would require different static dictionaries. For TLS 1.3 and DTLS 1.3, GHC increases the overhead. The 6LoWPAN-GHC header compression is not available when (D)TLS is used over transports that do not use 6LoWPAN together with 6LoWPAN-GHC.</t>
        <t>New security protocols like OSCORE, TLS 1.3, and DTLS 1.3 have much lower overhead than DTLS 1.2 and TLS 1.2. The overhead is even smaller than DTLS 1.2 and TLS 1.2 over 6LoWPAN with compression, and therefore the small overhead is achieved even on deployments without 6LoWPAN or 6LoWPAN without compression. OSCORE is lightweight because it makes use of CoAP, CBOR, and COSE, which were designed to have as low overhead as possible. As can be seen in <xref target="fig-overhead3"/>, Group OSCORE for pairwise communication increases the overhead of OSCORE requests with 20% and OSCORE responses with 33%.</t>
        <t>Note that the compared protocols have slightly different use cases. TLS and DTLS are designed for the transport layer and are terminated in CoAP proxies. OSCORE is designed for the application layer and protects information end-to-end between the CoAP client and the CoAP server. Group OSCORE is designed for communication in a group.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document is purely informational.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions for IANA.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>Informative References</name>
      <reference anchor="RFC5246" target="https://www.rfc-editor.org/info/rfc5246" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5246.xml">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
          <author fullname="T. Dierks" initials="T." surname="Dierks"/>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2008"/>
          <abstract>
            <t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5246"/>
        <seriesInfo name="DOI" value="10.17487/RFC5246"/>
      </reference>
      <reference anchor="RFC5480" target="https://www.rfc-editor.org/info/rfc5480" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5480.xml">
        <front>
          <title>Elliptic Curve Cryptography Subject Public Key Information</title>
          <author fullname="S. Turner" initials="S." surname="Turner"/>
          <author fullname="D. Brown" initials="D." surname="Brown"/>
          <author fullname="K. Yiu" initials="K." surname="Yiu"/>
          <author fullname="R. Housley" initials="R." surname="Housley"/>
          <author fullname="T. Polk" initials="T." surname="Polk"/>
          <date month="March" year="2009"/>
          <abstract>
            <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography.  This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5480"/>
        <seriesInfo name="DOI" value="10.17487/RFC5480"/>
      </reference>
      <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6347" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6347.xml">
        <front>
          <title>Datagram Transport Layer Security Version 1.2</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
          <date month="January" year="2012"/>
          <abstract>
            <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6347"/>
        <seriesInfo name="DOI" value="10.17487/RFC6347"/>
      </reference>
      <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
        <front>
          <title>The Constrained Application Protocol (CoAP)</title>
          <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
          <author fullname="K. Hartke" initials="K." surname="Hartke"/>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <date month="June" year="2014"/>
          <abstract>
            <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
            <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types. CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7252"/>
        <seriesInfo name="DOI" value="10.17487/RFC7252"/>
      </reference>
      <reference anchor="RFC7400" target="https://www.rfc-editor.org/info/rfc7400" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7400.xml">
        <front>
          <title>6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)</title>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <date month="November" year="2014"/>
          <abstract>
            <t>RFC 6282 defines header compression in 6LoWPAN packets (where "6LoWPAN" refers to "IPv6 over Low-Power Wireless Personal Area Network").  The present document specifies a simple addition that enables the compression of generic headers and header-like payloads, without a need to define a new header compression scheme for each such new header or header-like payload.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7400"/>
        <seriesInfo name="DOI" value="10.17487/RFC7400"/>
      </reference>
      <reference anchor="RFC7924" target="https://www.rfc-editor.org/info/rfc7924" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7924.xml">
        <front>
          <title>Transport Layer Security (TLS) Cached Information Extension</title>
          <author fullname="S. Santesson" initials="S." surname="Santesson"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <date month="July" year="2016"/>
          <abstract>
            <t>Transport Layer Security (TLS) handshakes often include fairly static information, such as the server certificate and a list of trusted certification authorities (CAs). This information can be of considerable size, particularly if the server certificate is bundled with a complete certificate chain (i.e., the certificates of intermediate CAs up to the root CA).</t>
            <t>This document defines an extension that allows a TLS client to inform a server of cached information, thereby enabling the server to omit already available information.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7924"/>
        <seriesInfo name="DOI" value="10.17487/RFC7924"/>
      </reference>
      <reference anchor="RFC7925" target="https://www.rfc-editor.org/info/rfc7925" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7925.xml">
        <front>
          <title>Transport Layer Security (TLS) / Datagram Transport Layer Security (DTLS) Profiles for the Internet of Things</title>
          <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
          <author fullname="T. Fossati" initials="T." surname="Fossati"/>
          <date month="July" year="2016"/>
          <abstract>
            <t>A common design pattern in Internet of Things (IoT) deployments is the use of a constrained device that collects data via sensors or controls actuators for use in home automation, industrial control systems, smart cities, and other IoT deployments.</t>
            <t>This document defines a Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) 1.2 profile that offers communications security for this data exchange thereby preventing eavesdropping, tampering, and message forgery. The lack of communication security is a common vulnerability in IoT products that can easily be solved by using these well-researched and widely deployed Internet security protocols.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="7925"/>
        <seriesInfo name="DOI" value="10.17487/RFC7925"/>
      </reference>
      <reference anchor="RFC8323" target="https://www.rfc-editor.org/info/rfc8323" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8323.xml">
        <front>
          <title>CoAP (Constrained Application Protocol) over TCP, TLS, and WebSockets</title>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <author fullname="S. Lemay" initials="S." surname="Lemay"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <author fullname="K. Hartke" initials="K." surname="Hartke"/>
          <author fullname="B. Silverajan" initials="B." surname="Silverajan"/>
          <author fullname="B. Raymor" initials="B." role="editor" surname="Raymor"/>
          <date month="February" year="2018"/>
          <abstract>
            <t>The Constrained Application Protocol (CoAP), although inspired by HTTP, was designed to use UDP instead of TCP. The message layer of CoAP over UDP includes support for reliable delivery, simple congestion control, and flow control.</t>
            <t>Some environments benefit from the availability of CoAP carried over reliable transports such as TCP or Transport Layer Security (TLS). This document outlines the changes required to use CoAP over TCP, TLS, and WebSockets transports. It also formally updates RFC 7641 for use with these transports and RFC 7959 to enable the use of larger messages over a reliable transport.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8323"/>
        <seriesInfo name="DOI" value="10.17487/RFC8323"/>
      </reference>
      <reference anchor="RFC8376" target="https://www.rfc-editor.org/info/rfc8376" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8376.xml">
        <front>
          <title>Low-Power Wide Area Network (LPWAN) Overview</title>
          <author fullname="S. Farrell" initials="S." role="editor" surname="Farrell"/>
          <date month="May" year="2018"/>
          <abstract>
            <t>Low-Power Wide Area Networks (LPWANs) are wireless technologies with characteristics such as large coverage areas, low bandwidth, possibly very small packet and application-layer data sizes, and long battery life operation.  This memo is an informational overview of the set of LPWAN technologies being considered in the IETF and of the gaps that exist between the needs of those technologies and the goal of running IP in LPWANs.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8376"/>
        <seriesInfo name="DOI" value="10.17487/RFC8376"/>
      </reference>
      <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <date month="August" year="2018"/>
          <abstract>
            <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8446"/>
        <seriesInfo name="DOI" value="10.17487/RFC8446"/>
      </reference>
      <reference anchor="RFC8613" target="https://www.rfc-editor.org/info/rfc8613" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8613.xml">
        <front>
          <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
          <author fullname="G. Selander" initials="G." surname="Selander"/>
          <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
          <author fullname="F. Palombini" initials="F." surname="Palombini"/>
          <author fullname="L. Seitz" initials="L." surname="Seitz"/>
          <date month="July" year="2019"/>
          <abstract>
            <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
            <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8613"/>
        <seriesInfo name="DOI" value="10.17487/RFC8613"/>
      </reference>
      <reference anchor="RFC8879" target="https://www.rfc-editor.org/info/rfc8879" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8879.xml">
        <front>
          <title>TLS Certificate Compression</title>
          <author fullname="A. Ghedini" initials="A." surname="Ghedini"/>
          <author fullname="V. Vasiliev" initials="V." surname="Vasiliev"/>
          <date month="December" year="2020"/>
          <abstract>
            <t>In TLS handshakes, certificate chains often take up the majority of the bytes transmitted.</t>
            <t>This document describes how certificate chains can be compressed to reduce the amount of data transmitted and avoid some round trips.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="8879"/>
        <seriesInfo name="DOI" value="10.17487/RFC8879"/>
      </reference>
      <reference anchor="RFC9146" target="https://www.rfc-editor.org/info/rfc9146" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9146.xml">
        <front>
          <title>Connection Identifier for DTLS 1.2</title>
          <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
          <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
          <author fullname="T. Fossati" initials="T." surname="Fossati"/>
          <author fullname="A. Kraus" initials="A." surname="Kraus"/>
          <date month="March" year="2022"/>
          <abstract>
            <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
            <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
            <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
            <t>This document updates RFC 6347.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9146"/>
        <seriesInfo name="DOI" value="10.17487/RFC9146"/>
      </reference>
      <reference anchor="RFC9147" target="https://www.rfc-editor.org/info/rfc9147" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9147.xml">
        <front>
          <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
          <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
          <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
          <author fullname="N. Modadugu" initials="N." surname="Modadugu"/>
          <date month="April" year="2022"/>
          <abstract>
            <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
            <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
            <t>This document obsoletes RFC 6347.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9147"/>
        <seriesInfo name="DOI" value="10.17487/RFC9147"/>
      </reference>
      <reference anchor="RFC9175" target="https://www.rfc-editor.org/info/rfc9175" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9175.xml">
        <front>
          <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
          <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
          <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
          <author fullname="G. Selander" initials="G." surname="Selander"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases.  The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address.  The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request.  This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9175"/>
        <seriesInfo name="DOI" value="10.17487/RFC9175"/>
      </reference>
      <reference anchor="RFC9191" target="https://www.rfc-editor.org/info/rfc9191" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9191.xml">
        <front>
          <title>Handling Large Certificates and Long Certificate Chains in TLS-Based EAP Methods</title>
          <author fullname="M. Sethi" initials="M." surname="Sethi"/>
          <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
          <author fullname="S. Turner" initials="S." surname="Turner"/>
          <date month="February" year="2022"/>
          <abstract>
            <t>The Extensible Authentication Protocol (EAP), defined in RFC 3748, provides a standard mechanism for support of multiple authentication methods.  EAP-TLS and other TLS-based EAP methods are widely deployed and used for network access authentication.  Large certificates and long certificate chains combined with authenticators that drop an EAP session after only 40 - 50 round trips is a major deployment problem.  This document looks at this problem in detail and describes the potential solutions available.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9191"/>
        <seriesInfo name="DOI" value="10.17487/RFC9191"/>
      </reference>
      <reference anchor="I-D.ietf-core-attacks-on-coap" target="https://www.ietf.org/archive/id/draft-ietf-core-attacks-on-coap-02.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-attacks-on-coap.xml">
        <front>
          <title>Attacks on the Constrained Application Protocol (CoAP)</title>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="John Fornehed" initials="J." surname="Fornehed">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Christian Amsüss" initials="C." surname="Amsüss">
            <organization>Energy Harvesting Solutions</organization>
          </author>
          <date day="22" month="December" year="2022"/>
          <abstract>
            <t>Being able to securely read information from sensors, to securely control actuators, and to not enable distributed denial-of-service attacks are essential in a world of connected and networking things interacting with the physical world. Using a security protocol such as DTLS, TLS, or OSCORE to protect CoAP is a requirement for secure operation and protects against many attacks. This document summarizes a number of known attacks on CoAP deployments and show that just using CoAP with a security protocol like DTLS, TLS, or OSCORE is not enough for secure operation. Several of the discussed attacks can be mitigated with the solutions in RFC 9175.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-attacks-on-coap-02"/>
      </reference>
      <reference anchor="I-D.ietf-core-oscore-edhoc" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-edhoc-06.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-edhoc.xml">
        <front>
          <title>Profiling EDHOC for CoAP and OSCORE</title>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson</organization>
          </author>
          <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Rikard Höglund" initials="R." surname="Höglund">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Stefan Hristozov" initials="S." surname="Hristozov">
            <organization>Fraunhofer AISEC</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson</organization>
          </author>
          <date day="23" month="November" year="2022"/>
          <abstract>
            <t>The lightweight authenticated key exchange protocol EDHOC can be run over CoAP and used by two peers to establish an OSCORE Security Context. This document further profiles this use of the EDHOC protocol, by specifying a number of additional and optional mechanisms. These especially include an optimization approach for combining the execution of EDHOC with the first subsequent OSCORE transaction. This combination reduces the number of round trips required to set up an OSCORE Security Context and to complete an OSCORE transaction using that Security Context.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-edhoc-06"/>
      </reference>
      <reference anchor="I-D.ietf-core-oscore-groupcomm" target="https://www.ietf.org/archive/id/draft-ietf-core-oscore-groupcomm-17.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-oscore-groupcomm.xml">
        <front>
          <title>Group OSCORE - Secure Group Communication for CoAP</title>
          <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Jiye Park" initials="J." surname="Park">
            <organization>Universitaet Duisburg-Essen</organization>
          </author>
          <date day="20" month="December" year="2022"/>
          <abstract>
            <t>This document defines Group Object Security for Constrained RESTful Environments (Group OSCORE), providing end-to-end security of CoAP messages exchanged between members of a group, e.g., sent over IP multicast. In particular, the described approach defines how OSCORE is used in a group communication setting to provide source authentication for CoAP group requests, sent by a client to multiple servers, and for protection of the corresponding CoAP responses. Group OSCORE also defines a pairwise mode where each member of the group can efficiently derive a symmetric pairwise key with any other member of the group for pairwise OSCORE communication.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-groupcomm-17"/>
      </reference>
      <reference anchor="I-D.ietf-cose-cbor-encoded-cert" target="https://www.ietf.org/archive/id/draft-ietf-cose-cbor-encoded-cert-05.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cose-cbor-encoded-cert.xml">
        <front>
          <title>CBOR Encoded X.509 Certificates (C509 Certificates)</title>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Shahid Raza" initials="S." surname="Raza">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Joel Höglund" initials="J." surname="Höglund">
            <organization>RISE AB</organization>
          </author>
          <author fullname="Martin Furuhed" initials="M." surname="Furuhed">
            <organization>Nexus Group</organization>
          </author>
          <date day="10" month="January" year="2023"/>
          <abstract>
            <t>This document specifies a CBOR encoding of X.509 certificates. The resulting certificates are called C509 Certificates. The CBOR encoding supports a large subset of RFC 5280 and all certificates compatible with the RFC 7925, IEEE 802.1AR (DevID), CNSA, RPKI, GSMA eUICC, and CA/Browser Forum Baseline Requirements profiles. When used to re-encode DER encoded X.509 certificates, the CBOR encoding can in many cases reduce the size of RFC 7925 profiled certificates with over 50%. The CBOR encoded structure can alternatively be signed directly ("natively signed"), which does not require re- encoding for the signature to be verified. The document also specifies C509 COSE headers, a C509 TLS certificate type, and a C509 file format.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-cose-cbor-encoded-cert-05"/>
      </reference>
      <reference anchor="I-D.ietf-lake-edhoc" target="https://www.ietf.org/archive/id/draft-ietf-lake-edhoc-18.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-edhoc.xml">
        <front>
          <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <author fullname="Francesca Palombini" initials="F." surname="Palombini">
            <organization>Ericsson AB</organization>
          </author>
          <date day="28" month="November" year="2022"/>
          <abstract>
            <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios and a main use case is to establish an OSCORE security context. By reusing COSE for cryptography, CBOR for encoding, and CoAP for transport, the additional code size can be kept very low.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lake-edhoc-18"/>
      </reference>
      <reference anchor="I-D.ietf-lake-traces" target="https://www.ietf.org/archive/id/draft-ietf-lake-traces-03.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lake-traces.xml">
        <front>
          <title>Traces of EDHOC</title>
          <author fullname="Göran Selander" initials="G." surname="Selander">
            <organization>Ericsson</organization>
          </author>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson</organization>
          </author>
          <author fullname="Marek Serafin" initials="M." surname="Serafin">
            <organization>ASSA ABLOY</organization>
          </author>
          <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
            <organization>RISE</organization>
          </author>
          <date day="24" month="October" year="2022"/>
          <abstract>
            <t>This document contains some example traces of Ephemeral Diffie- Hellman Over COSE (EDHOC).</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lake-traces-03"/>
      </reference>
      <reference anchor="I-D.ietf-tls-ctls" target="https://www.ietf.org/archive/id/draft-ietf-tls-ctls-07.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-tls-ctls.xml">
        <front>
          <title>Compact TLS 1.3</title>
          <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
            <organization>Mozilla</organization>
          </author>
          <author fullname="Richard Barnes" initials="R." surname="Barnes">
            <organization>Cisco</organization>
          </author>
          <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
            <organization>Arm Limited</organization>
          </author>
          <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
            <organization>Google</organization>
          </author>
          <date day="3" month="January" year="2023"/>
          <abstract>
            <t>This document specifies a "compact" version of TLS and DTLS. It is logically isomorphic to ordinary TLS, but saves space by trimming obsolete material, tighter encoding, a template-based specialization technique, and alternative cryptographic techniques. cTLS is not directly interoperable with TLS or DTLS, but it should eventually be possible for a single server port to offer cTLS alongside TLS or DTLS.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ctls-07"/>
      </reference>
      <reference anchor="I-D.ietf-uta-tls13-iot-profile" target="https://www.ietf.org/archive/id/draft-ietf-uta-tls13-iot-profile-05.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-uta-tls13-iot-profile.xml">
        <front>
          <title>TLS/DTLS 1.3 Profiles for the Internet of Things</title>
          <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
            <organization>Arm Limited</organization>
          </author>
          <author fullname="Thomas Fossati" initials="T." surname="Fossati">
            <organization>Arm Limited</organization>
          </author>
          <date day="6" month="July" year="2022"/>
          <abstract>
            <t>This document is a companion to RFC 7925 and defines TLS/DTLS 1.3 profiles for Internet of Things devices. It also updates RFC 7925 with regards to the X.509 certificate profile. Discussion Venues This note is to be removed before publishing as an RFC. Source for this draft and an issue tracker can be found at https://github.com/thomas-fossati/draft-tls13-iot.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-uta-tls13-iot-profile-05"/>
      </reference>
      <reference anchor="I-D.mattsson-tls-compact-ecc" target="https://www.ietf.org/archive/id/draft-mattsson-tls-compact-ecc-03.txt" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.mattsson-tls-compact-ecc.xml">
        <front>
          <title>Compact ECDHE and ECDSA Encodings for TLS 1.3</title>
          <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
            <organization>Ericsson AB</organization>
          </author>
          <date day="18" month="January" year="2023"/>
          <abstract>
            <t>The encodings used in the ECDHE groups secp256r1, secp384r1, and secp521r1 and the ECDSA signature algorithms ecdsa_secp256r1_sha256, ecdsa_secp384r1_sha384, and ecdsa_secp521r1_sha512 have significant overhead and the ECDSA encoding produces variable-length signatures. This document defines new optimal fixed-length encodings and registers new ECDHE groups and ECDSA signature algorithms using these new encodings. The new encodings reduce the size of the ECDHE groups with 33, 49, and 67 bytes and the ECDSA algorithms with an average of 7 bytes. These new encodings also work in DTLS 1.3 and are especially useful in cTLS.</t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-mattsson-tls-compact-ecc-03"/>
      </reference>
      <reference anchor="E-impact" target="https://www.iab.org/activities/workshops/e-impact/">
        <front>
          <title>Workshop on Environmental Impact of Internet Applications and Systems</title>
          <author initials="" surname="Internet Architecture Board">
            <organization/>
          </author>
          <date year="2022" month="December"/>
        </front>
      </reference>
      <reference anchor="OlegHahm-ghc" target="https://github.com/OlegHahm/ghc">
        <front>
          <title>Generic Header Compression</title>
          <author initials="O." surname="Hahm">
            <organization/>
          </author>
          <date year="2016" month="July"/>
        </front>
      </reference>
      <reference anchor="IoT-Cert" target="https://kth.diva-portal.org/smash/get/diva2:1153958/FULLTEXT01.pdf">
        <front>
          <title>Digital Certificates for the Internet of Things</title>
          <author initials="F." surname="Forsby">
            <organization/>
          </author>
          <date year="2017" month="June"/>
        </front>
      </reference>
      <reference anchor="Illustrated-TLS12" target="https://tls12.xargs.org/">
        <front>
          <title>The Illustrated TLS 1.2 Connection</title>
          <author initials="M." surname="Driscoll">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="Illustrated-TLS13" target="https://tls13.xargs.org/">
        <front>
          <title>The Illustrated TLS 1.3 Connection</title>
          <author initials="M." surname="Driscoll">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
      <reference anchor="Illustrated-DTLS13" target="https://dtls.xargs.org/">
        <front>
          <title>The Illustrated DTLS 1.3 Connection</title>
          <author initials="M." surname="Driscoll">
            <organization/>
          </author>
          <date>n.d.</date>
        </front>
      </reference>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors want to thank
<contact fullname="Carsten Bormann"/>,
<contact fullname="Ari Keränen"/>,
<contact fullname="Stephan Koch"/>,
<contact fullname="Achim Kraus"/>,
<contact fullname="Göran Selander"/>,
and
<contact fullname="Hannes Tschofenig"/>
for comments and suggestions on previous versions of the draft.</t>
      <t>All 6LoWPAN-GHC compression was done with <xref target="OlegHahm-ghc"/>. <xref target="Illustrated-TLS13"/> as a was a useful resource for the TLS handshake content and formatting and <xref target="IoT-Cert"/> was a useful resource for SubjectPublicKeyInfo formatting.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
N+or334VTjgVHC3Jb5Vy3Xr+DCBzNh7v+/jrGFTflgRYNYfeRmsdDG2pfxsJ
BuXx/yPjw65M+FNJfz2d+Acc6ewiv0skNaTsnNiQWlL9qqIaeZBHkXrIvDDe
zSmSqhdiDeRwgRnzaKvlN4mC41WiN5yQoyWz56mL92U7UWo1dbmYB68JG+1C
ySayujBFN6mCk5AmW7bl1YpNPHJOAVFNxcUbt1263a+67dFtAcktIkDIAEso
YSW1PGJu7/0Ag1mXEkylmMTH0EIVpbnMRLTr1eiP8J5oGlpGHSUreXYGbbX/
0dz8Ywf9C5V8jaB9WcstdrXxNpj3pYPAGWW4kwdo5E9iJ705LhyS2O+T8Eks
7Ez4lcmt/boclzSl4e2rty/FZlGhQKxSfmqvvizHhftPxzEXxcBSjgViRYXM
VPvBI127S+8wMopNAcbytZDS6SlSFQAxz6moJIX2R69NS1gYPgMZBBdAs+IF
9C4Gw1rZE2CRqiecIfyNwuEjGrMf3TP4GOCfHTBsP55fwod3gXdd/JCph/Dy
G+Agp+W2Bp12y2m3O1347mDoWs/oRDc82NqwRw3TALa07rWcVt+kUpxYm+bx
XZjJjTtwCZSKmlqvh4/Q3H9cEDJHYZayNl7tiKv5MlWtRT+sp7Iofiay+K+o
XYX6ZsOdonFfHB+JYC9HcLf/j4ZgN0ew16lGML14voFeZc6ynw3EdneuOBBi
twmxg/AHoFJTwLT8kidAYWsMaygjHN3v4KMH6vwj7s21gAkAbDstDF3W5Ugr
QejkIPQqQFiElwGuzk6/knYh6k2IG9GSzT2Hvr2XE6unqCqiZC7M/T9i8XOp
l80Ag1agVELZ2KsoCyyLei2Ngu2rasDgqPCYAnxCbLj0i3WSZfVHLeRbtHRP
a8YNs8QLnTmBZd0z6GCByUpLnpvd05iq47LJKqGNiYW68uaMkQd4eUXsk12b
Bau3Bpbt4t26/+9e2//sjQ95aojTI0vUyw3znZv8TLvb2OO3zzYG6uq3uZfv
72eb3sZawPY9euMD8qWVdBMvHJIgXezAiJnr8XbczfbkjjzaCuB28r0Ybtvo
8xhKOoCWfgtb5L7UjoCu4cXq/Wxle9k6rrWX7SkVztihxfbaxubuzjIQC0b3
2kl2lDy194tZ8tQ9SJ5+2xb2xbeF5dKoXSmNfiNyaI9NWiVkb0YNDbrv70H3
5RurLPofFOj/2/4pe/+UBaxxAVi/1jap+6v9XTnr1nRH95vul09NNzJhUVDY
BiG4lOBmwieIgKpc9HQjF50AWcs/P09WugXuSWGKZvL5WEnBno1sQqyRZf6F
9M7WnHRzUkZK+t/fDie0uYZt+MAvDhpXDn7ronXVJ0OsZySdY2GyI+wslUCi
m9mZQGLtffkv/6nZfPfm4s0pu4gXjzP2YRHfstvZWvjI0rUXoXA64g9AlABD
RGuqXfQxa7AsCUWgIeVY4V8cn6NObENe0iH2BqMYSxhFFCbG7jAm0GLN5j8f
ZPEdofp+fan2FYu1bxLts0u0r2kzTaVs23etdItUwzKLR0g1lXmmmylPPTto
s8gxe0X2Sev9tlXk21aRX2WrCGC5YqsI1i3dkwu37RTRzewbwzmCx/4xNop0
9971oRRof++E/7zGR/fvhcTRuG2iqmmiqmmilFFErqKV3b2t6G3bRHQz+1rR
n02bfFEiY5tUdgy6UGvn6HqKhY6PwI3OQm8fZApsNwHuga+vboNI52GQ1fOk
1uggrhznIJWxoSqcw1XFfbTEZ90dokPKxwGWGADaekolv+8BVC2VnMOl0v32
hpRtDdm6M6SCJ3V2gyjjrA7G1qfwbdwxD7/RpYHVQc0wXnluoSqYrI4MbrE3
CzwhYDWdmQeVxov8kGbaRKJOLs0K3au5Gb3LTRyTeLWgfLUAvmTqbN78XFAx
bVlzWh02azRDO1tKDjNWpbI3zzNuMZHJnRoFoql2s9C15nHOspy1v3G6LeV/
C+0uYzfWKdAtIlwFgC0TmmAeqT6FHU8E7bcbWJR9gJ99kSXR74pTfHT+NtaT
V8VqmO7I29ZRNks4t3pyu14Dt5mpToYbnfSGQ6MTeQC9SGCRyYUKvfrPMgyb
x3jTSYxpOA8jPykOVdIzVrSXB4timym8LCAfxovyZBRKdtGHmSoagYmfLelM
vY/sTCTvqArmovo1pfqIMJs49HBWds5TWboKJmDSsbuhOAM5T57BzUznduRM
lOymvGTHyEvOZY+ovy5GKJKQcDQmqvI00r7ToMME6j30Q/pDKrJxIkY3GIJd
MRBXZD8FjHrKUgVQ/5jK80pliiAerY1TUGWAxmNc3dsYrjjOUA9eN1RxLItq
VSf6QLNAFapmC4ypXwUSLQJ1H1To3y78rtrHc8WNLmRZ8TrIV+PczZPNiQjl
lbKeCn8UtqNJ3KgR2AlZAqeiq80TH+XB5W7J/CSl03lw9y6NL06TKx6/Lk8B
KBxKT1IslcfNgYIKeRMX4+fQzwfM16YMatJiJAhLH6STfxUsVb36wsmmrP4h
HJ+0GJ5JqmWrVW/+/Ls3b0FH+tNFnGInIDp9vS3QKEYvgLdxiHBmFOyn3GwJ
to7UA6VH0VflqknFLiH7i1NtYuhHwMaog1frNeDDxY/Z44E/6U06XpuPuDMY
ex1n0Gk7fX/oO85o0nWcYDCeTAaTgdfpe+3RsBc4oz5cGwW+O6HIYuCNeo+x
rabbqW0xhXYPru7lqTYit6Y7wGjTwGeTHpt0MFzNR4w7bADc3cHYUQerkjMf
2MbBCNKki0IqGNTGEzYZ4D94rO9hOGrYYwEQex/usvEIhDtzJzB2Nuoxr78j
YVUN0d09C1eCePa44wz7beei/6zdPnN75+7FeXfQP/N6Fxf9rtvtDJ95Xr/n
nQ+GXsd1zweXZ+1nw273zPHOOs8IsM+6F912x+10h5fuxVnvvN91Ot4zryuA
PTgG1i4Yr0a9KQSzj9tOhn2M6437bEJhQBdg5rJxgA/0fYzcjkmdu13WAX3r
IeQY+AUA0qGHfoEbsAFooTabDPEsH0CKB+1OEC/jLkYK3Q4mCXNo1Ge9oIaN
OYDXCS6Lufuiwds9QU+j4dz9rucOvO7F+fA751kXCHx47lx4Z67bcy4vLy+8
brv7+BhYeqzu5Pteuy6CDIjKHeCcAHbDEZb+7XoEX4pwAkxcl/UcBiYNyAZc
Eexunbo6XbtW+86UJspU8Ee4HznMhDuDx3LfcCzE5Kd0SIvOB9YGBB23iMpV
COEyYauDpFrAkjK21Rfd2xSqcuHiSa+Dps0MvNVuBlL1Oj9GTJ23Ig/G/hOp
iaLaEs3Vex3yO8EuUGaBOJgEGjXObdENiQNcvKbTUcYfGibyWMqCGlJmk97n
rSEq50sFqSjPGLyGUbjw5THoVNQKUZJvnsFTdeQB7Wij5ye5CBhnME40h0oA
mII2EK2oUlxiD400felMllt/3WI/xHQ0Nno4eAK4UlCWJ2Kfw1PUIxVEdvSR
aDJzpPCjD4gVu6rUVU1aeLX0zeKJVeVXyzsFDa6+IoWUXj3iHK1arm/NXtWR
t1u+5m+65pvqkFyWn21lHOJLhwLnb3rmm+pkRaaP6cWfft7n8JgDw2ryhCT7
x2nraTuuHq7r9PTXjnsMHVVJQXUIl+QwdQbXu1K2VqdvbTk8C+tRxHiKfao2
/o5jkFwTP0yMAEEDJC0XexFAjM7imMpGKJcOzzyP4rU40R1YL4rjD0we3ZTF
yziKp2vhbt7O4gilTJzFQRyhgRp8aICtjpwthlznrWmrwboO1oNAyAp90mCz
+NYwb6VIsFvChqZ6ixyjsMeCN7Sjrx3YpU97Z6M43ThqqsTt5j74fWKM9Bgu
q9yA6KH90Uo4ov3M1dKkHtbcX8sD4ZWqAtHEk2iNToh+KvLXpIzyDY7y4Xww
s3hJY5mvoixswl9swQmjUqwbMyp0inADs38txfcYBHwgjXmQh4sUD6WiXeVZ
LmRxW7MAG7alddR4hdt9VM9MlxloMaFahHuqfOhbzFsBcRz5yRQ7XpFzNecI
ozCdS+/YxFgDlLYcE2XHiiHIqcUJAA5re4jOdDeoL4top/gWbs9MYgwXi+00
cg9xDlP1WqpO+LJoRHcgB24PDXGxiMMUqzzehEm8oIaINHBjD6A4XHAf5rda
CMdGen/mrmARiwcWZG/MTTtXQBZcv3S2XEZKSVJqxN0jsQ/pk7lL3+RUH8Bu
1Y9UZo/YtVs4QY0KwCz0MXcvzn9SLGilNSM3ygyHptNr9jpNuHVCPKpq3eSv
4VPiy/f4BR46n/nwz203r+Jo7XjtLoY62FInosNEZTM5t6Zy85rC2N/+/D/b
3b/9+S9I8KHeR23Zf2rzbr/TbuMxf8/CKapXOsXOZnOjmmg5nBATF6/eUWis
ofeENUqDoT5ZI8hwdNK3FE0+SowMGZsv42DWKE5IzFSe+1YXYs0X2AaUyljQ
dmRu77gQ5YAeFmJzVkHkvbk+f/P28pAuzuOzKxaLzfbSlG6Y4gufkROTdC/7
MIByjU0mMLAGDk4mjYlJq22L7LXA/CZwWiKmuFIGr96zJ/fokUQVkjFf49iY
V7xA50Bajy08QBi1alPy1ycVw2HpDIQIUxq3EMfRYNPxjXzHoDFdKiwb00HE
qk5BWhyg3lovg/cUyMwfzwPWxkTE+YzSLcKT/YwZiOgrwcYsJrsvxRSHp9pI
CRNr4QcBwq2X0nyHonGGoqzpZG7I1yOqf//8/GT7uKpZyOp7B0dVzwcQjCcr
j+gYRxig0CU3QrsX+hRo2H/ORe4qm2iIBhhmGxJjvbEY6958JUjOHvy+KC2d
s265cr4P6UlJd6ooCzZ+Hre7j+U3py2/4zf8fuwxwbV8ua3yxx2WfzUOf678
cZzyrw84bsFdZX33yr8a465+1y3/evy4sesd8HbKv+p3t8G7U/71AcddDbPc
HXUG+dehMe7qd3PX2MRV//hxS/mRyBSosr5zeJow6xrvpktQRLzs3c9G35T+
kUu/MLkNU25NwxqsAb7qd/NpVI77WHFW5slrzSBdee0M1A2j/CQ/SZvWSE2/
omgo13Pl9CTXBk/Z48cn4PFDt5XBgIeW3zVWOhTr5/Fj/a3jKkkO9rt7rPQ+
UHh77fyrc6jwNoSg93DD3kt2m2LlUNltsvbRw/5NipIvKUksaH9GQeLeW5KU
cmu9aII9JZvrC8uSGsVFKFxW/qMna/9FfHAckewlSJzChcE+IoQV7x3JhfvY
T06xz+E+lhPrFf4+0vbYR1ywvQQDO1Lg7iMBYLZ78Do7kqu3MrW3ydT8I3qN
6MbZbF2t/xsb7tR+vGzmXOk1PjUyDLTZV1y8JNL27BveJ/jBBQZMtLPKW+cx
k3cxFjtaJnHARVIWIiJMuAiwooMq8vVSEeobOv0utCkfGkuPPcCwX7zkicxJ
Sdk8BofelyX1jIXBIE54089w+SBtxgv421/isuUZriBjcBTEIg2JgrvcTzE7
BmAgCSGb+Qti9Ia6MqcAr8iPo2AvuNXgbWPIWRt66iVRpxFGHMW0VVTHFDhl
2Uzyh3DpZWtzsneaPoWr8tbS1ufGoLGoIdYyWmLkWDlRLEzBqFMKeGBmptJG
P15csbGf+dPEn+sCWiIUv+VtV6XQvju/gssUwldvt+girepTbJAibnNcLTby
6PIKWzKGlxdmxLcxJJ0ssNNW2bIGBYYVWmhAOA2MqAPTUIIjHf4UQdMCM9az
0MFubEjIFxDCbrld04yCMGbgXmQoinKVuOYDsI0TynzQxSMLy+KrzG9SCnMz
jLMmMN0EgJ/j3uaSOKVfMjOtxV5M8uA/IFEX/xJLEPn8VGaCGG+LiaS5PMX5
kfWXlUUnM5pTOwYeT3KNTEKg53X6OCKCK9XNFSEumQWXhEHGxOSQRHUOm6qk
38V3xaqCXklQVdfGody+TQmFlasLpujWYzOD0azuddUKR17hR85IbMYW57jL
HYVt+584rbun79YKd31KNgLztNtjvT4buqwDpDrBjDG3w3inFowwvWY0rNUo
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

-->

</rfc>
