<?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-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title>Composite ML-DSA Signatures for SSH</title>
    <seriesInfo name="Internet-Draft" value="draft-sun-ssh-composite-sigs-01"/>
    <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="2025" month="July" day="04"/>
    <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[
(pk_1, sk_1) <- ML-DSA.KeyGen()
(pk_2, sk_2) <- ECCSigAlg.KeyGen()

Composite Public Key <- SerializePublicKey(pk_1, pk_2)
Composite Private Key <- SerializePrivateKey(sk_1, sk_2)
]]></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.1 of <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>, with an empty application context string:</t>
        <artwork><![CDATA[
M' <- Prefix || Domain || 0x00 || r || PH(M)

sig_1 <- ML-DSA.Sign(sk_1, M', ctx=Domain)
sig_2 <- ECCSigAlgo.Sign(sk_2, M')

Composite Signature <- SerializeSignatureValue(r, sig_1, sig_2)
]]></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>A signature randomizer r is used to prevent specific attacks unique to composite signature schemes. More details can be found in <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>.</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 domain separator "Domain" is defined in the same way as <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> as the DER encoding of the OID of the specific composite algorithm. The specific values can be found in <xref target="tab-sig-alg-oids"/>.</t>
        <table anchor="tab-sig-alg-oids">
          <name>Composite Domain Separators</name>
          <thead>
            <tr>
              <th align="left">Key Format identifier</th>
              <th align="left">Domain Separator (in Hex encoding)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ssh-mldsa44-es256</td>
              <td align="left">060B6086480186FA6B50090103</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa65-es256</td>
              <td align="left">060B6086480186FA6B50090108</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa87-es384</td>
              <td align="left">060B6086480186FA6B5009010C</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa44-ed25519</td>
              <td align="left">060B6086480186FA6B50090102</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa65-ed25519</td>
              <td align="left">060B6086480186FA6B5009010B</td>
            </tr>
            <tr>
              <td align="left">ssh-mldsa87-ed448</td>
              <td align="left">060B6086480186FA6B5009010E</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[
(pk_1, pk_2) <- DeserializePublicKey(pk)
(r, sig_1, sig_2) <- DeserializeSignatureValue(sig)

M' <- Prefix || Domain || 0x00 || r || PH(M)

if not ML-DSA.Verify(pk_1, M', ctx=Domain)
    output "Invalid signature"
if not ECCSigAlgo.Verify(pk_2, 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, the randomizer r, 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">id-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">id-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">id-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">id-sha512</td>
            <td align="left">Composite Signature with ML-DSA-44 and Ed25519 and SHA-512</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">id-sha512</td>
            <td align="left">Composite Signature with ML-DSA-65 and Ed25519 and SHA-512</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">id-sha512</td>
            <td align="left">Composite Signature with ML-DSA-87 and Ed448 and SHA-512</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 a randomizer and 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 a 32 bytes randomizer and 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 a 32 bytes randomizer and 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 a 32 bytes randomizer and 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 a 32 bytes randomizer and 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 a 32 bytes randomizer and 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 a 32 bytes randomizer and 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="18" month="June" 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 security
   best practices and regulatory guidelines.  Composite ML-DSA is
   applicable in any application 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.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-06"/>
        </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 382?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
MTsRY/8f8e0MJCk7AAA=

-->

</rfc>
