<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ruas-cfrg-ecdp-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="ECDP">ECDP: Elliptic Curve Data Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-ruas-cfrg-ecdp-00"/>
    <author fullname="Isak Ruas">
      <organization>Nrolabs</organization>
      <address>
        <postal>
          <country>BR</country>
        </postal>
        <email>isakruas@nrolabs.com</email>
      </address>
    </author>
    <date year="2024" month="November" day="15"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>peer-to-peer</keyword>
    <keyword>encryption</keyword>
    <keyword>cryptography</keyword>
    <keyword>data protocol</keyword>
    <abstract>
      <?line 41?>

<t>This document specifies the Elliptic Curve Data Protocol (ECDP), a peer-to-peer (P2P) communication protocol tailored for decentralized networks. ECDP utilizes elliptic curve cryptography (ECC) for encryption, employs the Elliptic Curve Digital Signature Algorithm (ECDSA) for message authentication, and leverages the Diffie-Hellman key exchange using elliptic curves for secure session initialization. The protocol supports a variety of elliptic curves (e.g., secp256k1, secp384r1) with varying key sizes, and is designed to operate over both TCP and UDP. Additionally, it utilizes SHA-256 or SHA-512 for cryptographic hash verification to ensure message integrity.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://isakruas.github.io/ecdp/draft-ruas-cfrg-ecdp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ruas-cfrg-ecdp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cfrg"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/isakruas/ecdp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 45?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>P2P networks are widely used for data exchange but often face challenges related to security and data integrity. ECDP addresses these issues by implementing strong cryptographic measures and robust authentication mechanisms. ECDP is designed for scalability and security by enabling nodes to communicate indirectly through a network pool.</t>
      <t>To enhance the security and integrity of the messages exchanged, the protocol employs elliptic curve cryptography (ECC) with various well-established curves, as well as the SHA-256 and SHA-512 algorithms for cryptographic hash functions.</t>
      <t>The protocol dynamically supports different ECC key lengths, ensuring flexibility and forward compatibility with future developments in elliptic curve cryptography.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words <strong>"MUST"</strong>, <strong>"MUST NOT"</strong>, <strong>"REQUIRED"</strong>, <strong>"SHALL"</strong>, <strong>"SHALL NOT"</strong>, <strong>"SHOULD"</strong>, <strong>"SHOULD NOT"</strong>, <strong>"RECOMMENDED"</strong>, <strong>"MAY"</strong>, and <strong>"OPTIONAL"</strong> in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>
    </section>
    <section anchor="goals-of-the-protocol">
      <name>Goals of the Protocol</name>
      <ul spacing="normal">
        <li>
          <t>The protocol <strong>MUST</strong> facilitate secure communication between nodes through a pool network.</t>
        </li>
        <li>
          <t>The protocol <strong>MUST</strong> ensure data integrity and confidentiality of the messages transmitted.</t>
        </li>
        <li>
          <t>The protocol <strong>MUST</strong> authenticate messages using elliptic curve signature schemes, ensuring their origin and integrity.</t>
        </li>
        <li>
          <t>The protocol <strong>MUST</strong> be extensible and support future advances in cryptographic techniques.</t>
        </li>
        <li>
          <t>The protocol <strong>SHOULD</strong> be scalable, able to operate in decentralized large-scale P2P networks.</t>
        </li>
        <li>
          <t>The protocol <strong>MUST</strong> support multiple key sizes for flexible elliptic curve operations.</t>
        </li>
      </ul>
    </section>
    <section anchor="supported-algorithms">
      <name>Supported Algorithms</name>
      <t>ECDP relies on a variety of standardized and widely used algorithms to ensure secure, authenticated, and efficient communication.</t>
      <section anchor="cryptography">
        <name>4.1 Cryptography</name>
        <section anchor="supported-elliptic-curves">
          <name>4.1.1 Supported Elliptic Curves</name>
          <t>ECDP supports the following elliptic curves for encryption, Diffie-Hellman key exchange, and signing operations (ECDSA):</t>
          <ul spacing="normal">
            <li>
              <t><strong>secp192k1</strong></t>
            </li>
            <li>
              <t><strong>secp192r1</strong></t>
            </li>
            <li>
              <t><strong>secp224k1</strong></t>
            </li>
            <li>
              <t><strong>secp224r1</strong></t>
            </li>
            <li>
              <t><strong>secp256k1</strong></t>
            </li>
            <li>
              <t><strong>secp256r1</strong></t>
            </li>
            <li>
              <t><strong>secp384r1</strong></t>
            </li>
            <li>
              <t><strong>secp521r1</strong></t>
            </li>
          </ul>
          <t>Each curve corresponds to a distinct key size. To accommodate different security levels, the protocol includes a parameter for indicating the key size used in message operations. Implementations <strong>MUST</strong> support <strong>secp256k1</strong>, <strong>secp256r1</strong>, and <strong>secp384r1</strong> as a minimum requirement. Support for other curves is <strong>RECOMMENDED</strong> for greater flexibility and stronger cryptography when necessary.</t>
        </section>
        <section anchor="supported-cryptographic-hash-algorithms">
          <name>4.1.2 Supported Cryptographic Hash Algorithms</name>
          <t>ECDP uses cryptographic hash functions for various integrity checks, including <strong>checksums</strong> and <strong>digital signatures</strong>.</t>
          <t>Supported hash functions include:</t>
          <ul spacing="normal">
            <li>
              <t><strong>SHA-256</strong> (RECOMMENDED)</t>
            </li>
            <li>
              <t><strong>SHA-512</strong> (OPTIONAL for longer data integrity verification)</t>
            </li>
          </ul>
          <t>Implementations <strong>MUST</strong> support <strong>SHA-256</strong> as a minimum requirement.</t>
        </section>
      </section>
    </section>
    <section anchor="protocol-operation">
      <name>Protocol Operation</name>
      <section anchor="message-types">
        <name>Message Types</name>
        <ul spacing="normal">
          <li>
            <t><strong>0x01:</strong> Handshake</t>
          </li>
          <li>
            <t><strong>0x02:</strong> Data Transfer</t>
          </li>
          <li>
            <t><strong>0x03:</strong> Acknowledgment (Ack)</t>
          </li>
          <li>
            <t><strong>0x04:</strong> Data Request</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="message-structure">
      <name>Message Structure</name>
      <section anchor="base-message-structure">
        <name>5.1 Base Message Structure</name>
        <t>The base structure contains fields that are common across various message types, with extensions for specific needs. Messages are routed through a pool network to enhance scalability and security.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Description</th>
              <th align="left">Size (bytes)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Protocol Version</td>
              <td align="left">Identifies the version of the ECDP protocol</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Message Type</td>
              <td align="left">Indicates the type of message</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Key Size</td>
              <td align="left">Indicates the ECC key size used (e.g., 192, 224, 256, 384, 521 bits)</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">Sender ECC Public Key</td>
              <td align="left">Public key of the sending node</td>
              <td align="left">Variable (based on key size)</td>
            </tr>
            <tr>
              <td align="left">Receiver ECC Public Key</td>
              <td align="left">Public key of the receiving node (if applicable)</td>
              <td align="left">Variable (based on key size)</td>
            </tr>
            <tr>
              <td align="left">Nonce</td>
              <td align="left">Random number to prevent replay attacks</td>
              <td align="left">8</td>
            </tr>
            <tr>
              <td align="left">Encrypted Data</td>
              <td align="left">Content of the message encrypted using ECC</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Signature</td>
              <td align="left">Digital signature of the sender (ECDSA)</td>
              <td align="left">Variable (based on key size)</td>
            </tr>
          </tbody>
        </table>
        <t>In this structure:
