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


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

]>


<rfc ipr="trust200902" docName="draft-ietf-mls-combiner-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="HPQMLS">Flexible Hybrid PQ MLS Combiner</title>

    <author initials="J." surname="Alwen" fullname="Joël Alwen">
      <organization>AWS</organization>
      <address>
        <email>alwenjo@amazon.com</email>
      </address>
    </author>
    <author initials="B." surname="Hale" fullname="Britta Hale">
      <organization>Naval Postgraduate School</organization>
      <address>
        <email>britta.hale@nps.edu</email>
      </address>
    </author>
    <author initials="M." surname="Mularczyk" fullname="Marta Mularczyk">
      <organization>AWS</organization>
      <address>
        <email>mulmarta@amazon.ch</email>
      </address>
    </author>
    <author initials="X." surname="Tian" fullname="Xisen Tian">
      <organization>Naval Postgraduate School</organization>
      <address>
        <email>xisen.tian1@nps.edu</email>
      </address>
    </author>

    <date year="2025" month="February" day="26"/>

    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>security</keyword> <keyword>authenticated key exchange</keyword> <keyword>PCS</keyword> <keyword>Post-Quantum</keyword>

    <abstract>


<?line 50?>

<t>This document describes a protocol for combining a traditional MLS session with a post-quantum (PQ) MLS session to achieve flexible and efficient hybrid PQ security that amortizes the computational cost of PQ Key Encapsulation Mechanisms and Digital Signature Algorithms. Specifically, we describe how to use the exporter secret of a PQ MLS session, i.e. an MLS session using a PQ ciphersuite, to seed PQ guarantees into an MLS session using a traditional ciphersuite. By supporting on-demand traditional-only key updates (a.k.a. PARTIAL updates) or hybrid-PQ key updates (a.k.a. FULL updates), we can reduce the bandwidth and computational overhead associated with PQ operations while meeting the requirement of frequent key rotations.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://mlswg.github.io/mls-combiner/draft-ietf-mls-combiner.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-mls-combiner/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Messaging Layer Security Working Group mailing list (<eref target="mailto:mls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mlswg/mls-combiner"/>.</t>
    </note>


  </front>

  <middle>


<?line 55?>

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

<t>A fully capable quantum adversary has the ability to break fundamental underlying cryptographic assumptions of traditional Key Encapsulation Mechanisms (KEMs) and Digital Signature Algorithms (DSAs). This has led to the development of post-quantum (PQ) cryptographically secure KEMs and DSAs by the cryptographic research community which have been formally adopted by the National Institute of Standards and Technology (NIST), including the Module Lattice KEM (ML-KEM) and Module Lattice DSA (ML-DSA) algorithms. While these provide PQ security, ML-KEM and ML-DSA have significantly worse overhead in terms of public key size, signature size, ciphertext size, and CPU time than their traditional counterparts. Moreover, research arms on side-channel attacks, etc., have motivated uses of hybrid-PQ combiners that draw security from both the underlying PQ and underlying traditional components. A variety of hybrid security treatments have arisen across IETF working groups to bridge the gap between performance and security to encourage the adoption of PQ security in existing protocols, including the MLS protocol <xref target="RFC9420"/>.</t>

<t>Within the MLS working group, there are several topic areas that make use of PQ security extensions:</t>

<t><list style="numbers" type="1">
  <t>A single MLS ciphersuite for a hybrid post-quantum/traditional KEM.  The ciphersuite can act as a drop-in replacement for the KEM, focusing on hybrid confidentiality but not authenticity, and does not incur changes elsewhere in the MLS stack. As a confidentiality focus, it addresses the the harvest-now / decrypt-later threat model. However, every key epoch incurs a PQ overhead cost.</t>
  <t>Hybrid PQ signature ciphersuites that address hybrid authenticity, including construction and security considerations of hybrid signatures.</t>
  <t>Mechanisms that leverage hybridization as a means to not only address the security balance between PQ and traditional components and achieve resistance to harvest-now / decrypt-later attacks, but also use it as a means to improve performance of PQ use.</t>
</list></t>

<t>This document addresses the third topic of these work items.</t>

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

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<?line -18?>

<t>The terms MLS client, MLS member, MLS group, Leaf Node, GroupContext, KeyPackage, Signature Key, Handshake Message, Private Message, Public Message, and RequiredCapabilities have the same meanings as in the MLS protocol <xref target="RFC9420"/>.</t>

</section>
<section anchor="notation"><name>Notation</name>

<t>We use terms from from MLS <xref target="RFC9420"/> and PQ Hybrid Terminology <xref target="I-D.ietf-pquip-pqt-hybrid-terminology"/>. Below, we have restated relevant terms and define new ones:</t>

<t>Application Message: : A PrivateMessage carrying application data.</t>

<t>Handshake Message: : A PublicMessage or PrivateMessage carrying an MLS Proposal or Commit object, as opposed to application data.</t>

<t>Key Derivation Function (KDF): : A Hashed Message Authentication Code (HMAC)-based expand-and-extract key derivation function (HKDF) as described in <xref target="RFC5869"/>.</t>

<t>Key Encapsulation Mechanism (KEM): : A key transport protocol that allows two parties to obtain a shared secret based on the receiver's public key.</t>

<t>Post-Quantum (PQ) MLS Session: : An MLS session that uses a PQ-KEM construction, such as described by FIPS 203 from NIST. It may optionally also use a PQ-DSA construction, such as described by FIPS 204 from NIST.</t>

<t>Traditional MLS Session: : An MLS session that uses a Diffie-Hellman (DH) based KEM as described in <xref target="RFC9180"/>.</t>

<t>PQ/T: : A Post-Quantum and Traditional hybrid (protocol).</t>

</section>
<section anchor="the-combiner-protocol-execution"><name>The Combiner Protocol Execution</name>

<t>The hybrid PQ MLS (HPQMLS) combiner protocol runs two MLS sessions in parallel, synchronizing their group memberships. The two sessions are combined by exporting a secret from the PQ session and importing it as a Pre-Shared Key (PSK) into the traditional session. This combination process is mandatory for Commits of Add and Remove proposals in order to maintain synchronization between the sessions. However, it is optional for any other Commits (e.g. to allow for less computationally expensive traditional key rotations). Due to the higher computational costs and output sizes of PQ KEM (and signature) operations, it may be desirable to issue PQ combined (a.k.a. FULL) Commits less frequently than the traditional-only (a.k.a. PARTIAL) Commits. Since FULL Commits introduce PQ security into the MLS key schedule, the overall key schedule remains PQ-secure even when PARTIAL Commits are used. The FULL Commit rate establishes the post-quantum Post-Compromise Security (PCS) window, while the PARTIAL Commit rate can tighten the traditional PCS window even while maintaining PQ security more generally. The combiner protocol design treats both sessions as black-box interfaces so we only highlight operations requiring synchronizations in this document.</t>

