<?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.30 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-jose-pq-composite-sigs-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="JOSE/COSE Composite Signatures">PQ/T Hybrid Composite Signatures for JOSE and COSE</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-jose-pq-composite-sigs-00"/>
    <author initials="L." surname="Prabel" fullname="Lucas Prabel">
      <organization>Huawei</organization>
      <address>
        <email>lucas.prabel@huawei.com</email>
      </address>
    </author>
    <author initials="S." surname="Sun" fullname="Sun Shuzhou">
      <organization>Huawei</organization>
      <address>
        <email>sunshuzhou@huawei.com</email>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <email>john.gray@entrust.com</email>
      </address>
    </author>
    <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="23"/>
    <area>Security</area>
    <workgroup>JOSE</workgroup>
    <keyword>JOSE</keyword>
    <keyword>COSE</keyword>
    <keyword>PQC</keyword>
    <keyword>ML-DSA</keyword>
    <keyword>Signature</keyword>
    <keyword>Hybrid</keyword>
    <abstract>
      <?line 88?>

<t>This document describes JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for PQ/T hybrid composite signatures. The composite algorithms described combine ML-DSA as the post-quantum component and either ECDSA or EdDSA as the traditional component.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-jose-pq-composite-sigs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Javascript Object Signing and Encryption Working Group mailing list (<eref target="mailto:jose@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/jose/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/jose/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/lucasprabel/draft-jose-pq-composite-sigs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 92?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The impact of a potential Cryptographically Relevant Quantum Computer (CRQC) on algorithms whose security is based on mathematical problems such as integer factorisation or discrete logarithms over finite fields or elliptic curves raises the need for new algorithms that are perceived to be secure against CRQC as well as classical computers. Such algorithms are called post-quantum, while algorithms based on integer factorisation or discrete logarithms are called traditional.</t>
      <t>While switching from a traditional algorithm to a post-quantum one intends to strengthen the security against an adversary possessing a quantum computer, the lack of maturing time of post-quantum algorithms compared to traditional algorithms raises uncertainty about their security.</t>
      <t>Thus, the joint use of a traditional algorithm and a post-quantum algorithm in protocols represents a solution to this problem by providing security as long as at least one of the traditional or post-quantum components remains secure.</t>
      <t>This document describes JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for hybrid composite signatures. The composite algorithms described combine ML-DSA as the post-quantum component and either ECDSA or EdDSA as the traditional component.</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 follows the terminology for post-quantum hybrid schemes defined in <xref target="I-D.draft-ietf-pquip-pqt-hybrid-terminology"/>.</t>
      <t>This section recalls some of this terminology, but also adds other definitions used throughout the whole document:</t>
      <t>"Asymmetric Traditional Cryptographic Algorithm":
         An asymmetric cryptographic algorithm based on integer factorisation, finite field discrete logarithms, elliptic curve discrete logarithms, or related mathematical problems. A related mathematical problem is one that can be solved by solving the integer factorisation, finite field discrete logarithm or elliptic curve discrete logarithm problem. Where there is little risk of confusion asymmetric traditional cryptographic algorithms can also be referred to as traditional algorithms for brevity.</t>
      <t>"Post-Quantum Algorithm":
         An asymmetric cryptographic algorithm that is intended to be secure against attacks using quantum computers as well as classical computers. As with all cryptography, it always remains the case that attacks, either quantum or classical, may be found against post-quantum algorithms. Therefore it should not be assumed that just because an algorithm is designed to provide post-quantum security it will not be compromised.</t>
      <t>"Post-Quantum Traditional (PQ/T) Hybrid Scheme":
         A multi-algorithm scheme where at least one component algorithm is a post-quantum algorithm and at least one is a traditional algorithm.</t>
      <t>"PQ/T Hybrid Digital Signature":
         A multi-algorithm digital signature scheme made up of two or more component digital signature algorithms where at least one is a post-quantum algorithm and at least one is a traditional algorithm.</t>
      <t>"Composite Algorithm":
          An algorithm which is a sequence of two component algorithms, as defined in <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>.</t>
      <t>"Component Algorithm":
         Each cryptographic algorithm that forms part of a cryptographic scheme.</t>
    </section>
    <section anchor="algorithm-key-pair-akp-type">
      <name>Algorithm Key Pair (AKP) Type</name>
      <t>This document makes use of the Algorithm Key Pair (AKP) type which is defined in <xref target="I-D.draft-ietf-cose-dilithium"/>.</t>
      <t>As a reminder, the AKP type is used to express public and private keys for use with algorithms. The parameters for public and private keys contain byte strings.</t>
      <t>This document makes use of the serialization routines defined in <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>The process to compute JWK Thumbprint and COSE Key Thumbprint as described in <xref target="RFC7638"/> and <xref target="RFC9679"/> is detailed in <xref target="I-D.draft-ietf-cose-dilithium"/>.</t>
    </section>
    <section anchor="composite-signature-algorithm">
      <name>Composite Signature Algorithm</name>
      <t>The structures of the composite keys and composite signatures follow an approach similar to <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>. The composite design is chosen so that composite keys and signatures can be used as a drop-in replacement in JOSE / COSE object formats. This section gives some details about their construction.</t>
      <section anchor="composite-key-generation">
        <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><tt>
Composite Public Key &lt;- Public Key of the 1st Algorithm || Public Key of the 2nd Algorithm
</tt>
and</t>
        <t><tt>
Composite Private Key &lt;- Private Key of the 1st Algorithm || Private Key of the 2nd Algorithm
</tt></t>
        <t>For the composite algorithms described in this document (ML-DSA with ECDSA or EdDSA), the Key Generation process is as follows:</t>
        <artwork><![CDATA[
1. Generate component keys

    mldsaSeed = Random(32)
    (mldsaPK, mldsaSK) = ML-DSA.KeyGen_internal(mldsaSeed)

    (tradPK, tradSK) = Trad.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(mldsaSeed, tradSK)

]]></artwork>
        <t>As in <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>, this keygen routine uses the seed-based ML-DSA.KeyGen_internal defined in Algorithm 6 of <xref target="FIPS.204"/>.</t>
        <t>This document 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. These encodings are then directly used with the AKP Key Type. For more information, see the <tt>SerializePublicKey</tt>, <tt>DeserializePublicKey</tt>, <tt>SerializePrivateKey</tt> and <tt>DeserializePrivateKey</tt> algorithms from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>.</t>
        <t>Point compression for the ECDSA or EdDSA component is not performed for the AKP JSON Web Key Type but can be performed for the AKP COSE Key Type.</t>
        <t>In this document, as in <xref target="I-D.draft-ietf-cose-dilithium"/>, the ML-DSA private key <bcp14>MUST</bcp14> be a 32-bytes seed.</t>
      </section>
      <section anchor="composite-sign">
        <name>Composite Sign</name>
        <t>When signing a message M with the composite Sign algorithm, the signature combiner prepends a prefix as well as a label value specific to the composite algorithm used to bind the two component signatures to the composite algorithm and achieve weak non-separability, as defined in <xref target="I-D.draft-ietf-pquip-hybrid-signature-spectrums"/>.</t>
        <t>However, only the pure ML-DSA component algorithm is used internally.</t>
        <t>A composite signature's value <bcp14>MUST</bcp14> include the two signature components and the two components <bcp14>MUST</bcp14> be in the same order as the components from the corresponding signing key.</t>
        <t>A composite signature for the message M is generated by:</t>
        <ul spacing="normal">
          <li>
            <t>computing the pre-hash of the message M;</t>
          </li>
          <li>
            <t>concatenating the prefix, the label, a byte 0x00 and the pre-hash;</t>
          </li>
          <li>
            <t>encoding the resulting message;</t>
          </li>
          <li>
            <t>calling the two signature component algorithms on this new message;</t>
          </li>
          <li>
            <t>concatenating the two output signatures.</t>
          </li>
        </ul>
        <t>For the composite algorithms described in this document (ML-DSA with ECDSA or EdDSA), the signature process of a message M is as follows:</t>
        <artwork><![CDATA[
1. Compute the Message representative M'

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

2. Separate the private key into component keys and re-generate the ML-DSA key from seed

    (mldsaSeed, tradSK) = DeserializePrivateKey(sk)
    (_, mldsaSK) = ML-DSA.KeyGen_internal(mldsaSeed)

3. Generate the two component signatures

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

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

    if NOT mldsaSig or NOT tradSig:
      output "Signature generation error"

5. Output the encoded composite signature value.

    CompositeSignature <- SerializeSignatureValue(sig_1, sig_2)
    return CompositeSignature
]]></artwork>
        <t>The serialization routines from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> are again used to obtain the byte string encoding of the composite signature. The <tt>SerializeSignatureValue</tt> routine simply concatenates the fixed-length ML-DSA signature value and the signature value from the traditional algorithm. For more information, see the <tt>SerializeSignatureValue</tt> and <tt>DeserializeSignatureValue</tt> algorithms from <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>A signature label "Label" is defined in the same way as <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>. It is specific to each composite algorithm. Additionally, the composite label is passed into the underlying ML-DSA primitive as the ctx. Signature Label values can be found in <xref target="tab-sig-alg-label"/>.</t>
        <t>Similarly to <xref target="I-D.draft-ietf-cose-dilithium"/> which indicates that the ctx parameter <bcp14>MUST</bcp14> be the empty string, the application context passed in to the composite signature algorithm <bcp14>MUST</bcp14> be the empty string. To align with the structure of the <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> combiner, the byte 0x00 is appended in the message M' after the label to indicate the context has length 0. However, a second non-empty context, defined as the label, is passed down into the underlying pure ML-DSA component algorithm, to bind the Composite-ML-DSA algorithm used.</t>
        <t><xref target="tab-jose-algs"/> (resp. <xref target="tab-cose-algs"/>) indicates the pre-hash algorithms to use for JOSE (resp. COSE).</t>
        <t>For JOSE (resp. COSE), M' is base64url-encoded (resp. binary encoded) before signature computations.</t>
      </section>
      <section anchor="composite-verify">
        <name>Composite Verify</name>
        <t>The Verify algorithm <bcp14>MUST</bcp14> validate a signature only if all component signatures were successfully validated.</t>
        <t>The verification process of a signature sig is as follows:</t>
        <ul spacing="normal">
          <li>
            <t>separate the composite public key into the component public keys;</t>
          </li>
          <li>
            <t>separate the composite signature into its 2 component signatures;</t>
          </li>
          <li>
            <t>compute the message M' from the message M whose signature is to be verified;</t>
          </li>
          <li>
            <t>encode the resulting message M';</t>
          </li>
          <li>
            <t>verify each component signature.</t>
          </li>
        </ul>
        <artwork><![CDATA[
1. Separate the keys and signatures

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

    If Error during deserialization, or if any of the component keys or signature values are not of the correct type or length for the given component algorithm then output "Invalid signature" and stop.

2. Compute the message representative M'

    M' <- Prefix || Label || 0x00 || PH(M)
    M' <- Encode(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 Trad.Verify(tradPK, M')
        output "Invalid signature"
    if all succeeded, then
        output "Valid signature"
]]></artwork>
        <t>The <tt>DeserializePublicKey</tt> and <tt>DeserializeSignatureValue</tt> serialization routines from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/> are used to get the component public keys and the component signatures. For more information, see the <tt>DeserializePublicKey</tt> and <tt>DeserializeSignatureValue</tt> algorithms from <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>.</t>
      </section>
      <section anchor="encoding-rules">
        <name>Encoding Rules</name>
        <t>In each combination, the byte streams of the keys and of the signatures are directly concatenated.</t>
        <t><tt>