- <strong>Key Size</strong> is a 2-byte field that indicates the key size in bits (e.g., 192, 224, 256, 384, 521). This allows both endpoints to use flexible key sizes as per their security requirements.</t>
      </section>
      <section anchor="handshake-0x01">
        <name>5.2 Handshake (0x01)</name>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Description</th>
              <th align="left">Size (bytes)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Protocol Version</td>
              <td align="left">Identifies the version of the ECDP protocol</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Message Type</td>
              <td align="left">Set to Handshake (0x01)</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Key Size</td>
              <td align="left">Indicates the ECC key size used</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">Sender ECC Public Key</td>
              <td align="left">Public key of the sending node</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Receiver ECC Public Key</td>
              <td align="left">Public key of the receiving node</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Nonce</td>
              <td align="left">Random number to prevent session replay</td>
              <td align="left">8</td>
            </tr>
            <tr>
              <td align="left">Node Identifier</td>
              <td align="left">Unique ID of the node (e.g., hash of the public key)</td>
              <td align="left">32</td>
            </tr>
            <tr>
              <td align="left">Node Capability</td>
              <td align="left">Information about bandwidth and supported data types</td>
              <td align="left">4</td>
            </tr>
            <tr>
              <td align="left">Signature</td>
              <td align="left">Digital signature of the sender (ECDSA)</td>
              <td align="left">Variable</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="data-transfer-0x02">
        <name>5.3 Data Transfer (0x02)</name>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Description</th>
              <th align="left">Size (bytes)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Protocol Version</td>
              <td align="left">Identifies the version of the ECDP protocol</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Message Type</td>
              <td align="left">Set to Data Transfer (0x02)</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Key Size</td>
              <td align="left">Indicates the ECC key size used</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">Sender ECC Public Key</td>
              <td align="left">Public key of the sending node</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Receiver ECC Public Key</td>
              <td align="left">Public key of the receiving node</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Nonce</td>
              <td align="left">Exclusive random number for the session</td>
              <td align="left">8</td>
            </tr>
            <tr>
              <td align="left">Encrypted Data</td>
              <td align="left">Message content encrypted using ECC</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Checksum</td>
              <td align="left">Cryptographic hash (SHA-256 or SHA-512) for data integrity verification</td>
              <td align="left">32 or 64</td>
            </tr>
            <tr>
              <td align="left">Signature</td>
              <td align="left">Digital signature of the sender (ECDSA)</td>
              <td align="left">Variable</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="acknowledgment-ack-0x03">
        <name>5.4 Acknowledgment (Ack) (0x03)</name>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Description</th>
              <th align="left">Size (bytes)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Protocol Version</td>
              <td align="left">Identifies the version of the ECDP protocol</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Message Type</td>
              <td align="left">Set to Acknowledgment (0x03)</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Nonce</td>
              <td align="left">Random number corresponding to the session</td>
              <td align="left">8</td>
            </tr>
            <tr>
              <td align="left">Message Hash</td>
              <td align="left">Hash of the received data message (SHA-256 or SHA-512)</td>
              <td align="left">32 or 64</td>
            </tr>
            <tr>
              <td align="left">Status</td>
              <td align="left">Indicates Success (0x00) or Error (0x01)</td>
              <td align="left">1</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="data-request-0x04">
        <name>5.5 Data Request (0x04)</name>
        <table>
          <thead>
            <tr>
              <th align="left">Field</th>
              <th align="left">Description</th>
              <th align="left">Size (bytes)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Protocol Version</td>
              <td align="left">Identifies the version of the ECDP protocol</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Message Type</td>
              <td align="left">Set to Data Request (0x04)</td>
              <td align="left">1</td>
            </tr>
            <tr>
              <td align="left">Key Size</td>
              <td align="left">Indicates the ECC key size used</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">Sender ECC Public Key</td>
              <td align="left">Public key of the requesting node</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Receiver ECC Public Key</td>
              <td align="left">Public key of the data-holding node</td>
              <td align="left">Variable</td>
            </tr>
            <tr>
              <td align="left">Nonce</td>
              <td align="left">Random number for the session</td>
              <td align="left">8</td>
            </tr>
            <tr>
              <td align="left">Data Identifier</td>
              <td align="left">Unique hash or ID of the requested data (using SHA-256, SHA-512)</td>
              <td align="left">32 or 64</td>
            </tr>
            <tr>
              <td align="left">Signature</td>
              <td align="left">Digital signature of the sender (ECDSA)</td>
              <td align="left">Variable</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>ECDP employs ECC for secure communication between nodes, with messages authenticated through ECDSA. The inclusion of a <strong>Key Size</strong> field allows nodes to negotiate and use varying key lengths based on the curve chosen, ensuring flexibility in security levels.</t>
      <t>Nonces are used to prevent replay attacks. The protocol uses the Diffie-Hellman key exchange over elliptic curves for secure session initialization. The following elliptic curves are supported, with corresponding key sizes:</t>
      <ul spacing="normal">
        <li>
          <t>secp192k1 (192-bit)</t>
        </li>
        <li>
          <t>secp192r1 (192-bit)</t>
        </li>
        <li>
          <t>secp224k1 (224-bit)</t>
        </li>
        <li>
          <t>secp224r1 (224-bit)</t>
        </li>
        <li>
          <t>secp256k1 (256-bit) (<strong>RECOMMENDED</strong>)</t>
        </li>
        <li>
          <t>secp256r1 (256-bit) (<strong>RECOMMENDED</strong>)</t>
        </li>
        <li>
          <t>secp384r1 (384-bit) (<strong>RECOMMENDED</strong>)</t>
        </li>
        <li>
          <t>secp521r1 (521-bit)</t>
        </li>
      </ul>
      <section anchor="additional-recommendations">
        <name>Additional Recommendations</name>
        <ul spacing="normal">
          <li>
            <t>Implementations <strong>SHOULD</strong> regularly update their cryptographic libraries to maintain security against evolving threats.</t>
          </li>
          <li>
            <t>Nodes <strong>MUST</strong> verify the signatures of incoming messages to ensure authenticity.</t>
          </li>
          <li>
            <t>Nonce sizes <strong>MUST</strong> be sufficient (8 bytes at minimum) to prevent replay attacks.</t>
          </li>
          <li>
            <t>It is <strong>RECOMMENDED</strong> that nodes securely store their private keys using encryption and protected hardware when possible to prevent unauthorized access.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no actions directed at IANA at this time. However, if future protocol updates require additional message types, code points, or other attributes, a registration with IANA <strong>MAY</strong> be required.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC5639">
        <front>
          <title>Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation</title>
          <author fullname="M. Lochter" initials="M." surname="Lochter"/>
          <author fullname="J. Merkle" initials="J." surname="Merkle"/>
          <date month="March" year="2010"/>
          <abstract>
            <t>This memo proposes several elliptic curve domain parameters over finite prime fields for use in cryptographic applications. The domain parameters are consistent with the relevant international standards, and can be used in X.509 certificates and certificate revocation lists (CRLs), for Internet Key Exchange (IKE), Transport Layer Security (TLS), XML signatures, and all applications or protocols based on the cryptographic message syntax (CMS). This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="5639"/>
        <seriesInfo name="DOI" value="10.17487/RFC5639"/>
      </reference>
      <reference anchor="RFC4492">
        <front>
          <title>Elliptic Curve Cryptography (ECC) Cipher Suites for Transport Layer Security (TLS)</title>
          <author fullname="S. Blake-Wilson" initials="S." surname="Blake-Wilson"/>
          <author fullname="N. Bolyard" initials="N." surname="Bolyard"/>
          <author fullname="V. Gupta" initials="V." surname="Gupta"/>
          <author fullname="C. Hawk" initials="C." surname="Hawk"/>
          <author fullname="B. Moeller" initials="B." surname="Moeller"/>
          <date month="May" year="2006"/>
          <abstract>
            <t>This document describes new key exchange algorithms based on Elliptic Curve Cryptography (ECC) for the Transport Layer Security (TLS) protocol. In particular, it specifies the use of Elliptic Curve Diffie-Hellman (ECDH) key agreement in a TLS handshake and the use of Elliptic Curve Digital Signature Algorithm (ECDSA) as a new authentication mechanism. This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4492"/>
        <seriesInfo name="DOI" value="10.17487/RFC4492"/>
      </reference>
      <reference anchor="RFC6979">
        <front>
          <title>Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
          <author fullname="T. Pornin" initials="T." surname="Pornin"/>
          <date month="August" year="2013"/>
          <abstract>
            <t>This document defines a deterministic digital signature generation procedure. Such signatures are compatible with standard Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures and can be processed with unmodified verifiers, which need not be aware of the procedure described therein. Deterministic signatures retain the cryptographic security features associated with digital signatures but can be more easily implemented in various environments, since they do not need access to a source of high-quality randomness.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="6979"/>
        <seriesInfo name="DOI" value="10.17487/RFC6979"/>
      </reference>
    </references>
    <?line 206?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors acknowledge the valuable contributions of cryptographic and P2P networking experts. Special thanks to those who provided feedback on elliptic curve performance and secure key storage recommendations.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
3pskvNZH1tXZCVBEtjTtcB1E/wEsLJF/7TAAAA==

-->

</rfc>
