<?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-prabel-jose-pq-composite-sigs-05" 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-prabel-jose-pq-composite-sigs-05"/>
    <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="2025" month="December" day="02"/>
    <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>
        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-prabel-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 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="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:
H4sIAAAAAAAAA91c63LbRrL+z6eYQ/+wtEVQF5KSzOwltCTHsiVLEZW4Ultb
6yEwIhGBAIIBJHHt5Fn2Wc6Tne6eCwYgKEr2uk6y2VqLAGamL9PT/XXPAJ7n
tVrPnj1r5WEeiSFrX3y/dcVeLyZZGLDDZJ4mMswFG4fTmOdFJiS7TjL25nx8
zHgMLeBHu8Unk0zcQme8v4X3Gru2Wz7PxTTJFkMm86DVChI/5nOgGmT8OvfS
jE9E5P2cSOGlv3i+GcKT4VR624OWLCbzUMowifNFCt1Ojq9eMfaM8UgmQD2M
A5EK+CfO2x3WFkGYJ1nII7w4Gb2EP8B6++Ty6lW7FRfziciGrQA4Grb8JJYi
loUcsjwrRAtkGbR4JviQjYVfZGG+aN0l2c00S4p0SOK3bsQCbgXDFvPUDfh7
qP9efH+If85OvaPxCH9ZJeCF0m7rVsQF0GbMjMpvufSzMM3Z+eRn4efUK4yn
pOnj2M8WaQ6yQw8l/nvgCB9/h/3h7pyH0ZCh+r4NRX7dTbIp3OWZPxuyWZ6n
cri1hW3wTngruqbRFt7YmmTJnRRb2H0LmQrzWTEZsqjwuVQzs6WmqXl+oEsE
upR5SUvc83kaiS403DodXR2Pr1otXuSzJCOlsTAGfZ922QWNDgMwdl1EkTKJ
U6TrPgJGeRz+i6MKhux1we9ESA+EkpsY7SpOv53RY6RcUhp32biIa2TgDhvP
in/NkuJRVGQRS9W8kcabLswGX9SIvElmcXm/SuI4BouTOTsN56DKgFqY9aSf
ufR/hqG6UxjqW6EeVulfddmlCII6A1dhVsx5JOQdz5wGVU7eJTchp/s+2PuQ
veTxlEcJ2iz8l4kptXrLM7BkfqNbJgWwAY1P4kB31oy2b5I4yMPs2yleI5ft
VitOsjlQu0Wzv3x1uLuz80L92h/sDOyvffvrQP/a6+lfL/b2scfJ6N2oi4sO
lw8zruvN+Pzdw0uHbWCnzTb2opXPfsOf1iiZ1sqQKNDYPJsKx6bv7u66IY+5
Wjfgi6bxHGZCqnWD/3TvZ/k80jwe1nk8fHl+uY7Hw6/Fo488+iWPLfbq5GLc
3d3uq3ENk2dJUETCO+V5HvrCe8mlCNhRCC6BR6UrY+McOOdZQKxqXkfFFK15
d3u3r0x5me32OzI4GOoklkCygCCRXNvRJOnjSvizOImS6YJtvDsZXyl9LIka
30ZpMZHdOISVME1ut/AH3tlCybawZ9fI2E2D61YrjK+rRvhie9Czv1ARJ95R
V3k6dJBeBE5MLvu7ITj7s4vz8cnVsXc6OrsYL3VMfynCFP7NvRk5fC8X2TxU
QoFr+emld3V8eXby7nxFT91LGn17MgWrgYUsVe/xyXfe+OL48Oryh7Nl6jjN
XhBG4MbDYj6k0OSdnWI8anmeBz5G5hn381brahZKBqG4QCNhgcAYNIFA/+jl
pJDAYw2bSYFBWbsdhScIdCh5mVUzs5LLLruaCecJjwBFgGRzafmljpMwFjrq
MogeOXSCHrn3S8HjvJirEWIUE1kTMILI2PEhNgcujgOnHygH8IOyU9utq3Q3
D4MgEoCbwILzDBaLT3G5hUyG8xS0igbNgXYOnUBYdog6SMBvp7PQ51G0AC8c
iVvgin2veUPEBEshAzVdfn+4yUBhjph3M5hPUJ0CIwxmbEKrElqBMc8EWjQM
zNIsmUQCOsjCn6EsYQyQC0a9Bq5gMElaR2mDEBQnQJlgj1xTSW6xZRijjq9D
EcFihJYiigCUhD4D4rdgGBkPpVBaigXwgDMYizuX3XzGQcfgI1KR+QLWWsDy
hE20BDCBUw7xKmcoKnJ5BzTwrx+hv/K1zlEdEqM2ilIOjuOiEmFQd3Y7oKQw
qhiH1dGTtOCM71gBzP17Gl/ehTkAKLDv6yyZwzS7pmKJo7y8an1gQsRIDGqF
p7D+RDwFLcakSju3RjccDCCACZE8W+BAoHNJq4q55ow66tAAEfdv0O7muGaw
YR7OybNWmHC0g91BVpqaRhnsVBexL7Ic2EL2JkmRI8Ewszx3GRp/IRUjPyfQ
kBVSqFXQrB5cgHwFa6AlNOQ88ZMIeBApuAAMYNBBJlFBc4c8o+PSBs8mC/x5
GwYoealLCROLOoO+OYsEB73iNABj9UUOxtDsK5CDOU6JNt7u78Jl/jG8JbjI
wyS+RS+IjOM4R4IcDF4rjwmJFMNMSgLw+GF8hdka/mXvzun35fH3P5xcHh/h
7/Hr0emp/dHSLcavz384PSp/lT0hRJ8dvztSneEuq9xqtc9GP8ET5Kp9fnF1
cv5udNpG48sr84v+QHkvXL1Ziv4CjFe2Sm1Cn5eHF//7750++/jxfzS0/fVX
fXGws9+HiztY6opaEkMEUJegvUWLp6kAZB6iywcF8hSRFqwm0K6cJXcxA82j
3f3p76iZfwzZnyd+utP/q76BAlduGp1VbpLOlu8sdVZKbLjVQMZqs3K/pukq
v6OfKtdG787NP/8tQsv0dg7+9tdWfbFdJ1EEiaqyuhJQ0ZqoWK9eINKH4CjQ
8sHs1Ex9/Og56OvXX82ChuVNiy4T6P3hOplrTwEPHVodNgEPiEUHcNAYImlh
BKVdo+8DrzqDvHw6094SIzgEDyPHsNVqj+RiPhd5BpH1ylk/FazARmbxtg2I
hv9GYChlZ7/SofSiD0e/TiXQNwXCTi3yN7cBvWcCU/+gGYl02ejBBohl0CUT
ZPAh6CFKSCKEDODT8RfFspn4TDGWEUxTI81Ml73HpYbk4F/gDPAz5EQMqFFs
9ZP4usAClKv/ivNrngtJkpHJgHiZuBaZDrzoQJtjL1o01gEwvoK1XKBxG7D4
BVZBeg6lRiKrgBmkfgAn0JJR+3XAIddithE8B3LKn5WcwNoJcenc8UUZVnFu
fbBVjRoV5Y4JOBY9ZSWlDljSArm+TgrEEZrpFUCH4iHoPMEpzdGjFmApcZLj
CDAiLMhA0f4Zc9cJLH8ELzx2EQnFTgixSmEKatTiZYnOcxAeBNckUC2AFAFJ
BUsT6S78DUyDNk3xdUyOqzK/bF5EeeiVXCnnhpEEp84FOE7sdmVYibgIjrkD
UONGyyQZnCrxUmHgYZ4D3dziFSPFnINCi5Q87l2C8z3HGSslWe5ZSZCWdPAf
lLcsZzeuPFp6dmxIQyBhoQGl+KUQAJ6NUA3TosJ8NTzVSgsUohQP1LeRh2MO
RB9c9Fj4AMDMM52eVhurWVCYzRJgbwGcXXCA+hujtxeb7GqRinpEnvMbIQ3c
x7W8sjeWrUvt1EU29QmSdoTaAweBNX2d38AQaoTQBNiEiXvMDUCoYhKhwDCr
aRbeQrBBWKl8KHKmfVHFI6AmODhLdGeEHlaMAT4fUx+IRoiyc0yt5FIOsKSE
CmRngARyEHbtPKNMyYTI4SAOSQZmlGByIw2FEuCv4Lyr8DX4Hh91lCfGQbM3
79+CBor5BJpreE+7Njhf7n03YSCOdTEWGMU+dI0lWbimCQXGo1Uz+qxpT6i0
FcUryFr4ap9pSUqaDCTblPNoXEhOOwWJcTHIcI6bHSh445qqpUnKv6MgPhZb
YsAeGpQss+AQ1pCFLBLTTBZkSeqFCCNTSMkFmQdc0p7ZltJzopI+VYkka3Tg
5zTEIguBT6VRWcm5ca+KtARtUa2uXnH+vhOxyLgqSB2uMxHKbaaqhwJcCH0N
4MLMbGqHY9dF7Ct8a9LnFR5Nz1KM232gJmc4STkOVl5gWZOkuK7oKW4wSFiM
ImhKXUHSDx8+OAJdKIFQ4j977pXmbUc6fpJ9+tTQZBe4LO0Phwe+l+hobRlC
zuVKSsttlkm1XoHLydfn6UvZ6IbO2MmlVbPxTeUoq1Zg139IqE3nT5B//Pbb
b62drmnpBlqcqBZFlnkUSD7GIt9f2CVoJ5lv9HY36dEGPbt429GN3m5CG8Vb
FziAYf9J6TLE0g07zKYadgMDLXbFv6onAiHdbwNa7XbZ4Uz4N+SZK5xVLBJW
B26q0qDhNSaoTXzBEPSkRrUMnrC6wC+y9tvq8ADSk6zdavW6bKzdubVi7U3V
zOFCVkw0Gigajh1A3YfbJaOKr836AFXLKwdQ9+0IqFcrk5rWkVwVYDrKmkAI
kNOEJXReUkctEXgqb2yeSjeAlUa/h3b+8aPZaUHf+rkBkmqqXz80ou8HXsqe
XGV9MaBMyP/zaKE8Oq0ygz4oPAIC6bJXBp3a7STMREF71PbD8mR/6LAPR0I2
3m+Y2Q/EcaWH+8xJElepCxzmBdVhKfsQdGqCFhMyWCvilesLZgyTllRkKJau
7Rvxqbr5XkysHqgOouNfc5cSVaDaWq2TmjfrqC2KOlxQfkw7OmfeGFW7MGtj
vV0PTUCSyRJqrQMMrNdjFDeVVTYHLfApjFvOql/pUSpWMVAmGrpaCiAxoyMm
lFlAShneu5kwZxGePmC3PCqgdyr88BrrA8kqR29xLAweNIRUB2Y8MAjlMv4s
FLcAdAW/gSmMPSkQ3k5wA3DRkGEsbSCSxbxO7mAQwNtUoKSCMEqvJ2JFTkky
GP8QYa1i1ATRnkutF5rDMPajIhBW5oqqTd2dNylFWiPQnkByLNMRoNDVaKct
rQ91LwM1wm21QaCNAmxqFb/WjkuzAWFdrAQx9E8aUhuIAzbhzbicGUdk+35D
TeuISJmQ2b4B04GZUp5t+35728pvRsVBjMfSmElidg1XmhCRcRDcCtW6HiTR
SxJ38NxRlpilpFwFSmev4WsCmZJzg2Eob61MSBOk0VupyonoxnYXibb+2dlz
Fa/PnitUR0sZsNspLWD4QROAYO71xtmm0/QY9S82zp4rkDKmZaZpuZ6qRAgW
UtF8wlQaG3KdHHYhW0V31nIAViW6A05qDAkb8kaDsn8+FY71HAT4kANSPMH1
P3dQDXpk9Jp6OMAxZ887zM/v/0JK3LQddrED4TtqrmTB1kC+32Un16bU5w5K
qK3stAmKAz4oeSBY1mF651TtAZJ1kGOotetWwKFiNZwaSEi8hFN7PkXjwDI/
bUCDgy47V+1QX7QeRWNSqvxdtwYMy7FdUGfv/oh9NkjPHaW9TX3+isRaHoaM
XiXPT0VU3BR8bRxaA7CW8ZUVVmXTH1YI9MFCTUjKU4gtpXvRyBPWH0DPiHbE
zaKoadL6w/p96+Sb63ePRmt1nusYbOn543DYlfX0rK08Tdso1imD8ZWY3YQ1
mpH6VOiBygqlReXlwdvd7d1Bu2Mqb7ibeI+U+729V3tH+9t7r/Z7ey/2+3uD
/s7e4d4+XO/S9cHe0QCewJ3jvZ39/v4A7g/2e73d3jb8H9bBSV4pf0AmX62h
ApYABCSoBBOIHGse4UoLYhDiYCiEbCBTmqJOsFhJAbpspSBWm3xMu1ZHtHDg
jtPef3PZ54RwrgvPBNVOG6oObBQYYaJFp8a54gT9D5caAymQVmDRMlrgvJQY
dh5S4DEQJb/vOmWw0xI32oqS2tsgm8j5BM+BYRXdI6pkV2NV30KkltQRtJ3s
IPT1GuO5oVxWPi2WIlc2T/OFNiglK0/TCPujP8EyqLjPS2GXIWlDYX4lAfAX
CTRD1G3RuK3+GeNuXA0Gi3fKRUHBGsFAmqo9LW0LFik8Z/waxbVAC5k3ytFS
KPHQCLUX2u4yC4ixlA9NAsLWSg7do+OuYAfIlXYR4A5+k3GsAdedSmZgF7hn
jmxUsgiwB2UndDwbnklQ1QZC3q42IL98sFkxDAe2uke4EsrW7XF/PRYdSNGo
b+k+BnVzNm2vX2SRZ8KjbgXS4GkmfXcTDIN25aoQtcjVOZd6dfNH9CYL5U/V
77qdwQIK8RwqTpcdknIZcDu0FdmUWt3hzpEsfMQQeGZ6YccJtPdWfsyv1tMI
izq7WOF0CY/+iUkXHy6VJSxQrGQtzlP5zeoxStI0RAjZzm6jgN/YNEXUV4WN
nE5urE4aloNLvUOsnXlgsxDRnIPAuNjkVs1Q6VqrXHUtWq9A6IYKe6tWbtTV
MoRPTRWVjdRg4QqIqjVfxlu6NAlo9BiBHgvUIbpAVGAVnXdAY4oXFTBUgnx4
XsMnqriEdRXbI8Mak9rNgvba35iEU5XFm7JtgrwGpJ7EZKYltbZSXJ6kXVVA
bZjzr5EG9UytdtVck7e5DYNCRVHugwJUDqvM1tnQ1kGZ690NB7rr5EAt/NIa
GnIOF8kvK8kdk/ILPaIpDqNIjx8FnQq5DhFQngYTtNT7x3pfi9ibS4Jrcedn
AX0D8aciX+1uLMRu8iNrgfTnSfNIFA2h4Nhg38siQr9wEluTw8CiuHFzF8Hn
tiZsxTPAuQwAqB5b9nUyk0DvOpU4bdWWz1KLhg2fcYgHAXQUMvxi8krrsalC
InPcq7fwaCnum8nCMFJxOxLUrMSitGqp/FcW6uk8DhbxYg48TYukIHev/Tu6
QUG/eHUXtELOQo955MGq9JA6GF0USljbihWzYTjLhLPvDpaT22d16WDUT6y6
mbaBxZHN2s3Kzp47E2PcrfkEg3jlf+wJV9BT8eT1+/Cstwv/7A72wB2ynd4O
XfV3t912ewPTrr9Nf3ZeDPBPr7f9wm13sG/bHbzYo2Ff0NXeLjxpfRyyZzV1
qldz/tImoSTb0McR5CZqr2lXGm4rYu1fW613SS7KBACVSEhFncICPmiojjYn
aLVq70cvz9J6aLNcn5SnQ1FB4Wuof59yQuJuTcyiDUlFLYM0/uVWZ22lu2I4
1cqasiU+wcP+k+RWrDxdgC8YcXwDwzluvFRb0MePZJGmSZZLY6SJlCFSqFpr
R3kcYEslWNWyMp35t4mlPQ9mTvoj1hFVBV6Xx5xiGQa61qSrshy3zXIgrWGo
m1o35Vo4WN0hlgmkmxio0xu1rACyZnv2ASQB0r7Oy4wgESRDUW3BNh8Z1xxX
ZK0Ed+2QIFdIwL1RJqQ26XQmMgevo87lKDqd+qnJtrZvdXz7NfQxN3BC8CwF
8LrQZyusS6VkQDMi6IQWzBvMMpIrjyaZkyNhXDlugZRLQk52aI4MurmUKe/g
4TLuhFxVOkBFrthmWd5c0YnlA2UFFR/Va9k2nKopUNkIWSetGKN3Tg6ashjn
4IaUiR/S/gaFHWvLdOCvErdyfZTVntogQ7NvZlLM/sTeYTXmE3sVZtWQie9V
J26MJK8uPFQv/DwS6k1oVPoaD/55Dt07HoMvZ66Lhwvho8NFyb3x6xE2UFoQ
fgoX2Q7yre5/avQ31LockV7moI0NdYz2wsOu6gwyPjNjuRFEM8aqQeVxjA0o
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
MKxSWUNJmJcvWpd13f8DfJWet31jAAA=

-->

</rfc>