<t>The default way to start a HPQMLS combined session is to create a PQ MLS session and then start a traditional MLS session with the exported PSK from the PQ session, as previously mentioned. Alternatively, a combined session can also be created after a traditional MLS session has already been running. This is done through creating a PQ MLS session with the same group members, sending a Welcome message containing the HPQMLSInfo struct in the GroupContext, and then making a FULL Commit as described in in the <xref target="commit-flow"/> section.</t>

<section anchor="commit-flow"><name>Commit Flow</name>

<t>Commits to proposals <bcp14>MAY</bcp14> be <em>PARTIAL</em> or <em>FULL</em>. For a PARTIAL Commit, only the traditional session's epoch is updated following the Propose-Commit sequence from Section 12 of <xref target="RFC9420"/>. For a FULL Commit, a Commit is first applied to the PQ session and another Commit is applied to the traditional session using a PSK derived from the PQ session using the DeriveExtensionSecret and <spanx style="verb">hpqmls_psk</spanx> label (see <xref target="key-schedule"/>). To ensure the correct PSK is imported into the traditional session, the sender includes information about the PSK in a PreSharedKey proposal for the traditional session's Commit list of proposals. The information about the exported PSK is captured (shown '=' in the figures below for illustration purposes) by the PreSharedKeyID struct as detailed in <xref target="RFC9420"/>. Receivers process the PQ Commit to derive a new epoch in the PQ session and then the traditional Commit (which also includes the PSK proposal) to derive the new epoch in the traditional session.</t>

<figure><artwork><![CDATA[
                                                                        Group
      A                                      B                         Channel
    |                                        |                            |
    | Commit'()                              |                            |
    |    PresharedKeyID =                    |                            |
    |    DeriveExtensionSecret('hpqmls_psk') |                            |
    | Commit(PreSharedKeyID)                 |                            |
    |-------------------------------------------------------------------->|
    |                                        |                            |
    |                                        |                 Commit'()  |
    |                                        |    Commit(PreSharedKeyID)  |
    |<--------------------------------------------------------------------+
    |                                        |<---------------------------+
    Fig 1a. FULL Commit to an empty proposal list.
        Messages with ' are sent in the the PQ session.
        PreSharedKeyID identifies a PSK exported from the PQ
        session in the new epoch following a Commit'(). The
        PreSharedKeyID  is implicitly included in the commit
        in the classical session via the PreSharedKey Proposal.
]]></artwork></figure>
<figure><artwork><![CDATA[
                                                                            Group
      A                                      B                             Channel
    |                                        |                                |
    |                                        | Upd'(B)                        |
    |                                        | Upd(B, f)                      |
    |                                        |------------------------------->|
    |                                        |                                |
    |                                        |                        Upd'(B) |
    |                                        |                      Upd(B, f) |
    |<------------------------------------------------------------------------+
    |                                        |<-------------------------------+
    |                                        |                                |
    | Commit'(Upd')                          |                                |
    |    PresharedKeyID =                    |                                |
    |    DeriveExtensionSecret('hpqmls_psk') |                                |
    | Commit(Upd, PreSharedKeyID)            |                                |
    |------------------------------------------------------------------------>|
    |                                        |                                |
    |                                        |                  Commit'(Upd') |
    |                                        |    Commit(Upd, PreSharedKeyID) |
    |<------------------------------------------------------------------------+
    |                                        |<-------------------------------+
    Fig 1b. FULL Commit to an Update proposal from Client B.
        Messages with ' are sent in the the PQ session.
]]></artwork></figure>
<aside>  <t>REMARK: Fig 1b shows Client A accepting the update proposals from Client B as a FULL Commit. The flag <spanx style="verb">f</spanx> in the classical update proposal <spanx style="verb">Upd(B, f)</spanx> indicates B's intention for a FULL Commit to whomever Commits to its proposal.</t>
</aside>

</section>
<section anchor="adding-a-user"><name>Adding a User</name>

<t>User leaf nodes are first added to the PQ session following the sequence described in Section 3 of <xref target="RFC9420"/> except using PQ algorithms where HPKE algorithms exist. For example, a PQ-DSA signed PQ KeyPackage, i.e. containing a PQ public key, must first be published via the Distribution Service (DS). Then the associated Commit and Welcome messages will be sent and processed in the PQ session according to Section 12 of <xref target="RFC9420"/>. The same sequence is repeated in the standard session except following the FULL Commit combining sequence where a PreSharedKeyID proposal is additionally committed. The joiner <bcp14>MUST</bcp14> issue a FULL Commit as soon as possible after joining to achieve PCS.</t>

