<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY I-D.ounsworth-pq-composite-keys SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ounsworth-pq-composite-keys.xml">
<!ENTITY I-D.ounsworth-pq-composite-sigs SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ounsworth-pq-composite-sigs.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC5280 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC5958 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5958.xml">
<!ENTITY RFC7292 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7292.xml">
<!ENTITY RFC4210 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4210.xml">
<!ENTITY RFC4211 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4211.xml">
<!ENTITY RFC6960 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6960.xml">
<!ENTITY RFC8411 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8411.xml">
<!ENTITY I-D.driscoll-pqt-hybrid-terminology SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.driscoll-pqt-hybrid-terminology.xml">
]>


<rfc ipr="trust200902" docName="draft-pala-klaussner-composite-kofn-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="K-threshold Sigs">K-threshold Composite Signatures for the Internet PKI</title>

    <author initials="M." surname="Pala" fullname="Massimiliano Pala">
      <organization abbrev="CableLabs">CableLabs Inc.</organization>
      <address>
        <postal>
          <street>858 Coal Creek Cir</street>
          <city>Louisville, Colorado</city>
          <code>80027</code>
          <country>United States of America</country>
        </postal>
        <email>director@openca.org</email>
      </address>
    </author>
    <author initials="J." surname="Klaussner" fullname="Jan Klaussner" asciiFullname="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="2022" month="November" day="15"/>

    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>With the need to evolve the cryptography used in today applications, 
devices, and networks, there might be many scenarios where the use of a
single-key certificate is not sufficient. For example, there might be the
need for migrating between two existing algorithms (e.g., from classic
to post-quantum) or there might be the need to test the capabilities of
devices via test drivers and/or non-standard algorithms.</t>

<t>Differently from the situation where algorithms are not yet (or no more)
trusted to be used by themselves, this document addresses the use of multiple
keys and signatures that can be individually trusted to implement a generic
1-threshold and K-threshold signature validation procedures.</t>

<t>This document provides the definition of a new type of multi-algorithm
public key and relies on the definition of CompositePrivateKey,
and CompositeSignature which are sequences of the respective structure for each
component algorithm as defined in <xref target="I-D.ounsworth-pq-composite-sigs"/> and
<xref target="I-D.ounsworth-pq-composite-sigs"/>.</t>

<!-- End of Abstract -->



    </abstract>



  </front>

  <middle>


<section anchor="terminology"><name>Terminology</name>

<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL
NOT&quot;, &quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;,
&quot;MAY&quot;, and &quot;OPTIONAL&quot; in this document are to be interpreted as
described in BCP14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
These words may also appear in this document in
lower case as plain English words, absent their normative meanings.</t>

<t>This document is consistent with the terminology defined in
<xref target="I-D.driscoll-pqt-hybrid-terminology"/>. In addition, the following terminology
is used throughout this document:</t>

<dl>
  <dt>BER:</dt>
  <dd>
    <t>Basic Encoding Rules (BER) as defined in <xref target="X.690"/>.</t>
  </dd>
  <dt>CLIENT:</dt>
  <dd>
    <t>Any software that is making use of a cryptographic key.
This includes a signer, verifier, encrypter, decrypter.</t>
  </dd>
  <dt>DER:</dt>
  <dd>
    <t>Distinguished Encoding Rules as defined in <xref target="X.690"/>.</t>
  </dd>
  <dt>PKI:</dt>
  <dd>
    <t>Public Key Infrastructure, as defined in <xref target="RFC5280"/>.</t>
  </dd>
  <dt>PUBLIC / PRIVATE KEY:</dt>
  <dd>
    <t>The public and private portion of an asymmetric cryptographic
key, making no assumptions about which algorithm.</t>
  </dd>
  <dt>COMPONENT KEY:</dt>
  <dd>
    <t>One component of the Composite Key. For example, an RSA, a
Dilithium3 or a Falcon512 key.</t>
  </dd>
</dl>

</section>
<section anchor="intro"><name>Introduction</name>

