<?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.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-prabel-ssh-scloudplus-kex-00" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Scloud+ Hybrid Key Exchange for SSH">Secure Shell (SSH) Post-Quantum/Traditional Hybrid Key Exchange Methods Using Scloud+</title>
    <seriesInfo name="Internet-Draft" value="draft-prabel-ssh-scloudplus-kex-00"/>
    <author initials="L." surname="Prabel" fullname="Lucas Prabel">
      <organization>Huawei</organization>
      <address>
        <email>lucas.prabel@huawei.com</email>
      </address>
    </author>
    <author initials="Y." surname="Tang" fullname="Tang Yi">
      <organization>Huawei</organization>
      <address>
        <email>tangyi72@huawei.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="15"/>
    <area>Security</area>
    <keyword>ssh</keyword>
    <keyword>key exchange</keyword>
    <keyword>post-quantum</keyword>
    <keyword>hybrid</keyword>
    <keyword>Scloud+</keyword>
    <abstract>
      <?line 117?>

<t>This document defines four Post-Quantum/Traditional (PQ/T) hybrid key exchange methods for the Secure Shell (SSH) protocol. They combine the Scloud+ key-encapsulation mechanism, whose security relies on the unstructured Learning With Errors (LWE) problem, with Elliptic Curve Diffie-Hellman over the NIST P-384 and P-521 curves.</t>
    </abstract>
  </front>
  <middle>
    <?line 121?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Key exchange in SSH <xref target="RFC4251"/> is today based on Elliptic Curve Diffie-Hellman (ECDH) <xref target="RFC5656"/> <xref target="RFC8731"/>, which a Cryptographically Relevant Quantum Computer (CRQC) would break. Because recorded sessions could then be decrypted, SSH key exchange needs post-quantum protection before such a computer exists.</t>
      <t>Post-quantum algorithms being less mature than ECDH in their design and implementation, a hybrid key exchange combines a post-quantum KEM with ECDH, so that the session keys stay secure as long as one of the two components is not broken.</t>
      <t><xref target="RFC9941"/> and <xref target="RFC10042"/> address this with PQ/T hybrid <xref target="RFC9794"/> methods built on Streamlined NTRU Prime and ML-KEM, two KEMs based on structured lattices. This document adds methods built on Scloud+, a PQ KEM based on unstructured LWE. Message format, shared secret combination and exchange hash are similar to the ones of <xref target="RFC10042"/>. Only the post-quantum KEM and the elliptic curves differ.</t>
      <section anchor="scloud">
        <name>Scloud+</name>
        <t>Scloud+ <xref target="SCLOUDPLUS"/> is one of the Round 1 KEM candidates of the Next-generation Commercial Cryptographic Algorithms Program (NGCC) run by the Institute of Commercial Cryptography Standards <xref target="NGCC"/>. The submission package contains the specification, reference and optimized implementations, and known-answer tests. An earlier version of the design was published in <xref target="SCLOUDPLUS-SSR24"/>; its parameters differ from those of the NGCC submission, which are the ones used here.</t>
        <t>Scloud+ does not use a ring or module structure, so its security does not depend on the hardness of structured lattice problems. This makes it a conservative choice: attacks that would exploit the algebraic structure of ML-KEM or NTRU Prime do not apply to it. The price is much larger public keys and ciphertexts than ML-KEM. Ternary secrets and Barnes-Wall lattice codes make them smaller than those of FrodoKEM <xref target="I-D.longa-cfrg-frodokem"/>, another unstructured LWE KEM. The KEM is obtained from an IND-CPA encryption scheme with the Fujisaki-Okamoto transform with implicit rejection, and targets IND-CCA2 security.</t>
        <t>This document uses the Scloud+-192 and Scloud+-256 parameter sets, each in an AES and a SHAKE variant. The two variants only differ in how the public matrix A is expanded from its seed: AES-128 in counter mode for the AES variant, SHAKE-128 for the SHAKE variant. All other internal functions use SHAKE-256 in both. Sizes are identical, but the variants do not interoperate.</t>
        <t>In this document, Scloud+ KeyGen, Encaps and Decaps refer to the key generation, encapsulation and decapsulation algorithms of <xref target="SCLOUDPLUS"/>.</t>
      </section>
    </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?>

