<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wagner-tls-keysharepqc-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="keyshare">New Key Share Extension for Classic McEliece Algorithms</title>
    <seriesInfo name="Internet-Draft" value="draft-wagner-tls-keysharepqc-02"/>
    <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
      <organization>UNC Charlotte</organization>
      <address>
        <postal>
          <street>9201 University City Blvd</street>
          <city>Charlotte, NC</city>
          <code>28223</code>
          <country>USA</country>
        </postal>
        <email>jwagne31@charlotte.edu</email>
      </address>
    </author>
    <author initials="Y." surname="Wang" fullname="Yongge Wang">
      <organization>UNC Charlotte</organization>
      <address>
        <postal>
          <street>9201 University City Blvd</street>
          <city>Charlotte, NC</city>
          <code>28223</code>
          <country>USA</country>
        </postal>
        <email>yongge.wang@charlotte.edu</email>
      </address>
    </author>
    <date year="2025" month="May" day="23"/>
    <area/>
    <workgroup>Transport Layer Security</workgroup>
    <keyword>key share</keyword>
    <keyword>Classic McEliece</keyword>
    <abstract>
      <?line 230?>

<t>RFC 8446 is modified to where another key share extension is introduced to accommodate both public keys and ciphertexts in ClientHello and ServerHello messages for post-quantum algorithms that have large public keys, including algorithms of the code-based cryptographic scheme Classic McEliece.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://jwagrunner.github.io/internet-draft/draft-wagner-tls-keysharepqc.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wagner-tls-keysharepqc/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security  mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/jwagrunner/internet-draft"/>.</t>
    </note>
  </front>
  <middle>
    <?line 234?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Large public key algorithms, including the code-based cryptographic algorithm family Classic McEliece (see <xref target="SJ25"/>, <xref target="DJB25"/>, <xref target="RJM78"/>, and <xref target="OQS24"/>), cannot be easily implemented in Transport Layer Security (TLS) Protocol Version 1.3 ([RF8446]) due to the current key share limitations of 65,535 Bytes. It is important to consider such uses of algorithms given that Classic McEliece is a Round 4 algorithm submitted in the National Institute of Standards and Technology (NIST) standardization process (see <xref target="PQC25"/>). Therefore, this document proposes a new key share that has a higher limit and is utilized in ClientHello and ServerHello messages, which is a modification of <xref target="RFC8446"/>. For example, if a Classic McEliece algorithm is requested in a TLS 1.3 key exchange, this new key share extension will be constructed. However, if a classical algorithm is requested for key exchange, a normal key share extension is constructed. Thus, enabling the use of Classic McEliece algorithms to be used in TLS 1.3 key exchanges and also presenting them as an alternative option to replace classical algorithms for future protection against the threat of attackers in possession of powerful quantum computers that will break classical encryption.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="new-key-share-extension">
      <name>New Key Share Extension</name>
      <t>Based on the key share extension from <xref target="RFC8446"/> is introduced a new key share extension in this document, "key_share_pqc". This is reflected in this document and is represented as KeyShareEntryPQC below, based on the existing KeyShareEntry from <xref target="RFC8446"/>. However, this is modified along with the existing KeyShareEntry structure to include case statements to test if the key exchange algorithm chosen in a TLS 1.3 connection belongs from the Classic McEliece family, and if it is, then KeyShareEntryPQC is constructed. If the opposite is true, where the key exchange algorithm is not from the Classic McEliece family, then KeyShareEntry is constructed. Note that the "key_exchange" field is expanded in KeyShareEntryPQC to accommodate a large public key that is greater than 65,535 Bytes:</t>
      <artwork><![CDATA[

    struct {
       NamedGroup group;
       select (NameGroup.group) {
       case classicmceliece6688128 | classicmceliece6960119
       | classicmceliece8192128
       | rlcel5 :
             break;
       default :
             opaque key_exchange<1..2^16-1>;
       }
    } KeyShareEntry;

    struct {
       NamedGroup group;
       select (NamedGroup.group) {
       case classicmceliece6688128 | classicmceliece6960119
       | classicmceliece8192128
       | rlcel5 :
             opaque key_exchange<1..2^24-1>;
       default :
             break;
       }
    } KeyShareEntryPQC

]]></artwork>
      <t>Special Note: "classicmceliece6688128" above (and in this document) represents the choice of choosing either classicmceliece6688128 or classicmceliece6688128f, as a party can choose either of the two (as similarly stated in Section 4 of <xref target="SJ125"/>). The same applies to "classicmceliece6960119" in this document (classicmceliece6960119 or classicmceliece6960119f) and also to "classicmceliece8192128" (classicmceliece8192128 or classicmceliece8192128f).</t>
      <t>Another Note: An additional algorithm is included in the above case statements, "rlcel5", since it also has a large public key beyond the 65,535 Byte limit. See Section 7 for more information discussing this RLCE algorithm.</t>
      <t>This is then applied to the existing KeyShareClientHello structure, which originates from <xref target="RFC8446"/>, that now contains an additional field for KeyShareEntryPQC:</t>
      <artwork><![CDATA[

    struct {
       KeyShareEntry client_shares<0..2^16-1>;
       KeyShareEntryPQC client_shares<0..2^24-1>;
    } KeyShareClientHello;

]]></artwork>
      <t>Since the KeyShareClientHello needs to be expanded to accommodate for the KeyShareEntryPQC struct, the same applies to the existing Extension struct, originated as well from <xref target="RFC8446"/> but "extension_data" is now expanded:</t>
      <artwork><![CDATA[

    struct {
      ExtensionType extension_type;
      opaque extension_data<0..2^24-1>;
    } Extension;

]]></artwork>
      <t>Since there is a new key share extension to accommodate keys larger than the 65,535 Byte limit (KeyShareEntryPQC), this is reflected in the existing ExtensionType structure from <xref target="RFC8446"/> where this is the new type that holds a value of 63, "key_share_pqc":</t>
      <artwork><![CDATA[

    enum {
            server_name(0),                             /* RFC 6066 */
            max_fragment_length(1),                     /* RFC 6066 */
            status_request(5),                          /* RFC 6066 */
            supported_groups(10),                       /* RFC 8422, 7919 */
            signature_algorithms(13),                   /* RFC 8446 */
            use_srtp(14),                               /* RFC 5764 */
            heartbeat(15),                              /* RFC 6520 */
            application_layer_protocol_negotiation(16), /* RFC 7301 */
            signed_certificate_timestamp(18),           /* RFC 6962 */
            client_certificate_type(19),                /* RFC 7250 */
            server_certificate_type(20),                /* RFC 7250 */
            padding(21),                                /* RFC 7685 */
            pre_shared_key(41),                         /* RFC 8446 */
            early_data(42),                             /* RFC 8446 */
            supported_versions(43),                     /* RFC 8446 */
            cookie(44),                                 /* RFC 8446 */
            psk_key_exchange_modes(45),                 /* RFC 8446 */
            certificate_authorities(47),                /* RFC 8446 */
            oid_filters(48),                            /* RFC 8446 */
            post_handshake_auth(49),                    /* RFC 8446 */
            signature_algorithms_cert(50),              /* RFC 8446 */
            key_share(51),                              /* RFC 8446 */
            key_share_pqc(63),
            (65535)
        } ExtensionType;

]]></artwork>
      <t>Since the "extension_data" field will be much larger for a KeyShareClientHello that contains a large public key that is greater than the previously defined 65,535 Byte limit, an example being a Classic McEliece public key, the server must be able to handle this circumstance when receiving the ClientHello message. One way is to compare the value for a packet that contains extensions including a large public key from the ClientHello message to a macro constant (for example,  "CLIENT_HELLO_MIN_EXT_LENGTH" as defined in this introduced TLS implementation in this paper, see <xref target="SRVR1650"/> and <xref target="SRVR1211"/>) and if this packet value is longer than this constant, the server will change the way it normally handles all of the extensions. This constant could be easily modified in the aforementioned TLS Open Secure Socket Layer (OpenSSL) implementation. The process of how the server collects the extensions from a ClientHello message must also be modified, as the server must be able to process the new key share extension of Type 63 differently than the other extensions, should the server see this inside a ClientHello message. For example, see <xref target="EXT652"/>.</t>
      <t>The ServerHello message is modified as well where the KeyShareServerHello structure originates from <xref target="RFC8446"/>:</t>
      <artwork><![CDATA[

struct {
    KeyShareEntry server_share;
    KeyShareEntryPQC server_sharePQC;
} KeyShareServerHello;

]]></artwork>
      <t>This new "key_share_pqc" extension is therefore can be implemented in the full TLS handshake, where Figure 1 from <xref target="RFC8446"/> is modified to be the following:</t>
      <artwork><![CDATA[

       Client                                           Server

Key  ^ ClientHello
Exch | + key_share*
     | + key_share_pqc*
     | + signature_algorithms*
     | + psk_key_exchange_modes*
     v + pre_shared_key*       -------->
                                                  ServerHello  ^ Key
                                                 + key_share*  | Exch
                                             + key_share_pqc*  |
                                            + pre_shared_key*  v
                                        {EncryptedExtensions}  ^  Server
                                        {CertificateRequest*}  v  Params
                                               {Certificate*}  ^
                                         {CertificateVerify*}  | Auth
                                                   {Finished}  v
                               <--------  [Application Data*]
     ^ {Certificate*}
Auth | {CertificateVerify*}
     v {Finished}              -------->
       [Application Data]      <------->  [Application Data]

              +  Indicates noteworthy extensions sent in the
                 previously noted message.

              *  Indicates optional or situation-dependent
                 messages/extensions that are not always sent.

              {} Indicates messages protected using keys
                 derived from a [sender]_handshake_traffic_secret.

              [] Indicates messages protected using keys
                 derived from [sender]_application_traffic_secret_N.

Figure 1: Full TLS Handshake with "key_share_pqc" extension.

]]></artwork>
    </section>
    <section anchor="namedgroup-addition-for-classic-mceliece">
      <name>NamedGroup Addition for Classic McEliece</name>
      <t>The values for Classic McEliece algorithms are added below in the NamedGroup struct that originates from <xref target="RFC8446"/>:</t>
      <artwork><![CDATA[

    enum {

              /* Elliptic Curve Groups (ECDHE) */
              secp256r1(0x0017), secp384r1(0x0018), secp521r1(0x0019),
              x25519(0x001D), x448(0x001E),

              /* Finite Field Groups (DHE) */
              ffdhe2048(0x0100), ffdhe3072(0x0101), ffdhe4096(0x0102),
              ffdhe6144(0x0103), ffdhe8192(0x0104),

              /* Reserved Code Points */
              ffdhe_private_use(0x01FC..0x01FF),
              ecdhe_private_use(0xFE00..0xFEFF),
              (0xFFFF)

              /* Classic McEliece Algorithms */
              classicmceliece6688128(0x0203),
              classicmceliece6960119(0x0204),
              classicmceliece8192128(0x0205),

              /* RLCE Algorithm */
              rlcel5(0x0206),
          } NamedGroup;

]]></artwork>
      <t>Note: An RLCE algorithm is also added above. See Section 7 for more information discussing this RLCE algorithm.</t>
    </section>
    <section anchor="modification-to-pskkeyexchangemode-structure">
      <name>Modification to PskKeyExchangeMode structure</name>
      <t>There are two key establishments that are considered when examining the structure of PskKeyExchangeMode from <xref target="RFC8446"/>. Since there is no Diffie Hellman algorithm in use with a pre-shared key (PSK) when considering the use of a Classic McEliece algorithm for key exchange, then there must be another key exchange mode to utilize in this case. Therefore, this is reflected in the existing <xref target="RFC8446"/> PskKeyExchangeMode structure below where "psk_pqc_ke(2)" is added:</t>
      <artwork><![CDATA[

enum {
 psk_ke(0), psk_dhe_ke(1), psk_pqc_ke(2), (255)
} PskKeyExchangeMode;

]]></artwork>
      <t>When selecting a Classic McEliece algorithm and using an external PSK or a resumption PSK, "02" will then be listed for the "psk_key_exchange_modes" extension along with the new "key_share_pqc" extension in the ClientHello message. At the end of this ClientHello message is printed the "00 29" extension (pre-shared key extension), where the PSK identity should be printed and is mapped to the binder that should proceed it in this pre-shared key extension. The ServerHello message will also contain the new "key_share_pqc" extension, and will as well contain the pre-shared key extension, where it should contain "00 00" at the end which represents the server selecting the PSK identity of 0 (for example: the Selected Identity of 0 shown in the pre-shared key extension in a ServerHello message in this Wireshark example: <xref target="RASHOK20"/>). Overall, this is a new key exchange selecting a Classic McEliece algorithm using a PSK, whether its external or resumption, and this can be demonstrated in the TLS Implementation below.</t>
      <t>As stated above, resumption PSK with a Classic McEliece algorithm chosen as a key exchange algorithm involves the use of the new "key_share_pqc" extension for both the ClientHello and ServerHello messages. Thus, the Resumption and PSK Message Flow diagram (which originates from Figure 3 of <xref target="RFC8446"/>) is derived for this situation and has been tested with the TLS Implementation mentioned in this document:</t>
      <artwork><![CDATA[

      Client                                 Server

Initial Handshake
      ClientHello
         key_share_pqc         --------->
                                             ServerHello
                                               key_share_pqc
                                             EncryptedExtensions
                                             Certificate
                                             CertificateVerify
                              <---------     Finished
      Finished                ---------->
                              <---------     NewSessionTicket
                              <---------     NewSessionTicket


Subsequent Handshake
       ClientHello
          key_share_pqc
          pre_shared_key       --------->
                                               ServerHello
                                                  key_share_pqc
                                                  pre_shared_key
                                               EncryptedExtensions
                              <---------       Finished
       Finished               ---------->
                              <---------       NewSessionTicket


Figure 2: A Classic McEliece algorithm used with Resumption PSK.

]]></artwork>
    </section>
    <section anchor="hello-retry-request-using-new-key-share-extension">
      <name>Hello Retry Request using New Key Share Extension</name>
      <t>In a Hello Retry Request scenario, the first ClientHello message will have two algorithms listed in its "supported_groups" extension, where the numerical identifier (NID) for the algorithm that is no longer recognized by the server as an acceptable algorithm (X448 for example as proven in the TLS implementation), will first be listed in this extension, followed by the NID for a Classic McEliece algorithm. In this same ClientHello message is where "02" will be listed in the "psk_key_exchange_modes" extension, and the original "key_share" extension (value 51) is also shown with its public key for the unacceptable algorithm.</t>
      <t>When the server responds with the HelloRetryRequest message, the random is the same special value for SHA-256 as indicated in Section 4.1.3 of <xref target="RFC8446"/>, and has the same exact fields ("legacy_version", "random", "legacy_session_id_echo", "cipher_suite", "legacy_compression_method", and "extensions") as in the ServerHello structure indicated in <xref target="RFC8446"/> (see section 4.1.3). The extensions field not only consists of the "supported_versions" extension, but also the new "key_share_pqc" extension where the server offers the client the Classic McEliece algorithm NID it shares with the client.</t>
      <t>When the client sends a second ClientHello in response to the HelloRetryRequest, this will be the same message as the first ClientHello with one exception: the original "key_share" extension is replaced with the new "key_share_pqc" extension which contains the large public key of a Classic McEliece algorithm. Then the ServerHello message will then respond containing the new "key_share_pqc" extension.</t>
      <t>Therefore, this Hello Retry Request scenario is reflected in Figure 3 below, which is a modification of Figure 2 in <xref target="RFC8446"/>, and this can be demonstrated in the TLS Implementation mentioned in this documentation:</t>
      <artwork><![CDATA[

        Client                                    Server

        ClientHello
          key_share             -------->
                                                  HelloRetryRequest
                                <--------           key_share_pqc
        ClientHello
          key_share_pqc         -------->
                                                  ServerHello
                                                    key_share_pqc
                                                  EncryptedExtensions
                                                  Certificate
                                                  CertificateVerify
                                <--------         Finished
         Finished               -------->
                                <--------         NewSessionTicket
                                <--------         NewSessionTicket

Figure 3: A Classic McEliece algorithm used in a Hello Retry Request scenario.

]]></artwork>
      <t>Note: When the client processes the HelloRetryRequest message, it must mark the new "key_share_pqc" extension as an unsolicited extension, which would be an additional exception to the rule noted in <xref target="RFC8446"/> regarding extension responses <bcp14>MUST NOT</bcp14> be sent if the corresponding extension requests were not sent by a remote endpoint (see section 4.2 in <xref target="RFC8446"/>).</t>
      <t>The following structure would remain intact from <xref target="RFC8446"/>, since support would already be provided for a Classic McEliece algorithm being in NamedGroup (see Section 4):</t>
      <artwork><![CDATA[

struct {
    NamedGroup selected_group;
} KeyShareHelloRetryRequest;

]]></artwork>
      <t>When a Hello Retry Request involves a PSK in use with a Classic McEliece algorithm, both the first and second ClientHello messages (the second one being sent after a HelloRetryRequest message) will contain the exact same content except the first ClientHello will have the original "key_share" extension and the second ClientHello will have the new "key_share_pqc" extension. Another exception includes different binders in both ClientHello messages' pre-shared key extensions. This pre-shared key extension appears as the last extension in both ClientHello messages as well in the ServerHello message.</t>
    </section>
    <section anchor="other-use-case-rlce-algorithm">
      <name>Other Use Case (RLCE Algorithm)</name>
      <t>The Random Linear Code-based Encryption (RLCE) algorithm group (see <xref target="RLCE17"/>) is another code-based cryptographic scheme (NIST Round 1). "rlcel5" is a RLCE algorithm from this group (where the public key size is 1,232,001 Bytes) that can be used in the new key share extension, and can be demonstrated for use for TLS key exchange in the TLS Implementation mentioned in this document.</t>
    </section>
    <section anchor="tls-implementation">
      <name>TLS Implementation</name>
      <t>A TLS implementation exists that tests the use of a new key share extension for both the ClientHello and ServerHello messages that is implemented for OpenSSL, and also where Classic McEliece algorithms can be chosen for key exchange when initiating TLS connections. It can be accessed here: <xref target="JWYW25"/>.</t>
    </section>
    <section anchor="summary-of-changes-from-rfc-8446">
      <name>Summary of Changes from RFC 8446</name>
      <t>A new structure is introduced of KeyShareEntryPQC along with modifications of existing structures including KeyShareEntry, NamedGroup, Extension, ExtensionType, KeyShareClientHello, and KeyShareServerHello. Adding a new ExtensionType of "key_share_pqc" allows for the addition of this new structure of KeyShareEntryPQC, which is based on the existing KeyShareEntry, but "key_exchange" has been expanded and select statements are added to both structures which depend on the NamedGroup.group being called in a TLS connection for key exchange. This new KeyShareEntryPQC will now also appear in existing structures of KeyShareClientHello and KeyShareServerHello. Thus, the "extension_data" is expanded in the existing Extension structure.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The new "key_share_pqc" extension <bcp14>MUST NOT</bcp14> be used with 0-RTT, as this subjects the server to replay attacks of multiple large ClientHello messages (see <xref target="RFC8446"/> and an example of a replay attack of several ClientHello messages in <xref target="HN23"/>). If this extension were to be used with 0-RTT, the server may receive duplicated ClientHello messages where each of them contain a large public key of a Classic McEliece algorithm in each ClientHello's "key_share_pqc" extension, which will not only cause resource exhaustion on the server (see Section 8.2 in <xref target="RFC8446"/>), but memory utilization will rise quickly than noted in <xref target="MEA23"/> and will cause the client-hello recording defense mechanism (see Section 8.2 in <xref target="RFC8446"/> and <xref target="MEA23"/>) to be used as a Denial-of-Service attack on the server. Therefore, 0-RTT and the use of the "early_data" extension <bcp14>MUST NOT</bcp14> be used with the "key_share_pqc" extension.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>Probable request for the new key share proposed in this document "key_share_pqc" to have a value of 63 in the registry specified for TLS ExtensionType Values (see <xref target="TLSE"/>).</t>
      <t>Probable request for the registry for TLS Supported Groups to have the proper values assigned to the Classic McEliece and the RLCE algorithms mentioned in this document (see <xref target="TLSP"/>):</t>
      <t>Description: classicmceliece6688128</t>
      <t>Value: 0x0203</t>
      <t>Description: classicmceliece6960119</t>
      <t>Value: 0x0204</t>
      <t>Description: classicmceliece8192128</t>
      <t>Value: 0x0205</t>
      <t>Description: rlcel5</t>
      <t>Value: 0x0206</t>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Thank you to D. J. Bernstein, as his advice on Classic McEliece help improved the content of this document. Thank you also to Simon Josefsson since his feedback helped clarify and enhance understanding of Classic McEliece in this record.</t>
      <t>Thank you as well to Martin Thomson and David Schinazi, as their Internet Draft template was used to generate this document, before the authors' information was added. The authors also want to thank the contributors of the kramdown-rfc GitHub repository, as their examples helped with the format of the figures, references, and authors' information presented in this document. Thank you also to Joyce Reynolds and Robert Braden, as their Internet Draft <xref target="JR04"/> was helpful as a guide on how to write the citations in this document (i.e., using citation brackets with author's initials, year, etc.).</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8446" target="https://datatracker.ietf.org/doc/html/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author initials="E." surname="Rescorla" fullname="Eric Rescorla">
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="SJ25" target="draft-josefsson-mceliece-02, (work in progress)">
          <front>
            <title>Classic McEliece</title>
            <author initials="S." surname="Josefsson" fullname="Simon Josefsson">
              <organization/>
            </author>
            <date year="2025" month="March"/>
          </front>
        </reference>
        <reference anchor="SJ125" target="draft-josefsson-ssh-mceliece-01, (work in progress)">
          <front>
            <title>Secure Shell Key Exchange Method Using Chempat Hybrid of Classic McEliece and X25519 with SHA-512: mceliece6688128x25519-sha512</title>
            <author initials="S." surname="Josefsson" fullname="Simon Josefsson">
              <organization/>
            </author>
            <date year="2025" month="March"/>
          </front>
        </reference>
        <reference anchor="TLSE" target="https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml">
          <front>
            <title>Transport Layer Security (TLS) Extensions</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="TLSP" target="https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml">
          <front>
            <title>Transport Layer Security (TLS) Parameters</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RJM78" target="https://ipnpr.jpl.nasa.gov/progress_report2/42-44/44N.PDF">
          <front>
            <title>A Public-Key Cryptosystem Based On Algebraic Coding Theory</title>
            <author initials="R." surname="McEliece" fullname="R. J. McEliece">
              <organization/>
            </author>
            <date year="1978"/>
          </front>
        </reference>
        <reference anchor="DJB25" target="https://classic.mceliece.org/impl.html">
          <front>
            <title>Classic McEliece: Implementation</title>
            <author initials="D." surname="Bernstein" fullname="Daniel J. Bernstein">
              <organization/>
            </author>
            <author initials="T." surname="Chou" fullname="Tung Chou">
              <organization/>
            </author>
            <author initials="C." surname="Cid" fullname="Carlos Cid">
              <organization/>
            </author>
            <author initials="J." surname="Gilcher" fullname="Jan Gilcher">
              <organization/>
            </author>
            <author initials="T." surname="Lange" fullname="Tanja Lange">
              <organization/>
            </author>
            <author initials="V." surname="Maram" fullname="Varun Maram">
              <organization/>
            </author>
            <author initials="I." surname="von Maurich" fullname="Ingo von Maurich">
              <organization/>
            </author>
            <author initials="R." surname="Misoczki" fullname="Rafael Misoczki">
              <organization/>
            </author>
            <author initials="R." surname="Niederhagen" fullname="Ruben Niederhagen">
              <organization/>
            </author>
            <author initials="E." surname="Persichetti" fullname="Edoardo Persichetti">
              <organization/>
            </author>
            <author initials="C." surname="Peters" fullname="Christiane Peters">
              <organization/>
            </author>
            <author initials="N." surname="Sendrier" fullname="Nicolas Sendrier">
              <organization/>
            </author>
            <author initials="J." surname="Szefer" fullname="Jakub Szefer">
              <organization/>
            </author>
            <author initials="C." surname="Tjhai" fullname="Cen Jung Tjhai">
              <organization/>
            </author>
            <author initials="M." surname="Tomlinson" fullname="Martin Tomlinson">
              <organization/>
            </author>
            <author initials="W." surname="Wang" fullname="Wen Wang">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="RLCE17" target="https://eprint.iacr.org/2017/206.pdf">
          <front>
            <title>Quantum Resistant Public Key Encryption Scheme RLCE and IND-CCA2 Security for McEliece Schemes</title>
            <author initials="Y." surname="Wang" fullname="Yongge Wang">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="PQC25" target="https://csrc.nist.gov/projects/post-quantum-cryptography/round-4-submissions">
          <front>
            <title>Post-Quantum Cryptography: Round 4 Submissions</title>
            <author>
              <organization>NIST</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="OQS24" target="https://openquantumsafe.org/liboqs/algorithms/kem/classic_mceliece">
          <front>
            <title>liboqs / Algorithms / Classic McEliece</title>
            <author>
              <organization>Open Quantum Safe</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="SRVR1650" target="https://github.com/jwagrunner/openssl/blob/master/ssl/statem/statem_srvr.c#L1650">
          <front>
            <title>ssl/statem/statem_srvr.c#L1650</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="SRVR1211" target="https://github.com/jwagrunner/openssl/blob/master/ssl/statem/statem_srvr.c#L1211">
          <front>
            <title>ssl/statem/statem_srvr.c#L1211</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="EXT652" target="https://github.com/jwagrunner/openssl/blob/master/ssl/statem/extensions.c#L652C9-L663C9">
          <front>
            <title>ssl/statem/extensions.c#L652C9-L663C9</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="MEA23" target="https://ieeexplore.ieee.org/document/10278190">
          <front>
            <title>Replay Attack in TLS 1.3 0-RTT Handshake: Countermeasure Techniques</title>
            <author initials="M. E." surname="Abdelhafez" fullname="M.E Abdelhafez">
              <organization/>
            </author>
            <author initials="S." surname="Ramadass" fullname="Sureswaran Ramadass">
              <organization/>
            </author>
            <author initials="M. S. M." surname="Gismallab" fullname="Mohammed S. M. Gismallab">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RASHOK20" target="https://stackoverflow.com/questions/58719595/how-to-do-tls-1-3-psk-using-openssl">
          <front>
            <title>How to do TLS 1.3 PSK using openssl?</title>
            <author initials="" surname="rashok" fullname="rashok">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="JWYW25" target="https://github.com/jwagrunner/openssl">
          <front>
            <title>openssl</title>
            <author initials="J." surname="Wagner" fullname="Jonathan Wagner">
              <organization/>
            </author>
            <author initials="Y." surname="Wang" fullname="Yongge Wang">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="HN23" target="https://medium.com/@hnasr/the-danger-of-0-rtt-a815d2b99ac6">
          <front>
            <title>The danger of TLS Zero RTT</title>
            <author initials="H." surname="Nasser" fullname="Hussein Nasser">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="JR04" target="https://www.rfc-editor.org/old/instructions2authors.txt">
          <front>
            <title>Instructions to Request for Comments (RFC) Authors</title>
            <author initials="J." surname="Reynolds" fullname="Joyce Reynolds">
              <organization/>
            </author>
            <author initials="R." surname="Braden" fullname="Robert Braden">
              <organization/>
            </author>
            <date year="2004"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
