<?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-keys-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.17.1 -->
  <front>
    <title abbrev="PQ Composite Keys">Composite Public and Private Keys For Use In Internet PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-keys-05"/>
    <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>CableLabs</organization>
      <address>
        <email>director@openca.org</email>
      </address>
    </author>
    <author initials="J." surname="Klaussner" fullname="Jan Klaussner">
      <organization>D-Trust GmbH</organization>
      <address>
        <postal>
          <street>Kommandantenstr. 15</street>
          <city>Berlin</city>
          <code>10969</code>
          <country>Germany</country>
        </postal>
        <email>jan.klaussner@d-trust.net</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 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.</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 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.</t>
      <t>This document is intended to be coupled with corresponding documents that define the structure and semantics of composite signatures and encryption, such as <xref target="I-D.ounsworth-pq-composite-sigs"/> and <xref target="I-D.ounsworth-pq-composite-kem"/>.</t>
      <!-- End of Abstract -->



    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ounsworth-pq-composite-keys/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME (lamps) Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/EntrustCorporation/draft-ounsworth-pq-composite-keys"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="changes-in-version-05">
      <name>Changes in version -05</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 (PQ or PQC), 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 may also not fully trust their post-quantum replacements until further time has passed to allow additional scrutiny and the discovery of 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 by using a Post-Quantum/Traditional (PQ/T) or Post-Quantum/Post-Quantum (PQ/PQ) Hybrid scheme.</t>
      <t>The transition to PQC will face two challenges:</t>
      <ul spacing="normal">
        <li>Algorithm strength 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>Migration: During the transition period, systems will require mechanisms that allow for staged migrations from fully traditional to fully post-quantum-aware cryptography.</li>
      </ul>
      <t>This document provides the composite mechanism, which is a specific instantiation of the PQ/T hybrid paradigm to address algorithm strength uncertainty concerns by providing formats for encoding multiple public key and private key values into existing public key and private key fields. Backwards compatibility is not directly addressed via the composite mechanisms defined in the document, but some notes on how it can be obtained can be found in <xref target="sec-backwards-compat"/>. Other hybrid public key, signature, and KEM mechanisms exist, notably <xref target="I-D.guthrie-ipsecme-ikev2-hybrid-auth"/> and <xref target="I-D.truskovsky-lamps-pq-hybrid-x509"/> / <xref target="itu-t-x509-2019"/>, which have their security and ease of migration properties discussed in more detail in <xref target="sec-backwards-compat"/>.</t>
      <t>This document only specifies key formats; usage of these keys are covered in the corresponding composite signatures <xref target="I-D.ounsworth-pq-composite-sigs"/> and composite KEM <xref target="I-D.ounsworth-pq-composite-kem"/> specifications.</t>
      <t>This document is intended for general applicability anywhere that keys are used within PKIX or CMS structures.</t>
      <section anchor="sec-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-sigs"/> 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 BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>This document is consistent with all terminology from <xref target="I-D.driscoll-pqt-hybrid-terminology"/>.</t>
        <t>In addition, the following terms are used in this document:</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>DER:
          Distinguished Encoding Rules as defined in <xref target="X.690"/>.</t>
        <t>PKI:
          Public Key Infrastructure, as defined in <xref target="RFC5280"/>.</t>
        <!-- End of Introduction section -->