<figure><artwork><![CDATA[
                                                         Key Package                                    Group
    A                                          B          Directory                                    Channel
    |                                          |              |                                           |
    |                                          | KeyPackageB' |                                           |
    |                                          |  KeyPackageB |                                           |
    |<--------------------------------------------------------+                                           |
    |                                          |              |                                           |
    | Commit'(Add'(KeyPackageB'))              |              |                                           |
    |   PresharedKeyID =                       |              |                                           |
    |   DeriveExtensionSecret('hpqmls_psk')    |              |                                           |
    | Commit(Add(KeyPackageB), PreSharedKeyID) |              |                                           |
    +---------------------------------------------------------------------------------------------------->|
    |                                          |              |                                           |
    | Welcome'                                 |              |                                           |
    | Welcome(PreSharedKeyID)                  |              |                                           |
    +----------------------------------------->|              |                                           |
    |                                          |              |                                           |
    |                                          |              |  Commit'(Add'(KeyPackageB'))              |
    |                                          |              |  Commit(Add(KeyPackageB), PreSharedKeyID) |
    |<----------------------------------------------------------------------------------------------------+

      Figure 2:
      Client A adds client B to the group.
      Messages with ' come from the PQ session. Processing Welcome and Commit in the traditional
      sessio requires the PSK exported exported from the PQ session.
]]></artwork></figure>

<section anchor="welcome-message-validation"><name>Welcome Message Validation</name>

<t>Since a client must join two sessions, the Welcome messages it receives to each session must indicate that it is not sufficient to join only one or the other. Therefore, the HPQMLSInfo struct indicating the GroupID and ciphersuites of the two sessions <bcp14>MUST</bcp14> be included in the Welcome message via serialization as a GroupContext Extension in order to validate joining the combined sessions. All members <bcp14>MUST</bcp14> verify group membership is consistent in both sessions after a join and the new member <bcp14>MUST</bcp14> issue a FULL Commit as described in Fig 1b.</t>

</section>
<section anchor="external-joins"><name>External Joins</name>

<t>External joins are used by members who join a group without being explicitly added (via an Add-Commit sequence) by another existing member. The external user <bcp14>MUST</bcp14> join both the PQ session and the traditional session. As stated previously, the GroupInfo used to create the External Commit <bcp14>MUST</bcp14> contain the HPQMLSInfo struct. After joining, the new member <bcp14>MUST</bcp14> issue a FULL Commit as described in Fig 1b.</t>

</section>
</section>
<section anchor="removing-a-group-member"><name>Removing a Group Member</name>

<t>User removals <bcp14>MUST</bcp14> be done in both PQ and traditional sessions followed by a FULL Commit Update as as described in Fig 1b. Members <bcp14>MUST</bcp14> verify group membership is consistent in both sessions after a removal.</t>

</section>
<section anchor="application-messages"><name>Application Messages</name>

<t>HPQMLS combiner provides PQ security to the traditional MLS session. Application messages are therefore only sent in the traditional session using the <spanx style="verb">encryption_secret</spanx> provided by the key schedule of the traditional session according to Section 15 of <xref target="RFC9420"/>.</t>

</section>
</section>
<section anchor="modes-of-operation"><name>Modes of Operation</name>

<t>Security needs vary by organizations and system-specific risk tolerance and/or constraints. While this combiner protocol targets combining a PQ session and a traditional session the degree of PQ security may be tuned depending on the use-case: i.e., as PQ/T Confidentiality Only or both PQ/T Confidentiality and PQ/T Authenticity. For PQ/T Confidentiality Only, the PQ session <bcp14>MUST</bcp14> use a PQ KEM, while for PQ authenticity, the PQ session <bcp14>MUST</bcp14> use both a PQ KEM and a PQ DSA. The modes of operation are specified by the <spanx style="verb">mode</spanx> flag in HPQMLSInfo struct and are listed below.</t>

<section anchor="pqt-confidentiality-only"><name>PQ/T Confidentiality Only</name>

<t>The default mode of operation is PQ/T Confidentiality Only mode. This mode provides confidentiality and limited authenticity against quantum attackers. More precisely, it provides PQ authenticity against "outsiders", that is, against quantum attackers who do not have acces to (signature) secret keys of any group member. (Authenticity comes from the fact that the traditional session adds AEAD / MAC tags which are not available to outsiders with CRQC.) This mode does not prevent quantum impersonation attacks by other group members. That is, a group member with a CRQC can successfully impersonate another group member.</t>

</section>
<section anchor="pqt-confidentiality-authenticity"><name>PQ/T Confidentiality + Authenticity</name>

<t>The elevated mode of operation is the PQ/T Confidentiality + Authenticity mode. Under a use environment of a cryptographically relevant quantum computer (CRQC), the threat model used in the default mode would be too weak and assurance about update authenticity is required. Recall that authenticity in MLS refers to three types of guarantees: 1) that messages were sent by a member of the group provided by the computed symmetric group key used in AEAD, 2) that key updates were performed by a valid member of the group, and 3) that a message was sent by a particular user (i.e. non-repudiation) provided by digital signatures on messages. While the symmetric group key used for AEAD in the traditional session remains protected from a CRQC adversary through the PSK from the PQ session, signatures would not be secure against forgery without using a PQ DSA to sign handshake messages nor are application messages assured to have non-repudiation against a CRQC adversary. Therefore, in the PQ/T Confidentiality + Authenticity mode, the PQ session <bcp14>MUST</bcp14> use a PQ DSA in addition to PQ KEM ciphersuites for handshake messages (the traditional session remains unchanged).</t>

<t>This version of PQ authenticity provides PQ authenticity to the PQ session's MLS commit messages, strengthening assurance for (1) and ensuring (2). These in turn provide PQ assurance for the key schedule from which application keys are derived in the traditional session. Application keys are used in an AEAD for protection of MLS application messages and thereby inherit the PQ security. However, it should be noted that PQ non-repudation security for application messages as described by (3) is not achieved by this mode. Achieving PQ non-repudiation on application messages would require hybrid signatures in the traditional session, with considerations to options described in <xref target="I-D.hale-pquip-hybrid-signature-spectrums"/>.</t>

</section>
</section>
<section anchor="extension-requirements-to-mls"><name>Extension Requirements to MLS</name>

<t>The HPQMLSInfo struct contains characterizing information to signal to users that they are participating in a hybrid session. This is necessary both functionally to allow for group synchronization and as a security measure to prevent downgrading attacks to coax users into parcipating in just one of the two sessions. The <spanx style="verb">group_id</spanx>, <spanx style="verb">cipher_suite</spanx>, and <spanx style="verb">epoch</spanx> from both sessions (<spanx style="verb">t</spanx> for the traditional session and <spanx style="verb">pq</spanx> for the PQ session) are used as bookkeeping values to validate and synchronize group operations. The <spanx style="verb">mode</spanx> is a boolean value: <spanx style="verb">0</spanx> for the default PQ/T Confidentiality Only mode and <spanx style="verb">1</spanx> for the PQ/T Confidentiality + Authenticity mode.</t>

<t>The HPQMLSInfo struct conforms to the Safe Extensions API (see <xref target="I-D.ietf-mls-extensions"/>). Recall that an extension is called <em>safe</em> if it does not modify base MLS protocol or other MLS extensions beyond using components of the Safe Extension API. This allows security analysis of our HPQMLS Combiner protocol in isolation of the security guarantees of the base MLS protocol to enable composability of guarantees. The HPMLSInfo extension struct <bcp14>SHALL</bcp14> be in the following format:</t>

<figure><artwork><![CDATA[
      struct{
          ExtensionType HPQMLS;
          opaque extension_data<V>;
          } ExtensionContent;

      struct{
          opaque t_session_group_id<V>;
          opaque PQ_session_group_id<V>;
          bool mode;
          CipherSuite t_cipher_suite;
          CipherSuite pq_cipher_suite;
          uint64 t_epoch;
          uint64 pq_epoch;
      } HPQMLSInfo
]]></artwork></figure>

<section anchor="key-schedule"><name>Key Schedule</name>

<t>The <spanx style="verb">hpqmls_psk</spanx> exporter key derived in the PQ session <bcp14>MUST</bcp14> be derived in accordance with the Safe Extensions API guidance (see 2.1.5 Exporting Secrets in <xref target="I-D.ietf-mls-extensions"/>). In particular, it <bcp14>SHALL NOT</bcp14> use the <spanx style="verb">extension_secret</spanx> and <bcp14>MUST</bcp14> be derived from only the <spanx style="verb">epoch_secret</spanx> from the key schedule in <xref target="RFC9420"/>. This is to ensure forward secrecy guarantees (see <xref target="security-considerations"/>).</t>

<t>Even though the <spanx style="verb">hpqmls_psk</spanx> PSK is not sent over the wire, members of the HPQMLS session must agree on the value of which PSK to use. In alignment with the Safe Extensions API policy for PSKs, HPQMLS PSKs used <bcp14>SHALL</bcp14> set <spanx style="verb">PSKType = 3</spanx> and <spanx style="verb">extension_type = HPQMLS</spanx> (see Section 2.1.6 Pre-Shared Keys in <xref target="I-D.ietf-mls-extensions"/>).</t>

