<?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-kem-02" 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 KEM For Use In Internet PKI</title>
    <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-kem-02"/>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road -- Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization abbrev="Entrust">Entrust Limited</organization>
      <address>
        <postal>
          <street>2500 Solandt Road -- Suite 100</street>
          <city>Ottawa, Ontario</city>
          <code>K2K 3G5</code>
          <country>Canada</country>
        </postal>
        <email>john.gray@entrust.com</email>
      </address>
    </author>
    <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 structure CompositeCiphertextValue which is a sequence of the respective ciphertexts for each component algorithm. Explicit pairings of algorithms are defined which should meet most Internet needs. For the purpose of combining KEMs, the combiner function from <xref target="I-D.ounsworth-cfrg-kem-combiners"/> is used.</t>
      <t>This document is intended to be coupled with the composite keys
structure define in <xref target="I-D.ounsworth-pq-composite-keys"/> and the CMS KEMRecipientInfo mechanism in <xref target="I-D.housley-lamps-cms-kemri"/>.</t>
      <!-- End of Abstract -->



    </abstract>
  </front>
  <middle>
    <section anchor="changes-in-version-02">
      <name>Changes in version -02</name>
      <ul spacing="normal">
        <li>Removed all references to generic composite.</li>
        <li>Added selection criteria note about requesting new explicit combinations.</li>
      </ul>
    </section>
    <section anchor="sec-intro">
      <name>Introduction</name>
      <t>During the transition to post-quantum cryptography, there will be uncertainty as to the strength of cryptographic algorithms; we will no longer fully trust traditional cryptography such as RSA, Diffie-Hellman, DSA and their elliptic curve variants, while we may also not fully trust their post-quantum replacements until they have had sufficient scrutiny and time to discover and fix implementation bugs. Unlike previous cryptographic algorithm migrations, the choice of when to migrate and which algorithms to migrate to, is not so clear. Even after the migration period, it may be advantageous for an entity's cryptographic identity to be composed of multiple public-key algorithms.</t>
      <t>The deployment of composite public keys and composite encryption using post-quantum algorithms 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 classical to fully post-quantum-aware cryptography.</li>
      </ul>
      <t>This document provides a mechanism to address algorithm strength uncertainty by building on <xref target="I-D.ounsworth-pq-composite-keys"/> by providing the format and process for combining multiple cryptographic algorithms into a single key encapsulation operation. Backwards compatibility is not directly covered in this document, but is the subject of <xref target="sec-backwards-compat"/>.</t>
      <t>This document is intended for general applicability anywhere that key establishment or enveloped content encryption is 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-keys"/> and <xref target="I-D.ounsworth-pq-composite-sigs"/> pecifications 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>
        <!-- End of Introduction section -->

</section>
      <section anchor="sec-terminology">
        <name>Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"/>  <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
        <t>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>COMBINER:
          A combiner specifies how multiple shared secrets
          are combined into a single shared secret.
DER:
          Distinguished Encoding Rules as defined in <xref target="X.690"/>.</t>
        <t>KEM:
        A key encapsulation mechanism as defined in <xref target="sec-kems"/>.</t>
        <t>PKI:
          Public Key Infrastructure, as defined in <xref target="RFC5280"/>.</t>
        <t>SHARED SECRET:
        A value established between two communicating parties for use as cryptographic key material, but which cannot be learned by an active or 
        passive adversary. This document is concerned with shared secrets established via public key cryptagraphic operations.</t>
      </section>
    </section>
    <section anchor="composite-kem-structures">
      <name>Composite KEM Structures</name>
      <section anchor="sec-kems">
        <name>Key Encapsulation Mechanisms (KEMs)</name>
        <t>We borrow here the definition of a key encapsulation mechanism (KEM) from <xref target="I-D.ietf-tls-hybrid-design"/>, in which a KEM is a cryptographic primitive that consists of three algorithms:</t>
        <ul spacing="normal">
          <li>KeyGen() -&gt; (pk, sk): A probabilistic key generation algorithm,
which generates a public key pk and a secret key sk.</li>
          <li>Encaps(pk) -&gt; (ct, ss): A probabilistic encapsulation algorithm,
which takes as input a public key pk and outputs a ciphertext ct
and shared secret ss.</li>
          <li>Decaps(sk, ct) -&gt; ss: A decapsulation algorithm, which takes as
input a secret key sk and ciphertext ct and outputs a shared
secret ss, or in some cases a distinguished error value.</li>
        </ul>
        <t>This document is not concerned with the KeyGen() algorithm of a KEM, but it is included above for completeness.</t>
        <t>The KEM interface defined above differs from both traditional key transport mechanism (for example for use with KeyTransRecipientInfo defined in <xref target="RFC5652"/>), and key agreement (for example for use with KeyAgreeRecipientInfo defined in <xref target="RFC5652"/>).</t>
        <t>The KEM interface was chosen as the interface for a composite key exchange because it allows for arbitrary combinations of component algorithm types since both key transport and key agreement mechanisms can be promoted into KEMs in the following ways:</t>
        <t>A key transport mechanism can be transformed into a KEM.Encaps(pk) by generating a random shared secret ss and performing KeyTrans.Encrypt(pk, ss) -&gt; ct; and into a KEM.Decaps(sk, ct) by KeyTrans.Decrypt(sk, ct) -&gt; ss. This follows the pattern of RSA-KEM <xref target="RFC5990"/>.</t>
        <t>A key agreement mechanism can be transformed into a KEM.Encaps(pk) by generating an ephemeral key pair (pk_e, sk_e), and performing KeyAgree(pk, sk_e) -&gt; (ss, pk_e); and into a KEM.Decaps(sk, ct) by completing the key agreement as KeyAgree(pk_e, sk) -&gt; ss.</t>
        <t>A composite KEM allows two or more underlying key transport, key agreement, or KEM algorithms to be combined into a single cryptographic operations by performing each operation, transformed to a KEM as outline above, and using a specified combiner function to combine the two or more component shared secrets into a single shared secret.</t>
        <t>The main security property for KEMs is indistinguishability under
adaptive chosen ciphertext attack (IND-CCA2), which means that shared
secret values should be indistinguishable from random strings even
given the ability to have other arbitrary ciphertexts decapsulated.
By using the KEM combiner defined in <xref target="I-D.ounsworth-cfrg-kem-combiners"/>, the composite KEMs defined in this document inherit the IND-CCA2 security from the general combiner.</t>
        <t>TODO: needs more formal analysis that the methods of transforming KeyTrans and KeyAgree meet this.</t>
      </section>
      <section anchor="sec-kema-CompositeKEM">
        <name>kema-CompositeKEM</name>
        <t>The ASN.1 algorithm object for a composite KEM is:</t>
        <artwork><![CDATA[
kema-CompositeKEM KEM-ALGORITHM ::= {
    IDENTIFIER TYPE OBJECT IDENTIFIER
    VALUE CompositeCiphertextValue
    PARAMS TYPE CompositeKemParams ARE required
    PUBLIC-KEYS { pk-Composite }
    SMIME-CAPS { IDENTIFIED BY id-alg-composite } }
]]></artwork>
        <t>The following is an explanation how KEM-ALGORITHM elements are used 
to create Composite KEMs:</t>
        <table>
          <thead>
            <tr>
              <th align="left">SIGNATURE-ALGORITHM element</th>
              <th align="left">Definition</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">IDENTIFIER</td>
              <td align="left">The Object ID used to identify the composite Signature Algorithm</td>
            </tr>
            <tr>
              <td align="left">VALUE</td>
              <td align="left">The Sequence of BIT STRINGS for each component signature value</td>
            </tr>
            <tr>
              <td align="left">PARAMS</td>
              <td align="left">Parameters of type CompositeKemParams may be provided when required</td>
            </tr>
            <tr>
              <td align="left">PUBLIC-KEYS</td>
              <td align="left">The composite key required to produce the composite signature</td>
            </tr>
            <tr>
              <td align="left">SMIME_CAPS</td>
              <td align="left">Not needed for composite</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="composite-keys">
        <name>Composite Keys</name>
        <t>A composite KEM MAY be associated with a composite public key as defined in [I-D.ounsworth-pq-composite-keys], but MAY also be associated with multiple public keys from different sources, for example multiple X.509 certificates, or multiple cryptographic modules. In the latter case, composite KEMs MAY be used as the mechanism for carrying multiple ciphertexts in a non-composite hybrid encryption equivalent of those described for digital signatures in [I-D.becker-guthrie-noncomposite-hybrid-auth].</t>
        <section anchor="key-usage-bits">
          <name>Key Usage Bits</name>
          <t>When using composite KEM keys in a structure which defines a key usage (such as in an 
X509Certificate as defined in <xref target="RFC5280"/>), the following key usage MUST be used.</t>
          <artwork><![CDATA[
  keyEncipherment
]]></artwork>
          <t>Additional key usages SHOULD not be used.</t>
        </section>
      </section>
      <section anchor="sec-CompositeCiphertextValue">
        <name>CompositeCiphertextValue</name>
        <t>The compositeCipherTextValue is a concatenation of the ciphertexts of the
