<?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.17 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-pq-composite-sigs-02" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.22.0 -->
  <front>
    <title abbrev="PQ Composite ML-DSA">Composite ML-DSA for use in Internet PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-02"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road -- Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road -- Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>john.gray@entrust.com</email>
      </address>
    </author>
    <author initials="M." surname="Pala" fullname="Massimiliano Pala">
      <organization>OpenCA Labs</organization>
      <address>
        <postal>
          <city>New York City, New York</city>
          <country>United States of America</country>
        </postal>
        <email>director@openca.org</email>
      </address>
    </author>
    <author initials="J." surname="Klaussner" fullname="Jan Klaussner">
      <organization>Bundesdruckerei GmbH</organization>
      <address>
        <postal>
          <street>Kommandantenstr. 18</street>
          <city>Berlin</city>
          <code>10969</code>
          <country>Germany</country>
        </postal>
        <email>jan.klaussner@bdr.de</email>
      </address>
    </author>
    <author initials="S." surname="Fluhrer" fullname="Scott Fluhrer">
      <organization>Cisco Systems</organization>
      <address>
        <email>sfluhrer@cisco.com</email>
      </address>
    </author>
    <date year="2024" month="July" day="08"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 140?>

<t>This document introduces a set of signature schemes that use pairs of cryptographic elements such as public keys and signatures to combine their security properties. These schemes effectively mitigate risks associated with the adoption of post-quantum cryptography and are fully compatible with existing X.509, PKIX, and CMS data structures and protocols. This document defines thirteen specific pairwise combinations, namely ML-DSA Composite Schemes, that blend ML-DSA with traditional algorithms such as RSA, ECDSA, Ed25519, and Ed448. These combinations are tailored to meet security best practices and regulatory requirements.</t>
      <!-- End of Abstract -->



    </abstract>
  </front>
  <middle>
    <?line 147?>

<section anchor="changes-since-the-01-version">
      <name>Changes since the -01 version</name>
      <ul spacing="normal">
        <li>
          <t>Added a "Use in CMS" section</t>
        </li>
        <li>
          <t>Removed a Falon reference from the ASN.1 document (which was a typo in reference to Falcon)</t>
        </li>
        <li>
          <t>Added SMIME-CAPS into the sa-CompositeSignature definition in the ASN.1 module</t>
        </li>
        <li>
          <t>Fixed nits and other typos</t>
        </li>
        <li>
          <t>Added PSS parameter Salt Lengths</t>
        </li>
        <li>
          <t>Changed the OID concatenation section to Domain Separators for clarity</t>
        </li>
        <li>
          <t>Accepted some edits by Jose Ignacio Escribano</t>
        </li>
        <li>
          <t>Expanded description for KeyGen algorithm</t>
        </li>
        <li>
          <t>Clarified the Subject Public Key Usage</t>
        </li>
        <li>
          <t>Various editorial changes</t>
        </li>
      </ul>
      <section anchor="changes-since-adoption-by-the-lamps-working-group">
        <name>Changes since adoption by the lamps working group</name>
        <ul spacing="normal">
          <li>
            <t>Added back in the version 13 changes which were dropped by mistake in the initial -00 adopted version</t>
          </li>
          <li>
            <t>Added Scott Fluher as an author due to his valuable contributions and participation in the draft writing process</t>
          </li>
          <li>
            <t>Removed the reference to Parallel PKI's in implementation considerations as it isn't adding value to the discussion</t>
          </li>
          <li>
            <t>Resolved comments from Kris Kwiatkowski regarding FIPS</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="sec-intro">
      <name>Introduction</name>
      <t>The advent of quantum computing poses a significant threat to current cryptographic systems. Traditional cryptographic algorithms such as RSA, Diffie-Hellman, DSA, and their elliptic curve variants are vulnerable to quantum attacks. During the transition to post-quantum cryptography (PQC), there is considerable uncertainty regarding the robustness of both existing and new cryptographic algorithms. While we can no longer fully trust traditional cryptography, we also cannot immediately place complete trust in post-quantum replacements until they have undergone extensive scrutiny and real-world testing to uncover and rectify potential implementation flaws.</t>
      <t>Unlike previous migrations between cryptographic algorithms, the decision of when to migrate and which algorithms to adopt is far from straightforward. Even after the migration period, it may be advantageous for an entity's cryptographic identity to incorporate multiple public-key algorithms to enhance security.</t>
      <t>Cautious implementers may opt to combine cryptographic algorithms in such a way that an attacker would need to break all of them simultaneously to compromise the protected data. These mechanisms are referred to as Post-Quantum/Traditional (PQ/T) Hybrids <xref target="I-D.driscoll-pqt-hybrid-terminology"/>.</t>
      <t>Certain jurisdictions are already recommending or mandating that PQC lattice schemes be used exclusively within a PQ/T hybrid framework. The use of Composite scheme provides a straightforward implementation of hybrid solutions compatible with (and advocated by) some governments and cybersecurity agencies <xref target="BSI2021"/>.</t>
      <section anchor="sec-terminology">
        <name>Conventions and Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.
<?line -8?>
        </t>
        <t>This document is consistent with the terminology defined in <xref target="I-D.driscoll-pqt-hybrid-terminology"/>. In addition, the following terminology is used throughout this document:</t>
        <t>ALGORITHM:
          A standardized cryptographic primitive, as well as
          any ASN.1 structures needed for encoding data and
          metadata needed to use the algorithm. This document is
          primarily concerned with algorithms for producing digital
          signatures.</t>
        <t>BER:
          Basic Encoding Rules (BER) as defined in <xref target="X.690"/>.</t>
        <t>CLIENT:
          Any software that is making use of a cryptographic key.
          This includes a signer, verifier, encrypter, decrypter.</t>
        <t>COMPONENT ALGORITHM:
          A single basic algorithm which is contained within a
            composite algorithm.</t>
        <t>COMPOSITE ALGORITHM:
          An algorithm which is a sequence of two component
            algorithms, as defined in <xref target="sec-composite-structs"/>.</t>
        <t>DER:
          Distinguished Encoding Rules as defined in <xref target="X.690"/>.</t>
        <t>LEGACY:   For the purposes of this document, a legacy algorithm is
          any cryptographic algorithm currently in use which is
          not believed to be resistant to quantum cryptanalysis.</t>
        <t>PKI:
          Public Key Infrastructure, as defined in <xref target="RFC5280"/>.</t>
        <t>POST-QUANTUM ALGORITHM:
          Any cryptographic algorithm which is believed to be resistant
          to classical and quantum cryptanalysis, such as the algorithms being considered for standardization by NIST.</t>
        <t>PUBLIC / PRIVATE KEY:
          The public and private portion of an asymmetric cryptographic
            key, making no assumptions about which algorithm.</t>
        <t>SIGNATURE:
          A digital cryptographic signature, making no assumptions
            about which algorithm.</t>
        <t>STRIPPING ATTACK:
          An attack in which the attacker is able to downgrade the
          cryptographic object to an attacker-chosen subset of
          original set of component algorithms in such a way that
          it is not detectable by the receiver. For example,
          substituting a composite public key or signature for a
          version with fewer components.</t>
      </section>
    </section>
    <section anchor="composite-signatures-schemes">
      <name>Composite Signatures Schemes</name>
      <t>The engineering principle behind the definition of Composite schemes is to define a new family of algorithms that combines the use of cryptographic operations from two different ones: ML-DSA one and a traditional one. The complexity of combining security properties from the selected two algorithms is handled at the cryptographic library or cryptographic module, thus minimal changes are expected at the application or protocol level. Composite schemes are fully compatible with the X.509 model: composite public keys, composite private keys, and ciphertexts can be carried in existing data structures and protocols such as PKCS#10 <xref target="RFC2986"/>, CMP <xref target="RFC4210"/>, X.509 <xref target="RFC5280"/>, CMS <xref target="RFC5652"/>, and the Trust Anchor Format [RFC5914].</t>
      <t>Composite schemes are defined as cryptographic primitives that consists of three algorithms:</t>
      <ul spacing="normal">
        <li>
          <t>KeyGen() -&gt; (pk, sk): A probabilistic key generation algorithm,
which generates a public key pk and a secret key sk.</t>
        </li>
        <li>
          <t>Sign(sk, Message) -&gt; (signature): A signing algorithm which takes
as input a secret key sk and a Message, and outputs a signature</t>
        </li>
        <li>
          <t>Verify(pk, Message, signature) -&gt; true or false: A verification algorithm