</section>
    </section>
    <section anchor="sec-composite-keys">
      <name>Composite Key Structures</name>
      <t>In order to represent public keys and private keys that are composed of multiple algorithms, we define encodings consisting of a sequence of public key or private key primitives (aka "components") such that these structures can be used directly in existing public key fields such as those found in PKCS#10 <xref target="RFC2986"/>, CMP <xref target="RFC4210"/>, X.509 <xref target="RFC5280"/>, CMS <xref target="RFC5652"/>, and the Trust Anchor Format <xref target="RFC5914"/>.</t>
      <t><xref target="I-D.driscoll-pqt-hybrid-terminology"/> defines composites as:</t>
      <ul empty="true">
        <li>
          <t><em>Composite Cryptographic Element</em>:  A cryptographic element that
     incorporates multiple component cryptographic elements of the same
     type in a multi-algorithm scheme.</t>
        </li>
      </ul>
      <t>Composite keys as defined here follow this definition and should be regarded as a single key that performs a single cryptographic operation such key generation, signing, verifying, encapsulating, or decapsulating -- using its encapsulated sequence of component keys as if it was a single key. This generally means that the complexity of combining algorithms can and should be ignored by application and protocol layers and deferred to the cryptographic library layer.</t>
      <section anchor="pk-composite">
        <name>pk-Composite</name>
        <t>The following ASN.1 Information Object Class is a template to be used in defining all composite key types, with suitable replacements for the ASN.1 identifier <tt>pk-Composite</tt> and the OID <tt>id-composite-key</tt> as appropriate. See the ASN.1 Module in <xref target="sec-asn1-module"/> for parmeterized as well as signature and KEM versions.</t>
        <sourcecode type="ASN.1" name="CompositeAlgorithmObject-asn.1-structures"><![CDATA[
pk-Composite PUBLIC-KEY ::= {
    id id-composite-key
    KeyValue CompositePublicKey
    Params ARE ABSENT
    PrivateKey CompositePrivateKey
}
]]></sourcecode>
        <t><tt>keyUsage</tt> is omitted here because composites may be formed for keys of any type, provided that any key usage specified MUST apply to all component keys. Composites MAY NOT be used to combine key types, for example to make a "dual-usage" key by combining a signing key with a KEM key.</t>
      </section>
      <section anchor="sec-composite-pub-keys">
        <name>CompositePublicKey</name>
        <t>Composite public key data is represented by the following structure:</t>
        <sourcecode type="ASN.1" name="CompositePublicKey-asn.1-structures"><![CDATA[
CompositePublicKey ::= SEQUENCE SIZE (2..MAX) OF SubjectPublicKeyInfo
]]></sourcecode>
        <t>A composite key MUST contain at least two component public keys. When the composite key is used in conjunction with an explicit composite algorithm identifier defined under section <xref target="sec-alg-ids"/>, the order of the component keys is determined by that algorithm identifier's definition.</t>
        <t>A CompositePublicKey MUST NOT contain a component public key which itself describes a composite key; i.e. recursive CompositePublicKeys are not allowed. The purpose is a general reduction in complexity by not needing to consider nested key types.</t>
        <t>Each element of a CompositePublicKey is a SubjectPublicKeyInfo object encoding a component public key. Each component SubjectPublicKeyInfo SHALL contain an AlgorithmIdentifier OID which identifies the public key type and parameters for the public key contained within it. See <xref target="sec-alg-ids"/> for specific algorithms defined in this document.</t>
        <t>When the CompositePublicKey must be provided in octet string or bit string format, the data structure is encoded as specified in <xref target="sec-encoding-rules"/>.</t>
        <section anchor="sec-keyusage">
          <name>Key Usage</name>
          <t>Protocols such as X.509 <xref target="RFC5280"/> that specify a key usage along with the public key. For composite keys, a single key usage is specified for the entire public key and it MUST apply to all component keys. For example if a composite key is marked with a key usage of digitalSignature, then all component keys MUST be capable of producing digital signatures and handled with policies appropriate for digital signature keys. The composite mechanism MUST NOT be used to implement mixed-usage keys, for example, where a digitalSignature and a keyEncipherment key are combined together into a single composite key.</t>
          <t>Specifications of explicit composite key types must specify allowable key usages for that type based on the types of the components.</t>
        </section>
        <section anchor="sec-component-matching">
          <name>Component Matching</name>
          <t>Many cryptographic libraries will require treating each component key independently and thus expect a full SubjectPublicKeyInfo for each component at some layer of the software stack. This left two design choices: either we carry full SPKI for each component within the CompositePublicKey, or we compress it by only carrying the raw key bytes and force implementations to carry OID and parameter mapping tables to be able to reconstruct component SPKIs.</t>
          <t>The authors decided to carry the full SPKIs in order to lessen the implementation complexity at the expense of a small amount of redundant data to transmit.</t>
          <t>This design choice has a non-obvious security risk in that the <tt>algorithm</tt> carried within each component SPKI is redundant information which MUST match -- and can be inferred from -- the specification of the explicit algorithm.</t>
          <t>Security consideration: Implementations SHOULD check that the component AlgorithmIdentifier OIDs and parameters match those expected by the definition of the explicit algorithm. Implementations SHOULD first parse a component's <tt>SubjectPublicKeyInfo.algorithm</tt>, and ensure that it matches what is expected for that position in the explicit key, and then proceed to parse the <tt>SubjectPublicKeyInfo.subjectPublicKey</tt>. This is to reduce the attack surface associated with parsing the public key data of an unexpected key type, or worse; to parse and use a key which does not match the explicit algorithm definition. Similar checks SHOULD be done when handling the corresponding private key.</t>
        </section>
      </section>
      <section anchor="sec-priv-key">
        <name>CompositePrivateKey</name>
        <t>This section provides an encoding for composite private keys intended for PKIX protocols and other applications that require an interoperable format for transmitting private keys, such as PKCS #12 <xref target="RFC7292"/> or CMP / CRMF <xref target="RFC4210"/>, <xref target="RFC4211"/>. It is not intended to dictate a storage format in implementations not requiring interoperability of private key formats.</t>
        <t>In some cases 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. The establishment of correspondence between public keys in a CompositePublicKey and private keys not represented in a single composite structure is beyond the scope of this document.</t>
        <t>The composite private key data is represented by the following structure:</t>
        <sourcecode type="ASN.1" name="CompositePrivateKey-asn.1-structures"><![CDATA[
CompositePrivateKey ::= SEQUENCE SIZE (2..MAX) OF OneAsymmetricKey
]]></sourcecode>
        <t>Each element is a OneAsymmetricKey <xref target="RFC5958"/> object for a component private key.</t>
        <t>The parameters field MUST be absent.</t>
        <t>A CompositePrivateKey MUST contain at least two component private keys, and the order of the component keys is the same as the order defined in <xref target="sec-composite-pub-keys"/> for the components of CompositePublicKey.</t>
      </section>
      <section anchor="sec-as-one-asymmetric-key">
        <name>As a PrivateKeyInfo or OneAsymmetricKey</name>
        <t>A CompositePrivateKey can be stored in a OneAsymmetricKey structure (version 1 of which is also known as PrivateKeyInfo) <xref target="RFC5958"/>. When this is done, 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 CompositePrivateKey, and the publicKey field MUST NOT be present. Associated public key material MAY be present in the CompositePrivateKey.</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[
CompositePublicKeyOs ::= OCTET STRING (CONTAINING CompositePublicKey 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[
CompositePublicKeyBs ::= BIT STRING (CONTAINING CompositePublicKey ENCODED BY der)
]]></sourcecode>
      </section>
    </section>
    <section anchor="sec-alg-ids">
      <name>Algorithm Identifiers</name>
      <t>This section defines algorithm identifiers, component algorithms and their ordering for composite combinations. The combinations registered in this section are intended to strike a balance between the overall number of combinations ("the combinatorial explosion problem"), while also covering the needs of a wide range of protocols, applications, and regulatory environments in which X.509-based technologies are used.</t>
      <t>This section is not intended to be exhaustive and other authors may define OIDs for new combinations so long as they are compatible with the structures and processes defined in this and the companion signature and encryption documents.</t>
      <section anchor="signature-public-key-types">
        <name>Signature public key types</name>
        <t>This table summarizes the list of explicit composite Signature algorithms by the key and signature OID and the two component algorithms which make up the explicit composite algorithm, as obtained by applying the selection criteria in section <xref target="sec-selection-criteria"/>.  These are denoted by First Signature Alg, and Second Signature Alg.</t>
        <t>The OID referenced are TBD and MUST be used only for prototyping and replaced with the final IANA-assigned OIDS. The following prefix is used for each: 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>Note that a single OID is used for both the key type and the signature algorithm; ie there is a one-to-one correspondance between key types and signature algorithms, hence why these key type names contain more information than they strictly need to define a key type.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Composite Signature Key Type</th>
              <th align="left">OID</th>
              <th align="left">First Key Type</th>
              <th align="left">Second Key Type</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">RSASSA-PSS</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">RSAES-PKCS-v1_5</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">EC-P256</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">EC-brainpoolP256r1</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">EC-P384</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">EC-brainpoolP384r1</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">EC-P256</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">EC-brainpoolP256r1</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>
            <t><em>EC</em>: <xref target="RFC5480"/>
            </t>
            <ul spacing="normal">
              <li>
                <em>EC-P256</em>: AlgorithmIdentifier.parameters MUST be <tt>secp256r1</tt> as defined in <xref target="RFC5480"/>.</li>
              <li>
                <em>EC-brainpoolP256r1</em>: AlgorithmIdentifier.parameters MUST be <tt>brainpoolP256r1</tt> as defined in <xref target="RFC5639"/>.</li>
              <li>
                <em>EC-P384</em>: AlgorithmIdentifier.parameters MUST be <tt>secp384r1</tt> as defined in <xref target="RFC5480"/>.</li>
              <li>
                <em>EC-brainpoolP384r1</em>: AlgorithmIdentifier.parameters MUST be <tt>brainpoolP384r1</tt> as defined in <xref target="RFC5639"/>.</li>
            </ul>
          </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>
        <t>The intended application for the key is indicated in the keyUsage certificate extension; see Section 4.2.1.3 of <xref target="RFC5280"/>. If the keyUsage extension is present in a certificate that indicates signature public key types above in the SubjectPublicKeyInfo, then the at least one of following MUST be present:</t>
        <artwork><![CDATA[
  digitalSignature; or
  nonRepudiation; or
  keyCertSign; or
  cRLSign.
]]></artwork>
        <t>Requirements about the keyUsage extension bits defined in <xref target="RFC5280"/> still apply.</t>
      </section>
      <section anchor="kem-public-key-types">
        <name>KEM public key types</name>
        <t>This table summarizes the list of explicit composite Signature algorithms by the key and signature OID and the two component algorithms which make up the explicit composite algorithm.  These are denoted by First Signature Alg, and Second Signature Alg.</t>
        <t>The OID referenced are TBD and MUST be used only for prototyping and replaced with the final IANA-assigned OIDS. The following prefix is used for each: replace &lt;CompKEM&gt; with the String "2.16.840.1.114027.80.5.2"</t>
        <t>Therefore &lt;CompKEM&gt;.1 is equal to 2.16.840.1.114027.80.5.2.1.</t>
        <t>Note that a single OID is used for both the key type and the KEM algorithm; ie there is a one-to-one correspondance between key types and KEM algorithms, hence why these key type names contain more information than they strictly need to define a key type.</t>
        <table anchor="tab-kem-agls">
          <name>Composite KEM key types</name>
          <thead>
            <tr>
              <th align="left">Composite KEM Key Type</th>
              <th align="left">OID</th>
              <th align="left">First Key Type</th>
              <th align="left">Second Key Type</th>
              <th align="left"> </th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">id-Kyber512-ECDH-P256-KMAC128</td>
              <td align="left">&lt;CompKEM&gt;.1</td>
              <td align="left">Kyber512</td>
              <td align="left">EC-P256</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber512-ECDH-brainpoolP256r1-KMAC128</td>
              <td align="left">&lt;CompKEM&gt;.2</td>
              <td align="left">Kyber512</td>
              <td align="left">EC-brainpoolP256r1</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber512-X25519-KMAC128</td>
              <td align="left">&lt;CompKEM&gt;.3</td>
              <td align="left">Kyber512</td>
              <td align="left">X25519</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber768-RSA-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.4</td>
              <td align="left">Kyber768</td>
              <td align="left">RSA-KEM</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber768-ECDH-P256-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.5</td>
              <td align="left">Kyber768</td>
              <td align="left">EC-P256</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber768-ECDH-brainpoolP256r1-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.6</td>
              <td align="left">Kyber768</td>
              <td align="left">EC-brainpoolP256r1</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber768-X25519-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.7</td>
              <td align="left">Kyber768</td>
              <td align="left">X25519</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber1024-ECDH-P384-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.8</td>
              <td align="left">Kyber1024</td>
              <td align="left">EC-P384</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber1024-ECDH-brainpoolP384r1-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.9</td>
              <td align="left">Kyber1024</td>
              <td align="left">EC-brainpoolP384r1</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">id-Kyber1024-X448-KMAC256</td>
              <td align="left">&lt;CompKEM&gt;.10</td>
              <td align="left">Kyber1024</td>
              <td align="left">X448</td>
              <td align="left"> </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>
            <t><em>EC</em>: <xref target="RFC5480"/>
            </t>
            <ul spacing="normal">
              <li>
                <em>EC-P256</em>: AlgorithmIdentifier.parameters within the component SKPI belonging to the EC key MUST be <tt>secp256r1</tt> as defined in <xref target="RFC5480"/>.</li>
              <li>
                <em>EC-brainpoolP256r1</em>: AlgorithmIdentifier.parameters within the component SKPI belonging to the EC key MUST be <tt>brainpoolP256r1</tt> as defined in <xref target="RFC5639"/>.</li>
              <li>
                <em>EC-P384</em>: AlgorithmIdentifier.parameters within the component SKPI belonging to the EC key MUST be <tt>secp384r1</tt> as defined in <xref target="RFC5480"/>.</li>
              <li>
                <em>EC-brainpoolP384r1</em>: AlgorithmIdentifier.parameters within the component SKPI belonging to the EC key MUST be <tt>brainpoolP384r1</tt> as defined in <xref target="RFC5639"/>.</li>
            </ul>
          </li>
          <li>
            <em>Kyber</em>: <xref target="I-D.ietf-lamps-kyber-certificates"/></li>
          <li>
            <em>RSA-KEM</em>: <xref target="RFC5990"/></li>
          <li>
            <em>X25519 / X448</em>: <xref target="RFC8410"/></li>
        </ul>
        <t>Note: the inclusion of a hash function is so that these algorithm identifiers can double as both key types and KEM algorithms.</t>
        <t>The intended application for the key is indicated in the keyUsage certificate extension; see Section 4.2.1.3 of <xref target="RFC5280"/>. If the keyUsage extension is present in a certificate that indicates any of the KEM public key types above in the SubjectPublicKeyInfo, then the following MUST be present:</t>
        <artwork><![CDATA[
  keyEncipherment
]]></artwork>
        <t>Requirements about the keyUsage extension bits defined in <xref target="RFC5280"/> still apply.</t>
      </section>
    </section>
    <section anchor="sec-asn1-module">
      <name>ASN.1 Module</name>
      <sourcecode type="ASN.1"><![CDATA[
<CODE STARTS>

!!Composite-Keys-2023.asn

<CODE ENDS>
]]></sourcecode>
      <!-- End of In Practice section -->

</section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>All sorts of OIDs in the ASN.1 module. Too many to list here (sorry).</t>
      <t>This document registers the following in the SMI "Security for PKIX Algorithms (1.3.6.1.5.5.7.6)" registry:</t>
      <t>TODO</t>
      <!-- End of IANA Considerations section -->

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="sec-secCons-keyReuse">
        <name>Reuse of keys in a Composite public key</name>
        <t>There is an additional security consideration that some use cases such as signatures remain secure against downgrade attacks if and only if component keys are never used outside of their composite context and therefore it is RECOMMENDED that component keys in a composite key are not to be re-used in other contexts. In particular, the components of a composite key SHOULD NOT also appear in single-key certificates. This is particularly relevant for protocols that use composite keys in a logical AND mode since the appearance of the same component keys in single-key contexts undermines the binding of the component keys into a single composite key by allowing messages signed in a multi-key AND mode to be presented as if they were signed in a single key mode in what is known as a "stripping attack".</t>
      </section>
      <section anchor="key-mismatch-in-explicit-composite">
        <name>Key mismatch in explicit composite</name>
        <t>This security consideration copied from <xref target="sec-component-matching"/>.</t>
        <t>Implementations SHOULD check that the component AlgorithmIdentifier OIDs and parameters match those expected by the definition of the explicit algorithm. Implementations SHOULD first parse a component's <tt>SubjectPublicKeyInfo.algorithm</tt>, and ensure that it matches what is expected for that position in the explicit key, and then proceed to parse the <tt>SubjectPublicKeyInfo.subjectPublicKey</tt>. This is to reduce the attack surface associated with parsing the public key data of an unexpected key type, or worse; to parse and use a key which does not match the explicit algorithm definition. Similar checks SHOULD be done when handling the corresponding private key.</t>
      </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), it is obvious that clients performing signature verification or encryption operations should be updated to fail to validate or refuse to encrypt for these algorithms.</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, certificate, signature, or ciphertext MAY contain a mixture of deprecated and non-deprecated algorithms.</t>
        <t>Specifying behaviour in these cases is beyond the scope of this document, but should be considered by implementers and potentially in additional standards.</t>
        <ul empty="true">
          <li>
            <t>EDNOTE: Max had proposed a CRL mechanism to accomplish this, which could be revived if necessary.</t>
          </li>
        </ul>
      </section>
      <section anchor="protection-of-private-keys">
        <name>Protection of Private Keys</name>
        <t>Structures described in this document do not protect private keys in any way unless combined with a security protocol or encryption properties of the objects (if any) where the CompositePrivateKey is used.</t>
        <t>Protection of the private keys is vital to public key cryptography. The consequences of disclosure depend on the purpose of the private key. If a private key is used for signature, then the disclosure allows unauthorized signing. If a private key is used for key management, then disclosure allows unauthorized parties to access the managed keying material. The encryption algorithm used in the encryption process must be at least as 'strong' as the key it is protecting.</t>
      </section>
      <section anchor="checking-for-compromised-key-reuse">
        <name>Checking for Compromised Key Reuse</name>
        <t>Certification Authority (CA) implementations need to be careful when checking for compromised key reuse, for example as required by WebTrust regulations; when checking for compromised keys, you MUST unpack the CompositePublicKey structure and compare individual component keys. In other words, for the purposes of key reuse checks, the composite public key structures need to be un-packed so that primitive keys are being compared. For example if the composite key {RSA1, PQ1} is revoked for key compromise, then the keys RSA1 and PQ1 need to be individually considered revoked. If the composite key {RSA1, PQ2} is submitted for certification, it SHOULD be rejected because the key RSA1 was previously declared compromised even though the key PQ2 is unique.</t>
        <!-- End of Security Considerations section -->