underlying component algorithms.  It is represented in ASN.1 as follows:</t>
        <artwork><![CDATA[
CompositeCiphertextValue ::= SEQUENCE SIZE (2..MAX) OF OCTET STRING
]]></artwork>
      </section>
      <section anchor="sec-compositeKemParameters">
        <name>CompositKemParameters</name>
        <t>Composite KEM parameters are defined as follows and MAY be included when a composite KEM algorithm is used with an AlgorithmIdentifier:</t>
        <sourcecode type="asn.1"><![CDATA[
CompositeKemParams ::= SEQUENCE SIZE (2..MAX) OF AlgorithmIdentifier{
    KEM-ALGORITHM, {KEMAlgSet} }
]]></sourcecode>
        <t>The KEM's <tt>CompositeKemParams</tt> sequence MUST contain the same component algorithms listed in the same order as in the associated CompositePublicKey.</t>
        <t>For explicit composite algorithms, it is required in cases where one or both of the components themselves have parameters that need to be carried, however the authors have chosen to always carry it in order to simplify parsers. Implementation SHOULD NOT rely directly on the algorithmIDs contained in the <tt>CompositeKemParams</tt> and SHOULD verify that they match the algorithms expected from the overall composite AlgorithmIdentifier.</t>
      </section>
      <section anchor="encoding-rules">
        <name>Encoding Rules</name>
        <t>Many protocol specifications will require that composite KEM data structures be represented by an octet string or bit string.</t>
        <t>When an octet string is required, the DER encoding of the composite data structure SHALL be used directly.</t>
        <t>EDNOTE: will this definition include an ASN.1 tag and length byte inside the OCTET STRING object? If so, that's probably an extra unnecessary layer.</t>
        <t>When a bit string is required, the octets of the DER encoded composite data structure SHALL be used as the bits of the bit string, with the most significant bit of the first octet becoming the first bit, and so on, ending with the least significant bit of the last octet becoming the last bit of the bit string.</t>
        <t>In the interests of simplicity and avoiding compatibility issues, implementations that parse these structures MAY accept both BER and DER.</t>
      </section>
      <section anchor="sec-kem-combiner">
        <name>KEM Combiner</name>
        <t>TODO: as per https://www.enisa.europa.eu/publications/post-quantum-cryptography-integration-study section 4.2, might need to specify behaviour in light of KEMs with a non-zero failure probility.</t>
        <t>This document follows the construction of <xref target="I-D.ounsworth-cfrg-kem-combiners"/>, which is repeated here for clarity:</t>
        <artwork><![CDATA[
KDF(counter || k_1 || ... || k_n || fixedInfo, outputBits)

where
k_i = H(ss_i || ct_i)
]]></artwork>
        <t>where:</t>
        <ul spacing="normal">
          <li>
            <tt>KDF</tt> and <tt>H</tt>, and <tt>outputBits</tt> represent a hash functions suitable to the chosen KEMs,</li>
          <li>
            <tt>fixedInfo</tt> any additional context string provided by the protocol,</li>
          <li>
            <tt>counter</tt> is fixed to the 32-bit value <tt>0x00000001</tt>,</li>
          <li>
            <tt>||</tt> represents concatenation.</li>
        </ul>
        <t>Each registered composite KEM algorithm must specify the exact KEM combiner construction that is to be used.</t>
        <t>For convenience we define the following KMAC-basid intantiations of KEM combiner:</t>
        <table anchor="tab-kem-combiners">
          <name>KEM Combiners</name>
          <thead>
            <tr>
              <th align="left">KEM Combiner</th>
              <th align="left">KDF</th>
              <th align="left">H</th>
              <th align="left">outputBits</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">KMAC128/256</td>
              <td align="left">KMAC128</td>
              <td align="left">SHA3-256</td>
              <td align="left">256</td>
            </tr>
            <tr>
              <td align="left">KMAC256/384</td>
              <td align="left">KMAC256</td>
              <td align="left">SHA3-512</td>
              <td align="left">384</td>
            </tr>
            <tr>
              <td align="left">KMAC256/512</td>
              <td align="left">KMAC256</td>
              <td align="left">SHA3-512</td>
              <td align="left">512</td>
            </tr>
          </tbody>
        </table>
        <t>KMAC is defined in NIST SP 800-185 <xref target="SP800-185"/>. The <tt>KMAC(K, X, L, S)</tt> parameters are instantiated as follows:</t>
        <ul spacing="normal">
          <li>
            <tt>K</tt>: the ASCI value of the name of the Kem Type OID.</li>
          <li>
            <tt>X</tt>: the value "<tt>0x00000001 || k_1 || ... || k_n || fixedInfo</tt>", where <tt>k_i = H(ss_i || ct_i)</tt>, as defined above.</li>
          <li>
            <tt>L</tt>: integer representation of <tt>outputBits</tt>.</li>
          <li>
            <tt>S</tt>: empty string.</li>
        </ul>
        <t>~~~ BEGIN EDNOTE ~~~</t>
        <t>these choices are somewhat arbitrary but aiming to match security level of the input KEMs. Feedback welcome.</t>
        <ul spacing="normal">
          <li>Kyber512: KMAC128/256</li>
          <li>Kyber768: KMAC256/384</li>
          <li>Kyber1024 KMAC256/512</li>
        </ul>
        <t>~~~ END EDNOTE ~~~</t>
        <t>For example, the KEM combiner instantiation of the first entry of <xref target="tab-kem-algs"/> would be:</t>
        <artwork><![CDATA[
ss = KMAC128("id-Kyber512-ECDH-P256-KMAC128", 
    0x00000001 || SHA3-256(ss_1 || ct_1) || SHA3-256(ss_2 || ct_2) || fixedInfo,
    256, "")
]]></artwork>
      </section>
    </section>
    <section anchor="sec-alg-ids">
      <name>Algorithm Identifiers</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>The "KEM Combiner" column refers to the definitions in <xref target="sec-kem-combiner"/>.</t>
      <table anchor="tab-kem-algs">
        <name>Composite KEM key types</name>
        <thead>
          <tr>
            <th align="left">KEM Type OID</th>
            <th align="left">OID</th>
            <th align="left">First Algorithm</th>
            <th align="left">Second Algorithm</th>
            <th align="left">KEM Combiner</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">ECDH-P256</td>
            <td align="left">KMAC128/256</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">ECDH-brainpoolp256r1</td>
            <td align="left">KMAC128/256</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">KMAC128/256</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">KMAC256/384</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">ECDH-P256</td>
            <td align="left">KMAC256/384</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">ECDH-brainpoolp256r1</td>
            <td align="left">KMAC256/384</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">KMAC256/384</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">ECDH-P384</td>
            <td align="left">KMAC256/512</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">ECDH-brainpoolP384r1</td>
            <td align="left">KMAC256/512</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">KMAC256/512</td>
          </tr>
        </tbody>
      </table>
      <t>The table above contains everything needed to implement the listed explicit composite algorithms, with the exception of some special notes found below in this section. 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>ECDH</em>: There does not appear to be a single IETF definition of ECDH, so we refer to the following:
          </t>
          <ul spacing="normal">
            <li>
              <em>ECDH NIST</em>: SHALL be Elliptic Curve Cryptography Cofactor Diffie-Hellman (ECC CDH) as defined in section 5.7.1.2 of <xref target="SP.800-56Ar3"/>.</li>
            <li>
              <em>ECDH BSI / brainpool</em>: SHALL be Elliptic Curve Key Agreement algorithm (ECKA) as defined in section 4.3.1 of <xref target="BSI-ECC"/></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>EDNOTE: I believe that <xref target="SP.800-56Ar3"/> and <xref target="BSI-ECC"/> give equivalent and interoperable algorithms, so maybe this is extranuous detail to include?</t>
      <section anchor="notes-on-id-kyber768-rsa-kmac256">
        <name>Notes on id-Kyber768-RSA-KMAC256</name>
        <t>Use of RSA-KEM <xref target="RFC5990"/> deserves a special explanation.</t>
        <t><tt>GenericHybridParameters</tt> is defined in <xref target="RFC5990"/>, repeated here for clarity:</t>
        <artwork><![CDATA[
GenericHybridParameters ::= {
    kem  KeyEncapsulationMechanism,
    dem  DataEncapsulationMechanism
}
]]></artwork>
        <t>The <tt>GenericHybridParameters.kem</tt> MUST be <tt>id-kem-rsa</tt> as defined in <xref target="RFC5990"/>:</t>
        <artwork><![CDATA[
id-kem-rsa OID ::= {
    is18033-2 key-encapsulation-mechanism(2) rsa(4)
}
]]></artwork>
        <t>The associated parameters for id-kem-rsa have type