<figure><artwork><![CDATA[
      PQ Session                       Traditional Session
      ----------                       -------------------

        [...]
    DeriveExtensionSecret(epoch_secret,
          |            "hpqmls_export")
          | = hpqmls_psk                      [...]
          |                               joiner_secret
          |                                     |
          |                                     |
          |                                     V
          +----------> <psk_secret (or 0)> --> KDF.Extract
        [...]                                   |
                                                |
                                                +--> DeriveSecret(., "welcome")
                                                |    = welcome_secret
                                                |
                                                V
                                        ExpandWithLabel(., "epoch", GroupContext_[n], KDF.Nh)
                                                |
                                                |
                                                V
                                          epoch_secret
                                                |
                                                |
                                                +--> DeriveSecret(., <label>)
                                                |    = <secret>
                                              [...]
    Fig 3: The hpqmls_psk of the PQ session is injected into the key schedule of the
    traditional session using the safe extensions API DeriveExtensionSecret.
]]></artwork></figure>

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

<section anchor="full-commit-frequency"><name>FULL Commit Frequency</name>

<t>So long as the FULL Commit flow is followed for group administration actions, PQ security is extended to the traditional session. Therefore, FULL Commits can occur as frequently or infrequently as desired by any given security policy. This results in a flexible and efficient use of compute, storage, and bandwidth resources for the host by mainly calling partial updates on the traditional MLS session, given that the group membership is stable. Thus, our protocol provides PQ security and can maintain a tighter PCS window against traditional attackers as well as forward secrecy window against traditional or quantum attackers with lower overhead when compared to running a single MLS session that only uses PQ KEMs or PQ KEM/DSAs. Furthermore, the PQ PCS window against quantum attackers can be selected based on an application and even variable over time, ranging from e.g. a single FULL Commit in PQ/T Confidentiality Only mode followed by PARTIAL Commits from that point onwards (enabling general PQ/traditional confidentiality, traditional update authenticity, traditional PCS, and PQ/traditional forward secrecy) to frequent FULL Commits in the same mode (enabling general PQ/traditional confidentiality, traditional update authenticity, PQ/traditional PCS, and PQ/traditional forward secrecy). In PQ/T Confidentiality + Authenticity mode with frequent FULL Commits, the latter case would enable general PQ/traditional confidentiality, PQ/traditional update authenticity, PQ/traditional PCS, and PQ/traditional forward secrecy.</t>

</section>
<section anchor="attacks-on-authentication"><name>Attacks on Authentication</name>

<t>While PQ message integrity is provided by the symmetric key used in AEAD, attacks on non-repudiation (e.g., source forgery) on application messages may still be possible by a CRQC adversary since only traditional signatures on used after the AEAD. However, in terms of group key agreement, this is insufficient to mount anything more than a denial-of-service attack (e.g. via group state desynchronization). In terms of application messages, a traditional DSA signature may be forged by an external CRQC adversary, but the content (including sender information) is still protected by AEAD which uses the symmetric group key. Thus, an external CRQC adversary can only conduct a false-framing attack, where group members are assured of the authenticity of a message being sent by a group member for the adversary has changed the signature to imply a different sender; it would require an insider CRQC adversary to actually mount a masquerading or forgery attack, which is beyond the scope of this protocol.</t>

<t>If this is a concern, Hybrid PQ DSAs can be used in the traditional session to sign application messages. Since this would negate much of the efficiency gains from using this protocol and denial-of-service attacks can be achieve through more expeditious means, such a option is not considered here.</t>

</section>
<section anchor="forward-secrecy"><name>Forward Secrecy</name>

<t>Recall that one of the ways MLS achieves forward secrecy is by deleting security sensitive values after they are consumed (e.g. to encrypt or derive other keys/nonces) and the key schedule has entered a new epoch. For example, values such as the <spanx style="verb">init_secret</spanx> or <spanx style="verb">epoch_secret</spanx> are deleted at the <em>start</em> of a new epoch. If the MLS <spanx style="verb">exporter_secret</spanx> or the <spanx style="verb">extension_secret</spanx> from the PQ session is used directly as a PSK for the traditional session, against the requirements set above, then there is a potential scenario in which an adversary can break forward secrecy because these keys are derived <em>during</em> an epoch and are not deleted. Therefore, the <spanx style="verb">hpqmls_psk</spanx> <bcp14>MUST</bcp14> be derived from the <spanx style="verb">epoch_secret</spanx> of the PQ session (see Figure 3) to ensure forward secrecy.</t>

</section>
<section anchor="transport-security"><name>Transport Security</name>

<t>Recommendations for preventing denial-of-service attacks or restricting transmitted messages are inherited from MLS.</t>

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

<t>The MLS sessions combined by this protocol conform to the IANA registries listed for MLS <xref target="RFC9420"/>.</t>

</section>


  </middle>

  <back>



    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC9420">
  <front>
    <title>The Messaging Layer Security (MLS) Protocol</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
    <author fullname="R. Robert" initials="R." surname="Robert"/>
    <author fullname="J. Millican" initials="J." surname="Millican"/>
    <author fullname="E. Omara" initials="E." surname="Omara"/>
    <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
    <date month="July" year="2023"/>
    <abstract>
      <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9420"/>
  <seriesInfo name="DOI" value="10.17487/RFC9420"/>
</reference>
<reference anchor="RFC2119">
  <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="RFC8174">
  <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="I-D.ietf-pquip-pqt-hybrid-terminology">
   <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>
      <author fullname="Michael P" initials="M." surname="P">
         <organization>UK National Cyber Security Centre</organization>
      </author>
      <author fullname="Britta Hale" initials="B." surname="Hale">
         <organization>Naval Postgraduate School</organization>
      </author>
      <date day="10" month="January" year="2025"/>
      <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 be used as a reference and, hopefully, to ensure consistency and
   clarity across different protocols, standards, and organisations.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-06"/>
   
</reference>
<reference anchor="RFC5869">
  <front>
    <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
    <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
    <author fullname="P. Eronen" initials="P." surname="Eronen"/>
    <date month="May" year="2010"/>
    <abstract>
      <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5869"/>
  <seriesInfo name="DOI" value="10.17487/RFC5869"/>
</reference>
<reference anchor="RFC9180">
  <front>
    <title>Hybrid Public Key Encryption</title>
    <author fullname="R. Barnes" initials="R." surname="Barnes"/>
    <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
    <author fullname="B. Lipp" initials="B." surname="Lipp"/>
    <author fullname="C. Wood" initials="C." surname="Wood"/>
    <date month="February" year="2022"/>
    <abstract>
      <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
      <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9180"/>
  <seriesInfo name="DOI" value="10.17487/RFC9180"/>
</reference>

<reference anchor="I-D.hale-pquip-hybrid-signature-spectrums">
   <front>
      <title>Hybrid signature spectrums</title>
      <author fullname="Nina Bindel" initials="N." surname="Bindel">
         <organization>SandboxAQ</organization>
      </author>
      <author fullname="Britta Hale" initials="B." surname="Hale">
         <organization>Naval Postgraduate School</organization>
      </author>
      <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
         <organization>SandboxAQ</organization>
      </author>
      <author fullname="Florence D" initials="F." surname="D">
         <organization>UK National Cyber Security Centre</organization>
      </author>
      <date day="21" month="March" year="2024"/>
      <abstract>
	 <t>   This document describes classification of design goals and security
   considerations for hybrid digital signature schemes, including proof
   composability, non-separability of the component signatures given a
   hybrid signature, backwards/forwards compatiblity, hybrid generality,
   and simultaneous verification.

   Discussion of this work is encouraged to happen on the IETF PQUIP
   mailing list pqc@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dconnolly/draft-hale-pquip-hybrid-
   signature-spectrums

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-hale-pquip-hybrid-signature-spectrums-04"/>
   