<!-- Start of Appendices -->

</section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC1421" target="https://www.rfc-editor.org/info/rfc1421" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1421.xml">
          <front>
            <title>Privacy Enhancement for Internet Electronic Mail: Part I: Message Encryption and Authentication Procedures</title>
            <author fullname="J. Linn" initials="J." surname="Linn"/>
            <date month="February" year="1993"/>
            <abstract>
              <t>This document defines message encryption and authentication procedures, in order to provide privacy-enhanced mail (PEM) services for electronic mail transfer in the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1421"/>
          <seriesInfo name="DOI" value="10.17487/RFC1421"/>
        </reference>
        <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="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="RFC5914" target="https://www.rfc-editor.org/info/rfc5914" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5914.xml">
          <front>
            <title>Trust Anchor Format</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="S. Ashmore" initials="S." surname="Ashmore"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>This document describes a structure for representing trust anchor information.  A trust anchor is an authoritative entity represented by a public key and associated data.  The public key is used to verify digital signatures, and the associated data is used to constrain the types of information or actions for which the trust anchor is authoritative.  The structures defined in this document are intended to satisfy the format-related requirements defined in Trust Anchor Management Requirements. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5914"/>
          <seriesInfo name="DOI" value="10.17487/RFC5914"/>
        </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="RFC5990" target="https://www.rfc-editor.org/info/rfc5990" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5990.xml">
          <front>
            <title>Use of the RSA-KEM Key Transport Algorithm in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="J. Randall" initials="J." surname="Randall"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <author fullname="J. Brainard" initials="J." surname="Brainard"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="September" year="2010"/>
            <abstract>
              <t>The RSA-KEM Key Transport Algorithm is a one-pass (store-and-forward) mechanism for transporting keying data to a recipient using the recipient's RSA public key. ("KEM" stands for "key encapsulation mechanism".) This document specifies the conventions for using the RSA-KEM Key Transport Algorithm with the Cryptographic Message Syntax (CMS).  The ASN.1 syntax is aligned with an expected forthcoming change to American National Standard (ANS) X9.44.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5990"/>
          <seriesInfo name="DOI" value="10.17487/RFC5990"/>
        </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="RFC7468" target="https://www.rfc-editor.org/info/rfc7468" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7468.xml">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS).  The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed.  This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </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="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="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-sigs" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-pq-composite-sigs-05" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-pq-composite-sigs-05.xml">
          <front>
            <title>Composite Signatures For Use In Internet PKI</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs</organization>
            </author>
            <date day="12" month="July" year="2021"/>
            <abstract>
              <t>With the widespread adoption of post-quantum cryptography will come the need for an entity to possess multiple public keys on different cryptographic algorithms. Since the trustworthiness of individual post-quantum algorithms is at question, a multi-key cryptographic operation will need to be performed in such a way that breaking it requires breaking each of the component algorithms individually. This requires defining new structures for holding composite signature data. This document defines the structures CompositeSignatureValue, and CompositeParams, which are sequences of the respective structure for each component algorithm. This document also defines processes for generating and verifying composite signatures. This document makes no assumptions about what the component algorithms are, provided that their algorithm identifiers and signature generation and verification processes are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-sigs-05"/>
        </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.ietf-lamps-dilithium-certificates" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-dilithium-certificates-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lamps-dilithium-certificates-00.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="29" month="September" 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 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-00"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-kyber-certificates" target="https://datatracker.ietf.org/doc/html/draft-ietf-lamps-kyber-certificates-00" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lamps-kyber-certificates-00.xml">
          <front>
            <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for Kyber</title>
            <author fullname="Sean Turner" initials="S." surname="Turner">
              <organization>sn3rd</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Jake Massimo" initials="J." surname="Massimo">
              <organization>AWS</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="26" month="September" year="2022"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding format for the United States National Institute of Standards and Technology's Post Quantum Cryptography Key Encapsulation Mechanism algorithms. The algorithms covered are Kyber TBD1. The encoding for public key and private key is also provided. [EDNOTE: This draft is not expected to be finalized before the NIST PQC Project has standardized PQ algorithms. After NIST has standardized its first algorithms, this document will replace TBD, with the appropriate algorithms and parameters before proceeding to ratification. The algorithm Kyber TBD1 has been added as an example in this draft, to provide a more detailed illustration of the content - it by no means indicates its inclusion in the final version. This specification will use object identifiers for the new algorithms that are assigned by NIST, and will use placeholders until these are released.]</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-kyber-certificates-00"/>
        </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="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="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="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="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.truskovsky-lamps-pq-hybrid-x509" target="https://datatracker.ietf.org/doc/html/draft-truskovsky-lamps-pq-hybrid-x509-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-truskovsky-lamps-pq-hybrid-x509-01.xml">
          <front>
            <title>Multiple Public-Key Algorithm X.509 Certificates</title>
            <author fullname="Alexander Truskovsky" initials="A." surname="Truskovsky">
              <organization>ISARA Corporation</organization>
            </author>
            <author fullname="Daniel Van Geest" initials="D." surname="Van Geest">
              <organization>ISARA Corporation</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Datacard, Ltd</organization>
            </author>
            <author fullname="Serge Mister" initials="S." surname="Mister">
              <organization>Entrust Datacard, Ltd</organization>
            </author>
            <date day="29" month="August" year="2018"/>
            <abstract>
              <t>This document describes a method of embedding alternative sets of cryptographic materials into X.509v3 digital certificates, X.509v2 Certificate Revocation Lists (CRLs), and PKCS #10 Certificate Signing Requests (CSRs). The embedded alternative cryptographic materials allow a Public Key Infrastructure (PKI) to use multiple cryptographic algorithms in a single object, and allow it to transition to the new cryptographic algorithms while maintaining backwards compatibility with systems using the existing algorithms. Three X.509 extensions and three PKCS #10 attributes are defined, and the signing and verification procedures for the alternative cryptographic material contained in the extensions and attributes are detailed.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-truskovsky-lamps-pq-hybrid-x509-01"/>
        </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="codeSigningBRsv2.8" target="https://cabforum.org/wp-content/uploads/Baseline-Requirements-for-the-Issuance-and-Management-of-Code-Signing.v2.8.pdf">
          <front>
            <title>Baseline Requirements for the Issuance and Management of Publicly-Trusted Code Signing Certificates v2.8</title>
            <author initials="" surname="CAB Forum" fullname="CA / Browser Forum">
              <organization/>
            </author>
            <date year="2022" month="May"/>
          </front>
        </reference>
        <reference anchor="eIDAS2014" target="https://ec.europa.eu/futurium/en/system/files/ged/eidas_regulation.pdf">
          <front>
            <title>REGULATION (EU) No 910/2014 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 23 July 2014 on electronic identification and trust services for electronic transactions in the internal market and repealing Directive 1999/93/EC</title>
            <author>
              <organization/>
            </author>
            <date year="2014" month="July"/>
          </front>
        </reference>
        <reference anchor="itu-t-x509-2019" target="https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=X.509">
          <front>
            <title>ITU-T X.509 The Directory: Public-key and attribute certificate frameworks</title>
            <author initials="" surname="ITU-T" fullname="International Telecommunication Union">
              <organization/>
            </author>
            <date year="2019" month="January"/>
          </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>
      <t>These samples are reproduced here for completeness, but are also available in github:</t>
      <t>https://github.com/EntrustCorporation/draft-ounsworth-pq-composite-keys/tree/master/sampledata</t>
      <ul empty="true">
        <li>
          <t>TODO: move these to https://github.com/lamps-wg before publication</t>
        </li>
      </ul>
      <section anchor="appdx-expComposite-samples">
        <name>Explicit Composite Public Key Samples</name>
        <section anchor="id-dilithium3-ecdsa-p256">
          <name>id-Dilithium3-ECDSA-P256</name>
          <t>This example uses the following OID as defined in Open Quantum Safe, which correspond to NIST Round3 candidates:</t>
          <t>https://github.com/open-quantum-safe/oqs-provider/blob/main/ALGORITHMS.md</t>
          <artwork><![CDATA[
id-dilithium3_aes 1.3.6.1.4.1.2.267.11.6.5
]]></artwork>
          <t>A Dilithium3-ECDSA-P256 public key:</t>
          <artwork><![CDATA[
!!sampledata/current/id-Dilithium3-ECDSA-P256_pub.pem
]]></artwork>
          <t>The corresponding explicit private key is as follows. Note that the PQ key comes from OpenQuantumSafe-openssl and is in the {privatekey || publickey} concatenated format. This may cause interoperability issues with some clients, and also makes the private keys appear larger than they would be if generated by a non-openssl client.</t>
          <artwork><![CDATA[
!!sampledata/current/id-Dilithium3-ECDSA-P256_priv.pem
]]></artwork>
        </section>
        <section anchor="id-dilithium3-rsa">
          <name>id-Dilithium3-RSA</name>
          <t>This example uses the following OID as defined in Open Quantum Safe, which correspond to NIST Round3 candidates:</t>
          <t>https://github.com/open-quantum-safe/oqs-provider/blob/main/ALGORITHMS.md</t>
          <artwork><![CDATA[
id-dilithium3_aes 1.3.6.1.4.1.2.267.11.6.5
]]></artwork>
          <t>A Dilithium3-RSA public key:</t>
          <artwork><![CDATA[
!!sampledata/current/id-Dilithium3-RSA_pub.pem
]]></artwork>
          <t>The corresponding explicit private key is as follows. Note that the PQ key comes from OpenQuantumSafe-openssl and is in the {privatekey || publickey} concatenated format. This may cause interoperability issues with some clients, and also makes the private keys appear larger than they would be if generated by a non-openssl client.</t>
          <artwork><![CDATA[
!!sampledata/current/id-Dilithium3-RSA_priv.pem
]]></artwork>
        </section>
        <section anchor="id-falcon512-ecdsa-p256">
          <name>id-Falcon512-ECDSA-P256</name>
          <t>This example uses the following OID as definid in Open Quantum Safe, which correspond to NIST Round3 candidates:</t>
          <t>https://github.com/open-quantum-safe/oqs-provider/blob/main/ALGORITHMS.md</t>
          <artwork><![CDATA[
id-falcon512 1.3.9999.3.1
]]></artwork>
          <t>A Falcon512-ECDSA-P256 public key:</t>
          <artwork><![CDATA[
!!sampledata/current/id-Falcon512-ECDSA-P256_pub.pem
]]></artwork>
          <t>The corresponding explicit private key is as follows. Note that the PQ key comes from OpenQuantumSafe-openssl and is in the {privatekey || publickey} concatenated format. This may cause interoperability issues with some clients, and also makes the private keys appear larger than they would be if generated by a non-openssl client.</t>
          <artwork><![CDATA[
!!sampledata/current/id-Falcon512-ECDSA-P256_priv.pem
]]></artwork>
          <!-- End of Exmamples-->