Signature of the 1st Algorithm || Signature of the 2nd Algorithm
</tt></t>
        <t>Since all combinations presented in this document start with the ML-DSA algorithm and the key or signature sizes are fixed as defined in <xref target="FIPS.204"/>, it is unambiguous to encode or decode a composite key or signature.</t>
        <t><xref target="tab-ml-dsa-size"/> lists sizes of the three parameter sets of the ML-DSA algorithm.</t>
        <table anchor="tab-ml-dsa-size">
          <name>Sizes (in bytes) of keys and signatures of ML-DSA</name>
          <thead>
            <tr>
              <th align="left"> </th>
              <th align="left">Private Key (seed)</th>
              <th align="left">Private Key</th>
              <th align="left">Public Key</th>
              <th align="left">Signature Size</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-DSA-44</td>
              <td align="left">32</td>
              <td align="left">2560</td>
              <td align="left">1312</td>
              <td align="left">2420</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65</td>
              <td align="left">32</td>
              <td align="left">4032</td>
              <td align="left">1952</td>
              <td align="left">3309</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87</td>
              <td align="left">32</td>
              <td align="left">4896</td>
              <td align="left">2592</td>
              <td align="left">4627</td>
            </tr>
          </tbody>
        </table>
        <t>Note that the seed is always 32 bytes, and that  ML-DSA.KeyGen_internal from <xref target="FIPS.204"/> is called to produce the expanded private key from the seed, whose size corresponds to the sizes of the private key in the table above.</t>
      </section>
    </section>
    <section anchor="composite-signature-instantiations">
      <name>Composite Signature Instantiations</name>
      <t>The ML-DSA signature scheme supports three possible parameter sets, each of which corresponding to a specific security strength. See <xref target="FIPS.204"/> for more considerations on that matter.</t>
      <t>The traditional signature algorithm for each combination in <xref target="tab-jose-algs"/> and <xref target="tab-cose-algs"/> was chosen to match the security level of the ML-DSA post-quantum component.</t>
      <t>The <xref target="FIPS.204"/> specification defines both pure and pre-hash modes for ML-DSA, referred to as "ML-DSA" and "HashML-DSA" respectively. This document only specifies a single mode which is similar in construction to HashML-DSA. However, because the pre-hashing is done at the composite level, only the pure ML-DSA algorithm is used as the underlying ML-DSA primitive.</t>
      <section anchor="jose-algorithms">
        <name>JOSE algorithms</name>
        <t>The following table defines a list of algorithms associated with specific PQ/T combinations to be registered in <xref target="IANA.JOSE"/>.</t>
        <table anchor="tab-jose-algs">
          <name>JOSE Composite Signature Algorithms for ML-DSA</name>
          <thead>
            <tr>
              <th align="left">Name</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">ML-DSA-44-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 SHA256</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65-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 SHA256</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87-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 SHA384</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-44-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">ML-DSA-65-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">ML-DSA-87-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>
        <t>Examples can be found in <xref target="appdx-jose"/>.</t>
      </section>
      <section anchor="cose-algorithms">
        <name>COSE algorithms</name>
        <t>The following table defines a list of algorithms associated with specific PQ/T combinations to be registered in <xref target="IANA.COSE"/>.</t>
        <table anchor="tab-cose-algs">
          <name>COSE Composite Signature Algorithms for ML-DSA</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">COSE Value</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">ML-DSA-44-ES256</td>
              <td align="left">TBD (request assignment -51)</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 SHA256</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65-ES256</td>
              <td align="left">TBD (request assignment -52)</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 SHA256</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87-ES384</td>
              <td align="left">TBD (request assignment -53)</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 SHA384</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-44-Ed25519</td>
              <td align="left">TBD (request assignment -54)</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">ML-DSA-65-Ed25519</td>
              <td align="left">TBD (request assignment -55)</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">ML-DSA-87-Ed448</td>
              <td align="left">TBD (request assignment -56)</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>
        <t>Examples can be found in <xref target="appdx-cose"/>.</t>
      </section>
      <section anchor="composite-labels-for-jose-and-cose">
        <name>Composite Labels for JOSE and COSE</name>
        <t>The JOSE and COSE composite label values are listed in <xref target="tab-sig-alg-label"/>.</t>
        <t>They are represented here as ASCII strings, but implementers <bcp14>MUST</bcp14> convert them to byte strings using the obvious ASCII conversions prior to concatenating them with other byte values, as in <xref target="I-D.draft-ietf-lamps-pq-composite-sigs"/>.</t>
        <table anchor="tab-sig-alg-label">
          <name>JOSE/COSE Composite Label Values</name>
          <thead>
            <tr>
              <th align="left">"alg" Header Parameter</th>
              <th align="left">Label (in ASCII)</th>
              <th align="left">Label (in Hex encoding)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ML-DSA-44-ES256</td>
              <td align="left">COMPSIG-MLDSA44-ECDSA-P256-SHA256</td>
              <td align="left">434F4D505349472D4D4C44534134342D45434453412D503235362D534841323536</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65-ES256</td>
              <td align="left">COMPSIG-MLDSA65-ECDSA-P256-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534136352D45434453412D503235362D534841353132</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87-ES384</td>
              <td align="left">COMPSIG-MLDSA87-ECDSA-P384-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534138372D45434453412D503338342D534841353132</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-44-Ed25519</td>
              <td align="left">COMPSIG-MLDSA44-Ed25519-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534134342D456432353531392D534841353132</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-65-Ed25519</td>
              <td align="left">COMPSIG-MLDSA65-Ed25519-SHA512</td>
              <td align="left">434F4D505349472D4D4C44534136352D456432353531392D534841353132</td>
            </tr>
            <tr>
              <td align="left">ML-DSA-87-Ed448</td>
              <td align="left">COMPSIG-MLDSA87-Ed448-SHAKE256</td>
              <td align="left">434F4D505349472D4D4C44534138372D45643434382D5348414B45323536</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC7515"/>, <xref target="RFC7517"/>, <xref target="RFC9053"/> and <xref target="FIPS.204"/> also apply to this document.</t>
      <t>All security issues that are pertinent to any cryptographic application must be addressed by JWS/JWK agents. Protecting the user's private key and employing countermeasures to various attacks constitute a priority.</t>
      <t>In particular, to avoid key reuse, when generating a new composite key, the key generation functions for both component algorithms <bcp14>MUST</bcp14> be executed. Compliant parties <bcp14>MUST NOT</bcp14> use, import or export component keys that are used in other contexts, combinations, or by themselves as keys for standalone algorithm use.</t>
      <t>For security properties and security issues related to the use of a hybrid signature scheme, the user can refer to <xref target="I-D.draft-ietf-pquip-hybrid-signature-spectrums"/>. 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>
      <t>In terms of security properties, Composite ML-DSA will be EUF-CMA secure if at least one of its component algorithms is EUF-CMA secure and the message hash PH is collision resistant.</t>
      <t>Ed25519 and Ed448 are SUF-CMA secure, making the composite SUF-CMA secure against classical adversaries.</t>
      <t>However, Composite ML-DSA will not be SUF-CMA secure against a quantum adversary, since a quantum adversary will be able to break the SUF-CMA security of the traditional component. Consequently, applications where SUF-CMA security is critical <bcp14>SHOULD NOT</bcp14> use Composite ML-DSA.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="jose-algorithms-1">
        <name>JOSE Algorithms</name>
        <t>The following values of the JWS "alg" (algorithm) are requested to be added to the "JSON Web Signature and Encryption Algorithms" registry.
