<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-muhammad-apkp-pqcprotocol-00" category="exp" submissionType="independent" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Pure PQ Protocol">New Pure Post-Quantum Protocol Specification</title>
    <seriesInfo name="Internet-Draft" value="draft-muhammad-apkp-pqcprotocol-00"/>
    <author initials="A." surname="Muhammad" fullname="Abdelaziz Muhammad">
      <organization/>
      <address>
        <postal>
          <city>Cairo</city>
          <country>Egypt</country>
        </postal>
        <email>abdoprofessional1011@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="16"/>
    <abstract>
      <?line 84?>

<t>The Abdelaziz Pure Key Protocol, a.k.a. APKP, was designed to protect systems with pure post-quantum mechanics and transition to full PQC in the future. It is used in high-security environments to protect against quantum attacks.</t>
    </abstract>
  </front>
  <middle>
    <?line 88?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Abdelaziz Pure Key Protocol is a pure PQC protocol designed to protect systems against transport layer attacks using post-quantum algorithms. It was designed with privacy and security in mind. The protocol uses a variety of algorithms and techniques to ensure the protocol is heavily secured. This can be used in any service, including VPNs, finance services, etc. Every packet going into the service MUST be timestamped and nonced. The clients that connect MUST also solve the PoW. If the PoW is missing, malformed, or takes &gt;450ms to solve, the connection is aborted instantly.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all
   capitals, as shown here.</t>
    </section>
    <section anchor="explanation-of-each-task-and-algorithm">
      <name>Explanation of Each 'Task' and Algorithm</name>
      <t>In this section, each "task" and algorithm's functions and operations are explained, along with how they are used in specific areas of the protocol.</t>
      <section anchor="cryptographic-based-pow-solving">
        <name>Cryptographic-Based PoW Solving</name>
        <t>It is a "task". Its function is to make clients solve a cryptographic hash that is completely different for each connection, along with different instructions to solve.</t>
      </section>
      <section anchor="ml-dsa">
        <name>ML-DSA</name>
        <t>It is an MLWE Digital Signature Algorithm <xref target="FIPS204"/> primarily used outside the protocol for mutual authentication. Its function in the protocol is to sign and verify to ensure that the server is the only destination recipient. When a service is booted, a 3-hour rotating ML-DSA certificate is generated. It is required for the client to generate an ML-DSA certificate for every connection.</t>
      </section>
      <section anchor="ml-kem-768">
        <name>ML-KEM-768</name>
        <t>It is a post-quantum MLWE algorithm <xref target="FIPS203"/> primarily used to derive the shared secret and encapsulate ciphertext. Its function in the protocol is to derive an SS (Shared Secret) and encapsulate ciphertext. When a service is booted up, it uses ephemeral 3-hour rotating ML-KEM keypairs. It is also required for the client to generate rotating ML-KEM keypairs every time a connection is made.</t>
      </section>
      <section anchor="hqc-256">
        <name>HQC-256</name>
        <t>It is an algorithm used with ML-KEM. HQC-256 is also used to encapsulate ciphertext but adds intended noise to the ciphertext. HQC is also used with ML-KEM to generate the final master keys for AES.</t>
      </section>
      <section anchor="aes-256-gcm">
        <name>AES-256-GCM</name>
        <t>It is an encryption algorithm primarily used outside the protocol for encrypting plaintext. Its function in the protocol, after a successful handshake, is to encrypt packets in the form: 