<t>When the trust in the cryptographic algorithms is not static (e.g., not
enough crypto-analysis has happened yet or a new threat is envisioned to
be deployable in the next future), there might be the need to combine 
multiple algorithms together to address the crypto-uncertainty of the
envisioned period.</t>

<t>An example of such a situation can be found in the planning for the transition
to post-quantum cryptography (PQ or PQC). While classic algorithms will still
be trusted for some time (but we do not know how much), there is uncertainty
as to the strength of the new cryptographic algorithms. Unlike previous
cryptographic algorithm migrations, the choice of when to migrate and which
algorithms to migrate to, is not so clear.</t>

<t>Even after the migration period, it may be advantageous for an entity
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>For further considerations on the challenges related to crypto-agility,
please refer to <xref target="I-D.ounsworth-pq-composite-keys"/>.</t>

<section anchor="algorithms"><name>Alternative Algorithms Support</name>

<t>Although Composite cryptography and Hybrid solutions can be used in many
common use-cases to protect against algorithmic failures over time, there
are other use-cases that mandate for supporting crypto-interoperability to
continue to be able to operate old devices (e.g., not upgradable) when
deploying newer devices and crypto algorithms.</t>

<t>This is particularly true in environments where deployed devices might be
distributed in the field such as infrastructure&#39;s network elements (e.g.,
network routers, amplifiers, monitoring devices, cable modems, public access
points, etc.). The use of multi-algorithms provides a mechanism for enabling
forward compatibility with newer devices even when they cannot be upgraded.</t>

<t>At a practical level this means that we need a mechanism to still be able to
validate Composite signatures even when not all algorithms are supported by
all devices.</t>

<t>This work introduces the concept of alternative signatures which joins the
family of hybrid options such as Composite Crypto.</t>

</section>
</section>
<section anchor="overview"><name>The MultiKey Approach Overview</name>

<t>The MultiKey approach focus is to provide the possibility to validate Composite
signatures even when not all algorithms that were used in the generation of the
Composite signature are supported. From this point of view, the MultiKey approach
differs from the Composite crypto one in that it allows relying parties to
perform the validation of a subset of signatures instead of requiring the
successful validation of all signatures.</t>

<t>We define <spanx style="verb">n</spanx> the number of component key in the MultiKey key, and <spanx style="verb">k</spanx> the minimum
number of component signature successful validations required for the Composite
signature to be considered valid.</t>

<section anchor="threshold"><name>1-threshold and K-threshold signature validation</name>

<t>The MultiKey approach defined in this document leverages the same procedures
and data structures defined for pk-Composite <xref target="I-D.ounsworth-pq-composite-keys"/> with the
addition of an optional public key parameter. This optional parameter carries
the <spanx style="verb">K</spanx> value that represents the total number of skipped or erroneous signature
validations.</t>

<t>In practice, the MultiKey approach can support different validation policies
based on the value of the optional key parameter. For example, by setting the
value to one (1) it is possible to require that at least one (1) component
signature is correctly validated, thus providing support for true alternative
signatures. When using values greater than one (1), MultiKey keys can support
K of N models where at least K successful validations MUST take place before
the Composite signature is considered valid.</t>

<t>In the rest of the section we focus on the description of private and public key
structures, while in the next section we focus on the changes in the validation
process when compared to signatures generated via Composite Keys.</t>

</section>
<section anchor="private_keys"><name>MultiKey Private Keys</name>

<t>This section provides an encoding for MultiKey private keys intended for PKIX
protocols and other applications that require an interoperable format for
transmitting private keys, such as PKCS #8 <xref target="RFC5958"/>, PKCS #12 <xref target="RFC7292"/>,
CMP <xref target="RFC4210"/>, or CRMF <xref target="RFC4211"/>.</t>

<t>The format for the individual component key in a MultiKey key is defined by the
algorithm OID that identifies the component key. The format of the MultiKey
described in this section is meant to provide an interoperable format that can
be adopted and implemented across implementations.</t>