They are represented following the registration template provided in <xref target="RFC7518"/>.</t>
        <section anchor="ml-dsa-44-es256">
          <name>ML-DSA-44-ES256</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: ML-DSA-44-ES256</t>
            </li>
            <li>
              <t>Algorithm Description: Composite Signature with ML-DSA-44 and ECDSA using P-256 curve and SHA-256</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): alg</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): n/a</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TBD</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-65-es256">
          <name>ML-DSA-65-ES256</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: ML-DSA-65-ES256</t>
            </li>
            <li>
              <t>Algorithm Description: Composite Signature with ML-DSA-65 and ECDSA using P-256 curve and SHA-256</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): alg</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): n/a</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TBD</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-87-es384">
          <name>ML-DSA-87-ES384</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: ML-DSA-87-ES384</t>
            </li>
            <li>
              <t>Algorithm Description: Composite Signature with ML-DSA-87 and ECDSA using P-384 curve and SHA-384</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): alg</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): n/a</t>
            </li>
            <li>
              <t>Algorithm Analysis Documents(s): TBD</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-44-ed25519">
          <name>ML-DSA-44-Ed25519</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: ML-DSA-44-Ed25519</t>
            </li>
            <li>
              <t>Algorithm Description: Composite Signature with ML-DSA-44 and Ed25519 using SHA-512</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): alg</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): n/a</t>
            </li>
            <li>
              <t>Algorithm Analysis Document(s): TBD</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-65-ed25519">
          <name>ML-DSA-65-Ed25519</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: ML-DSA-65-Ed25519</t>
            </li>
            <li>
              <t>Algorithm Description: Composite Signature with ML-DSA-65 and Ed25519 using SHA-512</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): alg</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): n/a</t>
            </li>
            <li>
              <t>Algorithm Analysis Document(s): TBD</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-87-ed448">
          <name>ML-DSA-87-Ed448</name>
          <ul spacing="normal">
            <li>
              <t>Algorithm Name: ML-DSA-87-Ed448</t>
            </li>
            <li>
              <t>Algorithm Description: Composite Signature with ML-DSA-87 and Ed448 using SHAKE-256</t>
            </li>
            <li>
              <t>Algorithm Usage Location(s): alg</t>
            </li>
            <li>
              <t>JOSE Implementation Requirements: Optional</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Specification Document(s): n/a</t>
            </li>
            <li>
              <t>Algorithm Analysis Document(s): TBD</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="cose-algorithms-1">
        <name>COSE Algorithms</name>
        <t>The following values are requested to be added to the "COSE Algorithms" registry.
