<?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.6.31 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ounsworth-pq-composite-sigs-09" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="PQ Composite Sigs">Composite Signatures For Use In Internet PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-sigs-09"/>
    <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 abbrev="CableLabs">CableLabs</organization>
      <address>
        <postal>
          <street>858 Coal Creek Circle</street>
          <city>Louisville, Colorado</city>
          <code>80027</code>
          <country>United States of America</country>
        </postal>
        <email>director@openca.org</email>
      </address>
    </author>
    <date year="2023" month="May" day="29"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>Internet-Draft</keyword>
    <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 cryptanalysis, 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.</t>
      <t>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.</t>
      <t>This document defines the structures CompositeSignatureValue, and CompositeSignatureParams, which are sequences of the respective structure for each component algorithm. The explicit variant is defined which allows for a set of signature algorithm identifier OIDs to be registered together as an explicit composite signature algorithm and assigned an OID.</t>
      <t>This document is intended to be coupled with corresponding documents that define the structure and semantics of composite public and private keys and encryption <xref target="I-D.ounsworth-pq-composite-keys"/>, however may also be used with non-composite keys, such as when a protocol combines multiple certificates into a single cryptographic operation.</t>
      <!-- End of Abstract -->



    </abstract>
  </front>
  <middle>
    <section anchor="changes-in-version-09">
      <name>Changes in version -09</name>
      <ul spacing="normal">
        <li>Removed SPHINCS+ hybrids.</li>
        <li>Removed all references to generic composite.</li>
        <li>Added selection criteria note about requesting new explicit combinations.</li>
      </ul>
    </section>
    <section anchor="sec-intro">
      <name>Introduction</name>
      <t>During the transition to post-quantum cryptography, there will be uncertainty as to the strength of cryptographic algorithms; we will no longer fully trust traditional cryptography such as RSA, Diffie-Hellman, DSA and their elliptic curve variants, but we will also not
   fully trust their post-quantum replacements until they have had sufficient scrutiny and time to discover and fix implementation bugs. Unlike previous cryptographic algorithm migrations, the choice of when to migrate and which algorithms to migrate to, is not so clear. Even after the migration period, it may be advantageous for an entity's cryptographic identity to be composed of multiple public-key algorithms.</t>
      <t>The deployment of composite signatures using post-quantum algorithms will face two challenges</t>
      <ul spacing="normal">
        <li>
          <em>Algorithm strength</em> uncertainty: During the transition period, some post-quantum signature and encryption algorithms will not be fully trusted, while also the trust in legacy public key algorithms will start to erode.  A relying party may learn some time after deployment that a public key algorithm has become untrustworthy, but in the interim, they may not know which algorithm an adversary has compromised.</li>
        <li>
          <em>Backwards compatibility</em>: During the transition period, post-quantum algorithms will not be supported by all clients.</li>
      </ul>
      <t>This document provides a mechanism to address algorithm strength uncertainty concerns by building on <xref target="I-D.ounsworth-pq-composite-keys"/> by providing formats for encoding multiple signature values into existing public signature fields, as well as the process for validating a composite signature. Backwards compatibility is addressed via using composite in conjunction with a non-composite hybrid mode such as that described in <xref target="I-D.becker-guthrie-noncomposite-hybrid-auth"/>.</t>
      <t>This document is intended for general applicability anywhere that digital signatures are used within PKIX and CMS structures.</t>
      <section anchor="algorithm-selection-criteria">
        <name>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>A single RSA combination is provided (but RSA modulus size not mandated), matched with NIST PQC Level 3 algorithms.</li>
          <li>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.</li>
          <li>NIST level 1 candidates (Falcon512 and Kyber512) are provided, matched with 256-bit elliptic curves, intended for constrained use cases.
The authors wish to note that although all the composite structures defined in this and the companion documents <xref target="I-D.ounsworth-pq-composite-keys"/> and <xref target="I-D.ounsworth-pq-composite-kem"/> specifications are defined in such a way as to easily allow 3 or more component algorithms, it was decided to only specify explicit pairs. This also does not preclude future specification of explicit combinations with three or more components.</li>
        </ol>
        <t>To maximize interoperability, use of the specific algorithm combinations specified in this document is encouraged.  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>
      </section>
      <section anchor="sec-terminology">
        <name>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 BCP 14 <xref target="RFC2119"/>  <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>The following terms are used in 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 or more 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 is use which is 
          not believe 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>
        <!-- End of Introduction section -->

