<?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.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sun-ssh-composite-sigs-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="SSH Composite Signatures">Composite ML-DSA Signatures for SSH</title>
    <seriesInfo name="Internet-Draft" value="draft-sun-ssh-composite-sigs-02"/>
    <author initials="S." surname="Sun" fullname="Sun Shuzhou">
      <organization>Huawei</organization>
      <address>
        <email>sunshuzhou@huawei.com</email>
      </address>
    </author>
    <author initials="L." surname="Prabel" fullname="Lucas Prabel">
      <organization>Huawei</organization>
      <address>
        <email>lucas.prabel@huawei.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="05"/>
    <area>Security</area>
    <workgroup>sshm</workgroup>
    <keyword>ssh</keyword>
    <keyword>Composite Signatures</keyword>
    <keyword>ML-DSA</keyword>
    <abstract>
      <?line 83?>

<t>This document describes the use of PQ/T composite signatures for the Secure Shell (SSH) protocol. The composite signatures described combine ML-DSA as the post-quantum part and the elliptic curve signature schemes ECDSA, Ed25519 and Ed448 as the traditional part.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://example.com/LATEST"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-sun-ssh-composite-sigs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Secure Shell Maintenance (sshm) Working Group mailing list (<eref target="mailto:ssh@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ssh/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ssh/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/USER/REPO"/>.</t>
    </note>
  </front>
  <middle>
    <?line 87?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The development of quantum computers has raised concern towards traditional asymmetric cryptographic algorithms. A Cryptographically Relevant Quantum Computer (CRQC) will break RSA and elliptic curve signature schemes. There is a need to migrate to quantum-resistant signature schemes.</t>
      <t>Recently, NIST publised the ML-DSA <xref target="FIPS204"/> algorithm, which is a post-quantum signature scheme. However, when using relatively new cryptographic schemes, the lack of maturing time makes people worry. Many hybrid solutions are thus proposed, which combine a traditional algorithm with a post-quantum algorithm.</t>
      <t><xref target="FIPS204"/> defines both pure ML-DSA and pre-hash ML-DSA. This document only uses pure ML-DSA.</t>
      <t>This document describes how to combine ML-DSA with the elliptic curve signature schemes ECDSA, Ed25519 and Ed448 for authentication in the SSH <xref target="RFC4251"/> protocol.</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?>