<t>The byte and string data types are used as defined in <xref section="5" sectionFormat="of" target="RFC4251"/>. <tt>||</tt> denotes concatenation.</t>
    </section>
    <section anchor="pqt-hybrid-key-exchange">
      <name>PQ/T Hybrid Key Exchange</name>
      <section anchor="sec-hybrid-kex">
        <name>Protocol Messages</name>
        <t>The client sends SSH_MSG_KEX_HYBRID_INIT instead of SSH_MSG_KEX_ECDH_INIT <xref target="RFC5656"/>:</t>
        <artwork><![CDATA[
  byte     SSH_MSG_KEX_HYBRID_INIT
  string   C_INIT
]]></artwork>
        <t>C_INIT = C_PK2 || C_PK1, where C_PK2 is the public key output by Scloud+ KeyGen at the client and C_PK1 is the client's ephemeral ECDH public key.</t>
        <t>The server sends SSH_MSG_KEX_HYBRID_REPLY instead of SSH_MSG_KEX_ECDH_REPLY <xref target="RFC5656"/>:</t>
        <artwork><![CDATA[
  byte     SSH_MSG_KEX_HYBRID_REPLY
  string   K_S, server's public host key
  string   S_REPLY
  string   the signature on the exchange hash
]]></artwork>
        <t>S_REPLY = S_CT2 || S_PK1, where S_CT2 is the ciphertext output by Scloud+ Encaps on C_PK2 and S_PK1 is the server's ephemeral ECDH public key.</t>
        <t>The ECDH public keys are encoded as octet strings as in <xref target="RFC5656"/>, in the uncompressed form of Section 2.3.3 of <xref target="SEC1"/>. Compressed points <bcp14>MUST NOT</bcp14> be sent, so that C_INIT and S_REPLY have a fixed length for each method.</t>
        <t>Before running Encaps, the server <bcp14>MUST</bcp14> check that C_INIT has the length given in <xref target="tab-sizes"/> for the negotiated method. Before running Decaps, the client <bcp14>MUST</bcp14> do the same for S_REPLY. Both parties <bcp14>MUST</bcp14> validate the received ECDH public key as described in <xref section="4" sectionFormat="of" target="RFC5656"/>. If one of these checks fails, the party <bcp14>MUST</bcp14> disconnect with SSH_DISCONNECT_KEY_EXCHANGE_FAILED. No validation of the Scloud+ public key or ciphertext is required beyond these length checks.</t>
        <t>K_CL is the ECDH shared secret computed from C_PK1 and S_PK1. K_PQ is the Scloud+ shared secret, output by Encaps at the server and by Decaps of S_CT2 at the client.</t>
        <t>The rest of the exchange follows <xref section="4" sectionFormat="of" target="RFC5656"/>: the server signs the exchange hash H with its host key, and the client verifies the host key and the signature.</t>
      </section>
      <section anchor="message-numbers">
        <name>Message Numbers</name>
        <t>Message numbers 30 to 49 are specific to each key exchange method <xref target="RFC4250"/> and need no IANA registration. As in <xref target="RFC10042"/>, this document uses:</t>
        <artwork><![CDATA[
  #define SSH_MSG_KEX_HYBRID_INIT               30
  #define SSH_MSG_KEX_HYBRID_REPLY              31
]]></artwork>
      </section>
      <section anchor="sec-methods">
        <name>Method Names</name>
        <t>The methods defined in this document are listed in <xref target="tab-methods"/>. The ECDH part uses the curve as in <xref target="RFC5656"/> (methods ecdh-sha2-nistp384 and ecdh-sha2-nistp521). HASH is the hash function used for K, for the exchange hash H and for key derivation.</t>
        <table anchor="tab-methods">
          <name>PQ/T hybrid key exchange methods</name>
          <thead>
            <tr>
              <th align="left">Method name</th>
              <th align="left">Scloud+ parameter set</th>
              <th align="left">ECDH curve</th>
              <th align="left">HASH</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">scloudp192aesnistp384-sha384</td>
              <td align="left">Scloud+-192, AES</td>
              <td align="left">nistp384</td>
              <td align="left">SHA-384</td>
            </tr>
            <tr>
              <td align="left">scloudp192shakenistp384-sha384</td>
              <td align="left">Scloud+-192, SHAKE</td>
              <td align="left">nistp384</td>
              <td align="left">SHA-384</td>
            </tr>
            <tr>
              <td align="left">scloudp256aesnistp521-sha512</td>
              <td align="left">Scloud+-256, AES</td>
              <td align="left">nistp521</td>
              <td align="left">SHA-512</td>
            </tr>
            <tr>
              <td align="left">scloudp256shakenistp521-sha512</td>
              <td align="left">Scloud+-256, SHAKE</td>
              <td align="left">nistp521</td>
              <td align="left">SHA-512</td>
            </tr>
          </tbody>
        </table>
        <t>SHA-384 and SHA-512 are defined in <xref target="RFC6234"/>.</t>
        <t><xref target="tab-sizes"/> gives the length in bytes of the values exchanged and derived. It does not depend on the AES or SHAKE variant.</t>
        <table anchor="tab-sizes">
          <name>Lengths in bytes</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="right">Scloud+-192 with nistp384</th>
              <th align="right">Scloud+-256 with nistp521</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">C_PK2</td>
              <td align="right">11456</td>
              <td align="right">16296</td>
            </tr>
            <tr>
              <td align="left">C_PK1</td>
              <td align="right">97</td>
              <td align="right">133</td>
            </tr>
            <tr>
              <td align="left">C_INIT</td>
              <td align="right">11553</td>
              <td align="right">16429</td>
            </tr>
            <tr>
              <td align="left">S_CT2</td>
              <td align="right">12645</td>
              <td align="right">17925</td>
            </tr>
            <tr>
              <td align="left">S_PK1</td>
              <td align="right">97</td>
              <td align="right">133</td>
            </tr>
            <tr>
              <td align="left">S_REPLY</td>
              <td align="right">12742</td>
              <td align="right">18058</td>
            </tr>
            <tr>
              <td align="left">K_PQ</td>
              <td align="right">24</td>
              <td align="right">32</td>
            </tr>
            <tr>
              <td align="left">K_CL</td>
              <td align="right">48</td>
              <td align="right">66</td>
            </tr>
            <tr>
              <td align="left">K</td>
              <td align="right">48</td>
              <td align="right">64</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-shared-secret">
        <name>Shared Secret K</name>
        <t>The shared secret K is computed as:</t>
        <artwork><![CDATA[
  K = HASH(K_PQ || K_CL)
]]></artwork>
        <t>Both inputs are fixed-length byte arrays and are not encoded as mpint. K_PQ is the Scloud+ shared secret as output by Encaps or Decaps. K_CL is the x-coordinate of the shared ECDH point, which <xref target="RFC5656"/> encodes as an mpint, written instead as a big-endian byte array of fixed length (48 bytes for nistp384, 66 bytes for nistp521). This is the construction of <xref section="2.4" sectionFormat="of" target="RFC10042"/>.</t>
      </section>
      <section anchor="exchange-hash-and-key-derivation">
        <name>Exchange Hash and Key Derivation</name>
        <t>The exchange hash H is computed with HASH over:</t>
        <artwork><![CDATA[
  string V_C, client identification string (CR and LF excluded)
  string V_S, server identification string (CR and LF excluded)
  string I_C, payload of the client's SSH_MSG_KEXINIT
  string I_S, payload of the server's SSH_MSG_KEXINIT
  string K_S, server's public host key
  string C_INIT, client message octet string
  string S_REPLY, server message octet string
  string K, SSH shared secret
]]></artwork>
        <t>K is encoded as a string, not as an mpint. Encryption keys <bcp14>MUST</bcp14> be derived from K and H as specified in <xref section="7.2" sectionFormat="of" target="RFC4253"/>.</t>
      </section>
    </section>
    <section anchor="message-size">
      <name>Message Size</name>
      <t><xref target="RFC4253"/> requires implementations to support packets with an uncompressed payload of up to 32768 bytes and a total size of up to 35000 bytes. With the lengths of <xref target="tab-sizes"/>, SSH_MSG_KEX_HYBRID_INIT stays within these limits. SSH_MSG_KEX_HYBRID_REPLY also stays within them with the host key algorithms in common use today. A host key algorithm with very large keys or signatures could push it over the limit. This document does not define behavior for that case.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to the "Key Exchange Method Names" registry within the "Secure Shell (SSH) Protocol Parameters" registry group <xref target="IANA-SSH"/>:</t>
      <table anchor="tab-iana">
        <name>New key exchange method names</name>
        <thead>
          <tr>
            <th align="left">Method Name</th>
            <th align="left">Reference</th>
            <th align="left">OK to Implement</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">scloudp192aesnistp384-sha384</td>
            <td align="left">This document</td>
            <td align="left">
              <bcp14>MAY</bcp14></td>
          </tr>
          <tr>
            <td align="left">scloudp192shakenistp384-sha384</td>
            <td align="left">This document</td>
            <td align="left">
              <bcp14>MAY</bcp14></td>
          </tr>
          <tr>
            <td align="left">scloudp256aesnistp521-sha512</td>
            <td align="left">This document</td>
            <td align="left">
              <bcp14>MAY</bcp14></td>
          </tr>
          <tr>
            <td align="left">scloudp256shakenistp521-sha512</td>
            <td align="left">This document</td>
            <td align="left">
              <bcp14>MAY</bcp14></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC4251"/> and <xref target="RFC5656"/> apply, as does the discussion of the combiner and of the shared secret encoding in <xref section="5" sectionFormat="of" target="RFC10042"/>.</t>
      <t>Scloud+ has not been standardized and is still under evaluation <xref target="NGCC"/>. If Scloud+ were broken, the methods defined here would remain as strong as ECDH on the same curve.</t>
      <t>Each key exchange <bcp14>MUST</bcp14> use fresh ephemeral key pairs for ECDH and Scloud+, generated with a cryptographically secure random number generator.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4251">
          <front>
            <title>The Secure Shell (SSH) Protocol Architecture</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell (SSH) Protocol is a protocol for secure remote login and other secure network services over an insecure network. This document describes the architecture of the SSH protocol, as well as the notation and terminology used in SSH protocol documents. It also discusses the SSH algorithm naming system that allows local extensions. The SSH protocol consists of three major components: The Transport Layer Protocol provides server authentication, confidentiality, and integrity with perfect forward secrecy. The User Authentication Protocol authenticates the client to the server. The Connection Protocol multiplexes the encrypted tunnel into several logical channels. Details of these protocols are described in separate documents. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4251"/>
          <seriesInfo name="DOI" value="10.17487/RFC4251"/>
        </reference>
        <reference anchor="RFC4253">
          <front>
            <title>The Secure Shell (SSH) Transport Layer Protocol</title>
            <author fullname="T. Ylonen" initials="T." surname="Ylonen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>The Secure Shell (SSH) is a protocol for secure remote login and other secure network services over an insecure network.</t>
              <t>This document describes the SSH transport layer protocol, which typically runs on top of TCP/IP. The protocol can be used as a basis for a number of secure network services. It provides strong encryption, server authentication, and integrity protection. It may also provide compression.</t>
              <t>Key exchange method, public key algorithm, symmetric encryption algorithm, message authentication algorithm, and hash algorithm are all negotiated.</t>
              <t>This document also describes the Diffie-Hellman key exchange method and the minimal set of algorithms that are needed to implement the SSH transport layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4253"/>
          <seriesInfo name="DOI" value="10.17487/RFC4253"/>
        </reference>
        <reference anchor="RFC5656">
          <front>
            <title>Elliptic Curve Algorithm Integration in the Secure Shell Transport Layer</title>
            <author fullname="D. Stebila" initials="D." surname="Stebila"/>
            <author fullname="J. Green" initials="J." surname="Green"/>
            <date month="December" year="2009"/>
            <abstract>
              <t>This document describes algorithms based on Elliptic Curve Cryptography (ECC) for use within the Secure Shell (SSH) transport protocol. In particular, it specifies Elliptic Curve Diffie-Hellman (ECDH) key agreement, Elliptic Curve Menezes-Qu-Vanstone (ECMQV) key agreement, and Elliptic Curve Digital Signature Algorithm (ECDSA) for use in the SSH Transport Layer protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5656"/>
          <seriesInfo name="DOI" value="10.17487/RFC5656"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf">
          <front>
            <title>SEC 1: Elliptic Curve Cryptography</title>
            <author>
              <organization>Standards for Efficient Cryptography Group</organization>
            </author>
            <date year="2009" month="May"/>
          </front>
          <refcontent>Version 2.0</refcontent>
        </reference>
        <reference anchor="SCLOUDPLUS" target="https://www.niccs.org.cn/niccs/Round1Additional/pc/content/content_2101560881269264384.html">
          <front>
            <title>Scloud+ Algorithm Specifications and Supporting Documentation</title>
            <author initials="A." surname="Wang" fullname="Anyu Wang">
              <organization/>
            </author>
            <author initials="Z." surname="Zheng" fullname="Zhongxiang Zheng">
              <organization/>
            </author>
            <author initials="C." surname="Zhao" fullname="Chunhuan Zhao">
              <organization/>
            </author>
            <author initials="Y." surname="Tang" fullname="Yi Tang">
              <organization/>
            </author>
            <author initials="Z." surname="Qiu" fullname="Zhiyuan Qiu">
              <organization/>
            </author>
            <author initials="C." surname="Mu" fullname="Changchun Mu">
              <organization/>
            </author>
            <date year="2026" month="April" day="30"/>
          </front>
          <refcontent>Round 1 submission to the Next-generation Commercial Cryptographic Algorithms Program (NGCC)</refcontent>
        </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="RFC4250">
          <front>
            <title>The Secure Shell (SSH) Protocol Assigned Numbers</title>
            <author fullname="S. Lehtinen" initials="S." surname="Lehtinen"/>
            <author fullname="C. Lonvick" initials="C." role="editor" surname="Lonvick"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document defines the instructions to the IANA and the initial state of the IANA assigned numbers for the Secure Shell (SSH) protocol. It is intended only for the initialization of the IANA registries referenced in the set of SSH documents. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4250"/>
          <seriesInfo name="DOI" value="10.17487/RFC4250"/>
        </reference>
        <reference anchor="RFC8731">
          <front>
            <title>Secure Shell (SSH) Key Exchange Method Using Curve25519 and Curve448</title>
            <author fullname="A. Adamantiadis" initials="A." surname="Adamantiadis"/>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="M. Baushke" initials="M." surname="Baushke"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the specification for using Curve25519 and Curve448 key exchange methods in the Secure Shell (SSH) protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8731"/>
          <seriesInfo name="DOI" value="10.17487/RFC8731"/>
        </reference>
        <reference anchor="RFC9794">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
            <author fullname="M. Parsons" initials="M." surname="Parsons"/>
            <author fullname="B. Hale" initials="B." surname="Hale"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9794"/>
          <seriesInfo name="DOI" value="10.17487/RFC9794"/>
        </reference>
        <reference anchor="RFC9941">
          <front>
            <title>Secure Shell (SSH) Key Exchange Method Using Hybrid Streamlined NTRU Prime sntrup761 and X25519 with SHA-512: sntrup761x25519-sha512</title>
            <author fullname="M. Friedl" initials="M." surname="Friedl"/>
            <author fullname="J. Mojzis" initials="J." surname="Mojzis"/>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <date month="April" year="2026"/>
            <abstract>
              <t>This document describes a widely deployed hybrid key exchange method in the Secure Shell (SSH) protocol that is based on Streamlined NTRU Prime sntrup761 and X25519 with SHA-512.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9941"/>
          <seriesInfo name="DOI" value="10.17487/RFC9941"/>
        </reference>
        <reference anchor="RFC10042">
          <front>
            <title>Post-Quantum/Traditional Hybrid Key Exchange with the Module-Lattice-Based Key-Encapsulation Mechanism for Use in SSH</title>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="D. Stebila" initials="D." surname="Stebila"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="August" year="2026"/>
            <abstract>
              <t>This document defines Post-Quantum Traditional (PQ/T) Hybrid key exchange methods based on the quantum-resistant Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) standard and traditional Elliptic-Curve Diffie-Hellman (ECDH) key exchange schemes. These methods are defined for use in the Secure Shell (SSH) transport layer protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="10042"/>
          <seriesInfo name="DOI" value="10.17487/RFC10042"/>
        </reference>
        <reference anchor="I-D.longa-cfrg-frodokem">
          <front>
            <title>FrodoKEM: key encapsulation from learning with errors</title>
            <author fullname="Patrick Longa" initials="P." surname="Longa">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Joppe W. Bos" initials="J. W." surname="Bos">
              <organization>NXP Semiconductors</organization>
            </author>
            <author fullname="Stephan Ehlen" initials="S." surname="Ehlen">
              <organization>Federal Office for Information Security</organization>
            </author>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <date day="22" month="June" year="2026"/>
            <abstract>
              <t>   This internet draft specifies FrodoKEM, an IND-CCA2 secure Key
   Encapsulation Mechanism (KEM).

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-longa-cfrg-frodokem/.

   Source for this draft and an issue tracker can be found at
   github.com/dstebila/frodokem-internet-draft.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-longa-cfrg-frodokem-03"/>
        </reference>
        <reference anchor="IANA-SSH" target="https://www.iana.org/assignments/ssh-parameters">
          <front>
            <title>Secure Shell (SSH) Protocol Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NGCC" target="https://www.niccs.org.cn/niccs/Round1Additional/pc/list.html">
          <front>
            <title>Next-generation Commercial Cryptographic Algorithms Program (NGCC): Round 1 Candidates, Public-Key Cryptographic Algorithms</title>
            <author>
              <organization>Institute of Commercial Cryptography Standards (ICCS)</organization>
            </author>
            <date year="2026" month="September"/>
          </front>
        </reference>
        <reference anchor="SCLOUDPLUS-SSR24">
          <front>
            <title>Scloud+: An Efficient LWE-Based KEM Without Ring/Module Structure</title>
            <author initials="A." surname="Wang">
              <organization/>
            </author>
            <author initials="Z." surname="Zheng">
              <organization/>
            </author>
            <author initials="C." surname="Zhao">
              <organization/>
            </author>
            <author initials="Z." surname="Qiu">
              <organization/>
            </author>
            <author initials="G." surname="Zeng">
              <organization/>
            </author>
            <author initials="Y." surname="Yuan">
              <organization/>
            </author>
            <author initials="C." surname="Mu">
              <organization/>
            </author>
            <author initials="X." surname="Wang">
              <organization/>
            </author>
            <date year="2025"/>
          </front>
          <seriesInfo name="DOI" value="10.1007/978-3-031-87541-0_7"/>
          <refcontent>Security Standardisation Research (SSR 2024), LNCS 15559, pp. 147-174, Springer</refcontent>
        </reference>
      </references>
    </references>
    <?line 286?>