</reference>

<reference anchor="I-D.ietf-mls-extensions">
   <front>
      <title>The Messaging Layer Security (MLS) Extensions</title>
      <author fullname="Raphael Robert" initials="R." surname="Robert">
         <organization>Phoenix R&amp;D</organization>
      </author>
      <date day="19" month="February" year="2025"/>
      <abstract>
	 <t>   The Messaging Layer Security (MLS) protocol is an asynchronous group
   authenticated key exchange protocol.  MLS provides a number of
   capabilities to applications, as well as several extension points
   internal to the protocol.  This document provides a consolidated
   application API, guidance for how the protocol&#x27;s extension points
   should be used, and a few concrete examples of both core protocol
   extensions and uses of the application API.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-mls-extensions-06"/>
   
</reference>



    </references>




<?line 324?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<section numbered="false" anchor="contributors"><name>Contributors</name>

</section>
</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA9U97XbTSJb//RS14Qc2bTsd6JntzgAzJglLBgIBQ/fMmTOH
lK2yrY4suVVSgpthnmX/71vsvtjeryqVZDkkdLp3NucAsayqunXrft9bl8Fg
0CniIjH7audpYj7Ek8SoZ+tJHkfq9LU6eTFWB9lyEqcm3+noySQ3F/Dms9PX
8M1OZ6oLM8/y9b6yRdTpRNk01UuYKsr1rBjEppgNlokdTGWGQQLv26Jjy8ky
tjbO0mK9gtePj94+7cSrfF8VeWmL+19//d3X9ztpuZyYfL8TwaD9zjRLrUlt
aekl0wEwHnR0bjSAMzbTMo+L9U7nMsvP53lWruDpibFWz+N0rl7otclV9da5
WcOL0X5HqYGy8pg+6LJYmLSIcWORgveU+TBd6HRu6OvTgzH/m9li8LrUaVEu
OxcmLQ3O9fmFleIN7/wAcOIL/4FD8PlSxwk8B2z9CdE2zPI5Ptb5dAGPF0Wx
svu7u/gWPoovzNC9tosPdid5dmnNLozfxXHzuFiUE57wcr4bHgJ+zecQToyv
DXnUMM5qA3a3nOZwUSyTnU4HcZbBOQ1UnMLp7Px5qEbJpUlxISaHnT9n//Nf
SfUUoNZp/LMugALg29EPY3xqGAca3/ox+5Ne6p+zdAir+ZmfDNUznZhg4ieA
10L7p42JX+oLndBhzXMdlbBpNZ4usiwJlpvQDMMFzPCndGWHJir9eidDdVIi
wn9enweLnugc1qx9c+WOlmWyxCF+Swu/wl+G6m2sQ1T9JQYy9w+/YEMfcIJh
ARPs+Q110ixfwiQXQKedOJ0FnwYDoPqJLXI9LTqdt4vYKmDjcglcoCJjp3k8
MVZptcqzIptmiYLBikkACVgDN+ooRvgAMhQX1hBnq0sgJhyHrPITs4rqnr7u
1V4qMqWBnM2FUTMnfXQaKTObxdMYYVh4WeQYVRULXSi9zPIi/hlgA45FgFZl
oQWMKaypshkOeg4sfJRO9crCceHX6sQgQ8d2aWmlwxioHsaM43mqizI3QKYg
0gD4pR2q8cpMYwBFJ8m6ry6NR4laZJcIfWkNAWA+rAAeYHaAMje0unYCVDbb
V/HQDGHRGgZKy2iEd6fxamFyW8aF6ePc1hja+LzUOeDPwF7jFDHWPkN4EMFU
Q/VkrWy5QvjwxSwdREAqsPVgwCBLkzXJu3KF8taqrh6eD/VQnY7evD0evXDP
e0CSciYDAK1txNN3L6rXCWlTgDgHOpwyriaw+GUcIXkAFPWjyy5MvjA6Utra
bBqTGCZKgsWylcnpPasuFzFQytIY2hJOmpufyjg3RLeA/Bl+xt8RQiBdHjfs
MMEv4yhKTKdzRx2nRZ4BZPh1pzNSsxJOGgBeaSRFR7c6ArCsztdqoZng9CRO
iBYzkCBGn8PANNK4OmwCfjV5skbQpvl6VWTAratFPMVNlcsVbwGADE/sSkLt
Pj86AdR/jl5V93A8sj2QKcjGCGoC6AMQEeIImCzJVg5Bm3xZAxUJnjnOKFyc
14bZ1WTNHFfbWG6sQT2Ep7ksU8QMHBF8Xmhg7YkBkUZCB2fVUbbCY5WJXrqj
P04tWCIlyDQAb1zAgjqPeOG3gIo0S7L5WnVfHo/fAlnF6TQpI3f6J3CGcF4v
dAG6myBW3ZMXA/iXsdb4HjZC38O/8H3A7z8QXcGMwNYg8S7iyISip694Up6T
xvMOLZwGyYm0gB2CcQHjPSnHIOdMvqQjX5WTBPCFVGlBevVpJJ8jf2bOLcyH
Qh7gUgen71QRLxEyYCUAL87r7J6VIB/yFWgZ2MRJlhtcvF8di6blU5gyMgMk
q9QkCpChp+e2r0wxHfZ5I8sM9AJxHUg2grhidqf4LUtgMAsuK6E8y7OlmmTA
qXgeAQfAQNxC8KQO+XKVpUCTAPdIXegczIx1tWwg9IHLCiRey4DCm6go9TTP
rCULEtFORhXZYZZZM47mLHTmegV0WFwiKYIcIWpMp6xtqkUyZVJAZq5lFNEq
MiNrE/8iHCloK0vSx2lGu0GUIKS92vz48d/ePD347pv7X3/6BGLoByC4OPWv
1UDv4+MctwhEAVybA56KbIXyA5Ag2F/qc0PapwEZEA6YyShhQLnvIVJRPSS8
TKAWSI9rh+ZQGuzWxNIRGEEgT0xtLAp0sBdAnsEUUZ6tBjFK+FWipyyBcXLc
Gwzvw4cp6yjAo6wH1vwMSBEsbU1idFIWKs2Kyv4mZsOziTIgQ/wKcFuC5UHG
uFUmseaSsBRg0SI9w5YRquYKBAScEKwRRcAXViwH/LPQ+QXYw4MUdPouCEqS
beSs4C6Q8IAvIpOA+ZldGuIs/JsVplllwGAEnWU97hkf7RA46/vDwKOq+D1A
qJypQOaQVEdGRVvoCoEPRDqrTr/4DWzaacmAjdyqqAIfDEPdQisnRGZA9Py+
WJx8vkujU+ImPAWyExyciDu/9kQnxFCOyYTv25mdvnKWH8wFrESDYZWrDsNL
LKQXnVi2v+KiAWi8RNltanzObAKvD5tWbpMe4jwSdkMVTaoA2ROWMUtE3x1Q
R/kyZn2EkxmiA/QoLTgH78Zvd/r8r3r5in5/c/T63fGbo0P8ffxs9OKF/6Uj
b4yfvXr34rD6rRp58Ork5OjlIQ+Gp6r2qLNzMvrrDnPKzqvTt8evXo5e7DBP
1PaYE24nyC6oKMBENWhjdZw9S1rqycHpf//n3jciq+7v7X336ZN8+Hbv37+B
D8ByKa9GhMAfAUfrjl6tQNXgLKDk0YBCKwVOCk7Ggq0MnA/MCti79zfEzN/3
1cPJdLX3zWN5gBuuPXQ4qz0knG0+2RjMSGx51LKMx2bteQPTdXhHf619dngP
Hj78YwKaUg32vv3j4w7TCJsAJIUT9Gz69PvSYJCDfxfh/8LomXoJ8qbP4YGD
LEVzoI8m4imQP7BpPzD/4GkfHOA0sgtUCRx8gDdOc1LkwQM2PfxnPMU3bDVH
B2jwokUbG9GvxNtg0BJXgdSxeJKBrA0UW6jX7gDkbGyDjmMFxRsn+4D+wtHB
IIIDWFNEZMBbSHrHg0OKdAxWAOgK/i4GYpAU1YuwsnoCxu0leRsEPnB0QWZM
bkC2gV4TMEilmBkeTmougYoN6snRapVgzIfNbsLPvtoH3SlIlGdA1nlOJowO
BoCjo2HnG0cgMxDW3QSgFrdOyV7dKWjTzKInlGPkbQnCLZv8aKYFsVIGbpxl
m74FBPQhDg3Nj0+flinriO7zw6c9BueZtgsY71YfVfEufPEAqE51n52MDnqD
icaFwK+FfQ3wD9AgBglI2EXVKjO/yjNcBqGsCRWWH7/79vffEYFc4eeQmyNw
4iKwXGrRba2IjdVkAkcN0voyU2jxIskCPrJJoVH6gLgBaRc5R5y3kaXiJE5N
DJrurg0McQAqjOdVQYoxO9gEUN3lJjDIQEaFTx5BqJTBqi/R6A4xAd7O0+PT
sbr/9QNmA/RjhuoYLTkweFesIlG5OrVGU6OHcf2pvwmmBqnTiMxcbz+H8WwW
m8EzkySgOcGlfNYTJJLj03q63+19y+x/+nr3rdB9iFLy4QJoxCrpunPtoWN+
h8xMF21GRuAzP/oAJgZLFHxhUQtOdzkU3fPOSUUreZkykQQ7JREGRAOYNgng
cp1OF3mWxj+LzQ5+FUlhkct2Ea/skODCifwkqE5lQUI/R384DCN0RweBNEfG
OaMZ0QC2ibzqzJbT3AzGTLPIHN3T8fMeB3rIHgnQJvOIf88AMA/BpqdokcFj
DO3oIsvXZISzCCFTcBRFIvOXZByJoCGUgO2Ctm6GceiU+KhCDa/gzDq2+RgP
gT0Mm4mtJ2N2LlKga/RkPBBdM5wPSXYhB9NLCUJdCwElhE70YS7qu69FcnpD
dVgaF9tYxHNcZzMKyAI/Kwt4Tv60dXFBjBCQ7ewUaS+IL9F+kC8nFPGLc4oG
oWVpbUlH6k8/jHr1/E5pWy4Glay9374Zc2vE2fwUQ1DxaLdSNM1NG0u0yjSc
UUEDEjpFFqYg48vEkGlG7gjaZOE3IAnxpC2KGInywDmmZND5kJ9bFakdhEPE
jBAApHI0MFDTgiwFvcIWdC2yRGIA3gZqW4LD7nMhQOYHwLWXcRqR2nZxl8bi
vAK6mwUccWE2kIgpGZnF7YAig0LGEoDwqFpmsJe5SQkja97QpuTAI5+nHHKw
HNSoWB8egJt7PphkH9iYnoHTC0ZuhrYHHSlSY4LghhFLjk8iPA3OshvW+pAF
HZgpukwKdakpMAFYBk2oFQu8igCdcIlJC04RZrMRe2ZXDA/XTXNl2D6IaIOk
HT9vk2Zkj4AjcRFnpYVdI+TwGMlklABaUsowYNhcbwJLAQRUdBMjIINsmpGL
txUyjGfqBF6O1hxRBAGPByzikBCYIhGBAJ8veFofW2/dItm3NXkPKsGkEY/6
wSQANxrAYqllnqRwMJ/DcTrDo0Ht7KzjutHuEb/U5zxvyEBNdSpTfPw4pe8H
M5CTYCID/SJC0L6+44Y+RRH68U74YqfjWBYooZLv4K8gnu8Ja91D0/IeQnEP
xBZFgepM12cy3qJ9wHaSkIeVKH8EkhwFusMMm7BmIIBakoIgs4iIxrwVtXcf
JXHoPAgsAXqQdGQSWGwW57Zgs7eKaje0q05DjYOjGu+3bKhKwQChk2GLO2pR
3/wePiQj2xy5UNuYVT4CcLZY/bRM7PuVPT9TiZ6YRHWtwRMF8Ttw4vfTJwzS
Y7DRoujlDFYO1mlBQCA1L4X7rjIE+qKNMbQq8SHKEUl+D3EyAd3H+8B5UzY3
2NpAY8MRiQ/YtR+4oBOEPOcOHGmxAG1fsCY/0FzRK1SzoDE5HnD30V1H7rN4
jqEpIFJnFsRJUmJOko2bMkd6sj2XMgi3cHzo2I94CTg0cZZpQFpvxPC33lKS
s5WdAY755AFB6Be6oF4bjRE3N3El83Q560GizR+IQ79DWy9YDr/bWLDN5ut0
/vnPf3bULf2QjJLZRtcb8mTrNwecT6Dp/nFdCK588R8yF2P1brd3C3PBD9CN
Dejm0S+Zq1UEdO9W7H+3d5M9dus0vbnh68w1uIWfx//4Fc7xi+cKCOBL5tqG
W5nr4W0g7KsbwnXVojzX03iu9lwivRJQYDKZ5aoIhDbK46GXCRLTsWzf3JX0
Uertkrooq8Y1pCknTWYxBzdAbHlBHuhEP9hbn2lDlFUmga5OkfTFtoVF7SWY
70jWTnxGbmo2dPxg9zTRAMA00OYXsd5QEj6qNiQpepuSFH9uVZriz+1LVHrh
pvO9W0V3u0+2Ct8vma/7pK9mW2a86Xy/pST7Evi2feHQejvzVUi9Tal225Lt
S+b77AsNKwHxeoWlcJPz/cWWQmO+X2wthPOJVoPt9tUVZsN157stcvkX5Lc6
ZfwCC6IV1/8/+I2siUmbNfGOvPfAB0T9fkDJSfXky+0K1K4PNdYhqKXOzyNw
9h7tTJJser7zuPPm6GT05vm+QEWpYevWHCk9nZqVL+kr6/DZOoAcPA92xc7o
LNFzdTY72zQQGtOpMy858eWIar6tenKXwqwczJIimQbqLhfZEqPeKoi24D8r
b2Q83KX9P6Z4zSiSgNI7a/JOB/9WCeZ40wy9Q0SnhDaiqDWwUY+u+HBKLXDk
wioPGlEVrF8HlErsAmsyqmpBrp95dvr8KHxKdU0cjDEfNNhjmCp2qSiMi3JR
apiMprrWIDxGEbcqwdZXS3DmZZMTw99QGtLZaoewJGyFsjywlfwCi/S6h2M2
GPkgg4JQFzwDZ7wRpEMiTRJchCgU3xCHvzIkQ3d+Os1yrtfKropMvXXBQo/8
GCO6Kw5cyrxWShb97IL6+vGFtFSVUft5+Ux00zb2RIsRrcgFB7BSlWYqXHD+
x4wi2VRRwbmKjXijzbiwB+azXG9NcVccKYhwdTmnB+NfGnYg25vJ5DqvV4b0
Nc1o/AlM6cMYY2iY+7rGzxcZ2Ruv3mDkTRUQvlqx2ZO7v/Za4WJfstYXK8Kv
fuV9XfHxWms5MwIk+d1ueCK9hrl5K7RxHdvztta6jl16O2uJIQUoDDHYa7Gq
fulaX30pGd7k56bG7q3gUJTd3d9wrc/GJX/L83r828re/8u1ri9ybmut67Dm
LTs8V/181RGr4yklh9T9fflcOQtRZKWWEmwAMZspm+t8l6bnQpZiS2ZviPFB
NBLRAHIWJd27kDTiRlpGFuDx7u5RlenxIdO22GndUwIP4Y5f05Xlfa+TOJIq
Si4D0W6nZEqjsVarSOJM4IYxjAUUnPkiJ8WAZeetU5rI+T1cAcYZUyzztqW/
gAfjaDnKCWOCXTKFlGglqzM34CZJsUlbVpyWcPYvmXig1ujqV1gBz8XW9Tor
smOpaLkeC26m5tGPALcKS/3DyvUwE6+8kqvVO10wpk1l/y7MRrkC3k0Br0Jq
BBgq8P/i2XqjWowynViFbwtxkRvlI1LkQCiVbCJFzXmKKy33msMnbj3TD+4t
x2zhn2Fa2+n4z7hMVcCD+VO3CXBiBQjZA/II5m4nBtEAhOsC8eyWdhHHOkVv
tpnYp7ysy7z7azG8ELslxsFTWrdHWtvfF9pMsbYXvo2skrreqvKkH9AV0l0p
BbJSCoNfenwI5ASBOKztZAtLhW5R/zbOiSvv2EEmcIHfcTKJCeT4LdVrCNVT
OYvDUst1Ck9U7GHy+dahkRCPttvgEhBuh6hlB7zZlppqoMx69VLuLtnZ+gXf
zYqHoH5nWJvayzrNhRQsjFha1aJUWws/8NszoGO8ZwJP33MB55kDzV9UrNXP
OWnVMmt7UOF3zaACFryeUAQIvnjlCsVA3jsspMaAgrvAW6cAQXgTnKsa7RqO
YzmwckVZ5bE9hyUTmEkutu3SVW0sHsZyuOB6o68eDaveCp3PTWGDqITeKK9p
3XBBxWrz3GxcRpMSyqJEYRqZldRWyRhg1MFUW7NPASSqJ8P6YaDd+tWtV6R5
cscHLW/wFQL4YhRcmeIY1tYZ+03BQxzgCq/55hoXE85omsZ1rG2DCUg3gyAN
PhyORywKl+7IfW0gB1T5FCtqO8MXzzicCSS8qVdpahiJSWAchrUzzHlbt1yv
K8QF6oDEVx0Avi6ldjTSc27zph0ClsQgfUz9CpvScyw5Lapb1XSbC0QMX1lF
kT6NLZUMxkVNMrROswPaim672Z2+2C9432jbIqTxIr7FxjdIp1M2i7pBDbBU
bwOv0yFhDXMoDYeqG5IYWZS2Mu5meD+CQNkqHNBoHR2NDtWuOhkdANPNrVyV
xsOkO5AX2OVDCo79HtmGPXjz+mDYC07BX49EfYjizu07XsKx2kzqw+XiHAkS
UtM1EY/H6tBX+8Y1ccBlqWbTlog0y7fkqyWMV/81ZG2nxq9qnMp0SRd1kGha
CZP57bNTCZm+o5I4TRxp0os4z1J38V23XHT3l4Qc9riSHKbo4tZ7fUl0VFdB
2cqInfALOOoyK5OIpF6GJcH6nDkVTAWRy1QhJ8mIGmHHrkoYo7lvDIImF15q
b/HVDdBzdBM7I7AMNZYhkq26ReyrvZ5cFvaOkHHJGzIV5JRFmfHZNdWeoAL1
zXJpihw0Db9IvR8EC0jRfXVflgu7QtCKchHTWShkdLctzuWyD2Qa7e37S4xb
e6jp0s8U26+wPdml/EOapYPcrMooJprp1TYSSdeE6h6sCmyH4N7/9l2iFiDG
vcKgcFX1qFNB8Tu/Txio6iLhapSdv9haXh3AyjSFbD4xriuDE3QA1xzvIjv7
PWgoghkbrBzHYvaFv57miSHF5BbO1GpOIcGyIU3SsoFev3xzbzWP0Gdcrse3
n1HJuJ049fkPBE3UbM2RxINq2W33c4dWpny5POq5K8K4pdhf/q9x4VbttJG+
uyuXPtkgd+D0UY2bdI4j6by8fEDwu3vctoLqg/Hr7n1OhVm+717madieoj54
w1Yl6hIdExw16Tg8f1fzfEX1ac3k9gMd92sWALS6kL6gDXfeTl7s5eVmghIN
fomLCm9sPdZvF9mFk6vABkiXKCHgbU+XvEDVjwKJu52w61fnuiBuJOohiS8R
faJiYe/0WPKnTT5AVmhbhllW5PnmNfwrkN1nrdu4y4+2gHSOaV7Awzuy2L9K
7sjK/Vi/FnkIYDMuLXkdnTtBKORN1TWHloDzYmW8aW+Ku2yxBQPeA4Ujo1tz
YfW3CBvqV0Gy2XpraE0Uw6I7XnE8iKIPvtFHeLcND8SgpUHeD5rU7pop6eva
FTKW0837aqx0+T6eOCNGc7V95o0lrE3ATlrEgWIiYeQg0x8EfCq/B6hDmH/E
yBlFwjZDVmzknxFM7+PorK/OWDi9J+l0xhrujGokz4KmKd6X7p6B63lFNT6P
X/1UvVSJml7FlXhNKcvOz41ZIdSgcUs2dn3Ai11IhzSn/asbS7ITdkMw7YwT
JgZ4nSbbV2dfVzA4C+hq94Fh3wtBv6ZBdwVRIvVZJ3bHemYq8gZL+/TY3b+o
rpJjE7uqTQrdxahZW2nVRIUvLiR4peCehbnvqXiG0sib3QAdRkzwgmz9Wjzs
kC1ifFqtBgJsnWE7HMudPHxDDKGl+gYQfuEIufTsqVkDTaxtzK5kmbtrYQcb
bj3eKrKZ3LWWVfwsQWsx+WpzJ9QUh/wRAte61lc1W5Op5dmpO58Kg3JS3Khh
4vu1VFURLD72w0oDHvMxqDvwKHkLdq5s9g/B99lK/1Saatn3eCX+4fePw3c+
VbNQUDgt/tDZuqBMWLwX3nrvWLoxqbx3+vpzLyL3EDGHDw9INoypqU7xPpQU
295a/bT1tRKE1e+/gXlIurR8A2NrX30KOMolI6hkY+xMh493ateWmA1rd5x8
4zvfFqC10sbHNKs3OE5GZou/kdfGv/My5reIke8P94a/g1fcLWpOWVtWhVex
+HEaOA5kUvjeIb6L31lFPy4KSJ2+GsCT2PZ35FiY+wHelq/ZYM0LSU7LFf4S
GLDBJVcPwTzTGmuKBHNcO6ibBri7TufoguqkvFtROyS5gkWZHXKDLwwL4MsY
zXSXExARIKKklijSHN7jcyUFgG+zUYmzs74nLIMUn7O3feWxrjIwmthOgwnA
IJZl8QPrMD4fawp1Bg+J8R+pB2eiQf1JFfwFDz9jZLmwK1LL7xs37D9PK6Eo
AhqWvgmq/SfsayBvytAqmbllaEvas+O59m/D4fDv9Km9SCOkun7A67X87o5Q
AXPpTq/23iNV0Ug7gBUMLXO3/HD5mQB1g3Hy1m8w4vtgRFB48Fg9BCQI4KoL
NPl177HC588Pnw6PuPNJ/WhuCN71fm4+4isEkilECGPYVzuXnCCtHfg1IcC/
HimZYPMorznLjUd8f+0RR9SSBhvovcD7tbRfYoadesOk939L/96n83u5+AI8
/EvtWamQ3f8lN9NKiA/pCvTjLybDh7zhxzccX8ktTHM+2CfjNBB2ougC+wS1
cfojx+z8leuWjB9NenUuEf2E0OJHZdcqwl0BSNUU46Du83+8s03lk6UWJnqf
cq+R6brTGWcqySiktFFwjF0C6Cq9SxhX/rOOlnEa+zvXeiqNUGqNRizvKyhT
39KexkcAa+1LMIOQTbGNo651R8EL32nwmUM0GAfnygIwhmI0bzwgbDuIFZUb
C66n5WjCli7S0ihTYtkYfMty3wSt6kcMU4EvNZUgIu5vga2ksWxCxyk1Bk4S
6vmJlqS/U2CdYbQlY90X+H1mqC3BTl1UKMOGfSrRpfMeWGuSnApodFp17NHS
IyUPe6K4MG0IWZUS0xifB79X2w3z84rxgJqW7BraekhUedX/krrJIM61RJKl
YwdGZaqmpLUmVGRVUycqDu1axclX+HUX2w8P1dMyR7966UuO4NuWDW9CiMii
8HnCbO47g+l6CI8oB48Lu9GS38vmcryEBcEkp87+ZOVTOyO/l5DR4vRzoZCw
ZqPZcEdcCEDHCgwqRMoltULukh9OfWK5hQ0uUm+wWVuuXzu2lpRTv9lKp+9S
6eHzBmlQ+wLfX7vRn0gk4JIT3b8GxI0Jrgs0uSbXjTcxNbfukWkuAbLChlPa
uoSfhEiuu83G97e4U6m+kWgmxpBqPf46Hc51Ade47Bped5o7Ad9M/1X5sM18
n64WaYbFqdUXyFkSpy5H1dsaLcdCEVvI1R1/M4WyfY3UmaVySHa+Q91TS+xx
CHRWiJeL0IbZhKAfd5XkIw93SY05C3HOQZDU6iCX2GYb9RH2bp5zMynq7KVB
X6UxtvSaDaxcX2LkSM8zLJ6TODWWr6F6q8ermT49WG1I6jfKb9x9LG4DKqU2
hGlRm1XZXR2H3D6Xc7sUBlPdqrmw7ybjo/o91k54OFVeExaglA9HAErXPbcl
e+o02nZ42C4g9ZqlEdW2qJlOrBnMcr2sYvN9uR1V056cwZRkpdh1tYQcpfwd
qXNxY5VKrhU7OJ1f7/YvSUHenkc3dxlGW0VF8WwGYKWF4O4PGFuqp380Fp2S
/baRCcbrVkVJWQ0hLzhKC3JH0hJZ7jO8FRZibr8ksWSCbJqtxEZlJibLAWTB
8cyTMzXFnsIJ9IN+1NTTX1RjWNPQWuglueQ26nT96mgxyVebOdL6EhtWysk4
iwzjW5RMIlXnbOcAcmnU2s5UHmB3U83l04kjsXsggV5abgntemZKAs1FwpxJ
DXuW3sRoU4swHbMw7XTCzECQ87nUa87rCgibBlRM1TYRWBsF05zYbfi/GMXY
Gs0lZbycWktfSZA6WCrhuyVKbSKSgnQN4swC5mF3UzxS+b8hNnwWpF+DPepQ
HFbNORq3OwUO11iUoofgCxQ+pAkvN4KcnDZOuIs0y5J71FnuHvNbsNQxIwxx
deaCxeHMW+KubQ24YgkMRnTNjx0F7lFyRcKsKgnDF/Iw4YmhRT0B646UesoJ
aeaUVVawtgZkgmrPY+zn5JLoaUN2yf8A0iCACVCOBJat2cy234sotX+PBCO1
THEVfUicgtyN+vpaWLc1Lt0Skt50dylIKjcrHvS2R6GZKd76RrzOUyW+AIPI
pJH4qpz7p7Qqkvt21s1yas4MOqKQ/wwitXyFtV7LK1UBbltAP1Qyezx6OWr4
yZyVqHV5DZuz1uWKZAyd/0rT5WZOF5BhZammxN00+lQP+b+OmcAmEI7R9DzN
LhMTzYmWOh/3+f8rM9GjHVJeO5+kW1/KV5uzvP2l/wUOHqhcgm0AAA==

-->

</rfc>