which takes as input a public key, a Message, and a signature and outputs true
if the signature verifies correctly.  Thus it proves the Message was signed
with the secret key associated with the public key and verifies the integrity
of the Message.  If the signature and public key cannot verify the Message,
it returns false.</t>
        </li>
      </ul>
      <t>A composite signature allows the security properties of the two underlying algorithms to be combined via standard signature operations such as generation and verify and can be used in all applications that use signatures without the need for changes in data structures or protocol messages.</t>
      <section anchor="sec-prehash">
        <name>Composite Schemes PreHashing</name>
        <t>Composite schemes' signature generation process and composite signature verification process are designed to provide security properties meant to address specific issues related to the use multiple algorithms and they require the use of pre-hasing. In Composite schemes, the value of the DER encoding of the selected signature scheme is concatenated with the calculated Hash over the original message.</t>
        <t>The output is then used as input for the Sign() and Verify() functions.</t>
      </section>
    </section>
    <section anchor="sec-sigs">
      <name>Cryptographic Primitives</name>
      <section anchor="key-generation">
        <name>Key Generation</name>
        <t>To generate a new keypair for Composite schemes, the <tt>KeyGen() -&gt; (pk, sk)</tt> function is used. The KeyGen() function calls the two key generation functions of the component algorithms for the Composite keypair in no particular order. Multi-process or multi-threaded applications might choose to execute the key generation functions in parallel for better key generation performance.</t>
        <t>The generated public key structure is described in <xref target="sec-composite-pub-keys"/>, while the corresponding composite secret key structure is defined in <xref target="sec-priv-key"/>.</t>
        <t>The following process is used to generate composite keypair values:</t>
        <figure anchor="alg-composite-keygen">
          <name>Composite KeyGen(pk, sk)</name>
          <artwork><![CDATA[
KeyGen() -> (pk, sk)

Input:
     sk_1, sk_2         Private keys for each component.

     pk_1, pk_2         Public keys for each component.

     A1, A2             Component signature algorithms.

Output:
     (pk, sk)           The composite keypair.

Function KeyGen():

  (pk_1, sk_1) <- A1.KeyGen()
  (pk_2, sk_2) <- A2.KeyGen()

  if NOT (pk_1, sk_1) or NOT (pk_2, sk_2):
    // Component key generation failure
    return NULL

  (pk, sk) <- encode[(pk_1, sk_1), (pk_2, sk_2)]
  if NOT (pk, sk):
    // Encoding failure
    return False

  // Success
  return (pk, sk)

]]></artwork>
        </figure>
        <t>The key generation functions MUST be executed for both algorithms. Compliant parties MUST NOT use or import component keys that are used in other contexts, combinations, or by themselves (i.e., not only in X.509 certificates).</t>
      </section>
      <section anchor="sec-comp-sig-gen">
        <name>Signature Generation</name>
        <t>Composite schemes' signatures provide important properties for multi-key environments such as non-separability and key-binding. For more information on the additional security properties and their applicability to multi-key or hybrid environments, please refer to <xref target="I-D.hale-pquip-hybrid-signature-spectrums"/> and the use of labels as defined in <xref target="Bindel2017"/></t>
        <t>Composite signature generation starts with pre-hashing the message that is concatenated with the Domain separator <xref target="sec-oid-concat"/>. After that, the signature process for each component algorithm is invoked and the values are then placed in the CompositeSignatureValue structure defined in <xref target="sec-composite-sig-structs"/>.</t>
        <t>A composite signature's value MUST include two signature components and MUST be in the same order as the components from the corresponding signing key.</t>
        <t>The following process is used to generate composite signature values.</t>
        <figure anchor="alg-composite-sign">
          <name>Composite Sign(sk, Message)</name>
          <artwork><![CDATA[
Sign (sk, Message) -> (signature)
Input:
     K1, K2             Signing private keys for each component. See note below on
                        composite inputs.

     A1, A2             Component signature algorithms. See note below on
                        composite inputs.

     Message            The Message to be signed, an octet string

     HASH               The Message Digest Algorithm used for pre-hashing.  See section
                        on pre-hashing below.

     Domain             Domain separator value for binding the signature to the Composite OID.
                        See section on Domain Separators below.

Output:
     signature          The composite signature, a CompositeSignatureValue

Signature Generation Process:

   1. Compute the new Message M' by concatenating the Domain identifier (i.e., the DER encoding of the Composite signature algorithm identifier) with the Hash of the Message

         M' := Domain || HASH(Message)

   2. Generate the 2 component signatures independently, by calculating the signature over M'
      according to their algorithm specifications that might involve the use of the hash-n-sign paradigm.

         S1 := Sign( K1, A1, M' )
         S2 := Sign( K2, A2, M' )

   3. Encode each component signature S1 and S2 into a BIT STRING
      according to its algorithm specification.

        signature := NULL

        IF (S1 != NULL) and (S2 != NULL):
          signature := Sequence { S1, S2 }

   4. Output signature

        return signature
]]></artwork>
        </figure>
        <t>It is possible to construct <tt>CompositePrivateKey</tt>(s) to generate signatures from component keys stored in separate software or hardware keystores. Variations in the process to accommodate particular private key storage mechanisms are considered to be conformant to this document so long as it produces the same output as the process sketched above.</t>
        <section anchor="sec-comp-sig-verify">
          <name>Signature Verify</name>
          <t>Verification of a composite signature involves reconstructing the M' message first by concatenating the Domain separator (i.e., the DER encoding of the used Composite scheme's OID) with the Hash of the original message and then applying each component algorithm's verification process to the new message M'.</t>
          <t>Compliant applications MUST output "Valid signature" (true) if and only if all component signatures were successfully validated, and "Invalid signature" (false) otherwise.</t>
          <t>The following process is used to perform this verification.</t>
          <figure anchor="alg-composite-verify">
            <name>Composite Verify(pk, Message, signature)</name>
            <artwork><![CDATA[
Composite Verify(pk, Message, signature)
Input:
     P1, P2             Public verification keys. See note below on
                        composite inputs.

     Message            Message whose signature is to be verified,
                        an octet string.

     signature          CompositeSignatureValue containing the component
                        signature values (S1 and S2) to be verified.

     A1, A2             Component signature algorithms. See note
                        below on composite inputs.

     HASH               The Message Digest Algorithm for pre-hashing.  See
                        section on pre-hashing the message below.

     Domain             Domain separator value for binding the signature to the Composite OID.
                        See section on Domain Separators below.

Output:
    Validity (bool)    "Valid signature" (true) if the composite
                        signature is valid, "Invalid signature"
                        (false) otherwise.

Signature Verification Procedure::
   1. Check keys, signatures, and algorithms lists for consistency.

      If Error during Desequencing, or the sequences have
      different numbers of elements, or any of the public keys
      P1 or P2 and the algorithm identifiers A1 or A2 are
      composite then output "Invalid signature" and stop.

   2. Compute a Hash of the Message

         M' = Domain || HASH(Message)

   3. Check each component signature individually, according to its
       algorithm specification.
       If any fail, then the entire signature validation fails.

       if not verify( P1, M', S1, A1 ) then
            output "Invalid signature"
       if not verify( P2, M', S2, A2 ) then
            output "Invalid signature"

       if all succeeded, then
        output "Valid signature"
]]></artwork>
          </figure>
          <t>It is possible to construct <tt>CompositePublicKey</tt>(s) to verify signatures from component keys stored in separate software or hardware keystores. Variations in the process to accommodate particular private key storage mechanisms are considered to be conformant to this document so long as it produces the same output as the process sketched above.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-composite-structs">
      <name>Composite Key Structures</name>
      <t>In order for signatures to be composed of multiple algorithms, we define encodings consisting of a sequence of signature primitives (aka "component algorithms") such that these structures can be used as a drop-in replacement for existing signature fields such as those found in PKCS#10 <xref target="RFC2986"/>, CMP <xref target="RFC4210"/>, X.509 <xref target="RFC5280"/>, CMS <xref target="RFC5652"/>.</t>
      <section anchor="pk-compositesignature">
        <name>pk-CompositeSignature</name>
        <t>The following ASN.1 Information Object Class is a template to be used in defining all composite Signature public key types.</t>
        <sourcecode type="ASN.1" name="CompositeKeyObject-asn.1-structures"><![CDATA[
pk-CompositeSignature {OBJECT IDENTIFIER:id,
  FirstPublicKeyType,SecondPublicKeyType}
    PUBLIC-KEY ::= {
      IDENTIFIER id
      KEY SEQUENCE {
        firstPublicKey BIT STRING (CONTAINING FirstPublicKeyType),
        secondPublicKey BIT STRING (CONTAINING SecondPublicKeyType)
      }
      PARAMS ARE absent
      CERT-KEY-USAGE { digitalSignature, nonRepudiation, keyCertSign, cRLSign}
    }
]]></sourcecode>
        <t>As an example, the public key type <tt>pk-MLDSA65-ECDSA-P256-SHA256</tt> is defined as:</t>
        <artwork><![CDATA[
pk-MLDSA65-ECDSA-P256-SHA256 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA65-ECDSA-P256-SHA256,
  OCTET STRING, ECPoint}
]]></artwork>
        <t>The full set of key types defined by this specification can be found in the ASN.1 Module in <xref target="sec-asn1-module"/>.</t>
      </section>
      <section anchor="sec-composite-pub-keys">
        <name>CompositeSignaturePublicKey</name>
        <t>Composite public key data is represented by the following structure:</t>
        <sourcecode type="ASN.1" name="CompositeSignaturePublicKey-asn.1-structures"><![CDATA[
CompositeSignaturePublicKey ::= SEQUENCE SIZE (2) OF BIT STRING
]]></sourcecode>
        <t>A composite key MUST contain two component public keys. The order of the component keys is determined by the definition of the corresponding algorithm identifier as defined in section <xref target="sec-alg-ids"/>.</t>
        <t>Some applications may need to reconstruct the <tt>SubjectPublicKeyInfo</tt> objects corresponding to each component public key. <xref target="tab-sig-algs"/> in <xref target="sec-alg-ids"/> provides the necessary mapping between composite and their component algorithms for doing this reconstruction. This also motivates the design choice of <tt>SEQUENCE OF BIT STRING</tt> instead of <tt>SEQUENCE OF OCTET STRING</tt>; using <tt>BIT STRING</tt> allows for easier transcription between CompositeSignaturePublicKey and SubjectPublicKeyInfo.</t>
        <t>When the CompositeSignaturePublicKey must be provided in octet string or bit string format, the data structure is encoded as specified in <xref target="sec-encoding-rules"/>.</t>
        <t>Component keys of a CompositeSignaturePublicKey MUST NOT be used in any other type of key or as a standalone key.</t>
      </section>
      <section anchor="sec-priv-key">
        <name>CompositeSignaturePrivateKey</name>
        <t>Use cases that require an interoperable encoding for composite private keys, such as when private keys are carried in PKCS #12 <xref target="RFC7292"/>, CMP <xref target="RFC4210"/> or CRMF <xref target="RFC4211"/> MUST use the following structure.</t>
        <sourcecode type="ASN.1" name="CompositeSignaturePrivateKey-asn.1-structures"><![CDATA[
CompositeSignaturePrivateKey ::= SEQUENCE SIZE (2) OF OneAsymmetricKey
]]></sourcecode>
        <t>Each element is a <tt>OneAsymmetricKey</tt>` <xref target="RFC5958"/> object for a component private key.</t>
        <t>The parameters field MUST be absent.</t>
        <t>The order of the component keys is the same as the order defined in <xref target="sec-composite-pub-keys"/> for the components of CompositeSignaturePublicKey.</t>
        <t>When a <tt>CompositeSignaturePrivateKey</tt> is conveyed inside a OneAsymmetricKey structure (version 1 of which is also known as PrivateKeyInfo) <xref target="RFC5958"/>, the privateKeyAlgorithm field SHALL be set to the corresponding composite algorithm identifier defined according to <xref target="sec-alg-ids"/>, the privateKey field SHALL contain the CompositeSignaturePrivateKey, and the publicKey field MUST NOT be present. Associated public key material MAY be present in the CompositeSignaturePrivateKey.</t>
        <t>In some usecases the private keys that comprise a composite key may not be represented in a single structure or even be contained in a single cryptographic module; for example if one component is within the FIPS boundary of a cryptographic module and the other is not; see {sec-fips} for more discussion. The establishment of correspondence between public keys in a CompositeSignaturePublicKey and private keys not represented in a single composite structure is beyond the scope of this document.</t>
        <t>Component keys of a CompositeSignaturePrivateKey MUST NOT be used in any other type of key or as a standalone key.</t>
      </section>
      <section anchor="sec-encoding-rules">
        <name>Encoding Rules</name>
        <!-- EDNOTE 7: Examples of how other specifications specify how a data structure is converted to a bit string can be found in RFC 2313, section 10.1.4, 3279 section 2.3.5, and RFC 4055, section 3.2. -->

<t>Many protocol specifications will require that the composite public key and composite private key data structures be represented by an octet string or bit string.</t>
        <t>When an octet string is required, the DER encoding of the composite data structure SHALL be used directly.</t>
        <sourcecode type="ASN.1"><![CDATA[
CompositeSignaturePublicKeyOs ::= OCTET STRING (CONTAINING CompositeSignaturePublicKey ENCODED BY der)
]]></sourcecode>
        <t>When a bit string is required, the octets of the DER encoded composite data structure SHALL be used as the bits of the bit string, with the most significant bit of the first octet becoming the first bit, and so on, ending with the least significant bit of the last octet becoming the last bit of the bit string.</t>
        <sourcecode type="ASN.1"><![CDATA[
CompositeSignaturePublicKeyBs ::= BIT STRING (CONTAINING CompositeSignaturePublicKey ENCODED BY der)
]]></sourcecode>
        <t>In the interests of simplicity and avoiding compatibility issues, implementations that parse these structures MAY accept both BER and DER.</t>
      </section>
      <section anchor="key-usage-bits">
        <name>Key Usage Bits</name>
        <t>For protocols such as X.509 <xref target="RFC5280"/> that specify key usage along with the public key, then the composite public key associated with a composite signature MUST have a signing-type key usage.
This is because the composite public key can only be used in situations
that are appropriate for both component algorithms, so even if the
classical component key supports both signing and encryption,
the post-quantum algorithms do not.</t>
        <t>If the keyUsage extension is present in a Certification Authority (CA) certificate that indicates a composite key, then any combination of the following values MAY be present and any other values MUST NOT be present:</t>
        <artwork><![CDATA[
digitalSignature;
nonRepudiation;
keyCertSign; and
cRLSign.
]]></artwork>
        <t>If the keyUsage extension is present in an End Entity (EE) certificate that indicates a composite key, then any combination of the following values MAY be present and any other values MUST NOT be present:</t>
        <artwork><![CDATA[
digitalSignature; and
nonRepudiation;
]]></artwork>
      </section>
    </section>
    <section anchor="composite-signature-structures">
      <name>Composite Signature Structures</name>
      <section anchor="sec-composite-sig-structs">
        <name>sa-CompositeSignature</name>
        <t>The ASN.1 algorithm object for a composite signature is:</t>
        <sourcecode type="asn.1"><![CDATA[
sa-CompositeSignature {
  OBJECT IDENTIFIER:id,
    PUBLIC-KEY:publicKeyType }
    SIGNATURE-ALGORITHM ::= {
        IDENTIFIER id
        VALUE CompositeSignatureValue
        PARAMS ARE absent
        PUBLIC-KEYS { publicKeyType }
        SMIME-CAPS { IDENTIFIED BY id }
    }
]]></sourcecode>
        <t>The following is an explanation how SIGNATURE-ALGORITHM elements are used
to create Composite Signatures:</t>
        <table>
          <thead>
            <tr>
              <th align="left">SIGNATURE-ALGORITHM element</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">IDENTIFIER</td>
              <td align="left">The Object ID used to identify the composite Signature Algorithm</td>
            </tr>
            <tr>
              <td align="left">VALUE</td>
              <td align="left">The Sequence of BIT STRINGS for each component signature value</td>
            </tr>
            <tr>
              <td align="left">PARAMS</td>
              <td align="left">Parameters are absent</td>
            </tr>
            <tr>
              <td align="left">PUBLIC-KEYS</td>
              <td align="left">The composite key required to produce the composite signature</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="sec-compositeSignatureValue">
        <name>CompositeSignatureValue</name>
        <t>The output of the composite signature algorithm is the DER encoding of the following structure:</t>
        <sourcecode type="asn.1" name="composite-sig-asn.1"><![CDATA[
CompositeSignatureValue ::= SEQUENCE SIZE (2) OF BIT STRING
]]></sourcecode>
        <t>Where each BIT STRING within the SEQUENCE is a signature value produced by one of the component keys. It MUST contain one signature value produced by each component algorithm, and in the same order as specified in the object identifier.</t>
        <t>The choice of <tt>SEQUENCE SIZE (2) OF BIT STRING</tt>, rather than for example a single BIT STRING containing the concatenated signature values, is to gracefully handle variable-length signature values by taking advantage of ASN.1's built-in length fields.</t>
      </section>
    </section>
    <section anchor="sec-alg-ids">
      <name>Algorithm Identifiers</name>
      <t>This section defines the algorithm identifiers for explicit combinations. For simplicity and prototyping purposes, the signature algorithm object identifiers specified in this document are the same as the composite key object Identifiers.  A proper implementation should not presume that the object ID of a composite key will be the same as its composite signature algorithm.</t>
      <t>This section is not intended to be exhaustive and other authors may define other composite signature algorithms so long as they are compatible with the structures and processes defined in this and companion public and private key documents.</t>
      <t>Some use-cases desire the flexibility for clients to use any combination of supported algorithms, while others desire the rigidity of explicitly-specified combinations of algorithms.</t>
      <t>The following table summarizes the details for each explicit composite signature algorithms:</t>
      <t>The OID referenced are TBD for prototyping only, and the following prefix is used for each:</t>
      <t>replace &lt;CompSig&gt; with the String "2.16.840.1.114027.80.8.1"</t>
      <t>Therefore &lt;CompSig&gt;.1 is equal to 2.16.840.1.114027.80.8.1.1</t>
      <t>Signature public key types:</t>
      <table anchor="tab-sig-algs">
        <name>Composite Signature Algorithms</name>
        <thead>
          <tr>
            <th align="left">Composite Signature AlgorithmID</th>
            <th align="left">OID</th>
            <th align="left">First AlgorithmID</th>
            <th align="left">Second AlgorithmID</th>
            <th align="left">Pre-Hash</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">id-MLDSA44-RSA2048-PSS-SHA256</td>
            <td align="left">&lt;CompSig&gt;.1</td>
            <td align="left">id-ML-DSA-44</td>
            <td align="left">id-RSASA-PSS with id-sha256</td>
            <td align="left">id-sha256</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA44-RSA2048-PKCS15-SHA256</td>
            <td align="left">&lt;CompSig&gt;.2</td>
            <td align="left">id-ML-DSA-44</td>
            <td align="left">sha256WithRSAEncryption</td>
            <td align="left">id-sha256</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA44-Ed25519-SHA512</td>
            <td align="left">&lt;CompSig&gt;.3</td>
            <td align="left">id-ML-DSA-44</td>
            <td align="left">id-Ed25519</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA44-ECDSA-P256-SHA256</td>
            <td align="left">&lt;CompSig&gt;.4</td>
            <td align="left">id-ML-DSA-44</td>
            <td align="left">ecdsa-with-SHA256 with secp256r1</td>
            <td align="left">id-sha256</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA44-ECDSA-brainpoolP256r1-SHA256</td>
            <td align="left">&lt;CompSig&gt;.5</td>
            <td align="left">id-ML-DSA-44</td>
            <td align="left">ecdsa-with-SHA256 with brainpoolP256r1</td>
            <td align="left">id-sha256</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA65-RSA3072-PSS-SHA512</td>
            <td align="left">&lt;CompSig&gt;.6</td>
            <td align="left">id-ML-DSA-65</td>
            <td align="left">id-RSASA-PSS with id-sha512</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA65-RSA3072-PKCS15-SHA512</td>
            <td align="left">&lt;CompSig&gt;.7</td>
            <td align="left">id-ML-DSA-65</td>
            <td align="left">sha512WithRSAEncryption</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA65-ECDSA-P256-SHA512</td>
            <td align="left">&lt;CompSig&gt;.8</td>
            <td align="left">id-ML-DSA-65</td>
            <td align="left">ecdsa-with-SHA512 with secp256r1</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA65-ECDSA-brainpoolP256r1-SHA512</td>
            <td align="left">&lt;CompSig&gt;.9</td>
            <td align="left">id-ML-DSA-65</td>
            <td align="left">ecdsa-with-SHA512 with brainpoolP256r1</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA65-Ed25519-SHA512</td>
            <td align="left">&lt;CompSig&gt;.10</td>
            <td align="left">id-ML-DSA-65</td>
            <td align="left">id-Ed25519</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA87-ECDSA-P384-SHA512</td>
            <td align="left">&lt;CompSig&gt;.11</td>
            <td align="left">id-ML-DSA-87</td>
            <td align="left">ecdsa-with-SHA512 with secp384r1</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA87-ECDSA-brainpoolP384r1-SHA512</td>
            <td align="left">&lt;CompSig&gt;.12</td>
            <td align="left">id-ML-DSA-87</td>
            <td align="left">ecdsa-with-SHA512 with brainpoolP384r1</td>
            <td align="left">id-sha512</td>
          </tr>
          <tr>
            <td align="left">id-MLDSA87-Ed448-SHA512</td>
            <td align="left">&lt;CompSig&gt;.13</td>
            <td align="left">id-ML-DSA-87</td>
            <td align="left">id-Ed448</td>
            <td align="left">id-sha512</td>
          </tr>
        </tbody>
      </table>
      <t>The table above contains everything needed to implement the listed explicit composite algorithms. See the ASN.1 module in section <xref target="sec-asn1-module"/> for the explicit definitions of the above Composite signature algorithms.</t>
      <t>Full specifications for the referenced algorithms can be found in <xref target="appdx_components"/>.</t>
      <section anchor="sec-oid-concat">
        <name>Domain Separators</name>
        <t>As mentioned above, the OID input value is used as a domain separator for the Composite Signature Generation and verification process and is the DER encoding of the OID. The following table shows the HEX encoding for each Signature AlgorithmID.</t>
        <table anchor="tab-sig-alg-oids">
          <name>Composite Signature Domain Separators</name>
          <thead>
            <tr>
              <th align="left">Composite Signature AlgorithmID</th>
              <th align="left">Domain Separator (in Hex encoding)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">id-MLDSA44-RSA2048-PSS-SHA256</td>
              <td align="left">060B6086480186FA6B50080101</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-RSA2048-PKCS15-SHA256</td>
              <td align="left">060B6086480186FA6B50080102</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-Ed25519-SHA512</td>
              <td align="left">060B6086480186FA6B50080103</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-ECDSA-P256-SHA256</td>
              <td align="left">060B6086480186FA6B50080104</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-ECDSA-brainpoolP256r1-SHA256</td>
              <td align="left">060B6086480186FA6B50080105</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA3072-PSS-SHA512</td>
              <td align="left">060B6086480186FA6B50080106</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA3072-PKCS15-SHA512</td>
              <td align="left">060B6086480186FA6B50080107</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-P256-SHA512</td>
              <td align="left">060B6086480186FA6B50080108</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-brainpoolP256r1-SHA512</td>
              <td align="left">060B6086480186FA6B50080109</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-Ed25519-SHA512</td>
              <td align="left">060B6086480186FA6B5008010A</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-P384-SHA512</td>
              <td align="left">060B6086480186FA6B5008010B</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-brainpoolP384r1-SHA512</td>
              <td align="left">060B6086480186FA6B5008010C</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-Ed448-SHA512</td>
              <td align="left">060B6086480186FA6B5008010D</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="notes-on-id-mldsa44-rsa2048-pss-sha256">
        <name>Notes on id-MLDSA44-RSA2048-PSS-SHA256</name>
        <t>Use of RSA-PSS <xref target="RFC8017"/> deserves a special explanation.</t>
        <t>The RSA component keys MUST be generated at the 2048-bit security level in order to match with ML-DSA-44</t>
        <t>As with the other composite signature algorithms, when <tt>id-MLDSA44-RSA2048-PSS-SHA256</tt> is used in an AlgorithmIdentifier, the parameters MUST be absent. <tt>id-MLDSA44-RSA2048-PSS-SHA256</tt> SHALL instantiate RSA-PSS with the following parameters:</t>
        <table anchor="rsa-pss-params2048">
          <name>RSA-PSS 2048 Parameters</name>
          <thead>
            <tr>
              <th align="left">RSA-PSS Parameter</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Mask Generation Function</td>
              <td align="left">mgf1</td>
            </tr>
            <tr>
              <td align="left">Mask Generation params</td>
              <td align="left">SHA-256</td>
            </tr>
            <tr>
              <td align="left">Message Digest Algorithm</td>
              <td align="left">SHA-256</td>
            </tr>
            <tr>
              <td align="left">Salt Length in bits</td>
              <td align="left">256</td>
            </tr>
          </tbody>
        </table>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Mask Generation Function (mgf1)</tt> is defined in <xref target="RFC8017"/></t>
          </li>
          <li>
            <t><tt>SHA-256</tt> is defined in <xref target="RFC6234"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="notes-on-id-mldsa65-rsa3072-pss-sha512">
        <name>Notes on id-MLDSA65-RSA3072-PSS-SHA512</name>
        <t>The RSA component keys MUST be generated at the 3072-bit security level in order to match with ML-DSA-65.</t>
        <t>As with the other composite signature algorithms, when <tt>id-MLDSA65-RSA3072-PSS-SHA512</tt>  is used in an AlgorithmIdentifier, the parameters MUST be absent. <tt>id-MLDSA65-RSA3072-PSS-SHA512</tt> SHALL instantiate RSA-PSS with the following parameters:</t>
        <table anchor="rsa-pss-params3072">
          <name>RSA-PSS 3072 Parameters</name>
          <thead>
            <tr>
              <th align="left">RSA-PSS Parameter</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Mask Generation Function</td>
              <td align="left">mgf1</td>
            </tr>
            <tr>
              <td align="left">Mask Generation params</td>
              <td align="left">SHA-512</td>
            </tr>
            <tr>
              <td align="left">Message Digest Algorithm</td>
              <td align="left">SHA-512</td>
            </tr>
            <tr>
              <td align="left">Salt Length in bits</td>
              <td align="left">512</td>
            </tr>
          </tbody>
        </table>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Mask Generation Function (mgf1)</tt> is defined in <xref target="RFC8017"/></t>
          </li>
          <li>
            <t><tt>SHA-512</tt> is defined in <xref target="RFC6234"/>.</t>
          </li>
        </ul>
        <!-- End of Composite Signature Algorithm section -->

</section>
    </section>
    <section anchor="use-in-cms">
      <name>Use in CMS</name>
      <t>[EDNOTE: The convention in LAMPS is to specify algorithms and their CMS conventions in separate documents. Here we have presented them in the same document, but this section has been written so that it can easily be moved to a standalone document.]</t>
      <t>Composite Signature algorithms MAY be employed for one or more recipients in the CMS signed-data content type <xref target="RFC5652"/>.</t>
      <section anchor="underlying-components">
        <name>Underlying Components</name>
        <t>When a particular Composite Signature OID is supported in CMS, an implementation SHOULD support the corresponding Secure Hash algorithm identifier in <xref target="tab-cms-shas"/> that was used as the pre-hash.</t>
        <t>The following table lists the MANDATORY HASH algorithms to preserve security and performance characteristics of each composite algorithm.</t>
        <table anchor="tab-cms-shas">
          <name>Composite Signature SHA Algorithms</name>
          <thead>
            <tr>
              <th align="left">Composite Signature AlgorithmID</th>
              <th align="left">Secure Hash</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">id-MLDSA44-RSA2048-PSS-SHA256</td>
              <td align="left">SHA256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-RSA2048-PKCS15-SHA256</td>
              <td align="left">SHA256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-Ed25519-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-ECDSA-P256-SHA256</td>
              <td align="left">SHA256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA44-ECDSA-brainpoolP256r1-SHA256</td>
              <td align="left">SHA256</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA3072-PSS-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-RSA3072-PKCS15-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-P256-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-ECDSA-brainpoolP256r1-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA65-Ed25519-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-P384-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-ECDSA-brainpoolP384r1-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
            <tr>
              <td align="left">id-MLDSA87-Ed448-SHA512</td>
              <td align="left">SHA512</td>
            </tr>
          </tbody>
        </table>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <t>SHA2 instantiations are defined in [FIPS180].</t>
          </li>
        </ul>
      </section>
      <section anchor="signeddata-conventions">
        <name>SignedData Conventions</name>
        <t>As specified in CMS <xref target="RFC5652"/>, the digital signature is produced from the message digest and the signer's private key. The signature is computed over different values depending on whether signed attributes are absent or present.</t>
        <t>When signed attributes are absent, the composite signature is computed over the content. When signed attributes are present, a hash is computed over the content using the same hash function that is used in the composite pre-hash, and then a message-digest attribute is constructed to contain the resulting hash value, and then the result of DER encoding the set of signed attributes, which MUST include a content-type attribute and a message-digest attribute, and then the composite signature is computed over the DER-encoded output. In summary:</t>
        <artwork><![CDATA[
IF (signed attributes are absent)
   THEN Composite_Sign(content)
ELSE message-digest attribute = Hash(content);
   Composite_Sign(DER(SignedAttributes))
]]></artwork>
        <t>When using Composite Signatures, the fields in the SignerInfo are used as follows:</t>
        <t>digestAlgorithm:
    The digestAlgorithm contains the one-way hash function used by the CMS signer.</t>
        <t>signatureAlgorithm:
    The signatureAlgorithm MUST contain one of the the Composite Signature algorithm identifiers as specified in <xref target="tab-cms-shas"/></t>
        <t>signature:
    The signature field contains the signature value resulting from the composite signing operation of the specified signatureAlgorithm.</t>
      </section>
      <section anchor="certificate-conventions">
        <name>Certificate Conventions</name>
        <t>The conventions specified in this section augment RFC 5280 <xref target="RFC5280"/>.</t>
        <t>The willingness to accept a composite Signature Algorithm MAY be signaled by the use of the SMIMECapabilities Attribute as specified in Section 2.5.2. of <xref target="RFC8551"/> or the SMIMECapabilities certificate extension as specified in [RFC4262].</t>
        <t>The intended application for the public key MAY be indicated in the key usage certificate extension as specified in Section 4.2.1.3 of <xref target="RFC5280"/>. If the keyUsage extension is present in a certificate that conveys a composite Signature public key, then the key usage extension MUST contain only the following value:</t>
        <artwork><![CDATA[
digitalSignature
nonRepudiation
keyCertSign
cRLSign
]]></artwork>
        <t>The keyEncipherment and dataEncipherment values MUST NOT be present. That is, a public key intended to be employed only with a composite signature algorithm MUST NOT also be employed for data encryption. This requirement does not carry any particular security consideration; only the convention that signature keys be identified with 'digitalSignature','nonRepudiation','keyCertSign' or 'cRLSign' key usages.</t>
      </section>
      <section anchor="smimecapabilities-attribute-conventions">
        <name>SMIMECapabilities Attribute Conventions</name>
        <t>Section 2.5.2 of <xref target="RFC8551"/> defines the SMIMECapabilities attribute to announce a partial list of algorithms that an S/MIME implementation can support. When constructing a CMS signed-data content type <xref target="RFC5652"/>, a compliant implementation MAY include the SMIMECapabilities attribute that announces support for the RSA-KEM Algorithm.</t>
        <t>The SMIMECapability SEQUENCE representing a composite signature Algorithm MUST include the appropriate object identifier as per <xref target="tab-cms-shas"/> in the capabilityID field.</t>
      </section>
    </section>
    <section anchor="sec-asn1-module">
      <name>ASN.1 Module</name>
      <sourcecode type="asn.1"><![CDATA[
<CODE STARTS>


 Composite-Signatures-2023
      { joint-iso-itu-t(2) country(16) us(840) organization(1) entrust(114027)
        algorithm(80) id-composite-signatures-2023 (TBDMOD) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS
  PUBLIC-KEY, SIGNATURE-ALGORITHM, AlgorithmIdentifier{}
    FROM AlgorithmInformation-2009  -- RFC 5912 [X509ASN1]
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-algorithmInformation-02(58) }

  SubjectPublicKeyInfo
    FROM PKIX1Explicit-2009
      { iso(1) identified-organization(3) dod(6) internet(1)
        security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-pkix1-explicit-02(51) }

  OneAsymmetricKey
    FROM AsymmetricKeyPackageModuleV1
      { iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1)
        pkcs-9(9) smime(16) modules(0)
        id-mod-asymmetricKeyPkgV1(50) }

  RSAPublicKey, ECPoint
    FROM PKIXAlgs-2009 
      { iso(1) identified-organization(3) dod(6)
        internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
        id-mod-pkix1-algorithms2008-02(56) }
        
  sa-rsaSSA-PSS
    FROM PKIX1-PSS-OAEP-Algorithms-2009
       {iso(1) identified-organization(3) dod(6) internet(1) security(5)
       mechanisms(5) pkix(7) id-mod(0) id-mod-pkix1-rsa-pkalgs-02(54)}

;

--
-- Object Identifiers
--

-- Defined in ITU-T X.690
der OBJECT IDENTIFIER ::=
  {joint-iso-itu-t asn1(1) ber-derived(2) distinguished-encoding(1)}




--
-- Signature Algorithm
--


--
-- Composite Signature basic structures
--

CompositeSignaturePublicKey ::= SEQUENCE SIZE (2) OF BIT STRING

CompositeSignaturePublicKeyOs ::= OCTET STRING (CONTAINING 
                                CompositeSignaturePublicKey ENCODED BY der)

CompositeSignaturePublicKeyBs ::= BIT STRING (CONTAINING 
                                CompositeSignaturePublicKey ENCODED BY der)

CompositeSignaturePrivateKey ::= SEQUENCE SIZE (2) OF OneAsymmetricKey

CompositeSignatureValue ::= SEQUENCE SIZE (2) OF BIT STRING

-- Composite Signature Value is just a sequence of OCTET STRINGS

--   CompositeSignaturePair{FirstSignatureValue, SecondSignatureValue} ::=
--     SEQUENCE {
--      signaturevalue1 FirstSignatureValue,
--      signaturevalue2 SecondSignatureValue }

   -- An Explicit Compsite Signature is a set of Signatures which
   -- are composed of OCTET STRINGS
--   ExplicitCompositeSignatureValue ::= CompositeSignaturePair {
--       OCTET STRING,OCTET STRING}
    

--
-- Information Object Classes
--

pk-CompositeSignature {OBJECT IDENTIFIER:id,
  FirstPublicKeyType,SecondPublicKeyType}
    PUBLIC-KEY ::= {
      IDENTIFIER id
      KEY SEQUENCE {
        firstPublicKey BIT STRING (CONTAINING FirstPublicKeyType),
        secondPublicKey BIT STRING (CONTAINING SecondPublicKeyType)
      }
      PARAMS ARE absent
      CERT-KEY-USAGE { digitalSignature, nonRepudiation, keyCertSign, cRLSign}
    } 


sa-CompositeSignature{OBJECT IDENTIFIER:id, 
   PUBLIC-KEY:publicKeyType } 
      SIGNATURE-ALGORITHM ::=  {
         IDENTIFIER id
         VALUE CompositeSignatureValue
         PARAMS ARE absent
         PUBLIC-KEYS {publicKeyType} 
         SMIME-CAPS { IDENTIFIED BY id }
      }

-- TODO: OID to be replaced by IANA
id-MLDSA44-RSA2048-PSS-SHA256 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1) 
   entrust(114027) algorithm(80) composite(8) signature(1) 1 }

pk-MLDSA44-RSA2048-PSS-SHA256 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA44-RSA2048-PSS-SHA256,
  OCTET STRING, RSAPublicKey}

sa-MLDSA44-RSA2048-PSS-SHA256 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA44-RSA2048-PSS-SHA256,
       pk-MLDSA44-RSA2048-PSS-SHA256 }
       
-- TODO: OID to be replaced by IANA
id-MLDSA44-RSA2048-PKCS15-SHA256 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1) 
   entrust(114027) algorithm(80) composite(8) signature(1) 2 }

pk-MLDSA44-RSA2048-PKCS15-SHA256 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA44-RSA2048-PKCS15-SHA256,
  OCTET STRING, RSAPublicKey}

sa-MLDSA44-RSA2048-PKCS15-SHA256 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA44-RSA2048-PKCS15-SHA256,
       pk-MLDSA44-RSA2048-PKCS15-SHA256 }


-- TODO: OID to be replaced by IANA
id-MLDSA44-Ed25519-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 3 }

pk-MLDSA44-Ed25519-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA44-Ed25519-SHA512,
  OCTET STRING, ECPoint}

sa-MLDSA44-Ed25519-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA44-Ed25519-SHA512, 
       pk-MLDSA44-Ed25519-SHA512 } 


-- TODO: OID to be replaced by IANA
id-MLDSA44-ECDSA-P256-SHA256 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 4 }

pk-MLDSA44-ECDSA-P256-SHA256 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA44-ECDSA-P256-SHA256,
  OCTET STRING, ECPoint}

sa-MLDSA44-ECDSA-P256-SHA256 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA44-ECDSA-P256-SHA256,
       pk-MLDSA44-ECDSA-P256-SHA256 }
       
  
-- TODO: OID to be replaced by IANA
id-MLDSA44-ECDSA-brainpoolP256r1-SHA256 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 5 }

pk-MLDSA44-ECDSA-brainpoolP256r1-SHA256 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA44-ECDSA-brainpoolP256r1-SHA256,
  OCTET STRING, ECPoint}

sa-MLDSA44-ECDSA-brainpoolP256r1-SHA256 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA44-ECDSA-brainpoolP256r1-SHA256,
       pk-MLDSA44-ECDSA-brainpoolP256r1-SHA256 }


-- TODO: OID to be replaced by IANA
id-MLDSA65-RSA3072-PSS-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 6 }

pk-MLDSA65-RSA3072-PSS-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA65-RSA3072-PSS-SHA512,
  OCTET STRING, RSAPublicKey}

sa-MLDSA65-RSA3072-PSS-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA65-RSA3072-PSS-SHA512,
       pk-MLDSA65-RSA3072-PSS-SHA512 }


-- TODO: OID to be replaced by IANA
id-MLDSA65-RSA3072-PKCS15-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 7 }

pk-MLDSA65-RSA3072-PKCS15-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA65-RSA3072-PKCS15-SHA512,
  OCTET STRING, RSAPublicKey}

sa-MLDSA65-RSA3072-PKCS15-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA65-RSA3072-PKCS15-SHA512,
       pk-MLDSA65-RSA3072-PKCS15-SHA512 }


-- TODO: OID to be replaced by IANA
id-MLDSA65-ECDSA-P256-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 8 }

pk-MLDSA65-ECDSA-P256-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA65-ECDSA-P256-SHA512,
  OCTET STRING, ECPoint}

sa-MLDSA65-ECDSA-P256-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA65-ECDSA-P256-SHA512,
       pk-MLDSA65-ECDSA-P256-SHA512 }
       

-- TODO: OID to be replaced by IANA
id-MLDSA65-ECDSA-brainpoolP256r1-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1) 
   entrust(114027) algorithm(80) composite(8) signature(1) 9 }

pk-id-MLDSA65-ECDSA-brainpoolP256r1-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA65-ECDSA-brainpoolP256r1-SHA512,
  OCTET STRING, ECPoint}

sa-id-MLDSA65-ECDSA-brainpoolP256r1-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA65-ECDSA-brainpoolP256r1-SHA512,
       pk-id-MLDSA65-ECDSA-brainpoolP256r1-SHA512 }


-- TODO: OID to be replaced by IANA
id-MLDSA65-Ed25519-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1) 
   entrust(114027) algorithm(80) composite(8) signature(1) 10 }

pk-MLDSA65-Ed25519-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA65-Ed25519-SHA512,
  OCTET STRING, ECPoint}

sa-MLDSA65-Ed25519-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA65-Ed25519-SHA512,
       pk-MLDSA65-Ed25519-SHA512 }


-- TODO: OID to be replaced by IANA
id-MLDSA87-ECDSA-P384-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 11 }

pk-MLDSA87-ECDSA-P384-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA87-ECDSA-P384-SHA512,
  OCTET STRING, ECPoint}

sa-MLDSA87-ECDSA-P384-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA87-ECDSA-P384-SHA512,
       pk-MLDSA87-ECDSA-P384-SHA512 }


-- TODO: OID to be replaced by IANA
id-MLDSA87-ECDSA-brainpoolP384r1-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1) 
   entrust(114027) algorithm(80) composite(8) signature(1) 12 }

pk-MLDSA87-ECDSA-brainpoolP384r1-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA87-ECDSA-brainpoolP384r1-SHA512,
  OCTET STRING, ECPoint}

sa-MLDSA87-ECDSA-brainpoolP384r1-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA87-ECDSA-brainpoolP384r1-SHA512,
       pk-MLDSA87-ECDSA-brainpoolP384r1-SHA512 }


-- TODO: OID to be replaced by IANA
id-MLDSA87-Ed448-SHA512 OBJECT IDENTIFIER ::= {
   joint-iso-itu-t(2) country(16) us(840) organization(1)
   entrust(114027) algorithm(80) composite(8) signature(1) 13 }

pk-MLDSA87-Ed448-SHA512 PUBLIC-KEY ::=
  pk-CompositeSignature{ id-MLDSA87-Ed448-SHA512,
  OCTET STRING, ECPoint}

sa-MLDSA87-Ed448-SHA512 SIGNATURE-ALGORITHM ::=
    sa-CompositeSignature{
       id-MLDSA87-Ed448-SHA512,
       pk-MLDSA87-Ed448-SHA512 }
       
END

<CODE ENDS>

]]></sourcecode>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to allocate a value from the "SMI Security for PKIX Module Identifier" registry <xref target="RFC7299"/> for the included ASN.1 module, and allocate values from "SMI Security for PKIX Algorithms" to identify the fourteen Algorithms defined within.</t>
      <section anchor="object-identifier-allocations">
        <name>Object Identifier Allocations</name>
        <t>EDNOTE to IANA: OIDs will need to be replaced in both the ASN.1 module and in <xref target="tab-sig-algs"/>.</t>
        <section anchor="module-registration-smi-security-for-pkix-module-identifier">
          <name>Module Registration - SMI Security for PKIX Module Identifier</name>
          <ul spacing="normal">
            <li>
              <t>Decimal: IANA Assigned - <strong>Replace TBDMOD</strong></t>
            </li>
            <li>
              <t>Description: Composite-Signatures-2023 - id-mod-composite-signatures</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
          </ul>
        </section>
        <section anchor="object-identifier-registrations-smi-security-for-pkix-algorithms">
          <name>Object Identifier Registrations - SMI Security for PKIX Algorithms</name>
          <ul spacing="normal">
            <li>
              <t>id-MLDSA44-RSA2048-PSS-SHA256</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA44-RSA2048-PSS-SHA256</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA44-RSA2048-PKCS15-SHA256</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA44-RSA2048-PKCS15-SHA256</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA44-Ed25519-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA44-Ed25519-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA44-ECDSA-P256-SHA256</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA44-ECDSA-P256-SHA256</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA44-ECDSA-brainpoolP256r1-SHA256</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA44-ECDSA-brainpoolP256r1-SHA256</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA65-RSA3072-PSS-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA65-RSA3072-PSS-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA65-RSA3072-PKCS15-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA65-RSA3072-PKCS15-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA65-ECDSA-P256-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA65-ECDSA-P256-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA65-ECDSA-brainpoolP256r1-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA65-ECDSA-brainpoolP256r1-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA65-Ed25519-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA65-Ed25519-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA87-ECDSA-P384-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA87-ECDSA-P384-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA87-ECDSA-brainpoolP384r1-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA87-ECDSA-brainpoolP384r1-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
            <li>
              <t>id-MLDSA87-Ed448-SHA512</t>
            </li>
            <li>
              <t>Decimal: IANA Assigned</t>
            </li>
            <li>
              <t>Description:  id-MLDSA87-Ed448-SHA512</t>
            </li>
            <li>
              <t>References: This Document</t>
            </li>
          </ul>
          <!-- End of IANA Considerations section -->

</section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="public-key-algorithm-selection-criteria">
        <name>Public Key Algorithm Selection Criteria</name>
        <t>The composite algorithm combinations defined in this document were chosen according to the following guidelines:</t>
        <ol spacing="normal" type="1"><li>
            <t>A single RSA combination is provided at a key size of 3072 bits, matched with NIST PQC Level 3 algorithms.</t>
          </li>
          <li>
            <t>Elliptic curve algorithms are provided with combinations on each of the NIST <xref target="RFC6090"/>, Brainpool <xref target="RFC5639"/>, and Edwards <xref target="RFC7748"/> curves. NIST PQC Levels 1 - 3 algorithms are matched with 256-bit curves, while NIST levels 4 - 5 are matched with 384-bit elliptic curves. This provides a balance between matching classical security levels of post-quantum and traditional algorithms, and also selecting elliptic curves which already have wide adoption.</t>
          </li>
          <li>
            <t>NIST level 1 candidates are provided, matched with 256-bit elliptic curves, intended for constrained use cases.</t>
          </li>
        </ol>
        <t>If other combinations are needed, a separate specification should be submitted to the IETF LAMPS working group.  To ease implementation, these specifications are encouraged to follow the construction pattern of the algorithms specified in this document.</t>
        <t>The composite structures defined in this specification allow only for pairs of algorithms. This also does not preclude future specification from extending these structures to define combinations with three or more components.</t>
      </section>
      <section anchor="prehashing-algorithm-selection-criteria">
        <name>PreHashing Algorithm Selection Criteria</name>
        <t>As noted in the composite signature generation process and composite signature verification process, the Message should be pre-hashed into M' with the digest algorithm specified in the composite signature algorithm identifier.  The selection of the digest algorithm was chosen with the following criteria:</t>
        <ol spacing="normal" type="1"><li>
            <t>For composites paired with RSA or ECDSA, the hashing algorithm SHA256 or SHA512 is used as part of the RSA or ECDSA signature algorithm and is therefore also used as the composite prehashing algorithm.</t>
          </li>
          <li>
            <t>For ML-DSA signing a digest of the message is allowed as long as the hash function provides at least y bits of classical security strength against both collision and second preimage attacks.   For ML-DSA-44 y is 128 bits, for ML-DSA-65 y is 192 bits and for ML-DSA-87 y is 256 bits.  Therefore SHA256 is paired with RSA and ECDSA with ML-DSA-44 and SHA512 is paired with RSA and ECDSA with ML-DSA-65 and ML-DSA-87 to match the appropriate security strength.</t>
          </li>
          <li>
            <t>Ed25519 <xref target="RFC8032"/> uses SHA512 internally, therefore SHA512 is used to pre-hash the message when Ed25519 is a component algorithm.</t>
          </li>
          <li>
            <t>Ed448 <xref target="RFC8032"/> uses SHAKE256 internally, but to reduce the set of prehashing algorihtms, SHA512 was selected to pre-hash the message when Ed448 is a component algorithm.</t>
          </li>
        </ol>
      </section>
      <section anchor="policy-for-deprecated-and-acceptable-algorithms">
        <name>Policy for Deprecated and Acceptable Algorithms</name>
        <t>Traditionally, a public key, certificate, or signature contains a single cryptographic algorithm. If and when an algorithm becomes deprecated (for example, RSA-512, or SHA1), then clients performing signatures or verifications should be updated to adhere to appropriate policies.</t>
        <t>In the composite model this is less obvious since implementers may decide that certain cryptographic algorithms have complementary security properties and are acceptable in combination even though one or both algorithms are deprecated for individual use. As such, a single composite public key or certificate may contain a mixture of deprecated and non-deprecated algorithms.</t>
        <t>Since composite algorithms are registered independently of their component algorithms, their deprecation can be handled independently from that of their component algorithms. For example a cryptographic policy might continue to allow <tt>id-MLDSA65-ECDSA-P256-SHA512</tt> even after ECDSA-P256 is deprecated.</t>
        <t>When considering stripping attacks, one need consider the case where an attacker has fully compromised one of the component algorithms to the point that they can produce forged signatures that appear valid under one of the component public keys, and thus fool a victim verifier into accepting a forged signature. The protection against this attack relies on the victim verifier trusting the pair of public keys as a single composite key, and not trusting the individual component keys by themselves.</t>
        <t>Specifically, in order to achieve this non-separability property, this specification makes two assumptions about how the verifier will establish trust in a composite public key:</t>
        <ol spacing="normal" type="1"><li>
            <t>This specification assumes that all of the component keys within a composite key are freshly generated for the composite; ie a given public key MUST NOT appear as a component within a composite key and also within single-algorithm constructions.</t>
          </li>
          <li>
            <t>This specification assumes that composite public keys will be bound in a structure that contains a signature over the public key (for example, an X.509 Certificate <xref target="RFC5280"/>), which is chained back to a trust anchor, and where that signature algorithm is at least as strong as the composite public key that it is protecting.</t>
          </li>
        </ol>
        <t>There are mechanisms within Internet PKI where trusted public keys do not appear within signed structures -- such as the Trust Anchor format defined in [RFC5914]. In such cases, it is the responsibility of implementers to ensure that trusted composite keys are distributed in a way that is tamper-resistant and does not allow the component keys to be trusted independently.</t>
        <!-- End of Security Considerations section -->

<!-- Start of Appendices -->

</section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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="RFC2986" target="https://www.rfc-editor.org/info/rfc2986" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2986.xml">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC4210" target="https://www.rfc-editor.org/info/rfc4210" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4210.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Management Protocol (CMP)</title>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="T. Kause" initials="T." surname="Kause"/>
            <author fullname="T. Mononen" initials="T." surname="Mononen"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Internet X.509 Public Key Infrastructure (PKI) Certificate Management Protocol (CMP). Protocol messages are defined for X.509v3 certificate creation and management. CMP provides on-line interactions between PKI components, including an exchange between a Certification Authority (CA) and a client system. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4210"/>
          <seriesInfo name="DOI" value="10.17487/RFC4210"/>
        </reference>
        <reference anchor="RFC4211" target="https://www.rfc-editor.org/info/rfc4211" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4211.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Request Message Format (CRMF)</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document describes the Certificate Request Message Format (CRMF) syntax and semantics. This syntax is used to convey a request for a certificate to a Certification Authority (CA), possibly via a Registration Authority (RA), for the purposes of X.509 certificate production. The request will typically include a public key and the associated registration information. This document does not define a certificate request protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4211"/>
          <seriesInfo name="DOI" value="10.17487/RFC4211"/>
        </reference>
        <reference anchor="RFC5280" target="https://www.rfc-editor.org/info/rfc5280" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5480" target="https://www.rfc-editor.org/info/rfc5480" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5480.xml">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC5639" target="https://www.rfc-editor.org/info/rfc5639" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5639.xml">
          <front>
            <title>Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation</title>
            <author fullname="M. Lochter" initials="M." surname="Lochter"/>
            <author fullname="J. Merkle" initials="J." surname="Merkle"/>
            <date month="March" year="2010"/>
            <abstract>
              <t>This memo proposes several elliptic curve domain parameters over finite prime fields for use in cryptographic applications. The domain parameters are consistent with the relevant international standards, and can be used in X.509 certificates and certificate revocation lists (CRLs), for Internet Key Exchange (IKE), Transport Layer Security (TLS), XML signatures, and all applications or protocols based on the cryptographic message syntax (CMS). This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5639"/>
          <seriesInfo name="DOI" value="10.17487/RFC5639"/>
        </reference>
        <reference anchor="RFC5652" target="https://www.rfc-editor.org/info/rfc5652" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5652.xml">
          <front>
            <title>Cryptographic Message Syntax (CMS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the Cryptographic Message Syntax (CMS). This syntax is used to digitally sign, digest, authenticate, or encrypt arbitrary message content. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="70"/>
          <seriesInfo name="RFC" value="5652"/>
          <seriesInfo name="DOI" value="10.17487/RFC5652"/>
        </reference>
        <reference anchor="RFC5758" target="https://www.rfc-editor.org/info/rfc5758" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5758.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Additional Algorithms and Identifiers for DSA and ECDSA</title>
            <author fullname="Q. Dang" initials="Q." surname="Dang"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="K. Moriarty" initials="K." surname="Moriarty"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document updates RFC 3279 to specify algorithm identifiers and ASN.1 encoding rules for the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA) digital signatures when using SHA-224, SHA-256, SHA-384, or SHA-512 as the hashing algorithm. This specification applies to the Internet X.509 Public Key infrastructure (PKI) when digital signatures are used to sign certificates and certificate revocation lists (CRLs). This document also identifies all four SHA2 hash algorithms for use in the Internet X.509 PKI. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5758"/>
          <seriesInfo name="DOI" value="10.17487/RFC5758"/>
        </reference>
        <reference anchor="RFC5958" target="https://www.rfc-editor.org/info/rfc5958" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5958.xml">
          <front>
            <title>Asymmetric Key Packages</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5958"/>
          <seriesInfo name="DOI" value="10.17487/RFC5958"/>
        </reference>
        <reference anchor="RFC6090" target="https://www.rfc-editor.org/info/rfc6090" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6090.xml">
          <front>
            <title>Fundamental Elliptic Curve Cryptography Algorithms</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="K. Igoe" initials="K." surname="Igoe"/>
            <author fullname="M. Salter" initials="M." surname="Salter"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>This note describes the fundamental algorithms of Elliptic Curve Cryptography (ECC) as they were defined in some seminal references from 1994 and earlier. These descriptions may be useful for implementing the fundamental algorithms without using any of the specialized methods that were developed in following years. Only elliptic curves defined over fields of characteristic greater than three are in scope; these curves are those used in Suite B. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6090"/>
          <seriesInfo name="DOI" value="10.17487/RFC6090"/>
        </reference>
        <reference anchor="RFC6234" target="https://www.rfc-editor.org/info/rfc6234" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC7748" target="https://www.rfc-editor.org/info/rfc7748" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7748.xml">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="RFC8032" target="https://www.rfc-editor.org/info/rfc8032" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8032.xml">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
        <reference anchor="RFC8410" target="https://www.rfc-editor.org/info/rfc8410" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8410.xml">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="RFC8411" target="https://www.rfc-editor.org/info/rfc8411" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8411.xml">
          <front>
            <title>IANA Registration for the Cryptographic Algorithm Object Identifier Range</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="R. Andrews" initials="R." surname="Andrews"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>When the Curdle Security Working Group was chartered, a range of object identifiers was donated by DigiCert, Inc. for the purpose of registering the Edwards Elliptic Curve key agreement and signature algorithms. This donated set of OIDs allowed for shorter values than would be possible using the existing S/MIME or PKIX arcs. This document describes the donated range and the identifiers that were assigned from that range, transfers control of that range to IANA, and establishes IANA allocation policies for any future assignments within that range.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8411"/>
          <seriesInfo name="DOI" value="10.17487/RFC8411"/>
        </reference>
        <reference anchor="X.690">
          <front>
            <title>Information technology - ASN.1 encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2015" month="November"/>
          </front>
          <seriesInfo name="ISO/IEC" value="8825-1:2015"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC3279" target="https://www.rfc-editor.org/info/rfc3279" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3279.xml">
          <front>
            <title>Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="L. Bassham" initials="L." surname="Bassham"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="April" year="2002"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for digital signatures and subject public keys used in the Internet X.509 Public Key Infrastructure (PKI). Digital signatures are used to sign certificates and certificate revocation list (CRLs). Certificates include the public key of the named subject. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3279"/>
          <seriesInfo name="DOI" value="10.17487/RFC3279"/>
        </reference>
        <reference anchor="RFC7292" target="https://www.rfc-editor.org/info/rfc7292" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7292.xml">
          <front>
            <title>PKCS #12: Personal Information Exchange Syntax v1.1</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="S. Parkinson" initials="S." surname="Parkinson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <author fullname="M. Scott" initials="M." surname="Scott"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>PKCS #12 v1.1 describes a transfer syntax for personal identity information, including private keys, certificates, miscellaneous secrets, and extensions. Machines, applications, browsers, Internet kiosks, and so on, that support this standard will allow a user to import, export, and exercise a single set of personal identity information. This standard supports direct transfer of personal information under several privacy and integrity modes.</t>
              <t>This document represents a republication of PKCS #12 v1.1 from RSA Laboratories' Public Key Cryptography Standard (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7292"/>
          <seriesInfo name="DOI" value="10.17487/RFC7292"/>
        </reference>
        <reference anchor="RFC7296" target="https://www.rfc-editor.org/info/rfc7296" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7296.xml">
          <front>
            <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
            <author fullname="C. Kaufman" initials="C." surname="Kaufman"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="Y. Nir" initials="Y." surname="Nir"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <author fullname="T. Kivinen" initials="T." surname="Kivinen"/>
            <date month="October" year="2014"/>
            <abstract>
              <t>This document describes version 2 of the Internet Key Exchange (IKE) protocol. IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs). This document obsoletes RFC 5996, and includes all of the errata for it. It advances IKEv2 to be an Internet Standard.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="79"/>
          <seriesInfo name="RFC" value="7296"/>
          <seriesInfo name="DOI" value="10.17487/RFC7296"/>
        </reference>
        <reference anchor="RFC7299" target="https://www.rfc-editor.org/info/rfc7299" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7299.xml">
          <front>
            <title>Object Identifier Registry for the PKIX Working Group</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>When the Public-Key Infrastructure using X.509 (PKIX) Working Group was chartered, an object identifier arc was allocated by IANA for use by that working group. This document describes the object identifiers that were assigned in that arc, returns control of that arc to IANA, and establishes IANA allocation policies for any future assignments within that arc.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7299"/>
          <seriesInfo name="DOI" value="10.17487/RFC7299"/>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8446.xml">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8551" target="https://www.rfc-editor.org/info/rfc8551" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8551.xml">
          <front>
            <title>Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <author fullname="B. Ramsdell" initials="B." surname="Ramsdell"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="April" year="2019"/>
            <abstract>
              <t>This document defines Secure/Multipurpose Internet Mail Extensions (S/MIME) version 4.0. S/MIME provides a consistent way to send and receive secure MIME data. Digital signatures provide authentication, message integrity, and non-repudiation with proof of origin. Encryption provides data confidentiality. Compression can be used to reduce data size. This document obsoletes RFC 5751.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8551"/>
          <seriesInfo name="DOI" value="10.17487/RFC8551"/>
        </reference>
        <reference anchor="RFC8017" target="https://www.rfc-editor.org/info/rfc8017" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8017.xml">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson"/>
            <author fullname="A. Rusch" initials="A." surname="Rusch"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series. By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </reference>
        <reference anchor="I-D.hale-pquip-hybrid-signature-spectrums" target="https://datatracker.ietf.org/doc/html/draft-hale-pquip-hybrid-signature-spectrums-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-hale-pquip-hybrid-signature-spectrums-01.xml">
          <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="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="6" month="November" year="2023"/>
            <abstract>
              <t>This document describes classification of design goals and security considerations for hybrid digital signature schemes, including proof composability, non-separability of the ingredient signatures given a hybrid signature, backwards/forwards compatiblity, hybrid generality, and simultaneous verification. Discussion of this work is encouraged to happen on the IETF PQUIP mailing list pqc@ietf.org or on the GitHub repository which contains the draft: https://github.com/dconnolly/draft-hale-pquip-hybrid- signature-spectrums</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hale-pquip-hybrid-signature-spectrums-01"/>
        </reference>
        <reference anchor="I-D.ounsworth-pq-composite-kem" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-pq-composite-kem-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-pq-composite-kem-01.xml">
          <front>
            <title>Composite KEM For Use In Internet PKI</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>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>The migration to post-quantum cryptography is unique in the history of modern digital cryptography in that neither the old outgoing nor the new incoming algorithms are fully trusted to protect data for the required data lifetimes. The outgoing algorithms, such as RSA and elliptic curve, may fall to quantum cryptalanysis, while the incoming post-quantum algorithms face uncertainty about both the underlying mathematics as well as hardware and software implementations that have not had sufficient maturing time to rule out classical cryptanalytic attacks and implementation bugs. Cautious implementers may wish to layer cryptographic algorithms such that an attacker would need to break all of them in order to compromise the data being protected using either a Post-Quantum / Traditional Hybrid, Post-Quantum / Post-Quantum Hybrid, or combinations thereof. This document, and its companions, defines a specific instantiation of hybrid paradigm called "composite" where multiple cryptographic algorithms are combined to form a single key, signature, or key encapsulation mechanism (KEM) such that they can be treated as a single atomic object at the protocol level. This document defines the structure CompositeCiphertextValue which is a sequence of the respective ciphertexts for each component algorithm. Explicit pairings of algorithms are defined which should meet most Internet needs. The generic composite key type is also defined which allows arbitrary combinations of key types to be placed in the CompositePublicKey and CompositePrivateKey structures without needing the combination to be pre-registered or pre-agreed. For the purpose of combining KEMs, the combiner function from [I-D.ounsworth-cfrg-kem-combiners] is used. This document is intended to be coupled with the composite keys structure define in [I-D.ounsworth-pq-composite-keys] and the CMS KEMRecipientInfo mechanism in [I-D.housley-lamps-cms-kemri].</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-kem-01"/>
        </reference>
        <reference anchor="I-D.becker-guthrie-noncomposite-hybrid-auth" target="https://datatracker.ietf.org/doc/html/draft-becker-guthrie-noncomposite-hybrid-auth-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-becker-guthrie-noncomposite-hybrid-auth-00.xml">
          <front>
            <title>Non-Composite Hybrid Authentication in PKIX and Applications to Internet Protocols</title>
            <author fullname="Alison Becker" initials="A." surname="Becker">
              <organization>National Security Agency</organization>
            </author>
            <author fullname="Rebecca Guthrie" initials="R." surname="Guthrie">
              <organization>National Security Agency</organization>
            </author>
            <author fullname="Michael J. Jenkins" initials="M. J." surname="Jenkins">
              <organization>National Security Agency</organization>
            </author>
            <date day="22" month="March" year="2022"/>
            <abstract>
              <t>The advent of cryptographically relevant quantum computers (CRQC) will threaten the public key cryptography that is currently in use in today's secure internet protocol infrastructure. To address this, organizations such as the National Institute of Standards and Technology (NIST) will standardize new post-quantum cryptography (PQC) that is resistant to attacks by both classical and quantum computers. After PQC algorithms are standardized, the widespread implementation of this cryptography will be contingent upon adapting current protocols to accommodate PQC. Hybrid solutions are one way to facilitate the transition between traditional and PQ algorithms: they use both a traditional and a PQ algorithm in order to perform encryption or authentication, with the guarantee that the given security property will still hold in the case that one algorithm fails. Hybrid solutions can be constructed in many ways, and the cryptographic community has already begun to explore this space. This document introduces non-composite hybrid authentication, which requires updates at the protocol level and limits impact to the certificate-issuing infrastructure.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-becker-guthrie-noncomposite-hybrid-auth-00"/>
        </reference>
        <reference anchor="I-D.guthrie-ipsecme-ikev2-hybrid-auth" target="https://datatracker.ietf.org/doc/html/draft-guthrie-ipsecme-ikev2-hybrid-auth-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-guthrie-ipsecme-ikev2-hybrid-auth-00.xml">
          <front>
            <title>Hybrid Non-Composite Authentication in IKEv2</title>
            <author fullname="Rebecca Guthrie" initials="R." surname="Guthrie">
              <organization>National Security Agency</organization>
            </author>
            <date day="25" month="March" year="2022"/>
            <abstract>
              <t>This document describes how to extend the Internet Key Exchange Protocol Version 2 (IKEv2) to allow hybrid non-composite authentication. The intended purpose for this extension is to enable the use of a Post-Quantum (PQ) digital signature and X.509 certificate in addition to the use of a traditional authentication method. This document enables peers to signify support for hybrid non-composite authentication, and send additional CERTREQ, AUTH, and CERT payloads to perform multiple authentications.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-guthrie-ipsecme-ikev2-hybrid-auth-00"/>
        </reference>
        <reference anchor="I-D.pala-klaussner-composite-kofn" target="https://datatracker.ietf.org/doc/html/draft-pala-klaussner-composite-kofn-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-pala-klaussner-composite-kofn-00.xml">
          <front>
            <title>K-threshold Composite Signatures for the Internet PKI</title>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs Inc.</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>D-Trust GmbH</organization>
            </author>
            <date day="15" month="November" year="2022"/>
            <abstract>
              <t>With the need to evolve the cryptography used in today applications, devices, and networks, there might be many scenarios where the use of a single-key certificate is not sufficient. For example, there might be the need for migrating between two existing algorithms (e.g., from classic to post-quantum) or there might be the need to test the capabilities of devices via test drivers and/or non-standard algorithms. Differently from the situation where algorithms are not yet (or no more) trusted to be used by themselves, this document addresses the use of multiple keys and signatures that can be individually trusted to implement a generic 1-threshold and K-threshold signature validation procedures. This document provides the definition of a new type of multi- algorithm public key and relies on the definition of CompositePrivateKey, and CompositeSignature which are sequences of the respective structure for each component algorithm as defined in [I-D.ounsworth-pq-composite-sigs] and [I-D.ounsworth-pq-composite-sigs].</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-pala-klaussner-composite-kofn-00"/>
        </reference>
        <reference anchor="I-D.driscoll-pqt-hybrid-terminology" target="https://datatracker.ietf.org/doc/html/draft-driscoll-pqt-hybrid-terminology-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-driscoll-pqt-hybrid-terminology-01.xml">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="20" month="October" year="2022"/>
            <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 ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-driscoll-pqt-hybrid-terminology-01"/>
        </reference>
        <reference anchor="I-D.vaira-pquip-pqc-use-cases" target="https://datatracker.ietf.org/doc/html/draft-vaira-pquip-pqc-use-cases-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-vaira-pquip-pqc-use-cases-00.xml">
          <front>
            <title>Post-quantum cryptography use cases</title>
            <author fullname="Antonio Vaira" initials="A." surname="Vaira">
              <organization>Siemens</organization>
            </author>
            <author fullname="Hendrik Brockhaus" initials="H." surname="Brockhaus">
              <organization>Siemens</organization>
            </author>
            <author fullname="Alexander Railean" initials="A." surname="Railean">
              <organization>Siemens</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>This document focuses on the critical challenge of migrating long- term security assertions with security requirements spanning over a decade, encompassing X.509 certificates, including those that serve as manufacturer issued certificates (IDevID), signed firmware/ software, and other electronic artifacts. We investigate a range of migration strategies, specifically hybrid cryptography and the feasibility of stateful Hash-Based Signatures (HBS) schemes, including its pros and cons. To offer a comprehensive context, we present a list of use cases centered around long-lived security assertions, categorize them, and evaluate them against the various migration strategies identified. We also aim at listing pros and cons associated with each method.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-vaira-pquip-pqc-use-cases-00"/>
        </reference>
        <reference anchor="I-D.massimo-lamps-pq-sig-certificates" target="https://datatracker.ietf.org/doc/html/draft-massimo-lamps-pq-sig-certificates-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-massimo-lamps-pq-sig-certificates-00.xml">
          <front>
            <title>Algorithms and Identifiers for Post-Quantum Algorithms</title>
            <author fullname="Jake Massimo" initials="J." surname="Massimo">
              <organization>AWS</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="8" month="July" year="2022"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates, Certificate Revocation Lists (CRLs), and to sign messages. This document describes the conventions for using Dilithium quantum-resistant signatures in Internet X.509 certificates and certifiate revocation lists. The conventions for the associated post-quantum signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-massimo-lamps-pq-sig-certificates-00"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-dilithium-certificates" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-dilithium-certificates-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lamps-dilithium-certificates-01.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Algorithm Identifiers for Dilithium</title>
            <author fullname="Jake Massimo" initials="J." surname="Massimo">
              <organization>AWS</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="6" month="February" year="2023"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates, Certificate Revocation Lists (CRLs), and to sign messages. This document describes the conventions for using Dilithium quantum-resistant signatures in Internet X.509 certificates and certificate revocation lists. The conventions for the associated post-quantum signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-dilithium-certificates-01"/>
        </reference>
        <reference anchor="Bindel2017" target="https://link.springer.com/chapter/10.1007/978-3-319-59879-6_22">
          <front>
            <title>Transitioning to a quantum-resistant public key infrastructure</title>
            <author initials="N." surname="Bindel" fullname="Nina Bindel">
              <organization/>
            </author>
            <author initials="U." surname="Herath" fullname="Udyani Herath">
              <organization/>
            </author>
            <author initials="M." surname="McKague" fullname="Matthew McKague">
              <organization/>
            </author>
            <author initials="D." surname="Stebila" fullname="Douglas Stebila">
              <organization/>
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="BSI2021" target="https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/Brochure/quantum-safe-cryptography.pdf">
          <front>
            <title>Quantum-safe cryptography - fundamentals, current developments and recommendations</title>
            <author>
              <organization>Federal Office for Information Security (BSI)</organization>
            </author>
            <date year="2021" month="October"/>
          </front>
        </reference>
        <reference anchor="ANSSI2024" target="https://cyber.gouv.fr/sites/default/files/document/Quantum_Key_Distribution_Position_Paper.pdf">
          <front>
            <title>Position Paper on Quantum Key Distribution</title>
            <author>
              <organization>French Cybersecurity Agency (ANSSI)</organization>
            </author>
            <author>
              <organization>Federal Office for Information Security (BSI)</organization>
            </author>
            <author>
              <organization>Netherlands National Communications Security Agency (NLNCSA)</organization>
            </author>
            <author>
              <organization>Swedish National Communications Security Authority, Swedish Armed Forces</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 1240?>

<section anchor="appdx_components">
      <name>Component Algorithm Reference</name>
      <t>This section provides references to the full specification of the algorithms used in the composite constructions.</t>
      <table anchor="tab-component-sig-algs">
        <name>Component Signature Algorithms used in Composite Constructions</name>
        <thead>
          <tr>
            <th align="left">Component Signature Algorithm ID</th>
            <th align="left">OID</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">id-ML-DSA-44</td>
            <td align="left">1.3.6.1.4.1.2.267.12.4.4</td>
            <td align="left">
              <em>ML-DSA</em>: <xref target="I-D.ietf-lamps-dilithium-certificates"/> and [FIPS.204-ipd]</td>
          </tr>
          <tr>
            <td align="left">id-ML-DSA-65</td>
            <td align="left">1.3.6.1.4.1.2.267.12.6.5</td>
            <td align="left">
              <em>ML-DSA</em>: <xref target="I-D.ietf-lamps-dilithium-certificates"/> and [FIPS.204-ipd]</td>
          </tr>
          <tr>
            <td align="left">id-ML-DSA-87</td>
            <td align="left">1.3.6.1.4.1.2.267.12.8.7</td>
            <td align="left">
              <em>ML-DSA</em>: <xref target="I-D.ietf-lamps-dilithium-certificates"/> and [FIPS.204-ipd]</td>
          </tr>
          <tr>
            <td align="left">id-Ed25519</td>
            <td align="left">iso(1) identified-organization(3) thawte(101) 112</td>
            <td align="left">
              <em>Ed25519 / Ed448</em>: <xref target="RFC8410"/></td>
          </tr>
          <tr>
            <td align="left">id-Ed448</td>
            <td align="left">iso(1) identified-organization(3) thawte(101) id-Ed448(113)</td>
            <td align="left">
              <em>Ed25519 / Ed448</em>: <xref target="RFC8410"/></td>
          </tr>
          <tr>
            <td align="left">ecdsa-with-SHA256</td>
            <td align="left">iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2</td>
            <td align="left">
              <em>ECDSA</em>: <xref target="RFC5758"/></td>
          </tr>
          <tr>
            <td align="left">ecdsa-with-SHA512</td>
            <td align="left">iso(1) member-body(2) us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4</td>
            <td align="left">
              <em>ECDSA</em>: <xref target="RFC5758"/></td>
          </tr>
          <tr>
            <td align="left">sha256WithRSAEncryption</td>
            <td align="left">iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 11</td>
            <td align="left">
              <em>RSAES-PKCS-v1_5</em>: <xref target="RFC8017"/></td>
          </tr>
          <tr>
            <td align="left">sha512WithRSAEncryption</td>
            <td align="left">iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 13</td>
            <td align="left">
              <em>RSAES-PKCS-v1_5</em>: <xref target="RFC8017"/></td>
          </tr>
          <tr>
            <td align="left">id-RSASA-PSS</td>
            <td align="left">iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-1(1) 10</td>
            <td align="left">
              <em>RSASSA-PSS</em>: <xref target="RFC8017"/></td>
          </tr>
        </tbody>
      </table>
      <table anchor="tab-component-curve-algs">
        <name>Elliptic Curves used in Composite Constructions</name>
        <thead>
          <tr>
            <th align="left">Elliptic CurveID</th>
            <th align="left">OID</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">secp256r1</td>
            <td align="left">iso(1) member-body(2) us(840) ansi-x962(10045) curves(3) prime(1) 7</td>
            <td align="left">
              <xref target="RFC6090"/></td>
          </tr>
          <tr>
            <td align="left">secp384r1</td>
            <td align="left">iso(1) identified-organization(3) certicom(132) curve(0) 34</td>
            <td align="left">
              <xref target="RFC6090"/></td>
          </tr>
          <tr>
            <td align="left">brainpoolP256r1</td>
            <td align="left">iso(1) identified-organization(3) teletrust(36) algorithm(3) signatureAlgorithm(3) ecSign(2) ecStdCurvesAndGeneration(8) ellipticCurve(1) versionOne(1) 7</td>
            <td align="left">
              <xref target="RFC5639"/></td>
          </tr>
          <tr>
            <td align="left">brainpoolP384r1</td>
            <td align="left">iso(1) identified-organization(3) teletrust(36) algorithm(3) signatureAlgorithm(3) ecSign(2) ecStdCurvesAndGeneration(8) ellipticCurve(1) versionOne(1) 11</td>
            <td align="left">
              <xref target="RFC5639"/></td>
          </tr>
        </tbody>
      </table>
      <table anchor="tab-component-hash">
        <name>Hash algorithms used in Composite Constructions</name>
        <thead>
          <tr>
            <th align="left">HashID</th>
            <th align="left">OID</th>
            <th align="left">Specification</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">id-sha256</td>
            <td align="left">joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashAlgs(2) 1</td>
            <td align="left">
              <xref target="RFC6234"/></td>
          </tr>
          <tr>
            <td align="left">id-sha512</td>
            <td align="left">joint-iso-itu-t(2) country(16) us(840) organization(1) gov(101) csor(3) nistAlgorithms(4) hashAlgs(2) 3</td>
            <td align="left">
              <xref target="RFC6234"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="appdx-samples">
      <name>Samples</name>
      <section anchor="appdx-expComposite-examples">
        <name>Explicit Composite Signature Examples</name>
        <section anchor="mldsa44-ecdsa-p256-sha256-public-key">
          <name>MLDSA44-ECDSA-P256-SHA256 Public Key</name>
          <artwork><![CDATA[
-----BEGIN PUBLIC KEY-----
MIIFgTANBgtghkgBhvprUAgBBAOCBW4AMIIFaQOCBSEAJaSzbEOXCT27FgXshv87
2HLTgePmYCJCH2OVUi/PB9YTyBXXnw+smoXT4w0pcq3WPs7qQXz6GKj7R0mFfTjp
Rd6uH3hgdS5cbg+PwMWsRKigE6mWFpMwrliS8CfR2yYgjhRav7wGa4ja7RdmZoLz
T8UBN2Yg6P/KceWA1gX6rdVUalrUvmcfR64ry06IfotXXNFwQc3vI6s7khHSUZX5
Rsw55RK3E0ElNpZxfFHv17d2xwFkGRAYqJao+qo37WtfG6Ynx4cqQyLJzlRn++5R
G6K1nCwqhErpk4vDR2uHIwAPiW0StX9ZbBjO2smRTIuWS2WhmhZwJkDqSHmCiRI2
tPsxCtLpM8t2IhTVy/ObAdQGPDngTNIPH8kuoRrBhWGIiWJMlo8LkImCRt5m/8Di
aL8C2BQNL+BWBBcak/JZrLkKZOZM7pFwWruHVEd0608XerfiVO3ypqAxImJ2xcdD
kLys4jDlEMsC3oz4RQGXahj2Pr8Jxu8i0TIDDdV5MZw9wId/m+0/vSD8BOAu09Wu
V6ppUWkDZLHlzf12zx3ZzBF/CMqZNsxMdTFNbu2qQ2/CZMlEvZ9f0gxn6qNf8NHC
UqdeRr7p9z8PuGHErLHqCvQMrzia71cD4URV//SR8EUQkoo9imtw3XT2uKGUIjT/
dDyqWl8BlAZ64dUp9EWmHwG1cyKBcu2dtD0d4BMol1g4TOF7u/3hHcgOoiR+ON/3
7MoxkX9mHt6tP7hkVWy0Mb3Sjej12DG75D9z8gAzHyQhOs3suNliCzCUmUVYm5Mv
WdySiuShm6yu+9Ah+GqvESuNr/h6s1gZGbdCe9llGdFPniilhL5J9oDgYMp+wi2I
EeOugOFoaY1e2OI1OPjBpg1071ko9B3CGD+0PkPvKYmMGs0HTnzFWCLPj5dG2kg7
PEltarKvLVTIxrbjw03l3SXmqpNPU8SqFJ7hB3OpFJgjqL95IRTa68UM8aaUKLMa
Qjjx08+e13P3wwY3niCR5U751fus4ArGLN2JgfPB7bPSdz043PIvxsCYZxUQXSW3
xWhWQqaHJLml19obvnf/tEXQZLheAr7hOEb/UTNUIBj/A6LfB0Gs012B1aXfne4W
9K/OFXc9p0C7aWIfjfMrA/idOrd1Eoo2NGLid+wp8aXyDZkCf5OUretEFHqQcQ2J
znh8R4mh2Tf7hT8+Gj5Su6bZggHi9iIJZ1G7i0j4Wm3g6DJAXF6KbChMayKRunDp
k6Nm5iOeTmT+Vi4OJncuI6HezZMzO2s+2iY33uDL7tFR8fVn7dQiF78c1aNhWjfm
fIsLNQdZxt6orvnwSrZpdVhOtAu+vYVaEAShdHgfzvPSDHIjgyxs6mGdk0uDsGpP
f5d3e9KV40rXir2OXaYMOq2KTkLb6KHHxZayLG0D9/qSBOnSE/aXNhh1cHtKeYAe
jjXmfzsmgNELPNxFRrx8pEHG1Se0GJNJVZE9u6B2r9f09TgTxgPX/6XpBNUrlz21
fsIvNpRL48cwLHOCgYP/SAgE3gzRC6G5NEE19wQZHsFNGeUeGvrvUQgTyT1YwLx+
Abvp57bVjgLWli185/K1a8BmJ204RHfDhSFe7sVAIoI2pUcz7ydb178DCAvupP20
CxUIkgOk3C+cgUzTwsFU4iiix282ZBa8/nTUnH9r3IDJQJwdWtMCnByCc43UeVSh
WV3isRF+ANl6lSevNj0uzGE07a5gPahctBWMmevh6qFcv5XucwNRe7en96o7CgK+
5QNCAAReie6V/SXhsV0+AAEPt/7UjJqzbrZU1ZHKBLCDbX1cv1Zkpy+SabE2Pfpd
K7SzfBpZw0txE+bjIUT4j3zjgIDa
-----END PUBLIC KEY-----
]]></artwork>
        </section>
        <section anchor="mldsa44-ecdsa-p256-private-key">
          <name>MLDSA44-ECDSA-P256 Private Key</name>
          <artwork><![CDATA[
-----BEGIN PRIVATE KEY-----
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
-----END PRIVATE KEY-----
]]></artwork>
        </section>
        <section anchor="mldsa44-ecdsa-p256-self-signed-x509-certificate">
          <name>MLDSA44-ECDSA-P256 Self-Signed X509 Certificate</name>
          <artwork><![CDATA[
-----BEGIN CERTIFICATE-----
MIIP+TCCBhqgAwIBAgIUEsa5EwG0Ligbb3NMHEmsqr0IoKMwDQYLYIZIAYb6a1AI
AQQwEjEQMA4GA1UEAwwHb3FzdGVzdDAeFw0yNDAzMDEyMzE5MzFaFw0yNTAzMDEy
MzE5MzFaMBIxEDAOBgNVBAMMB29xc3Rlc3QwggWBMA0GC2CGSAGG+mtQCAEEA4IF
bgAwggVpA4IFIQAlpLNsQ5cJPbsWBeyG/zvYctOB4+ZgIkIfY5VSL88H1hPIFdef
D6yahdPjDSlyrdY+zupBfPoYqPtHSYV9OOlF3q4feGB1LlxuD4/AxaxEqKATqZYW
kzCuWJLwJ9HbJiCOFFq/vAZriNrtF2ZmgvNPxQE3ZiDo/8px5YDWBfqt1VRqWtS+
Zx9HrivLToh+i1dc0XBBze8jqzuSEdJRlflGzDnlErcTQSU2lnF8Ue/Xt3bHAWQZ
EBiolqj6qjfta18bpifHhypDIsnOVGf77lEborWcLCqESumTi8NHa4cjAA+JbRK1
f1lsGM7ayZFMi5ZLZaGaFnAmQOpIeYKJEja0+zEK0ukzy3YiFNXL85sB1AY8OeBM
0g8fyS6hGsGFYYiJYkyWjwuQiYJG3mb/wOJovwLYFA0v4FYEFxqT8lmsuQpk5kzu
kXBau4dUR3TrTxd6t+JU7fKmoDEiYnbFx0OQvKziMOUQywLejPhFAZdqGPY+vwnG
7yLRMgMN1XkxnD3Ah3+b7T+9IPwE4C7T1a5XqmlRaQNkseXN/XbPHdnMEX8Iypk2
zEx1MU1u7apDb8JkyUS9n1/SDGfqo1/w0cJSp15Gvun3Pw+4YcSsseoK9AyvOJrv
VwPhRFX/9JHwRRCSij2Ka3DddPa4oZQiNP90PKpaXwGUBnrh1Sn0RaYfAbVzIoFy
7Z20PR3gEyiXWDhM4Xu7/eEdyA6iJH443/fsyjGRf2Ye3q0/uGRVbLQxvdKN6PXY
MbvkP3PyADMfJCE6zey42WILMJSZRVibky9Z3JKK5KGbrK770CH4aq8RK42v+Hqz
WBkZt0J72WUZ0U+eKKWEvkn2gOBgyn7CLYgR466A4WhpjV7Y4jU4+MGmDXTvWSj0
HcIYP7Q+Q+8piYwazQdOfMVYIs+Pl0baSDs8SW1qsq8tVMjGtuPDTeXdJeaqk09T
xKoUnuEHc6kUmCOov3khFNrrxQzxppQosxpCOPHTz57Xc/fDBjeeIJHlTvnV+6zg
CsYs3YmB88Hts9J3PTjc8i/GwJhnFRBdJbfFaFZCpockuaXX2hu+d/+0RdBkuF4C
vuE4Rv9RM1QgGP8Dot8HQazTXYHVpd+d7hb0r84Vdz2nQLtpYh+N8ysD+J06t3US
ijY0YuJ37CnxpfINmQJ/k5St60QUepBxDYnOeHxHiaHZN/uFPz4aPlK7ptmCAeL2
IglnUbuLSPhabeDoMkBcXopsKExrIpG6cOmTo2bmI55OZP5WLg4mdy4jod7NkzM7
az7aJjfe4Mvu0VHx9Wft1CIXvxzVo2FaN+Z8iws1B1nG3qiu+fBKtml1WE60C769
hVoQBKF0eB/O89IMciODLGzqYZ2TS4Owak9/l3d70pXjSteKvY5dpgw6rYpOQtvo
ocfFlrIsbQP3+pIE6dIT9pc2GHVwe0p5gB6ONeZ/OyaA0Qs83EVGvHykQcbVJ7QY
k0lVkT27oHav1/T1OBPGA9f/pekE1SuXPbV+wi82lEvjxzAsc4KBg/9ICATeDNEL
obk0QTX3BBkewU0Z5R4a+u9RCBPJPVjAvH4Bu+nnttWOAtaWLXzn8rVrwGYnbThE
d8OFIV7uxUAigjalRzPvJ1vXvwMIC+6k/bQLFQiSA6TcL5yBTNPCwVTiKKLHbzZk
Frz+dNScf2vcgMlAnB1a0wKcHIJzjdR5VKFZXeKxEX4A2XqVJ682PS7MYTTtrmA9
qFy0FYyZ6+HqoVy/le5zA1F7t6f3qjsKAr7lA0IABF6J7pX9JeGxXT4AAQ+3/tSM
mrNutlTVkcoEsINtfVy/VmSnL5JpsTY9+l0rtLN8GlnDS3ET5uMhRPiPfOOAgNqj
ITAfMB0GA1UdDgQWBBR72ZiceTDE3NvBPY4ryxmGCVY5pjANBgtghkgBhvprUAgB
BAOCCcgAMIIJwwOCCXUAQZt6/8sreFucKJFrqjKF21L5S9zuNhAA7Klvuqd0/4R3
3efTQ52tdQg345qqpW0BZRlgUDSWnq1Bmu3dyjcGDHY8LLvHyoOyTe02AMgwTW2c
UH6XpqeaGu1cab6l0owF2m5yGV9EmKYC8fky4JhEk2As83l2xlc4mVbA09NKfvQs
p94zzodQdCYFJ5VY62OubFsy3m6rlzaRCvJ+GLfpp1UeU0vxgqjIrPC3bDnId+gH
Wpkq+3lZLP/duGxYeXeeOm4zaQuaIUCJ0e/mFCFpbHywwgncay+0OQFDTFRYhNDY
ZlJR3AWLF47Grn/MhOEj5VO4GJvj+CjlGlOe3Fn6ABEjdRSDUOYykGg3NtnLIGkf
hM8j4hd+jfqGKwZrPNz/YaNC4YtKX1uwbjv1gGZSQ7I6zBPw37r1yblTAielXtPE
l1DuoFr3f05gzJJF6OuG6s7iBoUc5n1ovrn3UO85nCbSqqO2Ky15xsqTkFPnz4+g
JUOZ0SkqznulXIaMtJf/SmF4Pn23fmjqpOBTqOkBAOjloQIgSiQ90z45JU8Cy5sM
COU5d6shh9oM1BMIhFco9Zgxc/VF3WWd7ig9NT120HO6seAtMEMMSjtEUJsqWyQI
NnQvNVCTdG9joftmHnn5Uczar6HLr1HNYvjjXVudrp6ziKTFgblklGdcrqN0OTtx
hNSyacxucS5DWm5RGicRQaWb8Khob1lSn9nAZC0rOaChzjzJ0F5FYH2j3vL4ztLa
D5LMT+0FV5q0gkDHcowdQmWBiSwgyvJm+SMUmT/jyDPyf1VR71i1R3jeVqTu+kaw
ZkUpBztGzMLuPUrTlFeWa+QitEQegzObUw3zSRYaOpKa+Xz49zSLEEK5mOpKIvp0
qub+LXJXPBs38CUSxh2MRCOd8t5LlQCnKOQbVOu0UHvWmEhG/Oa/3j97PC1xrLOj
KTYSDrjhmwcPkJql5zzgVC+gBHcmeUWSutlp4HYskp0WyWc2fR4rKTawH6D3TCdu
IfBtlj80CWhNrWoaC+8yN+Y8rsogv0VoeUkVbneAg7J7TuJo9poTu/RFyEJ4AkIq
XzOxpjiwyUStVY5YH3x8zgquFau7bK8RQLowC8VFFWA8BFcgAgQkmasiipREpGaZ
PxFelJbl6en0UHS1VWDF0sdadypkY+hAcVGPEOt9pcWvP0o31ioybplBLe831d1q
TtD1TfBHXNr1cFErqfwryRUhV0JYNkwKGt6IcN1sfe+j23wo/b1BRDld4z1WL45o
7nebuv499egoHN5+AHFSGxleBVWvZe0iJzXWMqfLGfEkXg92qh6+vMxQW0Dsh0lD
mJP8xaD2cXZVN8+X1H7ESD7fC8MyKgtHAzuPcNjx0Zl8wihPNz/LBc9H1o9+LyDT
wcl4Mys3XDQqeg/efLB7W7eyWcCR/TeVO1sNmFIfMOlqbA04hqao3q9PdN4LlKCR
RjDqxGMCnE6+/YZSmWbB4CyYQsy4yXHss3SNKFdO4KccUUMVRTAcvSmHs1lUOIGI
OUaFJ6yw/jp5Wjybx7G5r6v/kvnlh5V3EfdW4srrbMtiSvDrNsc6/pV4+/WJ8lDa
T++u+phJpKAPbc2t0Tly/x6/O0L+PJLMlD9qK1nGYdttvEDsKgHe4jTkMytiYQp7
VolKPsbgLA5o5esMm4YVtfPOJNiRIPa6NlVgf/enNziReTZVgWi8g/yDdcdpMuS9
Op6Hbx0gdH7vfFNjAyuSorTzrUIlJPv5ZYdVw3qj+zcWybHAeozJfPQyXS5QoJm9
7mXfmNvtH620g5qG6C9XyoP7oIul17bMiX7A0/cg06y3pxWRVw/Tmn1sn4Er3jBg
XATF5+2R/euNmggiQAlYhXshKj401wQT+pFgFruB3/U2nSuZtTrOJXp33pcCEWjx
USmitfUl0znkW2dIM4lD7RUUftJKJnSDWYeJSyM3rijlOftc5BZontZuzzeNBxgs
HX7Q26p5SOJWbSjsffCTQfxxrxNGUxl8qVdDqtAhZjw+ZnfD8LiJhHcrYERTFxW7
MjjMV7tP06XAqybmayAWCtbgJlDbZb/thROfPmmaaymiCbnDKkQK0TLGNtiZ0ijy
yd5YLlc8c1lBpxsNe4Myvd4He743kKlS8Ep5YzrIqkwPde0fA6pnpHiUxoi4wmsK
NTDOlkV9Cly5tfrRkDyfNOqLMO0pqzDXRpATUpu8xey5s+GHDmhI1K1ojybN3MKh
TTYJ9Gla+52EhetT8a5Dm1q+5fFjpOPtDhJNKhdOOMZDRDCisf+SEeGi8Wjybw7n
x3w4hQZZpDzTknq3MZbmnlilphajEPYulLAgGAHmXEPHFMOT56cJxTCj5WUqksRh
/07PXQ62wVCpgZk7IUY0v7UF+dcomp8kHaLT1KGCD1v6XgD2uySyt9ha+3MEsOjk
PhfLWKeVAYFQX8maIajcLKckHE27rzDgJ66nhJU/YmxtvRo84EGfvkkqpDxVpMl1
KWVE5U6nXSNX9KAwVr4v0Gn+Lw52WMHZAhzWDGDUE8Pkb/a4l+Wbj8xDmDZXSNqx
RT9oAI2IN2yZV0nTY+tlmGYgOMrdNMr6KhtwE6E7Q6+84Cy4xKkwY3o4ob49SSCr
WHOp1mtvqUIkvfo9nV0qm3AlCd6blZGCUtYWJVhdLUY9+YqtqvAlZWom6TW9609n
xQ2pDbUnzz3RBSWotye/JZ3Iixsv1nlgf32+0x6IGutdL7SYQ8C4LiunoJTkF+A6
U5Chd9MiPvrUXjii1eiifwlwOZUxpvS50tBXIwQTuriV3AZPS5R15nJp1t4YzGOE
QwRJtNFnAkLsZ4iTrj/zDtgR6a2r4m/vzhUkrxIdZiptMO1E21zKfUMOtddPVqNg
SF4emCWJhmaoA0fQbRmZAQxqSajNFB4XPBK729A3wtTaN2TG1vm4iXzjsJuXhDzM
52NYEv8m2RoyKTiZFEfHndtvAHrqrdV1ud5jYi0GoA9YpnrdLiuzh1ljru3hk0WP
ejLjifxq6XEHkmBlsaiJSFpDxbhwwuW2zBvsUtbyU+Y8KxUuSKmem1m2JUE+UOIv
s7eJpbVOEA31p9Jd5rYlIPpuJ0gfRwyK65Rj20DYmdGoJpBPZbc2awktnniBMyI4
P1hehYqQl5+hqavvGjM3OExPVVuQl5vA2dzm6QYMECNOWV9jgsfV5/H3EhQiJTtx
dpigxtff/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0dKzgDSAAwRQIgTgIe913r
u9h+Hh3v0dLD71pyH3EidqMddgc0vjd7qF8CIQCNyqGxNNM4DuRCkDTWH+HdmGJ1
F2ljUsBn8vo47P9JvA==
-----END CERTIFICATE-----
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="sec-imp-considers">
      <name>Implementation Considerations</name>
      <section anchor="sec-fips">
        <name>FIPS certification</name>
        <t>One of the primary design goals of this specification is for the overall composite algorithm to be able to be considered FIPS-approved even when one of the component algorithms is not.</t>
        <t>Implementors seeking FIPS certification of a composite Signature algorithm where only one of the component algorithms has been FIPS-validated or FIPS-approved should credit the FIPS-validated component algorithm with full security strength, the non-FIPS-validated component algorithm with zero security, and the overall composite should be considered at least as strong and thus FIPS-approved.</t>
        <t>The authors wish to note that this gives composite algorithms great future utility both for future cryptographic migrations as well as bridging across jurisdictions, for example defining composite algorithms which combine FIPS cryptography with cryptography from a different national standards body.</t>
      </section>
      <section anchor="sec-backwards-compat">
        <name>Backwards Compatibility</name>
        <t>The term "backwards compatibility" is used here to mean something more specific; that existing systems as they are deployed today can interoperate with the upgraded systems of the future.  This draft explicitly does not provide backwards compatibility, only upgraded systems will understand the OIDs defined in this document.</t>
        <t>If backwards compatibility is required, then additional mechanisms will be needed.  Migration and interoperability concerns need to be thought about in the context of various types of protocols that make use of X.509 and PKIX with relation to digital signature objects, from online negotiated protocols such as TLS 1.3 <xref target="RFC8446"/> and IKEv2 <xref target="RFC7296"/>, to non-negotiated asynchronous protocols such as S/MIME signed email <xref target="RFC8551"/>, document signing such as in the context of the European eIDAS regulations [eIDAS2014], and publicly trusted code signing [codeSigningBRsv2.8], as well as myriad other standardized and proprietary protocols and applications that leverage CMS <xref target="RFC5652"/> signed structures.  Composite simplifies the protocol design work because it can be implemented as a signature algorithm that fits into existing systems.</t>
        <section anchor="hybrid-extensions-keys-and-signatures">
          <name>Hybrid Extensions (Keys and Signatures)</name>
          <t>The use of Composite Crypto provides the possibility to process multiple algorithms without changing the logic of applications but updating the cryptographic libraries: one-time change across the whole system. However, when it is not possible to upgrade the crypto engines/libraries, it is possible to leverage X.509 extensions to encode the additional keys and signatures. When the custom extensions are not marked critical, although this approach provides the most backward-compatible approach where clients can simply ignore the post-quantum (or extra) keys and signatures, it also requires all applications to be updated for correctly processing multiple algorithms together.</t>
          <!-- End of Implementation Considerations section -->

</section>
      </section>
    </section>
    <section anchor="intellectual-property-considerations">
      <name>Intellectual Property Considerations</name>
      <t>The following IPR Disclosure relates to this draft:</t>
      <t>https://datatracker.ietf.org/ipr/3588/</t>
    </section>
    <section anchor="contributors-and-acknowledgements">
      <name>Contributors and Acknowledgements</name>
      <t>This document incorporates contributions and comments from a large group of experts. The Editors would especially like to acknowledge the expertise and tireless dedication of the following people, who attended many long meetings and generated millions of bytes of electronic mail and VOIP traffic over the past few years in pursuit of this document:</t>
      <t>Daniel Van Geest (CryptoNext),
Britta Hale,
Tim Hollebeek (Digicert),
Panos Kampanakis (Cisco Systems),
Richard Kisley (IBM),
Serge Mister (Entrust),
Francois Rousseau,
Falko Strenzke,
Felipe Ventura (Entrust),
Alexander Ralien (Siemens),
Jose Ignacio Escribano and
Jan Oupicky</t>
      <t>We are grateful to all, including any contributors who may have been inadvertently omitted from this list.</t>
      <t>This document borrows text from similar documents, including those referenced below. Thanks go to the authors of those
   documents.  "Copying always makes things easier and less error prone" - <xref target="RFC8411"/>.</t>
      <section anchor="making-contributions">
        <name>Making contributions</name>
        <t>Additional contributions to this draft are welcome. Please see the working copy of this draft at, as well as open issues at:</t>
        <t>https://github.com/lamps-wg/draft-composite-sigs</t>
        <!-- End of Contributors section -->

</section>
    </section>
  </back>
  <!-- ##markdown-source:
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
UT8b/CXTFYT6esz1KmtnvdmtK5vTwZpw60qF61crsxyHfpeG8FnkuZYkvi75
/nN1nCnW18/25lQqMplmZ7xWB/t5tVVtZvrTiZYcVMrz8bXy/GycH+y9+TzO
nVMH+SU7G9jFl+Hza6HR3hZHqX19Nd4emJFSODazm7Ui5uXl+mFw7s7sUVtb
84X9rH7oni1dE0vV1Shzna+3m5F0Kp4bUm4rFUfKfmF2XplxaVLpZebrwiDZ
ltUZl14/FyxlOpF0a3Lay6tRIWddUwVhZTrPz736eShnT0LBLu42TXGyeM4z
I/ucz4/aWT7F673D4rKqN0/popK5nOu7xoibv7Qk8+HFzBZnzqpRmBuXnPwy
vHZar/rIeHjIj5hGoZ02queXDW8ddrlTbZQ5NoUzN9BmKdF5Li+WlW0/Y+9H
Y+E4EzOzzX6zOLd2tRexua9qIyHDOAP7UnU6h27JyQib8fSa7C85ZdgY1Iz1
uCcMmqXd0RxZlc2sIWizVlc3S52dsK+OnPw+WappjNQpVTOVYa/zUJlVKrK0
S7YWVmfXXvQX3eKhfp5Zx+aUV1KFVOlZtVbatJ+9Hl64i7BvZS6yUmN2naud
29Z0vmtXs+ZrbjRsPEubbWZglVqXY0lLjYVaTZnmu4tz+Swoyf1DKnkSa6VK
nzumyrMjMy0cDpPZrrboNPXXVTrzeskuXiv1ZLX7sujZl64yrveWx8zLMJOs
Lro6f1qUV6n1xSi89FalXrPKTF4UdWQVD+XX0uDYaPJWp/lSPQ271qsmFdNy
LTcZTZNJcVTiJ8OdaZa1vXPOPo8zx3ZjImzHSUapXV9meqmic4tCTpkcyvxs
3zw30vK1XZGPGcWppZRcpWvq6XVu3K8Xj8nspimv+6Y2euj3klmm2DUvu+fy
vukUnEFxs5vOrqnuMitu1W06U2sU8zWAbc29Nq/DTd/O2seerlVfq5P9ZDrf
57snZqZcRe0obvaF6/GhzG0eGi8nXjz2rOSmYKfXi8ZSqaplXW8o9YGhafqm
k2+Vzdp63j08nLWMwPBq/7ju101pnlYzfSHdH2wrh3U6VUzvzHIlW23UHlKD
3eDUnu+7DTvVHBuv9Vm1M9jmlUZmty4yA14Hj7l96kzHwsVabs+prJ4Vn/cv
h95gUhJf6q3ippLtH+qt9falU84Lo7FUKE26JUmatDtdiRlut5dU6UFNZwfZ
83meNbTqKD8p5tOro53jrEanl2mtV4NKcTkQlddULjsQThe7Ol9cJsNncZZl
LrPNbPgiNVudvZ4um8uTsUo6/PNw0dmonFXc9PllcjLuTYTKNskVOqtKChaS
zlTS0vPKUHMzptxO9uvPcvmQqhalmbDarroWl9SUvqWkedPM9BodTXk4H0rS
87W22FVX+f7EUh2+3nwZysNMi3k1NqVRbr/JjFfFzbj00NjmxWNhuVivm1pZ
E1qLdKOopba52T67LtRa3HO90F5WN13p2h4djdqB2RV6+7zWV8f78cNUy/Vb
hnwUCk31ddF9hX38kNHm2eyx1ik69VFpNTWKylCrF0tyWuptZtvVnlkJdqc3
VBYXp2BaJ+MsWouDMt30He74cJpPJZ4TN0pzvXo9DcRaU9iurxe7sG8ou9Sx
ZjcOA2aVV7JquT3Npaxnzcr0n6V5t/+SaY93nWWh3WxeFtK100jVyskXsdI3
RD4pPfc2m7TcdNrqnFOZ7fZ5v3q19+se3xn0LvWRdSkd+GYjLaqpRqvXmi74
8rFQyViwCcvj9fiyHjwnC8+HSm9i6a+ZNLOyhVPvMOrkSvK50+xX1/NBUuTW
fHb9OqoWGvkez6fL5+Giadd7DXWiNk7WaTJcj6/j9PzcuTww3PJ0yBeX0+26
M9O1dCmfbKelUgXkTSo3aq5qG7GuFu0pJ5hC5jCRX4tXZZkulmpV7nQ8DDIp
pnqZCLt1f5etPsjryev4bNcnOU3TLplSZlGRSkljPDGaZSsr1FrD1lmZOd2q
UblW5Vx2ok7FDTObZjV7VH/genpBF9VTb5s6vjb4VFHKrwfSRnYqs+5ePW0K
L3X5lH8+yufeSC2qRrlgFqvr9gOTH/aqHDdSNbUwTYrPG3uaeuA4fuAki5Nt
6+V1aS0m6UWzXelUa8vntHxKL3aH64MoLfnMYHVQmHZRfF1VDotzyrnwD8ut
MBnnttnX7VqoSUQp873ajUrGBSLx+p11uy5izX6j2kfClBvzId0+KKyFCleL
0+9itVYentfr5BA91/Ofs63Kmue5YbvKVM9nHj945fRDp2cP83JrsLRnFfXa
SL6e5rLTr+QeFmthJ6zm+anYKZWaafM6z15qD+1TPcPklkZ9MC4a3dxDyRps
7erxuMsMrhOreHrlm6uHh6x5qvH1id00SyX1Nfe6eq2oswduYxau1VxjxTRL
lbq9ns5PqeZ+NBlM+P10Y7Umbac0PTeX/elV2hWlXGumF7qzw/lijOYvtpm2
qvKsPVu0h1VmuRCGw01DaEvCdTEUpyNRyC0VWNTmWJGGg8aucp7U1t3scLhu
LDfNmlh5ee0Md7muac7EyS7FLDa7XKvKrSebdWox3e34an8+nleELmjIbV2o
ilJXE+YcDNgdt6bceSnVq9JunRrK9erC1AGJ+wporH1eHvLgG/PDWlVcjxrc
ddMdNmqzPtce7RYLXtS4vpBqz7jZUhJ2y4o5ac36mjbc5ZnNplKVlJfGZsHP
1/pGGHLVXbdl5nZ7/iwKtUZl7vAduWpy02Oj1R1wm2q/Xhvx6VFVbHS4lxTD
cVy6uoaNtN5yizk/aZunqlSx8xtHy1QX/VRNHfDVyqm54ESjq+z3k5F9GdW5
3Hx0aUz64hXUEn+dCFxGs7upzujcAjnAbRvNRmd0FVvzLbce9SvzYT89mYhV
cbTlqgrgimusucqwueV2e2Z77E+GlQO/7l1T2/6gIXCv/Fi5CptFV+hOR9XF
+nodAVt2hsOzLG+EZV2YgVW2FoZNrjXsTplRaz1s1V/4Uf2otYYv24pgVzfT
A9/l7Wq7/nKu1tc7WRs1BflcFartCcevZ6I85kVlrc1nwyvTdaprQRB33Ki7
GHHrrKZ2G229Ioy73Yxm2tW1Nsx0hbbWVoXMuL5pSEOghbzjW3s+t9kIArMU
+et2eOSrXZ0TK+NKq64L0kZoSqMNx6lDE/hBrG2GVdnWzvP5OlfR+HGVO2vd
EWwi+TphtpxZqa07tVprX90u+ucRXxV202FqqZhae33eT3TRFOs2J9p9Uxj2
mpwinjv1Rk4Su0J1o1eYeQVIw7dTI4HLdTR+L3AjvtXid4J+qLY4o1WriPnl
YpgZckJmCwZou7u7apu+wY30miYOG0ybb3G7tbblh+fFaLeutl7qgvYCmB6Z
+VbvpToems+bnqBtdmZmDmgcDU/CZnjkOtO9sJlwQ2asj6qSXedaLW4oiI3U
AgT+fL1LLXlBay8aqcpc24GjMJkDg1Ur60V1PW61emdY1lmQunyVaVX2KXky
HIrdA9fh2udam98txH5VqF/F4Yzj5lxj3pHPOWE6ELpDbS5VTG2rHLnu1OK2
1aHObBTz3Nocmu1qVWjz3f1S5dcb8BZGo/16wTW5xWhU68p6Q6g2+EW7nxqp
3QxfX5/BpFpez4sSc6lnjOOkee0eB63GA38AHh9WwbO5VK41S2js1FK2nm6f
+EZervYH/eeNlukX5WrOvojmQei0GSG/HNWEutLcpfNGeV/tvBTOyXYxYwzF
59zRBhX1WlPPI7C/h4tpgRuVa8lrRexduZWVTy2KE+bQtVYvxd7i8NAGv7F5
sVNipbbPP/cqzxVJOHBnodnedZLqQX3IvGTqQq4mX9PWgoNt8FxKTQRG3G+k
Tro6Oiq5uZY+8MZglXKkvibxpc12PTybi3RtoheaJ61ut86SlHm4Zkfc1m4s
jsJ0NK4yYNRZC2s+OD8os2l9duq+nLabclGcr6tFdWxkRrnnY3aVzDSmkiY9
r6t8ZdMcz/OcVaq/Fvhsh+lOtfJm1u3WC91t/vQsK5PNmctI6nNja7wMFIdL
bveLyfNQb2d7+4uYO2XWUuq1eK6PtFPG6NWZpcE3BoVxsmSOZaVY6lkzcykP
m6tp9jhbLsVzfzOweuvK7PXY1ZP1RtnodkbysNRfvG7Pl8F6ygwaxizl7JPr
jMY1sqmmc5TWw0GxPz5oy5fK0XJ4/kHXpmJ9bdZSppV7nW8Gu+z+9aHfne7z
yRyTrimdznjkGC/F5+l4+qpdM60DCPCKWi9Na5t8o7webktaffNc7a22+UW9
t9pvpWaVz5hTdSXnmPp8ylu57tEcvKSW9b295PRFtzVvZRXQjKZwSc22eaHb
mFj13ljPrGavw6tczA+7I1lpaxk1xcwnsl1XCtJMal6SykbUlPzg/NyzrmJp
Y1dyk1XGzGxORn76rExqxWV5sak1T4trWU+OpNFiZjHapnA4i8NCk0+ZhZG8
aEmcnrEaeS05ru6GvdLiYdPXC9ZlKoqpiWqfNoZjTfm1WdrAig1RY7L10WrW
SHKzU22gJhu9kVarjioVMSNm5N6pZfWcw/r18jzZPJTMgdUfX/XacGmkV89K
+VytggWyVCbbnNw8zVuWlHzeP/cnZ/vhRZ7U82epKD2P9iX7uEsa1mkK3+v9
Sa5Uza1OtuakreFy+dJgUmLLlmzhcMxdUqlM6vVwqe/TqXG/kC5fOUGtzFPT
ec3KlBR5t23pVl6XnEl9vZjnO7KYE5o6c7isF1JB55ITmbusDUNO5QazTr7E
W/YCNFRm0smP6+BccNPO6Hm6A8/PMbup0ql7qM66R/nKGKemMFhdKr1xWTAz
9nRlrPLNTqG/rU6lejelntrDVEq/WqNLkhNXAEVbT01fS4qUSi/2UrXObCer
SubQnZ5eWidzvdKt9rn/urUHS264rCjjRj6nKJmTqFRF5dIcy81VoXu9iKmL
NRAmldF2xGgW2DWZxetyLCW7+ZeVCDrtVGiA8bd1lkYqJe8qG2BSuaTKzef9
ZjAb5AZCNVtQ1GfTqk9FJmfz8mz5PNz3xq3rvJFSL1lBKasP7cW13TgP96mx
nSvbzVKjyiu5aa+VK80UITm3epX9a6E4GjLNXqohXPrHVa2h1S91a7btFcHw
Tk2L+UbG7pwKB43L9R4y9vHUnE+veoov1hsbMMmd2mVjcBoz5Rq9l7o0Xx+S
E+Ow7FwL9eNoWDcPycJwnDfaldQp1RHPZ2XbrtYHz8tqO5u7Lo/j9TQ/alaH
LSZfqgrXiyxrDaO4TVWF/kIZl+u511nuVVC2gxMvN4bT2dCx1Z1x4Uq1iTkv
X1PPwkttUx8pqSuTHiZzV5AsliY4XCk7LD+3dg+1isVbI+mZkzk5Pdby213v
1biO8kJDa0q6NhDAlpxr9lST98xDKz0rZ51VMjdYX/h9JSuNBsPBsJ2/XO1x
drop5pbn55XQHp2HuWmnPjDF2bG7yW6mTrOSVqwC05tnt3xnla89rzONeass
G6u+1thUe/tpZVluC0mpOhtc1rn8eXE4C9maIxaPqiYlXyq1eb73kGImtZoy
2c0K/CB92CmnTaV53XDN8UQRC4PkNJXqpwamLs7O1d75eZC85C977bVwPV2z
8+a6vCw1mZz6kG8OsnW5MCxsxyNjIVZKldZU7iw3YNnUVtn2IK01FJDD7RW3
WutJvTXb7R96Zf1USpcLE6acSZVWy1Oh6TjbSfa1f2lmzP5UOji1fkPhUpnc
WNb6o2RdTBqdh5fc66ak1+RR3czZ7cGkN3SY8/xcG7caXeUyTEmNTV/o81Kt
VUw1mydg4dzmfF4ZxZqo7V8arRN/XGZ27V1tsD0Oz6fkwyA9YnLbabo0XK1m
+nDRnUoPfaUvzieZg5DKP68aVelQbZ6yC7OWNK1Dr8pPU9KxK6VPbWXYX/Yr
fZFJFsaCPDW356zTbL84L2JtPtlqmzqv1ucv2VPHWqnlarLGSQdtX+7mB6WF
fjWUast6XluZ9jrFjIyd+dwq7saNdlG+vipHZSOJD8t8S2r1V1nHrhZyz0B3
M2WX+0r33H7ZLDvCoXGczfuq9rIvM4eRIomDg/zQc15n445wnQ70fSazb5wP
xna30/Tzob7NvjhKupG+zvXGeGPkkpWT3Oe4h5dqM8OAulY76e6rMn6eTsfz
a9JYHi/F2XmRHz239q1+XBSWDsIyH4nC0kFY5iNRWDoIy3wkCksHYZmPRGHp
ICzzkSgsHYRlPhKFpYOwzEeisHQQlvlIFJYOwjIficLSQVjmI1FYOgjLfCQK
SwdhmY9EYekgLPORKCwdhGU+EoWlg7DMR6KwdBCW+UgUlg7CMh+JwtJBWOYj
UVg6CMt8JApLB2GZj0Rh6SAs85EoLB2EZT4ShaWDsMxHorB0EJb5SBSWDsIy
H4nC0kFY5iNRWDoIy3wkCpsfVyu7Mw5OjpnKWn7Z7Lb9wVCoVNZr93O3UjmP
8t2mXOWGPC80xFR2eHmVlqtRUm7P6jV+dzqq2dT62GZGljLPdPYFza6I3cVq
YXJmo1p9aYjdXJk7801zMqwN1xz/bBpHfZXSc8u6MlhzlVpx9ZAWrhJjZwqZ
aW82uq7F8zqTLj93yrNFWz7t9vtLb5stPIvHlJ09SzO515FHg33uWucfhHIp
l6tymfU//kGFfaPh2rfivqKqr3AbGFVhnyNJtzeBYHThh1AXqjB6EAh+GFer
4EisOYTLtTDhbSnPnxupjrZeLrO9bpPf2y9WSjDb3XNtOO/MhYXAzZcFKc0J
DDccnvktP+xyuQaXnvDc+dxcZuuvSmP6qtQ4tX5OXXs17rVb46/dVz7ffa1L
+Lsx+Y7xvuxWhAtf4/qVdW9a4brdSqZ8kbMjXc6iUPSs0uVSjWqm2hC5RuNh
7wyrHM9zOaEONgkHD0wP6A9h+B3h6M1AqCvqiqkVrtJGGWxrInhzyvzh9Xio
rAbm/GXgNMX5tNzv6/XsS26lNirpjn451nJJ7iJd+Jc2N35ZzGfM7rV6nLU6
51a5uWxp1X69/pI8cQtL61lOPbPYr0+9wWXIZxdazUyWDpf8vDarrF6c9HT0
MnPEB2ZxKTct7dQZm5sHLa3IqedK5VUtbV9ejyKvtEb6Sm+81gydt+TxUJxk
dKNemqjJZye7bHKz4YLhK5qpv2wLL9uVI6VLy4O2am6uh5pgG/1pY1Us6vzS
tGZyp/oC+m4/1kCjSzl5C5Zlazlqp5lVWrcb3aJ0XdS7Wn7RWUgNqW5w+2H/
IKjzdovfSqmHV76dOu5ewa/Q6r3nTilvg/s8L/XVSpdJrUurq1jYNOxGfT7X
WvPddbY9H4favNXI7pfJc79lns6deZ1LnXL1OV+/vIxL+t4+Dg+7/O71yOye
K9IRzIJRdmyNL0rBeWhNiqv23qzx2txY1i+p/vDUftW6/cnweu6o28Gmzi2U
l8Zg/nA6Gw2meO2MuutuL/28uxi1LLfJPiyL44eyMDjzuWpxnJbyzy97fSQN
eztbfe4ln5eDpmJ0+eeScD3sMswrf0l3J+ljUTrUlqXW7joRy0Y6KdYaqxcz
nTyn5JZ4SOcbp6ORHZwfcnNZtG3VbJe566nfsk7M9DzYjOrPyXKreR6NqqK2
zbSlbE1RBlLOXAy13qCcGrQP0vO5MakY1iYtGqmRNF9xy+mrYNavTHGRSQ1G
2TV/1Z5ntU0393wsJlVeuXIFrdXM5bLJlX3dNkarzFzNvqSSx8ZouuwMLyel
3SsMnudMd3naDbKDK1frrlpVvvCqXnOZmdDptsTFaKotd9fyIttqt/PtxtJq
F4upajMnvZRG7Vzm9NB8eWVmld3CSbWKmdlkkZo8qO32jD/tjMwa9uXVKFY7
8/UoVyhwudnmsJ0W57ntJPfQbexrz+PTTNymmKYszAfF4cPwoXTQ5mfpdaj0
V93pXLAfBnpqKYk1uyTO0i/2S8mZdrcN5ziojdVnpaVKLztQdcylbU6MI9+U
C7vJvto3T9ndpt6zrMvw9XI4DE37cqj2B83xa774LCdXtcpWVYVWUx+fjOlD
4XXNVO25nZ3vK7DFHbvcyg7GW7mkJRvn1saojypKa7kCEbSoHkx5d5SenzOb
44OSfEiNlMruWM9VmdORz41O5VE3PVw3BqWa6ZSaQ+l1/DxvTg/Kg1LcLFNW
KTdVXjPGsOMc5puHXulq1x5aqYKTnYiMtp2n5sdWtlg1LoeV0NsPW8n/t7Ez
2VYUW/P4nKc4K0dxl5khSKPeGqGACtIoCOpdOUD6vm/XquepVQ9Ro3yx2oCe
JiKybsUoRHb/319zztm/HeByScCni5VuWuoWi9a+3Xv6/i7MK0bqMV0KuWVa
RlvSOoIUwwnjy6M6ypKrPywq4YONcU3SgqPbHKSUhCFGSrJ4RAccF+8Srh0d
LDI7zE/MpRD0PIjL+qXO+raF8XUFq/t2rdklsj1c67ZXkwWjC7P7ymsKZIPE
OzTzqpm94cooRDSaAGEdsYZcNTltOAa2NnNxtT7wIL2njrs+u90XioyJjR6s
5yFqLuH06sulxdU33EydhshvqXgq6wRKDJsJ80PxOEnoLD3QhHlQ1qmx2O3V
xoJT3NkQomDd52Knk/CpWKG0uqv3XXAyHiq7PN2gAA7VACSyyV6vkbmCiBtp
R67teWoFNCJXV+mhgph8tQCZit/2ZGFg3MaZrwffZlFDWJU8AvikXNHNJrCa
CwySZEyfVevzdiOxkuqT9R7bVLM4LktNJEtdO177eJWrebMD5kZxachcicxB
XVbthfQcXw/PvVSzSH2tG/6wnRHB/HE6MidPJgnFOOLdRhGkbaMqHscd94/+
HkBM3s9MQTbsRW04fEjGIIiGG87YH9jeN8+4yjH3q8W19BUjF9dMZYnVQpKX
/E1Ryjwi11DGdDBz6+4E2JsJSDpDC+9JhFmWhI1mfsGBeD0k4QO5YQh2mV7X
rLVrQTZPkqcZOi9lHopyoSpDRQ2MhC4OQmmDStRIjkFekxbKbT0L4bw8Cqtd
GFMySit4xbtnyZNsUSQdIfOhg0LaPEgBgGs3KeekbTbn5eLuGZZC0ahQb6Qb
yN3baLdVb3jq//zLZGj4a7Gt4Qx/LcY2Dfj/9UKe7iUxXxW5xVQGxzJ55nPM
Ajni8rqvBJckl1xYV5kJz7EzCqGWrZzwRWmeHBTDsyzV4M39HDoXStbiDNlE
FWp2vrGj9rfV8QgklIidYsELkncaRVsY0GUP4ubM0ncVYugPIoSThllEeLdT
13TE3bYrO+gw1qWDBQlkGC7a0MAi9UHCa4Gz61MBpWus7xPzZG5vDIurN2Ih
Vg+m6NCIALG4ft7W7Gx3tNMUuVgXuG6dzD/k0hZ9UPHBnDl7SEuDbIaG96M0
N6tde7OuliVGWK+fKv1w2bKwNY+YLZM+9l3TOLGhdzPg7BhKYc43V6Bu0D1k
zyipHRlsucvjOQ+SNB9XRWzH1v5s64e7ULRQJibIDQ10JVMX8dYFOwcVyvh4
2AU25PIrH3PNmW9nO66555LQz2+6sMVuJXdFqubh14izu8un5YHoN1KDLnOk
e4QK6VnhtZRoKESoKmFy1IZxp2dZhhCrHVEsvU1yMfAYSeo8Ri/iCo+3DznL
xAXXIXhbZEoAEukemzkQexHvsBxkPYierwedL1l7LkcMJsUL1I78LBU3SiYG
QC5+mJwOjuyd1nCP4exlte3wgoe24gU3icJ11wmPbPiDyxjJ+u60xlxlUE0z
l56zFhRkAe9ForDIkqd5XvZL+sIWmdadDpAQn2pB3Srmbu0ndhnt4xgHeY2e
E/tjjuyFWw2yMrUy85ToPU5hnEcYhDvTyDMBFpWyhVxB7nSjrQwZp7QIP+88
43zStceKc5MHEsrxOibvWzgX9a3b+z0LMzhz2y98tD5ifXnUIQo/8soMZlQ8
g52A2htJY54ibeOBhKGr2Wgm85dImfsdJXU2CA6XiIecUd9SM6WaBXoD3YNL
uunLXc8fK+mSKyFjafrs5JX0yXJ68XFp0F4+33Qx5fTZtcfWvXykaQ6PwIND
ncJQVj1mxyt7lTYFutpe5NZd8OetaK5K/BietjEnnh6qWMGXfa1FtLubi/oc
9ddLaYu0+VH0IU65yVTuu1FjSAGbhXjfO+p25mz2RmRdNBlYmxTb34oghbVO
Mxb2Gcs5RW/2BIUqW7OCDvamDP0VvNXc4Xd7+na26oTZbZUXiVPDamJdAvUR
W6SzZJdKxSbrNFGq+ZnpaBYjg0MGXXuxTX2vAdFZCYzObY+2q97JKkavlg9u
dT4dk2a7UhlGI1cbBlge5xREeuF56ZlOd/odklrGCtlHSFgxGKeMqBrFwIWp
myAIvM1c0lB3Ei2WwFlptQQnKOIl3SMNN0drhSImkkFKSSGKvdlfhRwxGDrP
7CbvzhdXhdmbEDTcriQOhoAUtjXzF2iTzB/I5kyFJtYj2hHDE2gZW4+qxtZr
y0n2Aj4j94y8a0Nro2r13YI9tr9qfGYfdzYdXJ31InOJWc23Jw2mChcOKShi
pVWrUwvjeleF1eyK7Je0DBLR7YrvOKfck30lGYLfwvdw1XjusNuPG2O9R5L1
7NhRCtQYIcZ3BXqlTpnlzC37uFlqSwus2PY8VyxVRAohYg42L4YZsISYm+kJ
mq0lU8COIbc9Q2efytodSOhpYja/3eVIe2ywbXc7FR3WXfdFgcoCx5gixhnG
5cKrZ4U0ajnaF0h4EQ+7AyRedIYlumbup7jmd492ucNzop4HdRy6uIrStqlh
RZ4/+NKTayoXCoOYpyo2m2vsKqR0SJnNqlnqsilHSg9jUcJK2M1bYi7Cx5nE
HvmQWmccCG9uZlnWNFVwzt7CfCXgu9K7ndIlpCYhJxUP50jiCW4VfITd1NKW
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

-->

</rfc>