</section>
    </section>
    <section anchor="sec-composite-structs">
      <name>Composite Signature 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="composite-keys">
        <name>Composite Keys</name>
        <t>A composite signature MAY be associated with a composite public key as defined in <xref target="I-D.ounsworth-pq-composite-keys"/>, but MAY also be associated with multiple public keys from different sources, for example multiple X.509 certificates, or multiple cryptographic modules. In the latter case, composite signatures MAY be used as the mechanism for carrying multiple signatures in a non-composite hybrid authentication mechanism such as those described in <xref target="I-D.becker-guthrie-noncomposite-hybrid-auth"/>.</t>
        <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.</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:</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:</t>
          <artwork><![CDATA[
digitalSignature; and
nonRepudiation;
]]></artwork>
        </section>
      </section>
      <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 SIGNATURE-ALGORITHM ::= {
    IDENTIFIER TYPE OBJECT IDENTIFIER
    VALUE CompositeSignatureValue
    PARAMS ANY DEFINED BY ALGORITHM
    PUBLIC-KEYS { pk-Composite }
    SMIME-CAPS ANY DEFINED BY ALGORITHM }
]]></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">Signature parameters either declared ABSENT, or defined with a type and encoding</td>
            </tr>
            <tr>
              <td align="left">PUBLIC-KEYS</td>
              <td align="left">The composite key required to produce the composite signature</td>
            </tr>
            <tr>
              <td align="left">SMIME_CAPS</td>
              <td align="left">Not needed for composite</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..MAX) 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 in the associated CompositeSignatureParams object.</t>
        <t>A CompositeSignatureValue MUST contain the same number of component signatures as the corresponding public and private keys, and the order of component signature values MUST correspond to the component public keys.</t>
        <t>The choice of <tt>SEQUENCE 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 anchor="sec-compositeParameters">
        <name>CompositeSignatureParameters</name>
        <t>Composite signature parameters are defined as follows and MAY be used when a composite signature is used with an AlgorithmIdentifier:</t>
        <sourcecode type="asn.1" name="CompositeSignatureParams-asn.1-structures"><![CDATA[
CompositeSignatureParams ::= SEQUENCE SIZE (2..MAX) OF  
     AlgorithmIdentifier{SIGNATURE-ALGORITHM, {SignatureAlgSet}}
]]></sourcecode>
        <t>The signature's CompositeSignatureParams sequence MUST contain the same component algorithms listed in the same order as in the associated CompositePublicKey.</t>
        <t>For explicit algorithms, it is not strictly necessary to carry a CompositeSignatureParams with the list of component algorithms in the signature algorithm parameters because clients can infer the expected component algorithms from the algorithm identifier. The PARAMS is left optional because some types of component algorithms will require parameters to be carried, such as RSASSA-PSS-params as defined in <xref target="RFC8017"/>. <xref target="sec-composite-sig-structs"/> defines <tt>PARAMS ANY DEFINED BY ALGORITHM</tt> so that explicit algorithms may define params as ABSENT, or use <tt>CompositeSignatureParams</tt> as defined in ASN.1 module.</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 composite signature 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>
        <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>
        <t>In the interests of simplicity and avoiding compatibility issues, implementations that parse these structures MAY accept both BER and DER.</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 specified in {draft-ounsworth-pq-composite-keys}.  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 others 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.5.1"</t>
      <t>Therefore &lt;CompSig&gt;.1 is equal to 2.16.840.1.114027.80.5.1.1</t>
      <t>Signature public key types:</t>
      <table anchor="tab-composite-sigs">
        <name>Explicit Composite Signature Algorithms</name>
        <thead>
          <tr>
            <th align="left">Composite Signature AlgorithmID</th>
            <th align="left">OID</th>
            <th align="left">First Algorithm</th>
            <th align="left">Second Algorithm</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">id-Dilithium3-RSA-PSS</td>
            <td align="left">&lt;CompSig&gt;.14</td>
            <td align="left">Dilithium3</td>
            <td align="left">SHA256WithRSAPSS</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium3-RSA-PKCS15-SHA256</td>
            <td align="left">&lt;CompSig&gt;.1</td>
            <td align="left">Dilithium3</td>
            <td align="left">SHA256WithRSAEncryption</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium3-ECDSA-P256-SHA256</td>
            <td align="left">&lt;CompSig&gt;.2</td>
            <td align="left">Dilithium3</td>
            <td align="left">SHA256withECDSA</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium3-ECDSA-brainpoolP256r1-SHA256</td>
            <td align="left">&lt;CompSig&gt;.3</td>
            <td align="left">Dilithium3</td>
            <td align="left">SHA256withECDSA</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium3-Ed25519</td>
            <td align="left">&lt;CompSig&gt;.4</td>
            <td align="left">Dilithium3</td>
            <td align="left">Ed25519</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium5-ECDSA-P384-SHA384</td>
            <td align="left">&lt;CompSig&gt;.5</td>
            <td align="left">Dilithium5</td>
            <td align="left">SHA384withECDSA</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium5-ECDSA-brainpoolP384r1-SHA384</td>
            <td align="left">&lt;CompSig&gt;.6</td>
            <td align="left">Dilithium5</td>
            <td align="left">SHA384withECDSA</td>
          </tr>
          <tr>
            <td align="left">id-Dilithium5-Ed448</td>
            <td align="left">&lt;CompSig&gt;.7</td>
            <td align="left">Dilithium5</td>
            <td align="left">Ed448</td>
          </tr>
          <tr>
            <td align="left">id-Falcon512-ECDSA-P256-SHA256</td>
            <td align="left">&lt;CompSig&gt;.8</td>
            <td align="left">Falcon512</td>
            <td align="left">SHA256withECDSA</td>
          </tr>
          <tr>
            <td align="left">id-Falcon512-ECDSA-brainpoolP256r1-SHA256</td>
            <td align="left">&lt;CompSig&gt;.9</td>
            <td align="left">Falcon512</td>
            <td align="left">SHA256withECDSA</td>
          </tr>
          <tr>
            <td align="left">id-Falcon512-Ed25519</td>
            <td align="left">&lt;CompSig&gt;.10</td>
            <td align="left">Falcon512</td>
            <td align="left">Ed25519</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 as follows:</t>
      <ul spacing="normal">
        <li>
          <em>Dilithium</em>: <xref target="I-D.ietf-lamps-dilithium-certificates"/></li>
        <li>
          <em>ECDSA</em>: <xref target="RFC5480"/></li>
        <li>
          <em>Ed25519 / Ed448</em>: <xref target="RFC8410"/></li>
        <li>
          <em>Falcon</em>: TBD</li>
        <li>
          <em>RSAES-PKCS-v1_5</em>: <xref target="RFC8017"/></li>
        <li>
          <em>RSASSA-PSS</em>: <xref target="RFC8017"/></li>
      </ul>
      <section anchor="notes-on-id-dilithium3-rsa-pss">
        <name>Notes on id-Dilithium3-RSA-PSS</name>
        <t>Use of RSA-PSS <xref target="RFC8017"/> deserves a special explanation.</t>
        <t>When the <tt>id-Dilithium3-RSA-PSS</tt> object identifier is used with an <tt>AlgorithmIdentifier</tt>, the <tt>AlgorithmIdentifier.parameters</tt> MUST be of type `CompositeSignatureParams as follows:</t>
        <artwork><![CDATA[
SEQUENCE {
    AlgorithmIdentifier {
        id-Dilithium3TBD
    },
    AlgorithmIdentifier {
        id-RSASSA-PSS,
        RSASSA-PSS-params
    }
}
]]></artwork>
        <t>EDNOTE: We probably should pick concrete crypto for the <tt>RSASSA-PSS-params</tt>. Once the crypto is fixed, we could omit the parameters entirely and expect implementations to re-constitute the params structures as necessary in order to call into lower-level crypto libraries.</t>
        <t>TODO: there must be a way to put all this the ASN.1 Module rather than just specifying it as text?</t>
      </section>
    </section>
    <section anchor="sec-composite-signature-algorithm">
      <name>Composite Signature Processes</name>
      <t>This section specifies the processes for generating and verifying composite signatures.</t>
      <t>This process addresses algorithm strength uncertainty by providing the verifier with parallel signatures from all the component signature algorithms; thus forging the composite signature would require forging all of the component signatures.</t>
      <section anchor="sec-comp-sig-gen">
        <name>Composite Signature Generation Process</name>
        <t>Generation of a composite signature involves applying each component algorithm's signature process to the input message according to its specification, and then placing each component signature value into the CompositeSignatureValue structure defined in <xref target="sec-composite-sig-structs"/>.</t>
        <t>The following process is used to generate composite signature values.</t>
        <artwork name="alg-composite-sig-gen"><![CDATA[
Input:
     K1, K2, .., Kn     Signing private keys. See note below on 
                        composite inputs.

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

     M                  Message to be signed, an octet string

Output:
     S                  The signatures, a CompositeSignatureValue

Signature Generation Process:
   1. Generate the n component signatures independently,
      according to their algorithm specifications.

        for i := 1 to n
            Si := Sign( Ki, Ai, M )

   2. Encode each component signature S1, S2, .., Sn into a BIT STRING
      according to its algorithm specification.

        S ::= Sequence { S1, S2, .., Sn }

   3. Output S
]]></artwork>
        <t>Note on composite inputs: the method of providing the list of component keys and algorithms is flexible and beyond the scope of this pseudo-code, for example they may be carried in CompositePrivateKey and CompositeSignatureParams structures. It is also possible to generate a composite signature that combines signatures from distinct 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>
        <t>Since recursive composite public keys are disallowed in <xref target="I-D.ounsworth-pq-composite-keys"/>, no component signature may itself be a composite; ie the signature generation process MUST fail if one of the private keys K1, K2, .., Kn is a composite with the OID id-alg-composite or an explicit composite OID.</t>
        <t>A composite signature MUST produce, and include in the output, a signature value for every component key in  and include in the output, a signature value for every component key in the corresponding CompositePublicKey, and they MUST be in the same order; ie in the output, S1 MUST correspond to K1, S2 to K2, etc.</t>
      </section>
      <section anchor="sec-comp-sig-verify">
        <name>Composite Signature Verification Process</name>
        <t>Verification of a composite signature involves applying each component algorithm's verification process according to its specification.</t>
        <t>In the absence of an application profile specifying otherwise, 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>
        <artwork name="alg-sig-verif"><![CDATA[
Input:
     P1, P2, .., Pn     Public verification keys. See note below on 
                        composite inputs.

     M                  Message whose signature is to be verified, 
                        an octet string
     
     S1, S2, .., Sn    Component signature values to be verified.
                       See note below on composite inputs.
     
     A1, A2, ... An     Component signature algorithms. See note 
                        below on composite inputs.

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 three sequences have
      different numbers of elements, or any of the public keys 
      P1, P2, .., Pn or algorithm identifiers A1, A2, .., An are 
      composite with the OID id-alg-composite or an explicit composite
      OID then output "Invalid signature" and stop.

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

     for i := 1 to n
          if not verify( Pi, M, Si, Ai ), then
            output "Invalid signature"

      if all succeeded, then
        output "Valid signature"
]]></artwork>
        <t>Note on composite inputs: the method of providing the list of component keys, algorithms and signatures is flexible and beyond the scope of this pseudo-code, for example they may be carried in CompositePublicKey, CompositeSignatureParams, and compositesignaturevalue structures. It is also possible to verify a composite signature where the component public verification keys belong, for example, to separate X.509 certificates or cryptographic modules. Variations in the process to accommodate particular public verification 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>
        <t>Since recursive composite public keys are disallowed in <xref target="I-D.ounsworth-pq-composite-keys"/>, no component signature may be composite; ie the signature verification procedure MUST fail if any of the public keys P1, P2, .., Pn or algorithm identifiers A1, A2, .., An are composite with OID id-alg-composite or an explicit composite OID.</t>
        <t>Some verification clients may include a policy mechanism for specifying acceptable subsets of algorithms. In these cases, implementer MAY, in the interest of performance of compatibility, modify the above process to skip one or more signature validations as per their local client policy. See <xref target="I-D.pala-klaussner-composite-kofn"/> for a discussion of implementation and associated risks.</t>
        <!-- End of Composite Signature Algorithm section -->

</section>
    </section>
    <section anchor="sec-asn1-module">
      <name>ASN.1 Module</name>
      <sourcecode type="asn.1"><![CDATA[
<CODE STARTS>

!!  Composite-Signatures-2023.asn
 
<CODE ENDS>

]]></sourcecode>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>This document registers the following in the SMI "Security for PKIX Algorithms (1.3.6.1.5.5.7.6)" registry:</t>
      <artwork><![CDATA[
id-alg-composite OBJECT IDENTIFIER ::= {
    iso(1) identified-organization(3) dod(6) internet(1) security(5)
    mechanisms(5) pkix(7) algorithms(6) composite(??) }
]]></artwork>
      <t>Plus the ASN.1 Module OID for <tt>Composite-Signatures-2023</tt>.</t>
      <!-- End of IANA Considerations section -->

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <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 a single public key, certificate, or signature may contain a mixture of deprecated and non-deprecated algorithms. Moreover, implementers may decide that certain cryptographic algorithms have complementary security properties and are acceptable in combination even though neither algorithm is acceptable by itself.</t>
        <t>Specifying a modified verification algorithm to handle these situations is beyond the scope of this draft, but could be desirable as the subject of an application profile document, or to be up to the discretion of implementers.</t>
        <artwork><![CDATA[
2. Check policy to see whether A1, A2, ..., An constitutes a valid
   combination of algorithms.

   if not checkPolicy(A1, A2, ..., An), then
     output "Invalid signature"
]]></artwork>
        <!-- End of Security Considerations section -->

<!-- Start of Appendices -->

</section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <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="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="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="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="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="I-D.ounsworth-pq-composite-keys" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-pq-composite-keys-04" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-pq-composite-keys-04.xml">
          <front>
            <title>Composite Public and Private Keys 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>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>D-Trust GmbH</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 structures CompositePublicKey and CompositePrivateKey, which are sequences of the respective structure 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. This document is intended to be coupled with corresponding documents that define the structure and semantics of composite signatures and encryption, such as [I-D.ounsworth-pq-composite-sigs] and [I-D.ounsworth-pq-composite-kem].</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-keys-04"/>
        </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="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>
        <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="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="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.ounsworth-pq-composite-kem" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-pq-composite-kem-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-pq-composite-kem-00.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="11" month="July" year="2022"/>
            <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 cryptanalysis, 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. For digital signatures, this is referred to as "dual", and for encryption key establishment this as referred to as "hybrid". This document, and its companions, defines a specific instantiation of the dual and 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. EDNOTE: the terms "dual" and "hybrid" are currently in flux. We anticipate an Informational draft to normalize terminology, and will update this draft accordingly. This document defines a Composite key encapsulation mechanism (KEM) procedure, for use with Composite keys which consist of combinations of Encryption or KEM algorithms for each composite component algorithm. This document also introduces the idea of assigning an Object Identifier (OID) to a shared secret combiner so that stronger combiners can be implemented in the future without needing to re- issue this specification. This document is intended to be coupled with the composite keys structure define in [I-D.ounsworth-pq-composite-keys] and the CMS KEM-TRANS mechanism in [I-D.perret-prat-lamps-cms-pq-kem].</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-kem-00"/>
        </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="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>
      </references>
    </references>
    <section anchor="work-in-progress">
      <name>Work in Progress</name>
      <section anchor="combiner-modes-kofn">
        <name>Combiner modes (KofN)</name>
        <t>For content commitment use-cases, such as legally-binding non-repudiation, the signer (whether it be a CA or an end entity) needs to be able to specify how its signature is to be interpreted and verified.</t>
        <t>For now we have removed combiner modes (AND, OR, KofN) from this draft, but we are still discussing how to incorporate this for the cases where it is needed (maybe a X.509 v3 extension, or a signature algorithm param).</t>
      </section>
    </section>
    <section anchor="appdx-samples">
      <name>Samples</name>
      <section anchor="appdx-expComposite-examples">
        <name>Explicit Composite Signature Examples</name>
        <t>TODO</t>
      </section>
    </section>
    <section anchor="sec-imp-considers">
      <name>Implementation Considerations</name>
      <t>This section addresses practical issues of how this draft affects other protocols and standards.</t>
      <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 compatibilitym, 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="parallel-pkis">
          <name>Parallel PKIs</name>
          <t>We present the term "Parallel PKI" to refer to the setup where a PKI end entity possesses two or more distinct public keys or certificates for the same identity (name), but containing keys for different cryptographic algorithms. One could imagine a set of parallel PKIs where an existing PKI using legacy algorithms (RSA, ECC) is left operational during the post-quantum migration but is shadowed by one or more parallel PKIs using pure post quantum algorithms or composite algorithms (legacy and post-quantum).</t>
          <t>Equipped with a set of parallel public keys in this way, a client would have the flexibility to choose which public key(s) or certificate(s) to use in a given signature operation.</t>
          <t>For negotiated protocols, the client could choose which public key(s) or certificate(s) to use based on the negotiated algorithms, or could combine two of the public keys for example in a non-composite hybrid method such as <xref target="I-D.becker-guthrie-noncomposite-hybrid-auth"/> or <xref target="I-D.guthrie-ipsecme-ikev2-hybrid-auth"/>. Note that it is possible to use the signature algorithms defined in <xref target="sec-alg-ids"/> as a way to carry the multiple signature values generated by one of the non-composite public mechanism in protocols where it is easier to support the composite signature algorithms than to implement such a mechanism in the protocol itself. There is also nothing precluding a composite public key from being one of the components used within a non-composite authentication operation; this may lead to greater convenience in setting up parallel PKI hierarchies that need to service a range of clients implementing different styles of post-quantum migration strategies.</t>
          <t>For non-negotiated protocols, the details for obtaining backwards compatibility will vary by protocol, but for example in CMS <xref target="RFC5652"/>, the inclusion of multiple SignerInfo objects is often already treated as an OR relationship, so including one for each of the signer's parallel PKI public keys would, in many cases, have the desired effect of allowing the receiver to choose one they are compatible with and ignore the others, thus achieving full backwards compatibility.</t>
        </section>
        <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 year in pursuit of this document:</t>
      <t>Serge Mister (Entrust),
Scott Fluhrer (Cisco Systems),
Panos Kampanakis (Cisco Systems),
Daniel Van Geest (ISARA),
Tim Hollebeek (Digicert), and
Francois Rousseau.</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/EntrustCorporation/draft-ounsworth-composite-sigs</t>
        <!-- End of Contributors section -->

</section>
    </section>
  </back>
  <!-- ##markdown-source:
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
UbD6TDWXOIfc5mWxBN4yp0ASeuzX5QxN4rkjBvciQ8OPilGEuCXoTJ4cdD2M
2X2bkVVB9nS32dmuQWROmiIF1i9Ktnlclptm5ySxgBZHH9rtGCmY1ePXIV78
k94/QIWvSMC+U2BgiZdpBbjwipVTijA6PKyhFSO+sZnx+Nc0BOY83xhL1z83
MiPymqMhwJ52JPMwEm0u8ruwxgmAjarNSroV4K7GbATCNd6X/FjJXFn/HRBr
XjHshxYx8O6AnCXoPtodDvZ8rNE6cp7oyKq/Orc5Upw8b6E2Rp05pL3RGmn0
SsAI+vvf/97R0tJyyW86cHRXcrVOOKnimw5MhOvFJ75BKd+ZXb3FP3r0/pfv
OifGPeI41O5o9H99p7SZ+m5pT4CeKo62cyO25UZ648kO1IbYAnS6nRbinNLQ
hFup4vUBKua9fqd5XqvqRFa5FCcnfxKfSHiOT8GuGb8aj67E9Y+XI3Hx8i+j
4bV3mZ76fvD23agtG4SeuBxcDYBrD85/FKejV+Pz0al4+aNTZ/kZ0ggj0AMn
4pNY3brVigd6YHI2PhtFw8Fl+0DwJIG5ZrWnNlcj1ucLFn7j1mWmw8HWxO+g
Xkx5NI2lGgDiXx8bSfwqTlGIcAjrVwFPR+af2Prn3YzEr/CsdwAND+MuLxgN
xqe8XFitzmHZ1HiTO3MXoKD18PE1/+M5Jp5e8XJ8LVBbPf920pSZU4tU8Qz6
+FtmcAtDtxzo85i1ptPDwNDOYrQmBi8nAAmSdTazh9kqsUsdjWXTkuf00Kl5
VwEfcFmLnNYI6p+se5HtOmkCQsefCR0bJjgvKt9F40b5FX10gcoS0kudE4R3
NS8AI2K1rgyXejz3KGUpDla5g9AWe7O6XsAy2paIDGIy+u7d6Hw4AuT/7yOx
e9DrnQ3+uicuXnkYQsT46QSICWPJtxEmx/5pJ2RyNNMO7OsHCsEROrkRjEsE
V2tnTI1/xkc0fWYU8AVUDGBDmIm6FihCFctc7XShRx8bqi3xTCcS8soUVlex
ch8rc9FTANpy4TQP76G+2gbrYLV2snxNifuBKeYHLJXevJ8x1pLy1bUxEN5B
85hWAPJyzLjGQe7e8DRb7T11eSwf7BEGaPKhKzBDmxJTgE/7eq9N9vJQQgPD
ZAigVxL2khOk6+ulPBhMzCrBSuFkDJgiyXT2EBihUcZR/a2donHK9rxNh6F8
MhTDXyuK9lcR5W7Q+2zm1M2R8MCZtdUI3N0BIhg2kLLHFf24Uaw0/XIQy1fc
dVpds1LgpeYBsK0sGNvMx8+wAI26j/MAbbw3jP6pQVh2xSc7PLwykdXDQzPv
aFsOs5HImaw7mlPanX/dlK+q92Lt5mZia/R2ZCklwf+jHICdgGCiULCG/R06
tlaL6ZkELnRvoX8yl5i7gck0qJGgFYb6ftuWrMWC63zMZVMtmsWGh3VggcUU
huUcGvIGpPlcJ5LB+jmvu3EGMm4DV6GXY8vZu1o7gP1mcg5rXelYtpmW85lA
yqvWfVDqj5bg/sq1bwWAlWLoz8s1nEwG0eVkEq0YXNsOWCwPet/bdnR7evmD
TYz+8BkF94OgjC8wRBpOm9KotG/HLcdTeBAIH9pO+kNt7WwmsOFvA4I1rztz
IKMNRFh6AMzHK9YSz07EiFkwAR3VZQ6r1gKaxmDGB2KOP7n0Y45t3MlSR1Jj
gaF/RGj0FLNLyTqCAOTi4LB/2LUeNywn6h11BRZ12YsHvcPeMYssfONo//jY
vXHYO+ixo+4MDTqbVlxbdIAtdCpNnDLcjGK3uTb8dF4ZqA+A+XZLcFRugz3S
aPKthwAoRtXstipmbj01kHII1vB5Li7NNnYuH8BbE9EybKq9ndZQ7uen01rF
NHWjuPm6juUsC8WaA8EcKBWfMipnWiI/IohQtqER43wDnuzqqhqBUXTJqovj
ZjJuHzuLm4em695zwSGNvcRGqXhnCoP5SKWc7hvfFZykV8+DU6xhNNX9ACFz
lDV0pJJzcDaTK11v9BJOgUo3R1c99C4708xJTEOvwDGiNGF3QKos0vvFGU1M
VucUNmaUc3ittl0iG+C3rDNy1K3bKie0G8Kf75F0DQ7PanlptVTfDtPjjdvG
+/TZKuAHyo5dUbZJPSNb53jopBe1Xkrr8bYzn+pocbAskyHvL96UEbXaXrAQ
UTstLdVrdR7y4wJEHdW9UK4CV5joVCdPPNCNz0yqkHbIa8nw3Zh6I0LdTDpi
8vBSnztqGC1JUi5BqtmOcHlTGM6iLGIlI8rcQq9uqg9+nsmPhoDIMNY6hU5L
aPDDuVTeIBxC2XgaHt74GKhKcHAvaynbRA6FwjzD+XZGupfsQUEqQBLMf/gP
TWKJBOUwU8738WUlQOgoouEvAL9s0UhCZ3P98tRkUFjCw3QVZ5m5NQHWUqGB
VuPNKmB0HYoR/5JV36CyAHrCv9xU37jjnrBc2Dno9Z/2nh+hdO33j/YPnvWe
7/eOwQinBcL4mBBQGwVUCsy0+mUdUxFm2xDwGBy+s1ycO5z0N3KWNQXQnJ1w
Kn4lEP0qXpFA8H1VE2DqAJCa+yryXWaP/lX7E95Nk+jUVPkfRlesE7b5qbZA
coTOPfs6LvD14OD46Q9wAYbCkdomeTOc9I8jfvwzk4hHJxm5CoRft6YaDU9x
Msy5/JKpDlqmQgSioZq2w3NMTUIuTlb2zXTbcxx+wRwNkyQHx8f9F196MEdb
k5gBtjZwbICESbuwFPjP42MfB2Mf8wbgrUeAdLwFJHiegYTTbc/x9DfNkRwd
PW+GUNM+nm3NwQOYkW1u7+NY1DDyc7zoUoMfQaP6HC1Y1DDHi98yx2NI1ER5
+/U59Agw9KcT8RVIh1rHJO678KedkZEIj7I666JgMRNPiztpfA/AasFs2lQL
Lgg0iXtWmbGWPVxvkD+eTAOmyYLRtwspVUMrJGzgxirvR3wTzFpTyW+HTmwI
w2r+vN4mf5U/Oxmgr6jxR2iDuWYBThQ6DSYwDp2j6wQrM3+2WPvziQ4Rf7Zp
y8MDvkiYAS/9pJvUvKeLGi2eMAHo29iBhm4zAsBVENL4N/LcCTHw6K7/87F5
HJ0F+rb2LAR3yAg/L6gFT94sdTqdd5ynaKSQfRvVG0np+ro+HWSwF8syxh9C
80Pj0B+2lfQtP+CHBlfdB9b6m271nJPlA3vNpuxyx2BMq68iPEp08FkPIscb
G2bSd/BfsDk8D7z40P2yN93JdO3lLT8Qj9jRUUTTuOYHCglMgUw3xoBYpbNb
8jxjWrJOurA4/WFr3A89cZGbgBI/DAcAihwVBVKdN/biWKa6HN+Lg8FmsNCP
I1zkats2OAsgo4jSxzFHSroxVKDjK8+HGDRtwAxoqiiDk5FlxLUeep1ZCmwZ
W/6genxxenGiS4aXWLqIKS6c7VUIDEhx6YWOODHHOWOO4zv4/4avas8ReSoq
MlXkx+rPrSlWl9Y4aYiU8zORZSB1E9lo/0EVnFReSRgnlgGIKd13E9azBdnL
poiHCulMHdxn6wSDWj9chEkrZgLEw8oyGRSdkec0qGWpRWT84utqwZW6Ny4q
ss2YuZGHcXyZp10rj8ZYUq+WX+WO5FsNOQCwPh3vbMhRCrCFo/CeqxnWXlgi
vysyYnGrFVe1tgXevlZBahvPq6NQoD0AEi4RxTF1x6+PQ1s9EEHWuAKDFuym
hinrYUGiEJymLVTn/GaPZUr7DuQtk9NsyLBn01MAjewmuHGsqsfMdIzb15mj
b/pd8eagK3o9+G9OlyacXxQE/1g/oCKqqcRCFDikIGHV/+cWQIDGaen6AOYa
0Fw9TFbFf8NH8fV3mfVs+9EzffLsVOF2G926B7bTuaDouQZUg7kXxI0wPtqa
29J5jBpogn7P3GG2nDcHbLG71Qo9QpiKbgRUvcAzLX02E+hTBijwD5laKk7+
JPpUHxfAdUI3cNG74k0Kpwb/dyb26OWDHocJZDsdTOCgJxqpJrlpx+HF+xvW
jYTXsmpv0ROOJ5o43Kf6VA/06CH25KTMh0lzeBBdpCGpAfWgno26F2JZHZlO
dIZjtSgo9TZk0tuxM9sjxQ+iKe3Vyth7N5WbQvtt1KxYSVuxsFJynRQRwjjM
7qxMMb0LViHrcEFDplhMbHystY5fioyJDqbODx5Wqc4Qt9ykmQ+baAh3YalL
o4SSe2caDNh3TNcv2oI6U4JD7Vl1kyx8GB+FRX2PQXdWWnTo0ePgiDZLsEEo
zx/ONZ2ts7gMfIw4DhK4TR81zZRs1YHJpubWgFyfEbqgPe9oWplcD+VFcRnD
aiXz6lZyGSvZPejiTBFRS6zPVeldcxKoDtinigo5/4E84rxopD9EEaAnmc1Z
87IvfiNSWfPQ3zh+ZPZAevo8TkHZm/s5MkEDoJrgSMOMSetMRB8dZt76BCd0
p5BtgxT7HbUmZeOq9DGYrBquRtUowgfSbcj5IRpCQzmkUHzxdxtoO49mO5Zv
dYmNtYW28gLoiGoLmfSb8mneEOujX3AOgHY9UU9yd2Lne9IjZ4+qYazTAhcM
Hv59dLE7f0irFj+qebmgWzxVJq0QC1G4KYMZaY4Ofs9KIF//fWoy1zNq9OW9
o/Fbk+/O99jfwu1qR+xi3+o9RH1bDqobSjdKZOq0oNYz3BAnDumOGaxSJNjt
9W5rjjkwXJjErvVLFLyVLKkDHLEpH56YTFTX6y4BOS41eV6yrqXryoKT+N10
u0e0rHvK2A9Si5j7atsm6bZPV9fJ6KJWyELJL5qVSZ2kFU7Ya5tvGxDb+/WW
8M8otK1bfmTqQCMlxKVM9mlRZHt46TFkDo291tmDYyK87TZicOsATaj9GBtK
MJnUqMDDhZzdmt5vvmYdalKobynbAQLdm/lsY7XE8VyMyhITgLk90KnUeVuU
faB9L9yOwDUWxNoK0/TYlthw9iS5Mk3Cd5eF18bKRE+I6/drpFeULeF2hz1d
qt0r7bH8s3JUD4PvkOFqeF3DOVIORVWseka35yNoVe2xQAI03zXwQxRnNQZu
sKJVkRf2iBCGqGN49THswwqJl3oPAa7go5bZtJsugOgYNmdJtisu0W4B9kAm
jNjjuQLUbQeNQSfN/InFc2eIYJA2OdJueFhR+3sbHN2gT02eBIbj/3njw2k5
bYZH12YI0F27vLvQLdJulfC5tugjpjdTQ5bxlswjLovswNthF2ewJsp2AR21
jm0um/tN9krz0v6/7bJxda7NJsu2LplYA8GYLS0s+p/gzTWm/FsMG0p3CVZv
0lrIYtNWSAwoD+9vagWVnorLmWE66wSrsOsZKrqO07RE6vqdnjG3rBv06ZPM
TLR+GWtNO0hi6yKum1ohDul5GK5u0xUbirpNRBMLp8DCipOB0xLwk1pX0/71
hlk7YuR5tJ29Dj3G1FgTntBmSi2HSzfTNanVZapuVa3p66OB162S7iBQoXPt
vHionw7f+bfhxelITK4HV9cTePsPfxBussiVhUUH+weHPXinI/Qro/NTfIHL
07CP6+Aciz6Y+DUgdTvXOI8f6p3sTAtiVcsHMrUxZ2OxYz68Q0CkHnUu2Cx2
+73D3tNev3cM//Os93RvR49ZbnQsbgvrt6r9vMrAVBW7/T1HW0lUlDeA1Nzo
YfdwD5ae7D7dY0zMZYVPm25mu8d7NIhjhXBFrG7Tj7vP9jx8x/ftcnb//Oc9
U993ie3ptmJMSLq49Q+tJ/KhhidNh1DHDgvV8DmyyC+ZoHHSU8wNnnG7bUxS
cqTsDgEO1fVqIz0rKCj2hFI3bGdg0wJamh97GYfjuW4Py7nHjg1yb09MlrML
3Q2kJEaLj/sHNPXk9aCv1SrLyzQfCar7SXj6nE95bbTWKzKXuZ0mC/ECLfay
WKFYlcweOLQ4rpdSY2dIHUykygCF1VLcQFeR+LKg+DIQIic2lR2xWKYf6Srg
QBIeHFav+5c85nsGLBDb/Xa3G+xz8zXtPuWoX3v/d6r3Jh8Gc7Vy4/r8cdpq
leqcTPrIgEMl6qzpsiPlHWnY1PXOfNghKPzzXp0a1yHKK0/ksABApS8QYG4Y
ODNdMqWzmdNqbXQi1a5vUpoud0SYGYSgPE3OdtFKy5oTE9odQK7LT1FqBWm9
MvE+FBOlrOpiAg5FR8Ss3aMlLymCpFESrDw7n9QBF0JHSiMR12GzzU9IDTJG
nW0yw4mYIezWBg4MlEcsExYOPoNqYT41JkVvTKhDMFaorTCSlKJiSLcx23Ea
z26Rmf0AJgu13SgBMYGmjF8R/f0l0RxIijfF/HyPi5OQYlD8oKabViSJbFqv
q6fB9kvAz6Jpyh5SpKHS1b675HGYY9cAP9XpA8OBUa+ohheL+Pco58l4d0xz
G7/WhJyK256noFWcieaTY4h2Q22KJdNfqZu4z2qbH5yfdsXFVVcQFEz9UojQ
95I/X1BhUrjRVWDfuDI0mHOwnleFjvmlLtmJs6HZntEVXpzbtQs8hIDB1snd
oWt2wI6J9hKtvR7rExNdrfPpKyCj5GOk+O8Hrv95LCPNFvqYV0HPdRJUiwcq
O7g4vdDKS6iRNasxy1VkjJutogWXOLHC5vzUc4rrKUy5kYO5iOdzeE3ptHjX
yoN9HNxhylReuqbFw6BYg9c0NXcj1oJNBp4sl2Jn2tzveMf6ao0IW8qYu2xz
fh5rxtof8o0p8zJ9cDagtS1VkIvPDblJMCbxRpfTmfaYvnNovaJmTokdxRTR
UJvOnm5ax0Byye5+X09qwipadrbssht8axoqdqDP4BB4jaOqvS9xj7p1tEyz
VYlEx2861nrmsKmxYKKA7Z3ZHvUczQlbiArbfNt+m0ZqaVjpRls2fpNjdhGC
D8t+UYew9YQOnejglvGtNB0DmRhxalKm6VhKmdmvNG11itZ5dti7B9kGABeL
NnJ5U1Rsq2y3obl+OxGgmeukw6On72m+8ZvR3QF3MT54gT2RqNNtHnlDxWqT
zxZlkeNutsedPMH2BDoHgj9GyHMcH/dhPOdR0Ekh5r1tiOGfozUCHnn0+HQw
QcNBf4hGiZ/o0sF+/0j3YGZ1zPtOFOUUmHl+wr90JsrLK3V30Hv+Puh7udyA
bmhKYIKumbpGBXRHSTpTyAiCSBAdJaaxkcclaBhlQOJ7pYI0Vgwt+bliXEKY
kFeLur/awlT0BHCiqlM97Md2ttk1LWqOkivs3q6pzrQvujS5YIB0IJ9/sN1m
2L9NrMp/Zofz/+acy0eSVlagI7GYifERT7SS2405r9//0Ub2facKyn/fT2bE
GLma7IcfdtEDumc0PVuaz62t0Ftv3e5tCjEmR5ocyHQZ3yDR2K/0rHxwmE3l
Dnq4PW5AX28CCcKcPioyGg73vOpiLaaAbhP3mYGgqbb7NAZ9+QBNmjghH5jp
LaGhFq5Nf6eC8tKwArLhEwVBJxB/oWbtiOLeUlC4j4BzgkZn+53U4eKfmOHL
9zEZl9oLw3l/pPXUS7Aw+3NRFLbvpRtslz+y6yEAXtFlWmRD3aRofnjMz36B
R1e2NzE+/WkTXhgf+W9ZwDSmXnnMrHyu6JWIEbBpAlbxGOG3fYe+M7y9gZl2
2Rs++Q/2JsPF8Cuf/QLkw0OPUsWZX7Ca6PvKTffextK/rcRDUzT6wHxJ5+py
+wCKRLR+YsJkCtU7qoTQ0YB0Ls009xizr+piT3PmUbqirzVP1f+oDeYLB5UP
usVkMGHAqbWVK655bmW/CLTQ9XPojX2kjySJbu5m2tRHRgVfgqgjS63NnSWJ
b5gu9UdaOK+TmkqVXCKfp5QIQblUFfE14OA+exELAF5czhYsmeLKKj1YG5CS
P6TEj1mRi1d7bCzUuCuz7TBYbXRdfwvbw+b7lbxhzwwbToHuUaNmvySymBoB
0KYNkpZ3hwJ86mQ4i48aJQZyu6v92nB6xi9scXdCpiV+fddoYHjuxbxCVVN/
3MD/Fl4OBp7V5NQiXeGnfrSf3py7re80Peppjq9VeCo+HyE2Sx74JZWxso1s
2S4XqYIcJmuGHQmm0HThmqB6LLnIpTMaDBBNAS9pxDd5oUNjXAnb5UTwGNHk
jj4rg6U3LSfRY32DP6AIVqA2ONEBYLIcnft0jwwlrRg7dWnIRQL2oxZalipP
vph4QkNXU9oJffMSv8Nmg6DFDfaonQcqHSMIeRRtinugTtg6hROEW0TfP6Jh
0YFWForXdr8okNeRxtUTr/nDdV32lrqeKwG7XbmGurokQuJapXpip+w2sGmr
fbIVIR14aQRSiino4kwhm1zqZd8LW9szA20aOJM3EH3VgD7PUt5SV/mUDOmu
+xQGV2+jxxUxOTglbNLQMZgRedhlH2fm7Td9IeV446NdwEB2iXyBd+w1bYWA
RLxYG4Oqg/H3UG8vfL8xJ4KU3OPC4FHQejT4/Bl/mJGS5QIf/6O+itCRxt/X
A0sErmKp8yV7Y7d9/2FS1/jyCtucz7JCofwiziKVC9+igX7S6ZgvKGOTDfwm
IagOVLqGH4V/kq7KJ4fHz58/6egamLwqU8B57ADAAQX8ylYmkxtOWKl/6cj5
nLijPL3MaMKxee5ryFUlIsOvOvM3LHSlPGxTf6J3BAhJn1gh5UnqkjM4AfqM
HQW+7VI4v4PeTpXUH8eD/SPBgw3v5RqGYauVLCjmAPSIDai5FwKxTYpvL6Ws
qMMxDugUkSWIDlODON3oD9rTx21K/Da6ICsXX/n+YnyJ38XBz/cJ+kIfl0SB
Vr7RX30APV2tTU+Q8BMOE4nAOaN4m9gd8cfQ9rqdyayoKvEqWy9KvDHEr/+J
CVtvcPsyzgsl3sTYJyG+TdX2E6egsYDg+B5I6VuJ0dnd8WRwNYA71+kSuBHg
3VTKW7F7mgILBJjukUndeQWS/b/+ZwFDXoG1r2S87pFhiAyAvvgHbJ4OJsu6
nhjjZgoeHiG0UQWhpKgpfnIozekbbRW3wC/0V0+c0xMTUra+qjUFmsS2Y+Qh
oGeBMaSY+2B7QPjL4M6+XqEnZcIhrsX5LeiZhbFbTcMLOhJ4B/3lrquEEDvD
YsVBiwz0WPq+AzEzwhStXuLpE/ZJShUDppHLHRGZos7+e65nOuPObgGhdDoD
x4tDEgoomcB+LzMMp/XEZUaff1G6zNZ8HmYGSw1jIYDngaMDOEtufJ6xzx5u
gKGtp/RldY17Q03asJYn9fYnYQlyPQzuHb7P6f43QBshvoCGAAA=

-->

</rfc>