RsaKemParameters:</t>
        <artwork><![CDATA[
RsaKemParameters ::= {
    keyDerivationFunction  KeyDerivationFunction,
    keyLength              KeyLength
}
]]></artwork>
        <t>For use with <tt>id-Kyber768-RSA-KMAC256</tt>, the <tt>keyDerivationFunction</tt> SHALL be <tt>id-sha3-384</tt> and <tt>keyLength</tt> SHALL be <tt>384</tt>.</t>
        <t>EDNOTE: I'm borrowing <tt>id-sha3-384</tt> from draft-turner-lamps-adding-sha3-to-pkix-00, which looks ilke was abandoned. Do we have PKIX OIDs for SHA3?</t>
        <t>EDNOTE: Since the crypto is fixed, we could omit the parameters entirely and expect implementations to re-constitute the params structures as necessary in order to call into lower-level crypto libraries.</t>
        <t>TODO: there must be a way to put all this the ASN.1 Module rather than just specifying it as text?</t>
      </section>
    </section>
    <section anchor="sec-asn1-module">
      <name>ASN.1 Module</name>
      <sourcecode type="ASN.1"><![CDATA[
<CODE STARTS>

!!Composite-KEM-2023.asn

<CODE ENDS>

]]></sourcecode>
    </section>
    <section anchor="sec-iana">
      <name>IANA Considerations</name>
      <t>The following need to be assigned by IANA:</t>
      <ul spacing="normal">
        <li>The OID for the ASN.1 module <tt>Composite-KEM-2023</tt></li>
      </ul>
      <t>TODO</t>
      <!-- End of IANA Considerations section -->

</section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="policy-for-deprecated-and-acceptable-algorithms">
        <name>Policy for Deprecated and Acceptable Algorithms</name>
        <t>Traditionally, a public key, certificate, or signature contains a single cryptographic algorithm. If and when an algorithm becomes deprecated (for example, RSA-512, or SHA1), it is obvious that structures using that algorithm are implicitly revoked.</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>
        <t>EDNOTE: Max is working on a CRL mechanism to accomplish this.</t>
      </section>
      <section anchor="or-modes">
        <name>OR Modes</name>
        <t>TODO -- we'll need security consideration analysis of whatever OR modes we choose.</t>
      </section>
      <section anchor="kem-combiner">
        <name>KEM Combiner</name>
        <t>This document uses directly the KEM Combiner defined in <xref target="I-D.ounsworth-cfrg-kem-combiners"/> and therefore inherits all of its security considerations, which the authors believe have all been addressed in the concrete choices for explicit composites.</t>
        <!-- End of Security Considerations section -->

</section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized.  This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="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="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="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="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-keys" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-pq-composite-keys-04" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-pq-composite-keys-04.xml">
          <front>
            <title>Composite Public and Private Keys For Use In Internet PKI</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs</organization>
            </author>
            <author fullname="Jan Klaußner" initials="J." surname="Klaußner">
              <organization>D-Trust GmbH</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>The migration to post-quantum cryptography is unique in the history of modern digital cryptography in that neither the old outgoing nor the new incoming algorithms are fully trusted to protect data for the required data lifetimes. The outgoing algorithms, such as RSA and elliptic curve, may fall to quantum cryptalanysis, while the incoming post-quantum algorithms face uncertainty about both the underlying mathematics as well as hardware and software implementations that have not had sufficient maturing time to rule out classical cryptanalytic attacks and implementation bugs. Cautious implementers may wish to layer cryptographic algorithms such that an attacker would need to break all of them in order to compromise the data being protected using either a Post-Quantum / Traditional Hybrid, Post-Quantum / Post-Quantum Hybrid, or combinations thereof. This document, and its companions, defines a specific instantiation of hybrid paradigm called "composite" where multiple cryptographic algorithms are combined to form a single key, signature, or key encapsulation mechanism (KEM) such that they can be treated as a single atomic object at the protocol level. This document defines the structures CompositePublicKey and CompositePrivateKey, which are sequences of the respective structure for each component algorithm. Explicit pairings of algorithms are defined which should meet most Internet needs. The generic composite key type is also defined which allows arbitrary combinations of key types to be placed in the CompositePublicKey and CompositePrivateKey structures without needing the combination to be pre-registered or pre-agreed. This document is intended to be coupled with corresponding documents that define the structure and semantics of composite signatures and encryption, such as [I-D.ounsworth-pq-composite-sigs] and [I-D.ounsworth-pq-composite-kem].</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-keys-04"/>
        </reference>
        <reference anchor="I-D.housley-lamps-cms-kemri" target="https://datatracker.ietf.org/doc/html/draft-housley-lamps-cms-kemri-02" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-housley-lamps-cms-kemri-02.xml">
          <front>
            <title>Using Key Encapsulation Mechanism (KEM) Algorithms in the Cryptographic Message Syntax (CMS)</title>
            <author fullname="Russ Housley" initials="R." surname="Housley">
              <organization>Vigil Security, LLC</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <author fullname="Tomofumi Okubo" initials="T." surname="Okubo">
              <organization>DigiCert, Inc.</organization>
            </author>
            <date day="20" month="February" year="2023"/>
            <abstract>
              <t>The Cryptographic Message Syntax (CMS) supports key transport and key agreement algorithms. In recent years, cryptographers have been specifying Key Encapsulation Mechanism (KEM) algorithms, including quantum-secure KEM algorithms. This document defines conventions for the use of KEM algorithms by the originator and recipients to encrypt CMS content.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-housley-lamps-cms-kemri-02"/>
        </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="SHA3" target="https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf\">
          <front>
            <title>SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions, FIPS PUB 202, DOI 10.6028/NIST.FIPS.202</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2015" month="August"/>
          </front>
        </reference>
        <reference anchor="SP800-185" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf">
          <front>
            <title>SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2016" month="December"/>
          </front>
        </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>
        <reference anchor="BSI-ECC">
          <front>
            <title>Technical Guideline BSI TR-03111: Elliptic Curve Cryptography. Version 2.10</title>
            <author>
              <organization>Federal Office for Information Security (BSI)</organization>
            </author>
            <date year="2018" month="June" day="01"/>
          </front>
        </reference>
        <reference anchor="SP.800-56Ar3" target="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf">
          <front>
            <title>Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2018" month="April"/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <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="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="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="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="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.ounsworth-pq-composite-sigs" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-pq-composite-sigs-08" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-pq-composite-sigs-08.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="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Massimiliano Pala" initials="M." surname="Pala">
              <organization>CableLabs</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>The migration to post-quantum cryptography is unique in the history of modern digital cryptography in that neither the old outgoing nor the new incoming algorithms are fully trusted to protect data for the required data lifetimes. The outgoing algorithms, such as RSA and elliptic curve, may fall to quantum 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 using either a Post-Quantum / Traditional Hybrid, Post-Quantum / Post-Quantum Hybrid, or combinations thereof. This document, and its companions, defines a specific instantiation of hybrid paradigm called "composite" where multiple cryptographic algorithms are combined to form a single key, signature, or key encapsulation mechanism (KEM) such that they can be treated as a single atomic object at the protocol level. This document defines the structures CompositeSignatureValue, and CompositeSignatureParams, which are sequences of the respective structure for each component algorithm. The explicit variant is defined which allows for a set of signature algorithm identifier OIDs to be registered together as an explicit composite signature algorithm and assigned an OID. The generic composite variant is also defined which allows arbitrary combinations of signature algorithms to be used in the CompositeSignatureValue and CompositeSignatureParams structures without needing the combination to be pre-registered or pre-agreed. This document is intended to be coupled with corresponding documents that define the structure and semantics of composite public and private keys and encryption [I-D.ounsworth-pq-composite-keys], however may also be used with non-composite keys, such as when a protocol combines multiple certificates into a single cryptographic operation.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-pq-composite-sigs-08"/>
        </reference>
        <reference anchor="I-D.ietf-tls-hybrid-design" target="https://datatracker.ietf.org/doc/html/draft-ietf-tls-hybrid-design-04" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-tls-hybrid-design-04.xml">
          <front>
            <title>Hybrid key exchange in TLS 1.3</title>
            <author fullname="Douglas Stebila" initials="D." surname="Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Shay Gueron" initials="S." surname="Gueron">
              <organization>University of Haifa and Amazon Web Services</organization>
            </author>
            <date day="11" month="January" year="2022"/>
            <abstract>
              <t>Hybrid key exchange refers to using multiple key exchange algorithms simultaneously and combining the result with the goal of providing security even if all but one of the component algorithms is broken. It is motivated by transition to post-quantum cryptography. This document provides a construction for hybrid key exchange in the Transport Layer Security (TLS) protocol version 1.3. Discussion of this work is encouraged to happen on the TLS IETF mailing list tls@ietf.org or on the GitHub repository which contains the draft: https://github.com/dstebila/draft-ietf-tls-hybrid-design.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-hybrid-design-04"/>
        </reference>
        <reference anchor="I-D.driscoll-pqt-hybrid-terminology" target="https://datatracker.ietf.org/doc/html/draft-driscoll-pqt-hybrid-terminology-01" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-driscoll-pqt-hybrid-terminology-01.xml">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Florence D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="20" month="October" year="2022"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-driscoll-pqt-hybrid-terminology-01"/>
        </reference>
        <reference anchor="I-D.ounsworth-cfrg-kem-combiners" target="https://datatracker.ietf.org/doc/html/draft-ounsworth-cfrg-kem-combiners-03" xml:base="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ounsworth-cfrg-kem-combiners-03.xml">
          <front>
            <title>Combiner function for hybrid key encapsulation mechanisms (Hybrid KEMs)</title>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Aron Wussler" initials="A." surname="Wussler">
              <organization>Proton AG</organization>
            </author>
            <author fullname="Stavros Kousidis" initials="S." surname="Kousidis">
              <organization>BSI</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>The migration to post-quantum cryptography often calls for performing multiple key encapsulations in parallel and then combining their outputs to derive a single shared secret. This document defines a comprehensible and easy to implement Keccak- based KEM combiner to join an arbitrary number of key shares, that is compatible with NIST SP 800-56Cr2 [SP800-56C] when viewed as a key derivation function. The combiners defined here are practical multi- PRFs and are CCA-secure as long as at least one of the ingredient KEMs is.</t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ounsworth-cfrg-kem-combiners-03"/>
        </reference>
      </references>
    </references>
    <section anchor="appdx-samples">
      <name>Samples</name>
      <t>TBD</t>
    </section>
    <section anchor="sec-in-pract">
      <name>Implementation Considerations</name>
      <t>This section addresses practical issues of how this draft affects other protocols and standards.</t>
      <t>EDNOTE 10: Possible topics to address:</t>
      <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>
        <li>We could talk about overhead (size and processing).</li>
        <li>We could also discuss backwards compatibility.</li>
        <li>We could include a subsection about implementation considerations.</li>
      </ul>
      <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 key establishment and content encryption, from online negotiated protocols such as TLS 1.3 <xref target="RFC8446"/> and IKEv2 <xref target="RFC7296"/>, to non-negotiated asynchronous protocols such as S/MIME signed email <xref target="RFC8551"/>, as well as myriad other standardized and proprietary protocols and applications that leverage CMS <xref target="RFC5652"/> encrypted structures.</t>
        <section anchor="k-of-n-modes">
          <name>K-of-N modes</name>
          <t>~~~ BEGIN EDNOTE ~~~