<t>This document is consistent with the terminology for hybrid signatures defined in <xref target="I-D.draft-ietf-pquip-pqt-hybrid-terminology"/>.</t>
      <t>The key and signature formats follows the notation introduced in <xref target="RFC4251"/>, Section 3, and the string data type format follows the notation from <xref target="RFC4251"/>, Section 5.</t>
    </section>
    <section anchor="composite-algorithms">
      <name>Composite Algorithms</name>
      <t>A composite algorithm has one post-quantum algorithm, and one traditional algorithm.</t>
      <section anchor="composite-kg">
        <name>Composite Key Generation</name>
        <t>Composite public and private keys are generated by calling the key generation functions of the two component algorithms and concatenating the keys in an order given by the registered composite algorithm.</t>
        <t>For the composite algorithms described in this document, the Key Generation process is as follows:</t>
        <artwork><![CDATA[
1. Generate component keys

    (mldsaPK, mldsaSK) = ML-DSA.KeyGen()
    (tradPK, tradSK) = ECCSigAlg.KeyGen()

2. Check for component key generation failure

    if NOT (mldsaPK, mldsaSK) or NOT (tradPK, tradSK):
        output "Key generation error"

3. Serialize keys into composite form

    Composite Public Key  <- SerializePublicKey(mldsaPK, tradPK)
    Composite Private Key <- SerializePrivateKey(mldsaSK, tradSK)
]]></artwork>
        <t>It makes use of the serialization routines from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> to obtain the byte string encodings of the composite public and private keys.</t>
        <t>ECCSigAlg is an elliptic curve signature scheme, i.e., ECDSA, Ed25519 or Ed448.</t>
      </section>
      <section anchor="composite-sign">
        <name>Composite Sign</name>
        <t>A composite signature's value <bcp14>MUST</bcp14> include two signature components and <bcp14>MUST</bcp14> be in the same order as the components from the corresponding signing key.</t>
        <t>For the composite algorithms described in this document, the signature process of a message M follows Section 4.2 of <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>, with an empty application context string:</t>
        <artwork><![CDATA[
1. Compute the Message representative M'

  M' <- Prefix || Label || 0x00 || PH(M)

2. Get the component keys

  (mldsaSK, tradSK) = DeserializePrivateKey(sk)

3. Generate the two component signatures

  sig_1 <- ML-DSA.Sign(mldsaSK, M', ctx=Label)
  sig_2 <- ECCSigAlg.Sign(tradSK, M')

4. If either ML-DSA.Sign() or ECCSigAlg.Sign() return an error, then this process MUST return an error.

    if NOT sig_1 or NOT sig_2:
      output "Signature generation error"

5. Output the encoded composite signature value.

    CompositeSignature <- SerializeSignatureValue(sig_1, sig_2)
    return CompositeSignature
]]></artwork>
        <t>It makes use of the serialization routines from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> to obtain the byte string encodings of the composite signature.</t>
        <t>The prefix "Prefix" string is defined as in <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> as the byte encoding of the string "CompositeAlgorithmSignatures2025", which in hex is 436F6D706F73697465416C676F726974686D5369676E61747572657332303235. It can be used by a traditional verifier to detect if the composite signature has been stripped apart.</t>
        <t>The label "Label" is defined in the same way as <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> and is passed as a context argument into the underlying ML-DSA component algorithm. The label values, specific to each composite algorithm, can be found in <xref target="tab-sig-alg-label"/>.</t>
        <table anchor="tab-sig-alg-label">
          <name>Composite Label Values</name>
          <thead>
            <tr>
              <th align="left">Key Format identifier</th>
              <th align="left">Label (in ASCII)</th>
              <th align="left">Label (in Hex encoding)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ssh-mldsa44-es256</td>
              <td align="left">COMPSIG-MLDSA44-ECDSA-P256-SHA256</td>
              <td align="left">434F4D505349472D4D4C44534134342D45434453412D503235362D534841323536</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa65-es256</td>
              <td align="left">COMPSIG-MLDSA65-ECDSA-P256-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534136352D45434453412D503235362D534841353132</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa87-es384</td>
              <td align="left">COMPSIG-MLDSA87-ECDSA-P384-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534138372D45434453412D503338342D534841353132</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa44-ed25519</td>
              <td align="left">COMPSIG-MLDSA44-Ed25519-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534134342D456432353531392D534841353132</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa65-ed25519</td>
              <td align="left">COMPSIG-MLDSA65-Ed25519-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534136352D456432353531392D534841353132</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa87-ed448</td>
              <td align="left">COMPSIG-MLDSA87-Ed448-SHAKE256</td>
              <td align="left">434F4D505349472D4D4C44534138372D45643434382D5348414B45323536</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="composite-verify">
        <name>Composite Verify</name>
        <t>The Verify algorithm <bcp14>MUST</bcp14> validate a signature only if all component signatures are successfully validated.</t>
        <artwork><![CDATA[
1. Get the component keys and signatures

    (mldsaPK, tradPK) <- DeserializePublicKey(pk)
    (sig_1, sig_2) <- DeserializeSignatureValue(sig)

2. Compute the message representative M'

    M' <- Prefix || Label || 0x00 || PH(M)

3. Check each component signature individually, according to its algorithm specification.

    if NOT ML-DSA.Verify(mldsaPK, M', ctx=Label)
        output "Invalid signature"
    if NOT ECCSigAlg.Verify(tradPK, M')
        output "Invalid signature"
    if all succeeded, then
        output "Valid signature"
]]></artwork>
        <t>It makes use of the serialization routines from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> to obtain the component public keys and the component signatures.</t>
      </section>
    </section>
    <section anchor="pk-algos">
      <name>Public Key Algorithm</name>
      <t>This section gives the concrete composite signature algorithms and their component algorithms. Their usage within SSH follows Section 6.6 of <xref target="RFC4253"/>.</t>
      <t>The following table defines a list of algorithms associated with specific PQ/T combinations.</t>
      <table anchor="tab-ssh-algs">
        <name>Composite ML-DSA Signature Algorithms for SSH</name>
        <thead>
          <tr>
            <th align="left">Key Format Identifier</th>
            <th align="left">First Algorithm</th>
            <th align="left">Second Algorithm</th>
            <th align="left">Pre-Hash</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ssh-mldsa44-es256</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">ecdsa-with-SHA256 with secp256r1</td>
            <td align="left">SHA256</td>
            <td align="left">Composite Signature with ML-DSA-44 and ECDSA using P-256 curve and SHA-256</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa65-es256</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">ecdsa-with-SHA256 with secp256r1</td>
            <td align="left">SHA512</td>
            <td align="left">Composite Signature with ML-DSA-65 and ECDSA using P-256 curve and SHA-256</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa87-es384</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">ecdsa-with-SHA384 with secp384r1</td>
            <td align="left">SHA512</td>
            <td align="left">Composite Signature with ML-DSA-87 and ECDSA using P-384 curve and SHA-384</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa44-ed25519</td>
            <td align="left">ML-DSA-44</td>
            <td align="left">Ed25519</td>
            <td align="left">SHA512</td>
            <td align="left">Composite Signature with ML-DSA-44 and Ed25519</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa65-ed25519</td>
            <td align="left">ML-DSA-65</td>
            <td align="left">Ed25519</td>
            <td align="left">SHA512</td>
            <td align="left">Composite Signature with ML-DSA-65 and Ed25519</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa87-ed448</td>
            <td align="left">ML-DSA-87</td>
            <td align="left">Ed448</td>
            <td align="left">SHAKE256</td>
            <td align="left">Composite Signature with ML-DSA-87 and Ed448</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="public-key-format">
      <name>Public Key Format</name>
      <t>The key format for all parameter sets defined in this document follows the encoding pattern from <xref target="RFC4253"/>, Section 6.6.</t>
      <t><strong>string</strong> identifier</t>
      <t><strong>string</strong> key</t>
      <t>The 'identifier' is the key format identifier given in <xref target="tab-ssh-algs"/>.</t>
      <t>The 'key' is the composite public key generated as defined in <xref target="composite-kg"/>. It is the concatenation of the public keys of the component schemes.</t>
      <t>For ML-DSA, the public keys are defined in <xref target="FIPS204"/>.</t>
      <t>For ECDSA with curves secp256r1 or secp384r1, the public keys are defined in <xref target="RFC5656"/>, Section 3.1. The public key is encoded from an elliptic curve point into an octet string as defined in Section 2.3.3 of <xref target="SEC1"/>; point compression <bcp14>MAY</bcp14> be used.</t>
      <t>For Ed25519 and Ed448, the public keys are defined in <xref target="RFC8709"/>, Section 6.</t>
      <t>The "ssh-mldsa44-es256" key format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa44-es256</t>
      <t><strong>string</strong> key</t>
      <t>Here, 'key' is the concatenation of the 1312-octet ML-DSA-44 public key and the ECDSA public key using the secp256r1 curve.</t>
      <t>The "ssh-mldsa65-es256" key format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa65-es256</t>
      <t><strong>string</strong> key</t>
      <t>Here, 'key' is the concatenation of the 1952-octet ML-DSA-65 public key and the ECDSA public key using the secp256r1 curve.</t>
      <t>The "ssh-mldsa87-es384" key format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa87-es384</t>
      <t><strong>string</strong> key</t>
      <t>Here, 'key' is the concatenation of the 2592-octet ML-DSA-87 public key and the ECDSA public key using the secp384r1 curve.</t>
      <t>The "ssh-mldsa44-ed25519" key format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa44-ed25519</t>
      <t><strong>string</strong> key</t>
      <t>Here, 'key' is the concatenation of the 1312-octet ML-DSA-44 public key and the 32-octet Ed25519 public key.</t>
      <t>The "ssh-mldsa65-ed25519" key format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa65-ed25519</t>
      <t><strong>string</strong> key</t>
      <t>Here, 'key' is the concatenation of the 1952-octet ML-DSA-65 public key and the 32-octet Ed25519 public key.</t>
      <t>The "ssh-mldsa87-ed448" key format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa87-ed448</t>
      <t><strong>string</strong> key</t>
      <t>Here, 'key' is the concatenation of the 2592-octet ML-DSA-87 public key and the 57-octet Ed448 public key.</t>
    </section>
    <section anchor="signature-format">
      <name>Signature Format</name>
      <t>The signature format for all parameter sets defined in this document follows the encoding pattern defined in Section 6.6 of <xref target="RFC4253"/>.</t>
      <t><strong>string</strong> identifier</t>
      <t><strong>string</strong> signature</t>
      <t>The 'identifier' is the key format identifier given in <xref target="pk-algos"/>.</t>
      <t>The 'signature' is the composite signature generated as defined in <xref target="composite-kg"/>. It is the concatenation of the signatures of the component schemes.</t>
      <t>For ML-DSA, the signatures are defined in <xref target="FIPS204"/>.</t>
      <t>For ECDSA with curves secp256r1 and secp384r1, the signatures and their encodings are defined in <xref target="RFC5656"/>, Section 3.1.2.</t>
      <t>For Ed25519 and Ed448, the signature are defined in <xref target="RFC8709"/>, Section 6.</t>
      <t>The "ssh-mldsa44-es256" signature format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa44-es256</t>
      <t><strong>string</strong> signature</t>
      <t>Here, 'signature' is the concatenation of the 2420-octet ML-DSA-44 signature and the ECDSA signature using the secp256r1 curve.</t>
      <t>The "ssh-mldsa65-es256" signature format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa65-es256</t>
      <t><strong>string</strong> signature</t>
      <t>Here, 'signature' is the concatenation of the 3309-octet ML-DSA-65 signature and the ECDSA signature using the secp256r1 curve.</t>
      <t>The "ssh-mldsa87-es384" signature format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa87-es384</t>
      <t><strong>string</strong> signature</t>
      <t>Here, 'signature' is the concatenation of the 4627-octet ML-DSA-44 signature and the ECDSA signature using the secp384r1 curve.</t>
      <t>The "ssh-mldsa44-ed25519" signature format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa44-ed25519</t>
      <t><strong>string</strong> signature</t>
      <t>Here, 'signature' is the concatenation of the 2420-octet ML-DSA-44 signature and the 64-octet Ed25519 signature.</t>
      <t>The "ssh-mldsa65-ed25519" signature format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa65-ed25519</t>
      <t><strong>string</strong> signature</t>
      <t>Here, 'signature' is the concatenation of the 3309-octet ML-DSA-44 signature and the 64-octet Ed25519 signature.</t>
      <t>The "ssh-mldsa87-ed448" signature format has the following encoding:</t>
      <t><strong>string</strong> ssh-mldsa87-ed448</t>
      <t><strong>string</strong> signature</t>
      <t>Here, 'signature' is the concatenation of the 4627-octet ML-DSA-44 signature and the 114-octet Ed448 signature.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The Security Considerations section of <xref target="RFC4251"/> also applies to this document.</t>
      <t>The user can refer to <xref target="FIPS204"/> for security issues related to the ML-DSA post-quantum component of the composite algorithm and to the Security Considerations sections of <xref target="RFC5656"/> and <xref target="RFC8709"/> for the traditional component.</t>
      <t>For the specific security issues raising from the use of a hybrid composite signature scheme, the user can refer to <xref target="I-D.draft-ietf-pquip-hybrid-signature-spectrums"/>.</t>
      <t>For more information about hybrid composite signature schemes and the different hybrid combinations that appear in this document, the user can read <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following entries to "Public Key Algorithm Names" in the "Secure Shell (SSH) Protocol Parameters" registry <xref target="IANA.SSH"/>:</t>
      <table anchor="tab-pub-key-algo-name">
        <name>SSH Public Key Code Points</name>
        <thead>
          <tr>
            <th align="left">Public Key Algorithm Name</th>
            <th align="left">Key Format</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">ssh-mldsa44-es256</td>
            <td align="left">ssh-mldsa44-es256</td>
            <td align="left">THIS-RFC</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa65-es256</td>
            <td align="left">ssh-mldsa65-es256</td>
            <td align="left">THIS-RFC</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa87-es384</td>
            <td align="left">ssh-mldsa87-es384</td>
            <td align="left">THIS-RFC</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa44-ed25519</td>
            <td align="left">ssh-mldsa44-ed25519</td>
            <td align="left">THIS-RFC</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa65-ed25519</td>
            <td align="left">ssh-mldsa65-ed25519</td>
            <td align="left">THIS-RFC</td>
          </tr>
          <tr>
            <td align="left">ssh-mldsa87-ed448</td>
            <td align="left">ssh-mldsa87-ed448</td>
            <td align="left">THIS-RFC</td>
          </tr>
        </tbody>
      </table>
    </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="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="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="RFC8709">
          <front>
            <title>Ed25519 and Ed448 Public Key Algorithms for the Secure Shell (SSH) Protocol</title>
            <author fullname="B. Harris" initials="B." surname="Harris"/>
            <author fullname="L. Velvindron" initials="L." surname="Velvindron"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the use of the Ed25519 and Ed448 digital signature algorithms in the Secure Shell (SSH) protocol. Accordingly, this RFC updates RFC 4253.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8709"/>
          <seriesInfo name="DOI" value="10.17487/RFC8709"/>
        </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="IANA.SSH" target="https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml">
          <front>
            <title>Secure Shell (SSH) Protocol Parameters</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.draft-ietf-lamps-pq-composite-sigs">
          <front>
            <title>Composite ML-DSA for use in X.509 Public Key Infrastructure</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>OpenCA Labs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>Bundesdruckerei GmbH</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <date day="31" month="October" year="2025"/>
            <abstract>
              <t>   This document defines combinations of ML-DSA [FIPS.204] in hybrid
   with traditional algorithms RSASSA-PKCS1-v1.5, RSASSA-PSS, ECDSA,
   Ed25519, and Ed448.  These combinations are tailored to meet
   regulatory guidelines.  Composite ML-DSA is applicable in
   applications that uses X.509 or PKIX data structures that accept ML-
   DSA, but where the operator wants extra protection against breaks or
   catastrophic bugs in ML-DSA, and where EUF-CMA-level security is
   acceptable.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-13"/>
        </reference>
        <reference anchor="I-D.draft-ietf-pquip-pqt-hybrid-terminology">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Flo D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author fullname="Michael P" initials="M." surname="P">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author fullname="Britta Hale" initials="B." surname="Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <date day="10" month="January" 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="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-06"/>
        </reference>
        <reference anchor="I-D.draft-ietf-pquip-hybrid-signature-spectrums">
          <front>
            <title>Hybrid signature spectrums</title>
            <author fullname="Nina Bindel" initials="N." surname="Bindel">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Britta Hale" initials="B." surname="Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Flo D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="20" month="June" year="2025"/>
            <abstract>
              <t>   This document describes classification of design goals and security
   considerations for hybrid digital signature schemes, including proof
   composability, non-separability of the component signatures given a
   hybrid signature, backwards/forwards compatibility, hybrid
   generality, and simultaneous verification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hybrid-signature-spectrums-07"/>
        </reference>
        <reference anchor="FIPS204" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS204.pdf">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
        </reference>
        <reference anchor="SEC1" target="http://www.secg.org/download/aid-780/sec1-v2.pdf">
          <front>
            <title>Elliptic Curve Cryptography</title>
            <author>
              <organization>Standards for Efficient Cryptography Group</organization>
            </author>
            <date year="2009" month="May"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 411?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ji+Yna2Ej/03dlE5NRE/AAA=

-->

</rfc>