<t>This document does not cover the use-case where individual components may be
stored in multiple cryptographic modules.</t>

<t>The MultiKey private key data use the same structure as in CompositePrivateKey
where each component key is a OneAsymmetricKey <xref target="RFC5958"/> object:</t>

<figure><sourcecode type="ASN.1" name="MultiKeyPrivateKey-asn.1-structures"><![CDATA[
MultiKeyPrivateKey ::= CompositePrivateKey
]]></sourcecode></figure>

<t>A MultiKeyPrivateKey MUST contain at least two component private keys, and they
MUST be in the same order as in the corresponding MultiKeyPublicKey.</t>

</section>
<section anchor="public_keys"><name>MultiKey Public Keys</name>

<t>MultiKey Public Keys are identified by a unique OID and the associated definition
of the related data structure for a multi-algorithm public key, namely a MultiKey
key.</t>

<t>The OID that identifies a generic MultiKey key is defined as follows:</t>

<figure><artwork type="ASN.1" name="MultiKeyObjectIdentifier-asn.1-structures" align="center"><![CDATA[
    id-multikey-key OBJECT IDENTIFIER ::= { 
      iso(1) identified-organization(3) dod(6) 
      internet(1) private(4) enterprise(1) OpenCA(18227)
      Algorithms(2) PublicKey(1) Experimental(999) 
      MultiKey(2) }
]]></artwork></figure>

<t>The associated definition of MultiKey&#39;s public key (pk-MultiKey) and MultiKey&#39;s
public key parameters (MultiKey-params) structures are as follows:</t>

<figure><artwork type="ASN.1" name="MultiKeyPublicKey-asn.1-structures" align="center"><![CDATA[
MultiKey-params ::= INTEGER (1..MAX)

pk-MultiKey PUBLIC-KEY ::= {
  id id-multikey-key
  KeyValue MultiKeyPublicKey
  Params TYPE MultiKey-params ARE optional
  PrivateKey MultiKeyPrivateKey
}
]]></artwork></figure>

<t>Where the MultiKey-params is used to specify the number of minimum successful
validations required for the signature to be considered valid.</t>

<t>The value of the MultiKey-params must be greater or equal to one (1)
and shall not exceed the number of component keys present in the
MultiKey public key.</t>

<t>The use of MultiKey algorithm in a component key is not allowed in
a MultiKey key.</t>

</section>
<section anchor="extended_sigs"><name>Composite Signature Extended definition</name>

<t>The sa-CompositeSignature structure is extended as follows:</t>

<figure align="center"><sourcecode type="ASN.1" name="sa-CompositeSignatureEx-asn.1-structures"><![CDATA[
sa-CompositeSignatureEx SIGNATURE-ALGORITHM ::= {
       IDENTIFIER id-alg-composite
       VALUE CompositeSignatureValue
       PARAMS ANY DEFINED BY ALGORITHM
       PUBLIC-KEYS { pk-Composite | pk-MultiKey }
       SMIME-CAPS { IDENTIFIED BY id-alg-composite } }
]]></sourcecode></figure>

<t>The difference with the original <spanx style="verb">sa-CompositeSignature</spanx> definition is the introduction
of the <spanx style="verb">pk-MultiKey</spanx> in the <spanx style="verb">PUBLIC-KEYS</spanx> definition.</t>

</section>
</section>
<section anchor="signature_process"><name>MultiKey Signature Processes</name>

<t>This section specifies the processes for generating and verifying composite
signatures generated via MultiKey keys.</t>

<section anchor="signing"><name>Generating Composite Signatures</name>

<t>When using MultiKey to generate signatures, the process is the same as
in the Composite case. Please refer to section 5.1 of <xref target="I-D.ounsworth-pq-composite-sigs"/>.</t>

</section>
<section anchor="validating"><name>Validating Composite Signatures</name>