In the context of encryption, K-of-N modes could mean one of two things:</t>
          <t>Type 1: sender uses a subset</t>
          <t>This would mean the sender (encrypter) uses a subset of K the N component keys within the receiver's public key. The obvious way to combine them is with skipping the unused keys / algorithms and emitting a NULL ciphertext in their place. This mechanism is straight-forward and allows ease of migration where a sender encounters a composite encryption public key where it does not support all component algorithms. It also supports performance optimization where, for example, a receiver can be issued a key with many component keys and a sender can choose the highest-performance subset that are still considered safe.</t>
          <t>Type 2: receiver uses a subset</t>
          <t>This would mean that the sender (encrypter) uses all N of the component keys within the receiver's public key in such a way that the receiver (decrypter) only needs to use K private keys to decrypt the message. This implies the need for some kind of Shamir's-like secret splitting scheme. This is a reasonably complex mechanism and it's currently unclear if there are any use-cases that require such a mechanism.</t>
          <t>~~~ END EDNOTE ~~~</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 identity (name), but containing keys for different cryptographic algorithms. One could imagine a set of parallel PKIs where an existing PKI using legacy algorithms (RSA, ECC) is left operational during the post-quantum migration but is shadowed by one or more parallel PKIs using pure post quantum algorithms or composite algorithms (legacy and post-quantum).</t>
          <t>Equipped with a set of parallel public keys in this way, a client would have the flexibility to choose which public key(s) or certificate(s) to use in a given signature operation.</t>
          <t>For negotiated protocols, the client could choose which public key(s) or certificate(s) to use based on the negotiated algorithms.</t>
          <t>For non-negotiated protocols, the details for obtaining backwards compatibility will vary by protocol, but for example in CMS <xref target="RFC5652"/>.</t>
          <t>EDNOTE: I copied and pruned this text from <xref target="I-D.ounsworth-pq-composite-sigs"/>. It probably needs to be fleshed out more as we better understand the implementation concerns around composite encryption.</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>
      <t>EDNOTE:   I don't think this applies to this draft.</t>
    </section>
    <section anchor="contributors-and-acknowledgements">
      <name>Contributors and Acknowledgements</name>
      <t>This document incorporates contributions and comments from a large group of experts. The Editors would especially like to acknowledge the expertise and tireless dedication of the following people, who attended many long meetings and generated millions of bytes of electronic mail and VOIP traffic over the past year in pursuit of this document:</t>
      <t>Serge Mister (Entrust), Ali Noman (Entrust), Scott Fluhrer (Cisco), Jan Klaussner (D-Trust), Max Pala (CableLabs), and
Douglas Stebila (University of Waterloo).</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-composite-kem/</t>
        <!-- End of Contributors section -->