<section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>Test vectors will be provided in a future version of this document. Known-answer tests for Scloud+ itself are part of the NGCC submission package <xref target="SCLOUDPLUS"/>.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document follows the structure of <xref target="RFC10042"/> and <xref target="RFC9941"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
cWgjUkDKE97SbwQdnz8jBRTKLRpwCagT6T9IcgPwE8hubODVsqmBKU6lEKTZ
dGIQ2Fz/opYdDFAWfn6I4qfIk5F5wlCq0KkRdUB8huCdikdb+1mhWHd9Ao9J
EKKZGdKNanJmRPP1638KDe5TYkirLQEweA7EMFU4UcNeK5sswmOqSmvJ0TZn
sK9mVb9BrNg9MQhKgWkYQJ6YMxwqrJjiAXJT5KZiYqASFQUuSYFZBxG6L3C2
6lkuNzkPm8sHoKIzCowRpP1HKhmEP4thdE/ALFCX4UjEcVt9SsJYc1yCWKkm
qQQTKpbCddnXcRuVIBDExK1MEvQR3AybBiAP4At5wQAdIj5NWTU+xzvUsa8T
kFwGBm04BvMSQEGlkUwX1o958GvIzMp4HyAbFfv2Y1A8bRcZnwszh6+UemVU
qvIN1jfI+ufPnqtwMNlJ4BzWXwkrgnmAXeAk9M0J2jR8JBMB0qPLE29w3Rdg
zOgnaIjGBwYUR1YU4pv8nwDaHrR39SDnMcaXFIwZ4xSPQaMH/JyBV/yTUxrb
PUN5w0sM+p3CNJqr2AuMy1RRkNc+7nBzwv7u7B+Uhg6UMnAuJUEhGgOi6A/H
NFyK8Wn/bCgeZQo1l9UghnT7AqMTqNf6CcydxU8cEFmhEHpT/Un0UVZgSEDS
yYptWwU9XMtrd45wNkCACPkBb1AF7ENe7HINZoeGF6iwzmAfjICVp5EUQsxp
HvncnkGfYwq4f1hwAkObYgzBxpDz6gCkh7imAWmHbb7YqTVoIhsnGGTZs0cR
p04n/EYBPQGjvVWgvSHBTxLoiaJHCngutyBaKMN2Q9TRKs4KVO1NGb4pI1UT
BmcWiNfRI+7E9aROEIsT5DZsLLwq9kyN2L54P77dbvC/4vKKnm+G796PboYn
+AwiOz8vHrbsiPHp1fvzk/KpnDm4urgYXp7wZHgraq+2ti/6H7fZprevrm9H
V5f9820GWDUQgME0RixIIk/A38F4pNkCz/ZTPeE4/npw/b//0+6CGP4NMnOn
3T4m5Io/jqDUgR9PM2U9iGyVf4LcF1sQmyBrkMmD1YCIdSZDzDJgmmDIEUfv
ra1//y+UzH/3xJ8nftLu/sW+wA3XXjqZ1V6SzFbfrExmIa55tWaZQpq190uS
rvPb/1j77eReefnnvyKQE1776K9/2XJWMllknJQhEGKqAsAhBTbs2V8ox4G4
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
ruNJaqpe76jfFnMmztfJYMX/A1xMdC6cNAAA

-->

</rfc>