<t>When validating composite signatures generated via MultiKey keys, the
validation procedures are modified to allow for a well-defined number
of component signatures validation failures to occur before failing
the validation of the composite signature as a whole.
The possibility to be able to still consider a composite signature valid
in the presence of unsupported protocols is a useful feature for
guaranteeing the interoperability of newer devices with older ones that might not be
able to correctly process all the algorithms (but they can still
validate a subset of them).</t>

<t>In fact, when validating signatures generated via MultiKey keys, the
total number of successful component signature validations shall be equal
or greater than the public key parameter <spanx style="verb">K</spanx> (when present). After that,
additional component signatures&#39; validations may be skipped (or fail)
without impacting the validity of the whole composite signature.</t>

<t>When the public key parameter <spanx style="verb">K</spanx> is absent or its value is set to the
number of components in the signing key (i.e., <spanx style="verb">K = n</spanx>), the validation
process for MultiKey and Composite are the same.</t>

<t>When the public key parameter <spanx style="verb">K</spanx> is set to one (<spanx style="verb">1</spanx>), the validation
process for MultiKey provides support for fully alternative signatures
where a single successful component signature&#39;s validation validates
the whole composite signature.</t>

<t>When compared to the composite signatures&#39; validation process, we modify
the for..loop cycle where the invalid signature output is not emitted 
after the first validation failure, but only if the number of remaining
successful validations is larger than the number of remaining
validations.</t>

<t>The second optimization allowed by MultiKey keys is to be able to consider
a composite signature successful right after at least <spanx style="verb">K</spanx> successful
component signatures&#39; validations, without the need for even attempting
at performing the remaining ones.</t>

<t>The Input and Output definitions are the same as defined in composite:</t>

<figure><artwork align="center" name="MultiKeyValidation.process-setup"><![CDATA[
Input:
     P1, P2, .., Pn    Public verification keys. 

     M                 Message
     
     S1, S2, .., Sn    Component signature values.
     
     A1, A2, ... An    Component signature algorithms.

Output:

    Validity (bool)    "Valid signature" (true) if the composite 
                        signature is valid, "Invalid signature" 
                        (false) otherwise.
]]></artwork></figure>

<t>The following process is used to perform composite signatures verification
with a MultiKey key:</t>

<figure><artwork align="center" name="alg-sig-verify"><![CDATA[
1. Check keys, signatures, and algorithms for consistency.

   If Error during desequencing, or the three sequences
   have different numbers of elements, or any of the public
   keys P1, P2, .., Pn or algorithm identifiers A1, A2, ..,
   An are multikey with the OID id-alg-composite or an
   explicit composite OID then output "Invalid signature"
   and stop.

2. Check each component signature individually, according to
   its algorithm specification. Parameter K holds the number of successful
   validations yet required and is reduced as soon as a component signature is verified.
   If K reaches 0, the entire signature validation
   succeeds. If all component signatures are processed and K is not 0, The Validation as whole fails.

   IF MultiKey-params
     K := MultiKey-params
   ELSE
     K := n

   FOR i := 1 TO n:
     IF verify( Pi, M, Si, Ai ):
       K--
     IF (K == 0):
       Output "Valid signature"
     IF (n - i < K):
       Output "Invalid Signature"
]]></artwork></figure>

<!-- End of Introduction section -->

</section>
</section>
<section anchor="identifiers"><name>Algorithm Identifiers</name>

<t>In this work, we define a set of OIDs that allow for assigning explicit
algorithm combination to specific MultiKey keys configuration.</t>

<t>Please refer to Appendix <xref target="identifiers"/> for more details about
explicit MultiKey identifiers.</t>

<section anchor="signature_identifiers"><name>Signature Algorithm Identifiers</name>

<t>This document does not define a separate sets of algorithms and leverages the
extends the definitions of composite signatures defined in <xref target="I-D.ounsworth-pq-composite-sigs"/>
with the addition of the pk-multikey-key in the PUBLIC-KEYS set.</t>

</section>
<section anchor="public_key_identifiers"><name>Public Key Algorithm Identifiers</name>