</section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V923IbR7LgO76iho44Jk+gQQIiZYo+M7MgCFkY8WaCGtvr
VZiN7gLQw0Y3pqtBCmNpYv9hP2A/Zv9kv2TzUtcGIGknzj4sY8YCG9VVWVl5
z6xkFEWtOqtzeSYG5WJZqqyW4u3wSrwuK/FOSTEq4H+1rApZi9u3o1Y8mVTy
6Uzc/ui/INeqlZZJES9gorSKp3VUrgr1XFb1PFr+PUrM0OhRLqKjXqv1jfiP
P0SRUHVcpL/FeVnAi3W1kiKK/tTKlhX9pure0dErGB5XMj4TY5msqqxet1QN
vy/OxGh4/7r1PDsTl/2r23Hr8fnMAhtdIBStJK7PYJG01UrKNCtg6EpFsUqy
rLXMzgT8fCOSuICnUsRVFa/FfjYVcZ6LtVQHApAwj9VczGUlW0LUZXKGX8BH
BVur5FSd0RSpnMarvFYwwny/XvDX+GsrXtXzsjpr4YIR/VeIrIBvrzrixiBK
P2ckXmWPcuOrsoINDAvCjLjMFoDQVH9lzkV/q58ioiRgoHdydCTGZQ7IrsVd
Gafif//3/yHGKzy87tGRHp0Abs/ETV3Hz3Fb3BR1XGWl+Q7Os67g60FcxGls
n6YA69veW/HihxP9TC7iLD8TC9hAxxLBf5EMVwcoobWJhr90xA+A/AADfynn
hf/0/6fN/w1g78wA9nDfRVkt4jp7kkgJd68HvW73lf540js9Mh+P3ceXJz3z
8dUr8/T0qPud+dj97th8PO4euY9d/DiKLjpf4Ma1io6Ow7HzcqVyuY7yeLFU
UbJQyLRVBmwbjstkPdWDHtcTWUWJrOpsmgHPSZiVgBm/6b9gstdSZg+eRC/E
GPk+rlIQJLJarGrASllE57GSqXiDHAdfi+GHWsKoSS6jm1W9XNXi9apIcKRq
i9ej27G4fXcueke9tri4GcFZdl4e9U4Pr0fj+w5+3YGv9mhxzX/CJ6W9a1o0
zkFmKIBuBeRQTi1kikC4l8m8KPNyBoIB5z3g+VLY4pnor2ZIi72jLh8/kMwM
CW5e10t1dnhYPOXL1UR1igwIYFY+HeIHfHKI0IVwdpbp9L8hwm5Pj46i7unJ
NqxdyAqIJ3VoOBMJfPN22BZvr/qDtrhfLXNp8XcbVyDJZI4PAjz856LhQiZy
AeePiHj5f4mI8VImWZzfriY50g3uifEyvu1oRCBmYNafOy+ZAXy0jIops1RZ
iNrBGIn++LrTFbJgqS/uVrkEZNFqU70Q7hIILktAbPjDxP758O6gjbxeFjA2
3/h+AN8TWi5gG/B8lak5nEpz2AUM29MAM6auyyeLKSMxwiPRhzK6fxfdGzEG
hy5VBjt1g0bjm8PRcHAmTk97J1H3TM93Ph5Fw8EgJB06O9rHD6sslXlWSBwo
7u+ioxddEBRimOfZsgZEDFbVkxSDar2sS5Bey/m6I/4qK4XY6nW6R7uJ6LVM
JRCbuJkCeqWAUxH+2RjNDbgdjwLiAchPo6OX0VGXiJ8O/eRlv2pIjTsJQmuB
0oDmw/lv46yKfsoUmR/RECwJoCE1h0G1GCdzuYAzeKfwPOCYkkoCXV+WM5Dq
9XwR7DFg6WWV5QTU/xO58Z/HGIQjYo2WNaaGF9c398MzMV2B/aLWoMI+EKbq
eabQRIGTT8mUcQDMABurCWqnwySelIePVbxIy+ciqqZJ72XvFZljrcwcpdVc
Jy9fGM318sgqpu96r16aj98dn1ptdGyenp6cfJ1iUtkMVMjpFoVT5yqarydV
lkYpsMWs2NBfaQXnXeY5zFiboWAULjI+ECC1XSAk02pGFioAMgFsVQADECL+
RIDfeAImRZzUrdb9XIKBA+TDkqcUAHYd/X0VF/VqIRKPuASgflVkfwfLNoOR
8B4cRl1Wa6SZBVgQVSHSDI4B6Cl8D0fHtSgkHJGs6NUyT0W5qmclUnVR8sNC
PsNggBgfxvmsJAoHMqwkUcKaLWk4eoSzKkFO1kjtsaYNKSr591VWwQB6mmdT
WWfAPR2B27TruanbQq0SUDFK3I37RO7SSJAEJUhbLMCQnqIVDUsGWInBClur
DKZ4nme5pOUt8AESvZ1MYxApoPLAvIizAqQIUCoYA5OyntMEqwLQmK9xCiBS
4Hw4lkQhfM8AGP47B8Z8RoQgsKqc1vRLtgBtifKC+YvxPY9BBBYlfoChK5Rn
GYoUmBREGCyBuMF9VSDlETsiyWOlSMDyFkE0rBEXMdiSySPLg3ApMVnNVKfV
GoB8ycDacl8DyRHynkGS4SJ5vIaz9wgD53WYoXMgsMGH4fVg+HO5AkIpJB85
mMbxI7k0QHGIHSStskqRpkqBLFcB+hWfBVHARNJpMKnAJCuSopoOY3GLx/Sj
PqZDcV/FaaYl4hvitnZzSPCrGQPEx2xmsQ+SqZwi1aG4KpMVIqTN6APXCiGN
Czb+WJgBaoXSKh39CEB9nVndzpwvljHCNwP6Q1soFXtWyOwBDcKSYgGeWwb4
341mJBYtEgilKA1xbUALvAZGNHAESCKkEEkbg0dofMRLtcoZoAUoBIBeLcQ+
uNcH3snBvtfkg07gCOCsEOOxctPHNRxPIsrJ35Bx+QU6nBKEnMjlk8yBlFoB
1iyCcCwIrVWCoDmPfZAtYeu1/FD/Nc5BNAEzAjgZrQrCAECXmlpAOCCKUfSD
i2TeUiQ7ZAwvEToLXNMirAOW+xLUVlYD9jNkGoWzNRBqFBKvreZEtAvw2EAs
glVtow5IxyCLXmthtVxVsAcCj48EaRNQClSBXxvJDaKPbWQxBfIWv/+O8v5z
kv7TJxLV4IBsYhM+g9wB60NzFC6DljYAn2kZZKkKz161HM55m8hzTRg2PDEA
AYkdpxtcjXFTYPZkSxQ/aEx5NGRn2+GrffqEm2CjAGYEXPW17mKFTupskaVp
LtF6GMC0M4mbFE/a3KMgzb+LO7ko0eNA8VHJKbALkAaFOWYSsIYS32yhA8P7
KaJIyVwy7hM4bxgVo0CVWmyjtpFkN5PqkoZUfGHQIaMGSKAq0xVP9fs3SiZR
ho8+tVoXWhbPkWfiQmVfVMRtFjBwYrCVSUOf0I40r8hiBmeK5LVDHHwPaoWn
KUBAl4C5yle0CJAViIFK97QmeKwZqBYZvQENtYgL+F2rUoAiqxoKVTyB2Qpb
smoTAEAtEeeqJF0VLE8TBHio5DIHHYq0jNZIDSYuSR3SdQ09B6YyKKVizcBo
XZeiRfWE0h8eTrMPW/WZeFfkGLVaVvKJtNoOBDrLyfDsvMxY4IBAplPkEayu
WT54wsP7vi7byJyIAsBEksu4AuHzBJOAYaeNJmenLYEUS9A8WU3YAyKI0yfA
UDyTCC6KNBDDsCnwVL5tgg+uE31hBQCSvSTesgpkSdY68rIHb4fNxRTOoFyT
OGHRpcUFv0NSg7brvgFWQwgQctbAu+wjokUykupnwMIcFR3yM/K56Fu0W9r2
SB+8962cZFClSiCAYF2r6NjwczA2AcJDmTRMUEO/RLi8JJIsyJ1czuJk7WFj
Yz5Q71WN2JcgFGRHiD7QNVt9oOPhYPBMkQIKhppol8nAwz0bS1vXwVAvQJzg
yysO25GgBtExWdXGfEdFUGWLNnMQrokbfSzK5yalkk2WokCNqzVN7owtUDKR
uDKU+cVTWAPyDB60te60gTZc4dQBBiRihRSdemzGOpBPwlmraMjQI/98o5hM
Y19ubepD2MQT8AOaC04nwXRxmoK5oDwUbKM5MYH/rbKcYiXl1+lFeIUXNVhi
h5RoEL5IcNWptSjJE/iiVQewlIEV1zDZSkA/feqIczCsn8m5Jyu0ziZZjrJA
y54UziOpEbkoJAH1RCuBFUsUpO2xFZtyIAZ+/x2V2sTMHvHsrL13myC4UVK/
cIjxEtVnrOEB54ptWqII2lIQF0GjrQCDEbaGkgYnrH0e1hYQmTWwh9u3o5/x
HbRGrEXDyvkbT7CMrb4fGH3P2toaApExBD6xMHRCzpFK4AwY47CJSNB8FSkM
hTI+ScCPIYooNVEgD+CDmQl1KXDfux2QFfqY0WP1VsIda2pOxT4eEg4Av3yV
g0ZQ2T/YF1xgbAfk1wG6tnUyN5YfRmTE7Y8DcYlmuHgRiH1Ydhiq8YYFbBem
uYL9A2RkXWsjnNb5VQdb3rfFeQWctCzB/v9VB2Pes6M0TJlMf9UhmPe8Mijn
EFQluiIK4CWIgs31Tl5GEzTMaAYjummenOc4hjlONl98cXpML4ZGjNKenSc8
JhgOALU1kfWzhAOlWfD4nJBSJnKolwSEhGoQrRTP4PKjFPgdaRpNh+jEhiBZ
kQ1+V6rtoWcADiRZSRxBp+i2DFgDTy3NkBiU2H8d58BEJ90eLfUWkyDwy0Fw
uO3tSG0A0g65G2ZFc51YAFOTSayQ75B1OCSpbISALGutAOCb1WxOxnrokzjm
3eAs43FY99rymvpqj+Wz4zCUB+P80HvoAAIkbBmL59jY4jJWWb7WOu0FyqBF
WcltzqYie+45xp0lmfbQygJe5tDA2nkY6IwaKiS6SEvJAhxM1iRfpWitkGmj
momCrV6K8f4qKTchJLsPLNX4Q7ZAMUJ2A6kUltVtOljN3zaKsUMc6u+3CUT4
jGmOVYU6H6yi0VSUFKgJJkB8oyON9Ig+PkZF6uY+tQ8+IRW1yGodM0QAMdPO
WXYBR/xIIrYCHxgWvKfTakbTyD5SjRUYDgcux1LojJkECyZUsn3iGgMABkN+
0GsnMgCahtsbuJBKayl2gUGF3buosNZYXpz4E7Eb6lDYMYjUvat34/u9Nv8r
rm/o893wx3eju+EFfh6/6V9e2g9mxPjNzbvLC/fJvTm4uboaXl/wy/BUNB5d
9X/ZYyG2d3N7P7q57l/ubZ4/YpRdEqKwJSY6KIAEIha07oTRdD64Fd1jYFSd
dQaG5F8wgQy/oOPFaxHr8K9k4YKBATY1zoFiBewjDFWjcFVIL88FJRQ6W8wV
PM1MkYVBfEJSyUO4F5f5QsSe7KERGtMs5tsNZY9DmbTIeGmiCAP458M7lz0T
n8n7MeasYPqV0o7vMVZ7ORpe3/uT9MFJtrFkksAZBm+JOTRvxw3rE6ip481A
OMsKEj0c8ZuBVdfGIAwSOHzSthl+BPHGHxGYm6vz0XW4p76LfRkOUQJOyFnC
ah5XFJ7BbJjyXg3im6FZHLzTaV2Ea342AboLk2+HV26O/mdjpeEUbC0/gidE
FAHWqQ8Lp8owGYipxyq2Oq/dhESXWyAswKrAvWI8HNwN732oniguaq1nmVoj
hXzscrFYFSTVtPuJyEbNTYVEzdjBI3mKZADn7Aqw3QG2hPaSyW/FRdbkNXK8
FaazEC3RIHqSzqFsxMk1xyWSpiGGC4872MtTFrjAnLcw0Fq/R4fhwsKwsTUl
SIQiuofB6V05vxRD3epAi1Y6t1brJzD3yqoCutSOijYEMqNq46+InnuyY3tS
8NMntKiMeUeAU3Q7PJdlhWVEiFZiXy2xFOsc1OpO65xR1dK/C9zwD7LYPxDR
n8T+8hGc88eDMyAYsPcmpNpVrbHKLloYG2nrA2XA9Ajife84lo9suuqjo2fq
sWMgYHTD2gxDAt6lUltgCFG4A4Q6fmRWBX9iVW+Fo6TaG8KeTQCIxFRZUUbN
pzQAxoJ6IQlUBWhKagJXKQQ0ldtBawBlS8QYtAAdHCzzAWoAy0DZIgoNGqVn
Mh0iIrMahqaBGJNAnRULgK1+OLJsg9WQii1hOBuOqBloT7v/2osncZ9iNPxJ
mqAFiGfQlFKZaCERLOpzCusZ4cWvpNl0inlCYgJOgnoOEGKHQkhLMMV9xqGM
zYcYl7KSioAHwO/xhTDZEMhdXYr26dMBGwkUN5sBhxBOPjt1H4d91dQdsW3v
aNkbf1+5CBx9RxHbMPUCcCSUzcBIXoyAZDo0pgO8FXhfFQbkQn97us23EPV6
KTEMQE4qYjrE7iYqvKCcTulhwK+sjV5FgWgiic6AAb8HBUx/5+HZ9CB8hZEv
p6Zhwo4nECZO7GDKXsALKVBJk0E5bgZYLCvKvBsSwKlQQrJgU8SxSf0952Dd
gg22hkXtBBdspYQsr3UVb5gP0TPv78b9CM/8V13liHq5vwuv/zIqCiGXWBRU
aR5BZxAF+G8SRfhvUlN2iBQiXi3lYQjJW5Qh+NrBV6BFc7YJWoZ7AnL2lmA4
DMIQA0mgdzUNo/VhfE2v7iEgnHa4EIk8nsLPoUx22nyhknTmAEVhHX44QGW+
bQdHYnCCmwSRTEVnJL0Yy5zPiD1XbjNvy8UJ+JDD4t7GHas2bJzP2q4tXbcT
Z4ULKy3JJ4cPU0aSYhntaQQTWyVst+I0XnIynGWSp4G4/kLsj64vosGg3zsw
6mwhY1NdopWSZkTSMcrzuxsLozhFIW+4uOZcunySRWuWYZqLXGMNIGydAljs
/nuCzkvbO8WLKYjztT6JWotdewqBiP5y6rzdiDcRInfGcLMC4Mm4kMEgy50I
7Ri/MiFusw6qxpuLmzOuCGBKoDRALqjmRmXKVlQAzut5mbIpZ+jSl3QcsdPs
x2UHCGSHjFrYXRxZsxcRY03Y8LkOZ3O1qaf3OcDfVE9shYKg/+c//9naXAP+
H/Uvf7i5G92/uRJnZ38Uv5P1MroAx3P0ejS8E/e/3A7FzflfhoN77zGN+mv/
8t1wZ4UHDbnt3/WvxjyJW1kusE4YZAJ4QrYUjMe/O78cDUA2/zIWv4PMc+CK
TzRgfDW6GkaD/i1+b+G5EOe/CLDEAR8uDCg+wTu4b8aY030UgqT4WqxD8uiz
hriQuc5dWx+/hdKBimVC9wSx+1GMRz9c9+/f3Q035xAfwSi17sZHAaMj8yM2
f7xvI/ERBnuHsWUwbu2GD390wZACoJw6nq4bTDK2mVSXSiGA+Ci3//AaY69I
53x0L8b3d6PrH8bbqnJcvpZdWlpBU8KOFYgeJNWiIfuADbSNXHQK3SUxMHdv
Swl5GY+Atm8ktN3s21ypmK4S2Qxk293QAkSAvxEBblnguqx10NOa2TzLR8Hx
v8YNpg2de9X/haoElCqTjAqzOJK1NX3fjDJ8IXT+np0CXIJi0VvWadQVcI0A
iUd2Aeh4y1WVYP7At8Htiz93To5eCf9eBhkDO3KjlPbCPM2IFUtONhp5Se2m
cNeoIRLXdrmz0QjbcVWtw0Ssp4cwnAiOVOEJCF2v52UjkRqAaHXJRI0K14tq
4iKmctaShbKoB/P/UVbRbAWefCYjWMvhX4cKMJXynrOZHMh4p2JwHM6zGmjh
JyRn1o4hUdApEPyuyIv1vKtKRHJY0WT7pugH3yhE62c4kIE7j12hqYNmjNPN
SOFnjfoO6xKBX4PpSwhGKaefilY/DRxDmkEJHYnWsSdT8+YzRLNAkPXfrq+b
WV3++t6+zaEXOAHYcWFzKsTZHk3wo5Zn1W5L92CKgxzpSi7hvLFmllCndbD1
MrSa3bkj1K/j4Y/vhteDISiM/zoU+71O56r/84G4eS1uBvdDI1a12vLQY4Qg
y0jGTdKUkPQlYCYMny3de34OzMFNhonmLhsrINnaNCWcveGn7ZHKrD4ZsebJ
ZMXogHWKTre1RZp/Hh1bJmTbJNDTbfE7/A5jx7K26l579N8q8bC57IMrNyWy
xpKEWLvHKl5sT/gJjG8Zu1KP43rm2PrWnii1q3KAGPic0kSvSV66rF6zHoHz
ikRnWinB1Bww4hILAAtlKYUFDDXb5B8VWiuZY46ZjHLv3HVZv6slBUmZYWIO
DB/5pKvWTJqXXta+Bvo2OcYKWLgSfF4pt8IMHJoZsJaSmOkchVV6LgFFlVOu
bKUswhzb6EKZo3B43np8SKx6WkparL2aZsp7N5N3gHIuKrdmPpbMUGrJnsEW
atPyKcwwtFpXcbF2tdCNXGNQLaUDvD7/UK27lxmfyECmcCi+BGBr7XnRcWfm
t47WEc1BHsmwEL8AW9HeRPMphSAJoRCcOzSa1ZwQrGUu99Cu3I0etmO1oCDe
JzlYxzM6m5yrrybrGqWJwtIGXN4Xb9pb+TNmjlXZJkx9q3QsOV+zdQ4+FDjA
hcRCK/Qp6V6CxYCHlc3tE3KMdHfIkOnXIkGbF5PMzeLWa7sALJWNoyVANAAi
A0fpF6ZZBV/yOVGJn60joy9gZFvfDREYypAFHZadOpfx7rnzePvU9NwbF5DO
yKsmlDrnwAyccCEX7Pup5Hq3Zs2ZWlHByLbbK8T6JvXuSJuszCSRS31r5hxO
gS4wDu/Y40V+GBjn3zq71sX/ZFxvOIsljDDXx56fnzsSTL64I1dVucR/Dpf+
lbWgtNAvKsRKbqnrEyNVr9K1Tc8fd3ptLF6cOylpSjkmEuRhBiYvlYzSEMAb
GaTaMkeb8h+yKsU0zvIV1+Ew4jZy1H44Mig9oMK8rwl62GsTIDf44gZpBjJ/
c7xpuNZWyNuL1/t0iRxw9/GjePyti/90Oh3+rcB/ptkHmWJ8vK2TGGiHHrRa
pG1aj79l4o/izb5S8AFGJ/Vv2QFrWBpwhtX6D7AOy+SHNw9M0A9urgcn3gBR
1NfABNvwJlFWU8BJF3xolUMXK3BmCx3Ov7apeArPFBT+0vxv/cHJOripQrNo
HDwgzmhGs9yLHlVFsYv6cPThiH+6D/Tax48e7Cq0JFE0osdbyRmaBVUgV0Iz
aYG1xoaUcFXwl8BTDwJfASGYpD7raWMnk+kA456A8sl0eba3PEKbHe9kR5MY
pC7yub2cpDTN2kUpZhFwIPx68Rr++4b8WHeEFIIIIhX860d69tH/BkciAN3e
6WHv5CWO1L/SW3gxP8LnHwX9V4+Gz4cvTo/NaHrRjMY6t49Y3BeMxqe7R9N/
W7+fiW+AukIG4ru9f9zzN672QNLgVCIL/CKqwBvfCn0lXPxqr8m/51uKD/jS
/tu2+LktLttifPDQtLTd/bDA3NZ883BGZ9cfD0aaCLXQLsi6nOoM30LcYzTk
ZnSBt10eftav8Rt7Ht1+mcsf9trakHzYytsPQdkCxc5pzUtYk2QnkInlCetT
+exOw8cwXC6WoDes6kE/4Hz4w+haXxgWJEVYZ/BVDMYYpkifqbDQhpIxYhFn
C11yywZeWKFpcMU5WxQfHfEapDjWOON1TKyu7yDOTbXkmU+l5vl3L0/PfHo0
z7tHvWOf8ngzw+uLYCvatqdYSHsztr1xU9DZAditY83y39AriA8sX3zWIXot
0JWCE9OA7+9laWS2Ew0HF2+iWyzz1F/DOZOrFBKH4T889K4+9O5B85ue/qZ3
EGoImhDGtMXentYCfkG2s5uNd4qx2CxVn7QOZFGvVosFaKl/6HuC6FY1ax03
QpWeKa8FPIW+0HSyY4A9bFmprpbZdOJ0aiR+BMG61NJ4tzeGdYZEoOw0F6W2
0F/TsQWRVNZ7Y7DE8B//G/L7KEQLANrbbCnNeX/OMPvRFa6FQ21OSqxeLzmT
mJoLVV72H9gUOwL0r/sRVurMkGlhmTGLJ6cTgGHp/pT22E3A9sxMKf4tr79H
TwtI9t9m9fduhTHr171ep/uyc3p81Ol2ut3jo953ndOjzkmnt0d7g+kxL9KY
BTwCrBMFQ4yufeyaotNl/AQyeQ/OI18tCsaYvSnnvA8V1GY5mxFrtFivGaG5
I6bdjNtuGflRn7SjcVI0fMh++DzUo1oRfi7Cv2X9qPnTyANsDNv6AJXkZwVD
c9nNM0O9ql93w+w85kGo5betOjHXBfC1qhv5hkBz1d5nVrXzLGmextrNpX/u
nZx0X23f7dalX2xfmufx3tu1KGiNiIoJrC3yFYse20XhdTfMFCUEixrrqLlo
eLQbS28uerJ90a1H+9lFt52sMcOai778zKLbT3bX0t7JbsPz5tLfbV9668lu
WxT1vsYyXi7ZtvDmoqd2UTIbQiSTkRusyabqtjUdkuEtH8mba776zJqNab60
9M/Hx6e7SXmLuDjaujRO478Wrulb5mjpGKM8DFpTdQmWQqF5ThqCDQiuR9OR
QqpLqNb1nG92S30Vw4YprI2BJXafD7xanSc/YMxCm2lUsqe4Lw5de0EjflWg
VYY3CEyZgQ4jdEA7SG3UY0SMk1sic9cAWGXFquhG/CWYeaYligXQV3PmKgLt
2mFIbTGOwNTAGDM14gmjkq7pirM/nFWkq5t4Xw0v5Tekot/OBGl5d3dFF+iz
j2prX+jCRlhYi6/jjV70V2n1jWtzWACt1yGXCxazobjPNIkCXEzBkYaNhZfa
xf5wMBAwWbOq3pzASec7MEF6CNyvfl+j9x0PEOxVdSgs83wGJkzh9V15lbUK
AIy3/V0wHHdeAHUgBLp71ntENfERLOXVGO/qdPfpE76g9QW8YsvY8LGWcIfE
hvpLbNT33gV0R0i/mTRFyCEiyNq0kAks+vHToroAzVwsykM2UuiirbFYju4Z
KI7jFiu87J5K4FkyBnXs+M8tDrFfE2NhTHm7Vm213vHdho2yPczNSrpVF1s2
9eo6MHTy8AN3jeAeMC5N9tDw9+2c7S+G1nbM6NXPgGyjsu2gTN1WqbMvleKY
i7iOtw9qecmsXXvowDoP1n94APShUK1U/LAtyYub0ztwI8nydYBnqnt69AKc
QRTAUVDOHdlk+z74hvDq/vGBD6SX//LiIIg9bzXKLaFcb92pOEhbasiajwOk
rqkbIUFj+hESmjcft80bl5yNCH7emscGfPLebQXxww4yfGDH/mErHA9OROD7
ah6/iEDn6tCoBcQfhl97WZbRtwt9TQG1WTgJV2BQ6zCQ+kALWjRgTLSY8cC6
jJaP2Yfo6MhEifOyfAQmzB+5pDmeYE1fgVf2Lkgi02HQhesbTL/hUWEk4M8O
pjGVIVNwloSvDaK28f2EAhTlQtfVeaeOsQDK91HDBsq/bSYPSmC0iIKf3NHO
zqH8PAIA7nJAQRspzOBR9SVoEsQIxYI0nHkG0hubGNoKvlo3XlI1Ky28+Ik1
P6taX17VV+VZdV+x6q7imhuhgWb5mxfKpawTldNiHJrlWPimjoF4mp4DRzSo
1fqPwc3FUIzv+3f34z+1Wn/4g9XtKOCi3lHvRQdeNgOH1xc4TFcFkM8PGpCS
a6ZQVjerAcn3qVHu5uV9bZxgsqZJSMmb8IQxEwLj5WETsAdGaePW4xaQGpcf
XUvGcBwrgdsSrB8OfVxgjDHhqCn62pRFIlVj3W54yWsClq/bwTWStl9/ROVH
zmCypuOO2mMv/jOa6m4wnHJ12p07dqCEtYD6FxLapKjA2qWlgaW6ByazX064
Tw1X5joqNzWxsW9EmIZxaBXmWKr2VD5SPkBn8pwli139cqtzc2xNYVbimwQb
3d745rLOUXObjN1tK7gioLQMXK03qpnxMhplENEmdQeGs3qtDyQXENOVcb+Y
YaNPl8Ur6Y8izZ6yFCNJIKQ7os9d6NreEW4pjmsQQdgtzauhRmyYIpBYLLIP
RCZA0mlIhpjm8x95hnerNXZyIUgY6hA31XBkmO9flzpKqRLAG9v3G107XHV2
ojlFs6x/inR1oMTLrhlyAFV7uRSZMr1BPQ1zFVMU0NymxmtQYnB32WioktBB
01V/W518c4dyDcsfkPOBoUH8f4sNdyQXuzMpJD5buwJparIEOMM6E5gIaVWR
+piXpZK6zMKPoTWzpivEnq0cMcH1wb9YOG7ixDpsqSvDlWlXiB+370jZu2Je
sYwxpIlFYurzJQvTlcZVsmD+kPrBmmzHdGstEKLbl6o7JGYoWTH4h7kOErEk
gFAbgI+WfogU/45B+PML1h1hgc52LVJES+zcZmL3ZjmzLSzVwAuj2C2DawOo
+yHdqceDQ0NFxNMpvKb03QCTk2W69alTk6foHp1h10aVcUp4if00XYMfugwZ
ka6iFinsGCNvARvrNlbwCVtRZXiLFAePCr4nm4AFW7W1KPV84v0ce+MeNBrp
gefk1XYe6gV0vRLwSQrW1qPkjke07/vLMa0/ejt86umV6R42wmPOH8EyRYlm
NRpQo3YhzxrHPc/L3Iz29HbQvgtrOdWfaZ2fjBFG9bzk+ZgmruTwl+CsD/q8
kPXe2QY389p6Nl+g3ZuX6U2viMteg5JV5agbmQHlkG7qYO/DYRkFLWbvl2Hl
1VzGqWZC7ENamwiEqzAme8vWqixkmpnObLmMp3winRABdZw/6m5/do19ohSv
XxNIvYPOFsRhr7kV6MzJ9p5LjVds5RP2rLCsQUs3etSF4qOj3V3X2WkQVNkw
7210Zmq1+nRuDt2Z12GCfZJdLQixwtr2onM921y/NpySNLAsFPcDC9+2zbTi
GfJVbS+DZ0z7qwLbkGGV4pLvBGWSGzWYNriuhRZ17MDWdQagTqMc37vIuPMe
D16fhsXztW38tR1ev7LRE2DW+CtMyAGF1o5jN9cNyglXJep7skiRYm9jN3s2
wcaXzEu6g8W8KD/wFSvbVU1TPLyaSNOtzrRgcxUq2KvSazGPzqnpZkktTgXJ
L+zW/oTNDIGKq9VSxw1Ju8ChYvRmtYSFUtNdmeHfsecdu8A4KEdZ6QqUiS9+
v2N7XD63NrZcXq5pU2nMXWdd+KiWLvCqoUztLCZNTv1xGPnK763YiETxmelb
0sqXnmxw1oZHrUYm8w9WwVaXZJTT1Vts92SVFe2PM8Z83ny9gf7UATrOBD14
urYr92YDNO6w2Ox71mafvizonmIhZ6WuE3FrmzJ+1C/dzgsdyDt++d5pG266
1Xv18n2bGzMVkTdVrNZFMq/KAje3Oe/4EK+yCO0R0p8R4TVOTrrvAyZerKsM
5ClrcqO7QbamRrgCW0pyC0I1rzvFecWC6KRjHx7q7/arvoj93vYcScOeb3RJ
Iiqn0TVbjTsKSUYbJ+rj2Z9AS3CiafI/plQtQKSNJgZljbtnwFJ4I4ANTy3m
a20LPbsZSHXyyH3bNeUgfIsKr2jktVeUQHaG7njHkflEAqdWWARrHRjdDF37
cTpe4d1PpSJ8brvxmC2XpgZ0VRD/alPG96wwFoM9lvgi7PW7y0vfD2JQsI8r
FgXo+9Ne/1+KysRYABmB8YSyQ3c7o4rGDXmoK41igyFqwaQ9l+0dR717Tfxu
5hktarXk+++mbHvjjsao1p3XeKQy94ap3Ru2Vltk//AgC64voStpzsAIZzJs
U32zhi9HYRli4xBN1wzaI77JXg0bi4AskAWRD4imCvb0UZTWGe3IunkqnnIP
CCTF3pkD64vEqI2+nRQJ61xvXBv4OlJsNExzBqYBbt+2CjrgEha+MAsEi3Lz
Lertp9gY2Njdl4dzETUG92aG4shK19YwyXBqL4p5OHBa2Smax4sM4Iuo9a9p
MABvMWUr+kMcZjZFJxsrcIonubkd/8Hv90O93rH37qpC4zPHa9fU1ldkUx01
5Db+eJdJRuzLEwZMob/GjJ2zs6NGDMWZ+QM5qD4UtaYx9bG11c3+mD2Ok3qp
Mzj91dJyFwzB0nHdQhgNQcUemn95nW94J3Vwqw+jIF5OyYb/yBmwrYf3sRrx
gMMS2nrSd8OUvg5njPZd0aOOuCms6byIZ3QvX2jRuPTRYTZVOIsCt8exMd2t
15Nn+9TUejgYHHDQC3xO2xoAHNPU9bcNzGMnoXSDVPDnUjAWKcKig1KEtRA2
3Q+Z6rux6n9LU+TgwqcPqIGdIjYOlAOMzQAJLZfummcTL/6JGWsYWBAFVpJT
92yWAezUobkE5J256/laHHHgwk22z39pziMAfKLZlQJhfNnfxU291rScL9lm
s+hL+QwYH/m/AsAk5lI4LQScQeN3uCYYQoOnAQcnHJlO2Yin+NwOa5/coycq
OXV2DBO+f9EVkBPYLn4GB2ZcZtYqWpEpT3kF1K9b/yjAlraVpMnsVRgrRyd0
tNQtCK1YolAy0bBLGBb50yVGMs7YSdxwRdkujitK9G/TwI3g0+cjRc3gPv7x
hBx7nmKY9ta0uGhG+sPMxOj2jv5SUl4qJDGyo6Uu9zNxJLDKzNUPvLKDf1Hg
UVaUH++U1ewwW1aHL05OTw/dOQg4ibQsvqX+CsUjT0a2aHNydskRyrrK4KRL
HVftJ+jW5jKdcReAZkcmsGUqMDII2sS8zN0mGbfcO4COPNZuGjWv1MWuFMAg
826YZrQqc7HUSWw4eFJuFI+1oJgyEeQZJXW3fEAausHgOHm9Q8NLAUtZko3z
PC+xYwj3fCVjBv+UAHWioCYfOKHpD4a9vPPc1KDgZS76QF1tK/wjZYL8BXzl
rzejW/RfsZ8/BV90Jg+E5Fr3cQSxibc9NsLdcLhjici5oosUYl//OUVQOP08
E9cll3TYh+OkrGvxOl/NKxw9wB6O8PgvMOptHq/+1//EePD+RXSvx2PE+zbO
YxiK6YjLeKK46U7rAlzCHJ2gWgL/w4B3RUZ/iKKmYuyfsHVeXpYoon9iA4Da
/4Ozznci87aOA3F97tqRAZ3mnOogSCq3KCKcFRQ5qdnCKHWrU30jMeMLphvX
hTgd7MsPBVYskJNrmOuDwdfVvSofqlJCOouLRyVmpTEhTPDaXHHHZLmdsSPE
3qBcrvkPMNHdzwU1R2Mvifrk6j/LQJTHvctAYBVyT0Sm3KT7njMHV9ycMmCS
ln9HPGSfgDsJ7aaAX9zm5GMoXWJlshggcteOrvi1OvBeQRQVJkwd+/LE+0tk
msQGmq0BlkNOt/sdFBaHjVavgdzwBeL/AWxMK63kdgAA

-->

</rfc>