They are represented following the registration template provided in <xref target="RFC9053"/>, <xref target="RFC9054"/>.</t>
        <section anchor="ml-dsa-44-es256-1">
          <name>ML-DSA-44-ES256</name>
          <ul spacing="normal">
            <li>
              <t>Name: ML-DSA-44-ES256</t>
            </li>
            <li>
              <t>Value: TBD (request assignment -51)</t>
            </li>
            <li>
              <t>Description: Composite Signature with ML-DSA-44 and ECDSA using P-256 curve and SHA-256</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: n/a</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-65-es256-1">
          <name>ML-DSA-65-ES256</name>
          <ul spacing="normal">
            <li>
              <t>Name: ML-DSA-65-ES256</t>
            </li>
            <li>
              <t>Value: TBD (request assignment -52)</t>
            </li>
            <li>
              <t>Description: Composite Signature with ML-DSA-65 and ECDSA using P-256 curve and SHA-256</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: n/a</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-87-es384-1">
          <name>ML-DSA-87-ES384</name>
          <ul spacing="normal">
            <li>
              <t>Name: ML-DSA-87-ES384</t>
            </li>
            <li>
              <t>Value: TBD (request assignment -53)</t>
            </li>
            <li>
              <t>Description: Composite Signature with ML-DSA-87 and ECDSA using P-384 curve and SHA-384</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: n/a</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-44-ed25519-1">
          <name>ML-DSA-44-Ed25519</name>
          <ul spacing="normal">
            <li>
              <t>Name: ML-DSA-44-Ed25519</t>
            </li>
            <li>
              <t>Value: TBD (request assignment -54)</t>
            </li>
            <li>
              <t>Description: Composite Signature with ML-DSA-44 and Ed25519 using SHA-512</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: n/a</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-65-ed25519-1">
          <name>ML-DSA-65-Ed25519</name>
          <ul spacing="normal">
            <li>
              <t>Name: ML-DSA-65-Ed25519</t>
            </li>
            <li>
              <t>Value: TBD (request assignment -55)</t>
            </li>
            <li>
              <t>Description: Composite Signature with ML-DSA-65 and Ed25519 using SHA-512</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: n/a</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
        <section anchor="ml-dsa-87-ed448-1">
          <name>ML-DSA-87-Ed448</name>
          <ul spacing="normal">
            <li>
              <t>Name: ML-DSA-87-Ed448</t>
            </li>
            <li>
              <t>Value: TBD (request assignment -56)</t>
            </li>
            <li>
              <t>Description: Composite Signature with ML-DSA-87 and Ed448 using SHAKE-256</t>
            </li>
            <li>
              <t>Capabilities: [kty]</t>
            </li>
            <li>
              <t>Change Controller: IETF</t>
            </li>
            <li>
              <t>Reference: n/a</t>
            </li>
            <li>
              <t>Recommended: Yes</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC7517">
          <front>
            <title>JSON Web Key (JWK)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>A JSON Web Key (JWK) is a JavaScript Object Notation (JSON) data structure that represents a cryptographic key. This specification also defines a JWK Set JSON data structure that represents a set of JWKs. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and IANA registries established by that specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7517"/>
          <seriesInfo name="DOI" value="10.17487/RFC7517"/>
        </reference>
        <reference anchor="RFC7518">
          <front>
            <title>JSON Web Algorithms (JWA)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This specification registers cryptographic algorithms and identifiers to be used with the JSON Web Signature (JWS), JSON Web Encryption (JWE), and JSON Web Key (JWK) specifications. It defines several IANA registries for these identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7518"/>
          <seriesInfo name="DOI" value="10.17487/RFC7518"/>
        </reference>
        <reference anchor="RFC7638">
          <front>
            <title>JSON Web Key (JWK) Thumbprint</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a JSON Web Key (JWK). It defines which fields in a JWK are used in the hash computation, the method of creating a canonical form for those fields, and how to convert the resulting Unicode string into a byte sequence to be hashed. The resulting hash value can be used for identifying or selecting the key represented by the JWK that is the subject of the thumbprint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7638"/>
          <seriesInfo name="DOI" value="10.17487/RFC7638"/>
        </reference>
        <reference anchor="RFC9679">
          <front>
            <title>CBOR Object Signing and Encryption (COSE) Key Thumbprint</title>
            <author fullname="K. Isobe" initials="K." surname="Isobe"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="December" year="2024"/>
            <abstract>
              <t>This specification defines a method for computing a hash value over a CBOR Object Signing and Encryption (COSE) Key. It specifies which fields within the COSE Key structure are included in the cryptographic hash computation, the process for creating a canonical representation of these fields, and how to hash the resulting byte sequence. The resulting hash value, referred to as a "thumbprint", can be used to identify or select the corresponding key.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9679"/>
          <seriesInfo name="DOI" value="10.17487/RFC9679"/>
        </reference>
        <reference anchor="IANA.JOSE" target="https://www.iana.org/assignments/jose/jose.xhtml">
          <front>
            <title>JSON Object Signing and Encryption (JOSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA.COSE" target="https://www.iana.org/assignments/cose/cose.xhtml">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="FIPS.204" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.204.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="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="RFC9053">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Initial Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines a set of algorithms that can be used with the CBOR Object Signing and Encryption (COSE) protocol (RFC 9052).</t>
              <t>This document, along with RFC 9052, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9053"/>
          <seriesInfo name="DOI" value="10.17487/RFC9053"/>
        </reference>
        <reference anchor="RFC9054">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Hash Algorithms</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) syntax (see RFC 9052) does not define any direct methods for using hash algorithms. There are, however, circumstances where hash algorithms are used, such as indirect signatures, where the hash of one or more contents are signed, and identification of an X.509 certificate or other object by the use of a fingerprint. This document defines hash algorithms that are identified by COSE algorithm identifiers.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9054"/>
          <seriesInfo name="DOI" value="10.17487/RFC9054"/>
        </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</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</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="7" month="January" year="2026"/>
            <abstract>
              <t>   This document defines combinations of US NIST ML-DSA 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-14"/>
        </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="I-D.draft-ietf-cose-dilithium">
          <front>
            <title>ML-DSA for JOSE and COSE</title>
            <author fullname="Michael Prorock" initials="M." surname="Prorock">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <date day="15" month="November" year="2025"/>
            <abstract>
              <t>   This document specifies JSON Object Signing and Encryption (JOSE) and
   CBOR Object Signing and Encryption (COSE) serializations for Module-
   Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum
   Cryptography (PQC) digital signature scheme defined in US NIST FIPS
   204.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-dilithium-11"/>
        </reference>
      </references>
    </references>
    <?line 527?>

<section anchor="appdx">
      <name>Examples</name>
      <section anchor="appdx-jose">
        <name>JOSE</name>
        <t>Will be completed in later versions.</t>
      </section>
      <section anchor="appdx-cose">
        <name>COSE</name>
        <t>Will be completed in later versions.</t>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We thank Orie Steele for his valuable comments on this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
WVlgYwAA

-->

</rfc>