<t>Section <xref target="public_keys"/> provides the definition for the generic MultiKey
key identifier. The generic construct for a MultiKey key allows for both
standard and non-standard (i.e., private, test, etc.) public key algorithms
to be used to produce composite signatures.</t>

<t>Similarly to the composite case, the use of explicit combinations of
algorithms can simplify the management of identities by allowing for
inspecting a single OID (the outmost one) instead of requiring the
inspection of the individual components of the MultiKey key.</t>

</section>
</section>
<section anchor="deprecating-algorithms-and-impact-over-signature-validations"><name>Deprecating Algorithms and Impact over signature validations</name>

<t>Traditionally, a public key, certificate, or signature contains a single
cryptographic algorithm and to revoke a certificate due to algorithm
depecation we still need to use serial-number-based revocations.</t>

<t>However, in a multi-algorithms environment (e.g., supported via Composite,
MultiKey, or other Hybrid approaches), it might be possible to deprecate
an entire algorithm and still be able to securely continue performing
authentications and validations instead of revoking (or simply distrust)
the entire infrastructure (and without adding every single certificate
that relies on the deprecated algorithm on the revocation list).</t>

<t>By integrating the concept of deprecated algorithms, in the MultiKey case 
it is possible to dynamically switch among which algorithms are going to
be used for signature validations by informing the validating entity about
the OIDs of the individual algorithms that are considered &quot;failures&quot;.</t>

<t>In fact, the validating entity can automatically &quot;fail&quot; the validation of
component signatures that match any value present in the list of revoked
algorithms, exactly in the same fashion as when the algorithm is not
supported in the first place.</t>

<section anchor="distributing-the-list-of-deprecated-algorithms"><name>Distributing the list of deprecated algorithms</name>

<t>As we just mentioned, in MultiKey environments, there are situations
where the validation of a component signature that carries a deprecated
algorithm identifier might still be allowed, e.g. when at least another
<spanx style="verb">K</spanx> validate correctly.</t>

<t>On top of that, there are also typical use-cases where the deprecation
of an algorithm is paramount to make sure that authentications do not
rely only on deprecated algorithms. This is the case, for example, when
older devices that can only successfully validate one algorithm from a
composite signature (e.g., it can validate RSA signatures but no other)
are still part of the network. When the only algorithm that they can use
is deprecated, validation of composite signature MUST fail.</t>

<t>Differently from the pure composite case, if the device can still
successfully validate <spanx style="verb">K</spanx> component signatures, the device does not need
to be re-provisioned (or replaced) and can continue to operate by
relying on the non-deprecated algorithm.</t>

<t>The list of deprecated algorithms that are to be considered automatic
validation &quot;failures&quot; can be directly configured as a parameter in the
validating entity&#39;s process, or by accessing a trusted source of
information.</t>

<t>In an ecosystem such as the Internet PKI or IoT PKIs, since algorithm
deprecation can be seen as another form of (mass) revocation, a convenient
mechanism to distribute the list of deprecated algorithms by adding a
specific extension to Certificate Revocation Lists <xref target="RFC5280"/> or Online
Certificate Status Protocol <xref target="RFC6960"/> responses.</t>

<t>We define a new <spanx style="verb">deprecated-algorithms</spanx> extension together with the
associated <spanx style="verb">id-ext-deprecated-algorithms</spanx> identifier. The data structure
of the extension is defined as a <spanx style="verb">SEQUENCE</spanx> of <spanx style="verb">DeprecatedAlgorithm</spanx>.
Each <spanx style="verb">DeprecatedAlgorithm</spanx> is defined as an <spanx style="verb">OBJECT IDENTIFIER</spanx>.</t>

<t>We define the following identifier:</t>

<figure><sourcecode type="asn.1"><![CDATA[
id-ce-deprecatedAlgsList OBJECT IDENTIFIER ::= { 
      iso(1) identified-organization(3) dod(6) 
      internet(1) private(4) enterprise(1) OpenCA(18227)
      Extensions(3) deprecated-algs (2) }
]]></sourcecode></figure>