<tt>AES-256-GCM(PLAINTEXT || METADATA || INTENDPROTOCOL)+TMS+COUNTNON+TAG</tt> where:
   * PLAINTEXT refers to the plain data being sent.
   * INTENDPROTOCOL refers to the intended protocol (like TLS). Due to early testing, developers MUST add INTENDPROTOCOL. However, in future services, developers MAY use it without intending a protocol provided INTENDPROTOCOL is labelled "AHKP". This does not mean INTENDPROTOCOL is removed, as it is required. It operates in Galois/Counter Mode <xref target="NIST-SP800-38D"/>.
   * The || or double pipes refer to binary byte concatenation.</t>
      </section>
      <section anchor="shake256">
        <name>SHAKE256</name>
        <t>It is an XOF algorithm <xref target="FIPS202"/> that, outside the protocol, is primarily used to stretch and extend bytes, generate seeds, and derive the output to be fed into the HKDF to get the final key used for the decryption of other encryption algorithms. Its function in the protocol is to derive the output for HKDF. However, developers SHOULD add seeds if the purpose is towards more security. The only exception is for HKDF, where seeds are REQUIRED as the IKM of the HKDF-Extract.</t>
      </section>
      <section anchor="hkdf-via-sha-384-salting">
        <name>HKDF via SHA-384 + salting</name>
        <t>It is an HMAC-based algorithm <xref target="RFC5869"/> used for deriving the final keys for AES-256-GCM. The output of SHAKE-256 is hashed to obtain the PRK to create the final AES keys.</t>
      </section>
    </section>
    <section anchor="handshake-and-connection-establishment">
      <name>Handshake and Connection Establishment</name>
      <t>The handshake first begins when a client sends a hello to the server. The server replies with a PoW for the client to solve. The client MUST solve the PoW in &lt;450ms. If the client fails to do so, solves the PoW in &gt; 450ms, or uses a wrong answer, the handshake is aborted. The PoW MUST be different with different instructions for each connection. Then, the client sends the HWID to the server. If the HWID is malformed or corrupt, or if there are suspicious behaviors checked by the server, it MUST abandon the handshake. The server checks the HWID against a BLK (blacklist). If whitelisted, the connection continues, and vice versa. Then, the client generates an ML-DSA certificate. It signs the packet using the private key and sends it to the server. The packet is REQUIRED to be in the form of <tt>ML-DSA(METADATA || UNIQUE_ID || POW || SERVER_PUB_IP_AND_PORT)</tt>. The server does not check the POW twice. If any fields are missing or the signature is corrupt, safely abandon the handshake and drop the remaining packets. The server verifies the signature using the public key. The server responds using its 3-hour ML-DSA private key to sign the certificate. The public IP and port MUST be grabbed from the system and MUST NOT be grabbed from the database. If the source code is modified to grab from the database or the IP is spoofed, instantly drop the connection. Once the signatures are verified, the client generates an ML-KEM and HQC keypair. Both MUST send the public keys and encapsulate the ciphertext in accordance with Section 8.1 ("Vulnerabilities and Fixes") in this document. To prevent further MITM attacks, ML-DSA MUST sign both the HQC and ML-KEM keypairs to verify the signature and derive the SS using <tt>SHAKE256(HQC-SS(32) || ML-KEM-SS(32) || ML-KEM-CT || HQC-CT || CONTEXT(16))</tt>. HKDF via SHA-384 MUST be used in accordance with <xref target="RFC5869"/>, which is used to create the final keys to decrypt the AES encrypted packets. Once formed, both send packets in the form <tt>AES-256-GCM(PLAINTEXT || METADATA || INTENDPROTOCOL)+TMS+COUNTNON+TAG</tt>. If the final key is entirely different, errors will occur. To detect if the final key is different, a minimum and maximum of 1 error regarding the key MUST be detected to abort the connection. Every packet from the start of the handshake to the end of the handshake MUST be sent with RNGNON and TMS, and every packet from the start of the connection to the end of the connection MUST be sent with TMS, COUNTNON, and formatted with AEAD in accordance with <xref target="RFC5116"/>.</t>
      <section anchor="meanings">
        <name>Meanings</name>
        <table>
          <thead>
            <tr>
              <th align="left">Abbreviation</th>
              <th align="left">Meaning</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">POW</td>
              <td align="left">Proof of Work</td>
            </tr>
            <tr>
              <td align="left">TMS</td>
              <td align="left">Timestamp</td>
            </tr>
            <tr>
              <td align="left">RNGNON</td>
              <td align="left">Nonces generated via CSPRNGs</td>
            </tr>
            <tr>
              <td align="left">TAG</td>
              <td align="left">AEAD tag of AES-256-GCM</td>
            </tr>
            <tr>
              <td align="left">COUNTNON</td>
              <td align="left">Counting nonce of AES-256-GCM</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="networking-and-packet-forms">
      <name>Networking and Packet Forms</name>
      <t>Due to the ML-KEM and HQC keys, the ML-DSA certificates, and other content, the expected packet size is 22-27KB. This introduces challenges where it may collide with the issues outlined in Section 8.1 ("Vulnerabilities and Fixes") in this document. To prevent this, split the UDP packets in accordance with <xref target="RFC7383"/> and number them so the server knows how to reorganize them. APKP that uses UDP adheres to the best current practices as defined in <xref target="RFC8085"/>, Packet encapsulation may be subject to standards such as <xref target="IEEE-802.1Q"/>. All protocol metadata, such as message type indicators and numbering adhere to the formats in <xref target="RFC7749"/></t>
      <section anchor="tcp-and-udp">
        <name>TCP and UDP</name>
        <t>TCP prioritizes organization over speed <xref target="RFC9293"/>, using three-way handshakes (SYN, SYN-ACK, ACK). TCP also tracks the number of bytes that are sent, and if any packets are lost or corrupted, TCP requires retransmission. However, TCP may bundle multiple messages into one packet (also called packetization) and may delay sending small messages to group them into one. This may cause errors with the messages. To prevent this, add an MTI or Message Type Indicator to each message. TCP is also vulnerable to TCP SYN flood attacks. To mitigate this, APKP MUST implement SYN flood control in accordance with <xref target="RFC4987"/>. UDP prioritizes speed over organization <xref target="RFC0768"/>, leading to congestion and, due to disorganization, servers getting confused. To prevent this, number each message and payload and indicate its type by MTI before reaching the server. The protocol MUST implement congestion control using CUBIC. This implements a reliable transport shim over UDP. ensuring TCP-friendly bandwidth, while manintaing the speed and flexiability of UDP. The packets are in the form of the source and destination IP, the source MAC address and the context of the payload, all encapsulated in a Wi-Fi or Ethernet frame and signed with the initial keys to prevent modification or injection into the packet.</t>
      </section>
    </section>
    <section anchor="benefits-over-existing-protocols-like-tls">
      <name>Benefits over Existing Protocols like TLS</name>
      <t>TLS 1.3 is known to use X25519 in its protocol and ECDSA <xref target="RFC7748"/>, but ML-DSA will be finalized into TLS 1.3. Even PQ-TLS uses a hybrid mix of ML-KEM and X25519. Since TLS 1.3 uses X25519, an attacker with a quantum computer can and will downgrade TLS 1.3 even if it is post-quantum. TLS 1.3 already prevents this and therefore does not count for APKP as a benefit. However, using HQC as a replacement for X25519 is a benefit to TLS because HQC-256 is a post-quantum KEM algorithm that is secure against quantum computers. This eliminates the risk of a hybrid protocol being cracked if downgraded to X25519. TLS has already dropped support for RSA and other weak algorithms in its suite and mandated PFS. APKP's way of approaching PFS is to generate an hourly-rotating initial session for the server, and generated every time the user launches the client application. It then uses these initial keys to sign, decapsulate, and acquire the actual public key used for the derivation of the SS. This provides a benefit because, first, instead of an attacker targeting one keypair, an attacker must target two post-quantum keypairs; and second, because the initial keypairs are REQUIRED to decrypt and acquire the public key used for the connection. This process is entirely out of DH key exchange and ECDH. APKP MUST NOT use a suite of tools to prevent any advanced downgrade. APKP also MUST protect the keys in accordance with Section 8.1 ("Vulnerabilities and Fixes") in this document. When a client in TLS initiates a ClientHello, the server instantly commits its memory and CPU to do heavy math. This results in DDoS. The PoW fixes this. By mandating that PoWs be solved in &lt; 450ms and blocking connections to botnets detected spamming invalid PoW solutions, it prevents DDoS attacks. This is also a benefit to APKP.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Timestamping protects from replay but does not protect from side-channel attacks. The same goes for CSPRNG and counting nonces. Other vulnerabilities different from side-channel attacks may go unnoticed. To prevent this, the protocol MUST implement these fixes.</t>
      <section anchor="vulnerabilities-and-fixes">
        <name>Vulnerabilities and Fixes</name>
        <ol spacing="normal" type="1"><li>
            <t>An attacker can and will craft specialized packets to see how the server responds. This could be a major flaw, revealing the private key through timing. To prevent this, the server MUST respond within exactly 75ms. Or, if under load, extend to 145ms. This only applies to the server execution time. It MUST NOT apply to the client nor the normal server network response time of 150ms or up to 475ms under heavy load. Another flaw is that the chip uses a changing number of CPU cycles that, if measured by power cycles or electromagnetic spikes, could be mapped out and also leak the private key. To prevent this, operations MUST be shuffled randomly using the GPU, an HSM, or TPM, like moving A to C, B to D, F to E. The selected hardware MUST be set and never changed. Masking MUST be applied where sensitive actions are divided into mathematical shares and masked using arithmetic operations. When a security operation is completed in 2ms, the remaining milliseconds MUST be filled with basic arithmetic tasks. If done in the GPU, it is REQUIRED to be hidden in a protected environment.</t>
          </li>
          <li>
            <t>An attacker can and will capture PoW answers and other important data to fake an authentic connection. To prevent this, make sure the client responds within a specified 375ms. If the 375ms limit is exceeded, drop the connection. This only represents the total round-trip time. Also, limit the number of packets entering to prevent replay. This also aids in combating DDoS and replay attacks. Nonces and timestamps already prevent replay, but limiting packets is a backup if they fail.</t>
          </li>
          <li>
            <t>An attacker can and will send malformed ML-KEM keys or HQC keys. They can also send malformed ML-DSA certificates and ciphertext. This leaves a massive door open for vulnerabilities like downgrading, man-in-the-middle attacks, and eavesdropping. To prevent this, the server MUST check if the ML-DSA certificate was created very recently (within the last 30 seconds), matches its expected form, and matches a specific ID generated by both the client and server. The same applies for the keys: check if the ML-KEM or X25519 keys match their expected form, and check for any anomalies like a different HWID, MAC, IMEI, or IP address than what was seen before. Implement strict AEAD authentication so that if anything in it was modified or injected, it instantly self-destructs. This is still vulnerable to Layer 2 attacks, such as ARP poisoning, which are external. To prevent this, the protocol MUST check if the HWID is different than before. Also, inspect the ARP packets using DAI. The HWID MUST be signed <xref target="RFC0826"/>.</t>
          </li>
          <li>
            <t>An attacker can and will turn the PoW for the server to solve it instead of the client. This leaves a door for buffer overflow, resource exhaustion, or coordinated DDoS attacks. To prevent this, if the PoW is sent unsolved and a malicious code tells the server to solve it instead, instantly drop the packet and connection, and flag the attacker responsible. This prevents "turning the tables" from happening. The malicious code could be hidden from the server and executed once the POW is inspected. Making the POW read-only is a way to prevent this.</t>
          </li>
          <li>
            <t>An attacker can and will flood the server with thousands of invalid PoW solutions. This blocks legitimate users and is an alternative way to DDoS a server. To prevent this, if thousands of packets spike suddenly, block connections that send invalid PoW solutions and blacklist them. Check each POW in a group, where a group contains 40 answers. The DDoS attacks could be blended with traffic. Wipe each POW from memory after checking and check if there are more invalid solutions than normal.</t>
          </li>
          <li>
            <t>An attacker can and will collect a user's sensitive device identifiers if they are transmitted in plaintext. Note that source/destination IP addresses and MAC addresses are inherently visible in unencrypted network and link-layer headers for packet routing, meaning encrypting them inside the application payload does not hide them from network eavesdroppers. However, internal identifiers like the IMEI are not part of standard routing headers and must be protected. Furthermore, hashing identifiers with SHA-256 creates a one-way value that cannot be decrypted back to plaintext by the server. To resolve this, the client MUST encrypt the IMEI and HWID using AES-256-GCM without hashing them first. The payload MUST be in the form <tt>AES-256-GCM(IMEI || HWID)</tt> to be safely decrypted by the server. The server then validates these decrypted identifiers, along with the actual source IP and MAC addresses extracted directly from the incoming network packet headers, against its blacklist. If there is a massive unnatural surge, block the connections and do not reply.</t>
          </li>
          <li>
            <t>An attacker can and will try to guess the public and private key on a server. This can lead to users getting spied on without knowing. 3-hour rotating keys, blacklists, and every-connection generation for clients already combat this. However, if an attacker takes the final AES key from the connection they have made and uses it against users, it will lead to a massive amount of people's data being stolen. To prevent this, the final key MUST be wiped and expired every time the connection is ended on both the client and the server. The key also MUST stay hidden from the user in a protected, isolated environment; for example, zeroized memory or ephemeral protected enclaves.</t>
          </li>
          <li>
            <t>An attacker with a quantum computer can and will exhaust the 3-hour rotating keys. This will leave a door to an advanced downgrade, leading to users getting eavesdropped on. To prevent this, the system will remember this key for 3 hours. This will still be vulnerable to buffer overflow and, if the server is hacked, a full leak. The memory is REQUIRED to be read-only and limited to prevent buffer overflow, completely isolated from the network, and put in a protected enclave.</t>
          </li>
          <li>
            <t>An attacker can and will disrupt the CSPRNGs. This opens a door for even more DDoS attacks. To prevent this, use hardware-based CSPRNGs. This ensures that even if the server is hit with coordinated DDoS attacks, the hardware never fails. Isolate the CSPRNGs from the network. To ensure the integrity of numbers, implementations MUST adhere to the standards outlined in <xref target="NIST-SP800-90A"/>.</t>
          </li>
          <li>
            <t>The time could drift off at any given time. If this happens, it will be permanent. To prevent this, an atomic clock SHOULD be used, but it is OPTIONAL. The clock's NTP configuration MUST be updated every 24 hours to prevent time drifts. It also MUST be isolated from the network. To prevent attackers from disrupting the NTP, there should be a separate clock to be updated manually and completely isolated. To prevent time drift, the NTP MUST be managed in accordance with <xref target="RFC5905"/>.</t>
          </li>
          <li>
            <t>Failsafe Tuning: To prevent legitimate users from getting dropped, the client is REQUIRED to measure the speed of the local local network, along with pinging test servers. To prevent attackers from abusing this tuning, the client checks for client-side and server-side internet speed throttlers and ping throttlers. In normal conditions, where the speed is &gt; 40Mbps and the pinging of test servers is &lt; 150ms, the floor and ceiling are exactly still 450ms to prevent further false positives in cases where there is high traffic or network congestion. At this stage, the client appends a special identifier that MUST be sent unencrypted. It MUST add this identifier, and if it is missing, malformed, or does not match its expected form of being with metadata about the connection, the packet will be instantly rejected, along with the connection being dropped.</t>
          </li>
          <li>
            <t>An attacker can and will send packets and/or fragmented packets. This opens a door for DDoS attacks via memory. To prevent this, allocate 575ms for each packet or fragmented packet. If it exceeds this, then the packets are forgotten by the server.</t>
          </li>
          <li>
            <t>An attacker can and will exploit cryptanalysis. If done, it will open a door for eavesdropping. To prevent this, implement a PFS-style policy. Both peers MUST generate an initial rotating ML-KEM-768 and HQC-256 keypair. For users, it is generated every time the client application is opened. For servers, it is generated every hour for initial keys and certificates, while for actual connection keys, it will be every three hours. The actual public key that will be used for the connection MUST be encrypted and signed with those initial keypairs and certificates. However, cryptanalysis will be on the initial keys. To mitigate this, as listed in Section 4 ("Handshake and Connection Establishment") in this document, both peers MUST mutually authenticate each other using ML-DSA, and every packet from the start of the handshake to the end MUST be signed.</t>
          </li>
          <li>
            <t>Bugs may occur if not configured properly, To prevent this, (7, Vulnerabilities and Fixes) and (3, Explanation of Each 'Task' and Algorithm) MUST implement requirements as defined in <xref target="NIST-SP800-140"/>.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests IANA to assign a dedicated global system port identifier for the Abdelaziz Pure Key Protocol across both UDP and TCP transport mediums to ensure standardized service identification and packet routing.</t>
      <t>Associated Port Parameters:
 * Protocol: UDP and TCP
 * Port Number: 62192 (Requested for experimental testing)
 * Service Name: apkp
 * Description: Abdelaziz Pure Key Protocol</t>
      <t>Furthermore, this document requests the creation of a new IANA registry titled the "APKP Cryptographic Suite Registry". This registry will manage and track 16-bit identifiers for future hybrid post-quantum algorithm suites, ensuring that extensions or modifications to the baseline algorithm mix can be securely negotiated.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC0768" target="https://www.rfc-editor.org/info/rfc768" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0768.xml">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="RFC0826" target="https://www.rfc-editor.org/info/rfc826" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0826.xml">
          <front>
            <title>An Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware</title>
            <author fullname="D. Plummer" initials="D." surname="Plummer"/>
            <date month="November" year="1982"/>
            <abstract>
              <t>The purpose of this RFC is to present a method of Converting Protocol Addresses (e.g., IP addresses) to Local Network Addresses (e.g., Ethernet addresses). This is an issue of general concern in the ARPA Internet Community at this time. The method proposed here is presented for your consideration and comment. This is not the specification of an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="37"/>
          <seriesInfo name="RFC" value="826"/>
          <seriesInfo name="DOI" value="10.17487/RFC0826"/>
        </reference>
        <reference anchor="RFC5116" target="https://www.rfc-editor.org/info/rfc5116" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5116.xml">
          <front>
            <title>An Interface and Algorithms for Authenticated Encryption</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>This document defines algorithms for Authenticated Encryption with Associated Data (AEAD), and defines a uniform interface and a registry for such algorithms. The interface and registry can be used as an application-independent set of cryptoalgorithm suites. This approach provides advantages in efficiency and security, and promotes the reuse of crypto implementations. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5116"/>
          <seriesInfo name="DOI" value="10.17487/RFC5116"/>
        </reference>
        <reference anchor="RFC5869" target="https://www.rfc-editor.org/info/rfc5869" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC5905" target="https://www.rfc-editor.org/info/rfc5905" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5905.xml">
          <front>
            <title>Network Time Protocol Version 4: Protocol and Algorithms Specification</title>
            <author fullname="D. Mills" initials="D." surname="Mills"/>
            <author fullname="J. Martin" initials="J." role="editor" surname="Martin"/>
            <author fullname="J. Burbank" initials="J." surname="Burbank"/>
            <author fullname="W. Kasch" initials="W." surname="Kasch"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Network Time Protocol (NTP) is widely used to synchronize computer clocks in the Internet. This document describes NTP version 4 (NTPv4), which is backwards compatible with NTP version 3 (NTPv3), described in RFC 1305, as well as previous versions of the protocol. NTPv4 includes a modified protocol header to accommodate the Internet Protocol version 6 address family. NTPv4 includes fundamental improvements in the mitigation and discipline algorithms that extend the potential accuracy to the tens of microseconds with modern workstations and fast LANs. It includes a dynamic server discovery scheme, so that in many cases, specific server configuration is not required. It corrects certain errors in the NTPv3 design and implementation and includes an optional extension mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5905"/>
          <seriesInfo name="DOI" value="10.17487/RFC5905"/>
        </reference>
        <reference anchor="RFC7383" target="https://www.rfc-editor.org/info/rfc7383" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7383.xml">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation</title>
            <author fullname="V. Smyslov" initials="V." surname="Smyslov"/>
            <date month="November" year="2014"/>
            <abstract>
              <t>This document describes a way to avoid IP fragmentation of large Internet Key Exchange Protocol version 2 (IKEv2) messages. This allows IKEv2 messages to traverse network devices that do not allow IP fragments to pass through.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7383"/>
          <seriesInfo name="DOI" value="10.17487/RFC7383"/>
        </reference>
        <reference anchor="RFC9293" target="https://www.rfc-editor.org/info/rfc9293" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9293.xml">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="FIPS202">
          <front>
            <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="PUB 202"/>
        </reference>
        <reference anchor="FIPS203">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="PUB 203"/>
        </reference>
        <reference anchor="FIPS204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="PUB 204"/>
        </reference>
        <reference anchor="NIST-SP800-38D">
          <front>
            <title>Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM)</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2007" month="November"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-38D"/>
        </reference>
        <reference anchor="NIST-SP800-90A">
          <front>
            <title>Recommendation for Random Number Generation Using Deterministic Random Bit Generators</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2015" month="June"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-90A"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC4987" target="https://www.rfc-editor.org/info/rfc4987" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4987.xml">
          <front>
            <title>TCP SYN Flooding Attacks and Common Mitigations</title>
            <author fullname="W. Eddy" initials="W." surname="Eddy"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>This document describes TCP SYN flooding attacks, which have been well-known to the community for several years. Various countermeasures against these attacks, and the trade-offs of each, are described. This document archives explanations of the attack and common defense techniques for the benefit of TCP implementers and administrators of TCP servers or networks, but does not make any standards-level recommendations. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4987"/>
          <seriesInfo name="DOI" value="10.17487/RFC4987"/>
        </reference>
        <reference anchor="RFC7748" target="https://www.rfc-editor.org/info/rfc7748" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7748.xml">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="RFC7749" target="https://www.rfc-editor.org/info/rfc7749" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7749.xml">
          <front>
            <title>The "xml2rfc" Version 2 Vocabulary</title>
            <author fullname="J. Reschke" initials="J." surname="Reschke"/>
            <date month="February" year="2016"/>
            <abstract>
              <t>This document defines the "xml2rfc" version 2 vocabulary: an XML-based language used for writing RFCs and Internet-Drafts.</t>
              <t>Version 2 represents the state of the vocabulary (as implemented by several tools and as used by the RFC Editor) around 2014.</t>
              <t>This document obsoletes RFC 2629.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7749"/>
          <seriesInfo name="DOI" value="10.17487/RFC7749"/>
        </reference>
        <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8085" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8085.xml">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert"/>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms. This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP. Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t>
              <t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic. They may also need to implement additional mechanisms, depending on how they use UDP.</t>
              <t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t>
              <t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="145"/>
          <seriesInfo name="RFC" value="8085"/>
          <seriesInfo name="DOI" value="10.17487/RFC8085"/>
        </reference>
        <reference anchor="NIST-SP800-140">
          <front>
            <title>FIPS 140-3 Derived Test Requirements</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2020" month="March"/>
          </front>
          <seriesInfo name="NIST Special Publication" value="800-140"/>
        </reference>
        <reference anchor="IEEE-802.1Q">
          <front>
            <title>IEEE Standard for Local and metropolitan area networks—Bridges and Bridged Networks</title>
            <author>
              <organization>IEEE</organization>
            </author>
            <date year="2018" month="July"/>
          </front>
          <seriesInfo name="IEEE" value="802.1Q"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
vkAQtdfe/wBMyZe0dFkAAA==

-->

</rfc>