</section>
      </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>
      <ul empty="true">
        <li>
          <t>EDNOTE 10: Possible topics to address:</t>
        </li>
      </ul>
      <ul spacing="normal">
        <li>The size of these certs and cert chains.</li>
        <li>In particular, implications for (large) composite keys / signatures / certs on the handshake stages of TLS and IKEv2.</li>
        <li>If a cert in the chain is a composite cert then does the whole chain need to be of composite Certs?</li>
        <li>We could also explain that the root CA cert does not have to be of the same algorithms. The root cert SHOULD NOT be transferred in the authentication exchange to save transport overhead and thus it can be different than the intermediate and leaf certs.</li>
      </ul>
      <section anchor="textual-encoding-of-composite-private-keys">
        <name>Textual encoding of Composite Private Keys</name>
        <t>CompositePrivateKeys can be encoded to the Privacy-Enhanced Mail (PEM) <xref target="RFC1421"/> format by placing a CompositePrivateKey into the privateKey field of a PrivateKeyInfo (OneAsymmetricKey) object, and then applying the PEM encoding rules as defined in <xref target="RFC7468"/> section 10 and 11 for plaintext and encrypted private keys, respectively.</t>
      </section>
      <section anchor="sec-backwards-compat">
        <name>Backwards Compatibility</name>
        <t>As noted in the introduction, the post-quantum cryptographic migration will face challenges in both ensuring cryptographic strength against adversaries of unknown capabilities, as well as providing ease of migration. The composite mechanisms defined in this document primarily address cryptographic strength, however this section contains notes on how backwards compatibility may be obtained.</t>
        <t>The term "ease of migration" is used here to mean that existing systems can be gracefully transitioned to the new technology without requiring large service disruptions or expensive upgrades. 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.</t>
        <t>These 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 public key 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 and encrypted email <xref target="RFC8551"/>, document signing such as in the context of the European eIDAS regulations <xref target="eIDAS2014"/>, and publicly trusted code signing <xref target="codeSigningBRsv2.8"/>, as well as myriad other standardized and proprietary protocols and applications that leverage CMS <xref target="RFC5652"/> signed or encrypted structures.</t>
        <section anchor="or-modes">
          <name>OR modes</name>
          <t>This document purposefully does not specify how clients are to combine component keys together to form a single cryptographic operation; this is left up to the specifications of signature and encryption algorithms that make use of the composite key type. One possible way to combine component keys is through an OR relation, or OR-like client policies for acceptable algorithm combinations, where senders and / or receivers are permitted to ignore some component keys. Some envisioned uses of this include environments where the client encounters a component key for which it does not possess a compatible algorithm implementation but wishes to proceed with the cryptographic operation using the subset of component keys for which it does have compatible implementations. Such a mechanism could be designed to provide ease of migration by allowing for composite keys to be distributed and used before all clients in the environment are fully upgraded, but it does not allow for full backwards compatibility since clients would at least need to be upgraded from their current state to be able to parse the composite structures.</t>
        </section>
        <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 key type (signature, key establishment, etc) for the same identity (name, SAN), 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). This concept contains strong overlap with other documented approaches, such as <xref target="I-D.becker-guthrie-noncomposite-hybrid-auth"/> and highlights the synergy between composite and non-composite hybrid approaches.</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 cryptographic 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 algorithm defined in <xref target="I-D.ounsworth-pq-composite-sigs"/> as a way to carry the multiple signature values generated by a 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 or RecipientInfo objects is often already treated as an OR relationship, so including one for each of the end entity'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="catalyst-certificates">
          <name>CATALYST certificates</name>
          <t>CATALYST certificates, defined in <xref target="I-D.truskovsky-lamps-pq-hybrid-x509"/> and <xref target="itu-t-x509-2019"/> provides an alternative mechanism for placing multiple public keys and signatures into a certificate via the X.509v3 extensions <tt>subjectAltPublicKeyInfo</tt>, <tt>altSignatureAlgorithm</tt>, and <tt>altSignatureValue</tt>. <xref target="itu-t-x509-2019"/> specifies that only one of the keys is to be used at a time, so it is not in fact a hybrid mechinism in that it is not providing dual algorithm security; instead it is merely a migration mechanism. One could imagine obtaining dual algorithm security by using a CATALYST certificate in a mode other than that described in <xref target="itu-t-x509-2019"/> where both keys produce a signature and place them, for example, togeher in a <tt>CompositeSignatureValue</tt>.</t>
          <t>CALATYST certificates appear to have a backwards compatibility advantage in that these non-critical extensions will be ignored by legacy clients, thus making the certificate verification seamlessly verifiable by legacy clients. However, at the protocol level, the certificate holder still needs to know which algorithm the peer wants it to use in the protocol-level message. CATALYST certificates also have the disadvantage of needing to transmit the large post-quantum keys, signatures or key exchange data even if the client will not use them. Thus while CATALYST certificates may be advantageous in some applications that use multiple algorithms but can only handle a single certificate, it is in general not clear that they offer any strong advantage over a multi-cert hybrid in terms of ease of migration, or over composite in terms of security.</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>John Gray (Entrust), <br/>
Serge Mister (Entrust), <br/>
Scott Fluhrer (Cisco Systems), <br/>
Panos Kampanakis (Cisco Systems), <br/>
Daniel Van Geest (ISARA), <br/>
Tim Hollebeek (Digicert), <br/>
Klaus-Dieter Wirth (D-Trust), <br/>
Patrick Kelsey (Not for Radio LLC), <br/>
Anthony Hu (wolfSSL), and <br/>
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-pq-composite-keys</t>
        <!-- End of Contributors section -->

</section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