</section>
</section>
<section anchor="sec-iana"><name>IANA Considerations</name>

<t>This document registers the following in the SMI &quot;Security for PKIX Algorithms (1.3.6.1.5.5.7.6)&quot; registry:</t>

<figure><sourcecode type="ASN.1"><![CDATA[
id-composite-key OBJECT IDENTIFIER ::= {
    iso(1) identified-organization(3) dod(6) internet(1) security(5)
    mechanisms(5) pkix(7) algorithms(6) id-multikey-key(??) }
]]></sourcecode></figure>

<t>This document registers the following in the SMI &quot; &quot; registry:</t>

<figure><sourcecode type="ASN.1"><![CDATA[
id-ce-deprecatedAlgsList OBJECT IDENTIFIER ::= { id-ce deprecatedAlgsList(??) }
]]></sourcecode></figure>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<!-- End of Security Considerations section -->

<!-- Start of Appendices -->

</section>


  </middle>

  <back>


    <references title='Normative References'>

&I-D.ounsworth-pq-composite-keys;
&I-D.ounsworth-pq-composite-sigs;
<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>
&RFC2119;
&RFC8174;
&RFC5280;
&RFC5958;
&RFC7292;
&RFC4210;
&RFC4211;
&RFC6960;
&RFC8411;


    </references>

    <references title='Informative References'>

&I-D.driscoll-pqt-hybrid-terminology;


    </references>


<section anchor="explicit-algorithms"><name>Explicit Algorithm Identifiers</name>

<t>This variant provides a rigid way of specifying supported
combinations of algorithms.</t>

<t>Although this variant limits the possibility for combining
non-standard algorithms (or algorithms not considered by the
authors of this document), the use of identifiers that identify
pairs of standard algorithms might be easier in certain
situations such as referencing and/or enforcing specific
combinations of algorithms without the need for developing
additional validation procedures external to the signature
validation one.</t>

<t>Explicit algorithms must define a new signature algorithm which
consists of:</t>

<t><list style="symbols">
  <t>A new algorithm identifier OID for the explicit algorithm.</t>
  <t>The algorithm identifier OID and PUBLIC-KEY type of each component
algorithm.</t>
  <t>Signature parameters either declared ABSENT, or defined with a
type and encoding.</t>
</list></t>

<t>The definition of the explicit algorithm identifiers follows
the same definitions provided in Section 4.2 of <xref target="I-D.ounsworth-pq-composite-keys"/>
with the exception of the parameters that are not ABSENT but
OPTIONAL and their TYPE is MultiKey-params as defined in <xref target="public_keys"/>.</t>

</section>
<section anchor="asn1-module"><name>ASN.1 Module</name>

<figure><sourcecode type="ASN.1"><![CDATA[
<CODE STARTS>

MultiKey-2022

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

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

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

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

  COMPOSITE-KEY-ALGORITHM, pk-Composite, CompositePublicKey, 
    CompositePrivateKey, pk-explicitComposite, id-composite-key
    FROM Composite-Keys-2022 -- {{I-D.draft-ounsworth-pq-sigs}}
      { ... }
--
-- Object Identifiers
--
 

--
-- Public Key
--

END

<CODE ENDS>

]]></sourcecode></figure>

</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),
Serge Mister (Entrust),
Scott Fluhrer (Cisco Systems),
Panos Kampanakis (Cisco Systems),
Daniel Van Geest (ISARA),
Tim Hollebeek (Digicert),
Klaus-Dieter Wirth (D-Trust), and
Francois Rousseau.</t>

<t>We are grateful to all, including any contributors who may have
been inadvertently omitted from this list.</t>

<t>This document borrows text from similar documents, including those referenced below. Thanks go to the authors of those
   documents.  &quot;Copying always makes things easier and less error prone&quot; - <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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
ltY//duIC2vwEwaD/wN0uMrQ4FsAAA==

-->

</rfc>

