<?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.7.29 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-mls-combiner-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="HPQMLS">Flexible Hybrid PQ MLS Combiner</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-mls-combiner-01"/>
    <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="June" day="18"/>
    <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 confidentiality and authenticity 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 removeInRFC="true">
      <name>About This Document</name>
      <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 significant overhead in terms of public key size, signature size, ciphertext size, and CPU time compared to their traditional counterparts. This has made achieving PQ entity and data authenticity particularly challenging. The hybrid approach in this draft amortizes the PQ overhead costs enabling practical PQ confidentiality or PQ confidentiality <em>and</em> PQ authenticity.</t>
      <t>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 various ways to approach PQ security extensions:</t>
      <ol spacing="normal" type="1"><li>
          <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>
        </li>
        <li>
          <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 while achieving PQ authenticity as well.</t>
        </li>
      </ol>
      <t>This document addresses the second 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 <tt>hpqmls_psk</tt> 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>
        <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>
        <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>
        <aside>
          <t>REMARK: Fig 1b shows Client A accepting the update proposals from Client B as a FULL Commit. The flag <tt>f</tt> in the classical update proposal <tt>Upd(B, f)</tt> 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>
        <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>
        <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 <tt>encryption_secret</tt> 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 <tt>mode</tt> 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>
        <t>Note that an active attacker with access to a CRQC can become a group member by impersonating members in the moment they are added. As such, the authenticity guarantees outlined above only hold as long as the adversary is passive during the addition of new group members.</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 <tt>group_id</tt>, <tt>cipher_suite</tt>, and <tt>epoch</tt> from both sessions (<tt>t</tt> for the traditional session and <tt>pq</tt> for the PQ session) are used as bookkeeping values to validate and synchronize group operations. The <tt>mode</tt> is a boolean value: <tt>0</tt> for the default PQ/T Confidentiality Only mode and <tt>1</tt> 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>
      <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>
      <section anchor="key-schedule">
        <name>Key Schedule</name>
        <t>The <tt>hpqmls_psk</tt> exporter key derived in the PQ session <bcp14>MUST</bcp14> be derived in accordance with the Safe Extensions API guidance (see Exporting Secrets in <xref target="I-D.ietf-mls-extensions"/>). In particular, it <bcp14>SHALL NOT</bcp14> use the <tt>extension_secret</tt> and <bcp14>MUST</bcp14> be derived from only the <tt>epoch_secret</tt> 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 <tt>hpqmls_psk</tt> 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 <tt>PSKType = 3</tt> and <tt>extension_type = HPQMLS</tt> (see Section 2.1.6 Pre-Shared Keys in <xref target="I-D.ietf-mls-extensions"/>).</t>
        <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>
      </section>
    </section>
    <section anchor="cryptographic-objects">
      <name>Cryptographic Objects</name>
      <section anchor="cipher-suites">
        <name>Cipher Suites</name>
        <t>There are no changes to <em>how</em> cipher suites are used to perform group key computations from <eref target="https://www.rfc-editor.org/rfc/rfc9420#name-cipher-suites">RFC9420</eref>. However, the choice of <em>which</em> primitives are used by the traditional and PQ subsessions must be explicitly stated by the CipherSuite objects within <tt>HPQMLSInfo</tt>. So long as the traditional session only uses classical primitives and the PQ session uses PQ primitives for KEM, a HPQMLS session is valid. Specifically, the PQ primitives for HPQMLS must be 'pure' (fully) PQ: PQ cost is already being amoritized at the protocol level so allowing hybrid PQ cipher suites to be used in the PQ session only adds extra overhead and complexity. Furthermore, the <tt>pq_cipher_suite</tt> may contain a classical digital signature algorithm used if <tt>mode</tt> is set to 0 (PQ Confidentiality-Only) but <bcp14>MUST</bcp14> be fully PQ if <tt>mode</tt> is set to 1 (PQ Confidentiality+Authenticity). These cipher suite combinations and modes <bcp14>MUST</bcp14> not be toggled or modified after a HPQMLS session has commenced. Clients <bcp14>MUST</bcp14> reject a HPQMLS session with invalid or duplicate cipher suites (e.g. two traditional cipher suites).</t>
        <section anchor="key-encapsulation-mechanism">
          <name>Key Encapsulation Mechanism</name>
          <t>For HPQMLS sessions, the PQ subsession <bcp14>MUST</bcp14> use a Key Encapsulation Mechanism (KEM) that is standardized by NIST for post-quantum cryptography. Specifically, only KEMs that have been selected and published by NIST as part of their post-quantum cryptography standardization process (e.g., ML-KEM as specified in FIPS 203) are permitted for use in the PQ session. The use of experimental, non-standardized, or hybrid KEMs in the PQ session is <bcp14>NOT RECOMMENDED</bcp14> and <bcp14>MUST</bcp14> be rejected by compliant clients. This requirement ensures interoperability and a consistent security baseline across all HPQMLS deployments.</t>
        </section>
        <section anchor="signing">
          <name>Signing</name>
          <t>For HPQMLS sessions, the choice of digital signature algorithm in the PQ subsession depends on the selected mode of operation. If the <tt>mode</tt> is set to 1 (PQ Confidentiality+Authenticity), the PQ session <bcp14>MUST</bcp14> use a digital signature algorithm that is standardized by NIST for post-quantum cryptography, such as ML-DSA as specified in FIPS 204. The use of experimental, non-standardized, or hybrid signature algorithms in the PQ session is <bcp14>NOT RECOMMENDED</bcp14> and <bcp14>MUST</bcp14> be rejected by compliant clients in this mode. If the <tt>mode</tt> is set to 0 (PQ Confidentiality-Only), the PQ session <bcp14>MAY</bcp14> use a classical digital signature algorithm, but the use of a NIST-standardized PQ signature algorithm is <bcp14>RECOMMENDED</bcp14>. These requirements ensure that the authenticity guarantees of HPQMLS sessions are aligned with the intended security level and provide a consistent baseline for interoperability and security across deployments.</t>
        </section>
      </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-non-repudiation">
        <name>Attacks on Non-Repudiation</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 <tt>init_secret</tt> or <tt>epoch_secret</tt> are deleted at the <em>start</em> of a new epoch. If the MLS <tt>exporter_secret</tt> or the <tt>extension_secret</tt> 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 <tt>hpqmls_psk</tt> <bcp14>MUST</bcp14> be derived from the <tt>epoch_secret</tt> created at the <em>start</em> of an epoch from 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 anchor="sec-normative-references">
      <name>Normative References</name>
      <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="Flo 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="Flo 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'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 339?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <section numbered="false" anchor="contributors">
        <name>Contributors</name>
        <t>Konrad Kohbrok
Phoenix R&amp;D
Email: konrad.kohbrok@datashrine.de</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9U97XLbRpL/+RQ4uepMKiRlOdm9ROv4IkvyWWvLli072a3U
ljUkhiQiEGAwgGjG632W+39vcfdi118zmAFBWnaU3J6qEkvAfPT09Pf0NAaD
QadMylQfRDuPU/0uGaU6erIaFUkcnb+Mzp5dREf5fJRkutjpqNGo0NfQ8sn5
S3iz0xmrUk/zYnUQmTLudOJ8nKk5DBUXalIOEl1OBvPUDMYywuDefsdUo3li
TJJn5WoBTU9PXj/uJIviICqLypT379375t79TlbNR7o46MQwwUFnnGdGZ6Yy
1Eh3AIQvO6rQCkC50OOqSMrVTmeZF1fTIq8W8PRMG6OmSTaNnqmVLqK61ZVe
QcP4oBNFg8jIY/pDVeVMZ2WCi4ojaBfpd+OZyqaaXp8fXfC/uSkHLyuVldW8
c62zSuNYH584injBOz8AnNjgP7ALPp+rJIXngKnvEGXDvJjiY1WMZ/B4VpYL
c7C3h63wUXKth7bZHj7YGxX50ug96L+H/aZJOatGPOByuudvAL5OYXmm9AfG
ZkPuNUzyoMPehp0czsp5utPpIM5y2KdBlGSwOzt/HkaH6VJnOBGTws6f8//5
r7R+ClCrLPlFlUAB8Pbwhwt8qhkHClv9lH+n5uqXPBvCbG7kR8PoiUq1N/Aj
wGup3NPGwM/VtUpps6aFiitYdHQxnuV56k03ohGGMxjhu2xhhjqu3Hxnw+is
QoT/srryJj1TBcwZvNm6onmVzrGLW9LMzfCXYfQ6UT6q/pIAmbuHn7GgdzjA
sIQB9t2COllezGGQa6DTTpJNvL8GA6D6kSkLNS47ndezxETAwtUcuCCKtRkX
yUibSEWLIi/zcZ5G0DliEkACVsCNKk4QPoAMRYXRxNnREogJ+yGr/MysEnXP
X/aCRmUeKSBnfa2jiZU8KosjPZkk4wRhmDk5BBJgksTInSoFbqJ2jl/xQTlT
ZaTmeVEmvwDM8AYBXVSlEvDGAEuUT3Cwp8DaJ9lYLQxsI76OzjQyemLmhkY+
ToAboM9FMs1UWRUayBfEHCxqbobRxUKPEwBRpemqHy21Q1U0y5e4qspoAkC/
WwA8IARAzBSaZldWqAoS+lEy1MM+zBqgpjKMX1x5spjpwlRJqfs4uNGaMDKt
VAGI1bDYJENUto/g75A31DB6tIpMtUAAsWGeDWKgIVi712GQZ+mKBGG1QEFs
oq4aXg3VMDo/fPX69PCZfd4DWpXNGgBobT0ev3lWNyesjQHiAgh0zMgaweTL
JEa6ASjCvcuvdTHTCrbcmHyckHwmEoPJ8oUuqJ2JlrMESGiuNS0JBy30z1VS
aCJowP4E/8bfEUKgae437DAnzJM4TnWncyc6zcoiB8jwdadzGE0q2GoAeKGQ
Ri1BqxjAMqpYRTPFFKdGCVEnbAcoSnUFHbNY4eywCPhVF+kKQRsXq0WZAxsv
ZskYF1XNF7wEANLfsa2U2n16cgao/xjBRt3ji0PTA2GD/I2gpoA+ABEhjoH7
0nxhEbTOsAGoSPGsM3WEk/PcMHo0WjHLBQsrtNGooHA351WGmIEtgr9nCnh+
pEHWkTTCUVWcL3BbZaDndutPMwPmSQXCDsC7KGFCVcQ88WtARZan+XQVdZ+f
XrwGskqycVrFdvfPYA9hv56pEoQEQRx1z54N4F/GWuM9LITew7/w3mP4H4iu
YETgaxCF1yCIkPKs8dCPeFAek/rzCg3sBgkKRK4l4QQEny7mtNWLapQCnpAa
DYitPvXg/eO/mWNL/a6UBzjF0fmbqEzmLODACrKbmRQht+cViIcCWpTG2/y5
AuhZ7iKeYB0oQ0WkAnuqUK5i92SM6g45ADRlqjM0b3BEbQW0WgBaYExaHGkR
tBoa4hh51SIBhbGBiYGfEIgFKiAkrzZRD6Kl5ekugLuLL3xogZPP8kLjNP2a
+hRhOwMMxnqA3JPpNII9V+Mr0490OQb5S/s1z0EvknABCU4bVMs0a/gY1jSw
wKUjAJAr+Twa5SCQcKEeoyN8gFbvSbhD80WeAfCwP4fRtSrAzFrV09bjlyBM
SuRRw4BCSzQU1LjIjSELOlqKUUl2qGEJlMRTlq1TtQB2K5fIcSAuiemyMWvb
epIcNgSIplDSi1gSZQ5rTdcQNhm0tSl559gyMGu8B7rImQ3v3//Lq8dH33x1
/96HD7BHPwBfEaVwswD0Pj4ucImaMJJXINfVilbkyMyHBngDXAMUnmDQ7CMi
UfOlPLSn8ch2URa1vqDbCyTuCRh+RNt+X9RVQKIgqmGIuMgXgwSV1yJVY1Yu
ODiuB7r34Y8xq1/AnczXJN9RVUZZXgbUy9wd50B6+ArwWRUROyDAK6nRS8KM
hzmDNAxLRqiaMxAQsCswRxwDLxhhQ/xvpopr8AEGGdgre6ADSGwP0DHAVSCx
AS/EOgWTO19q4ib8P9sCepETpwN0hk2UgK1hf+8PfTVF/JJifyQsxodYtYzP
uVYZ7S+umkwOgZhgdRs9UikRrSVk4a12hmIDUaxLGAvIlTrDLNsW76QC7o9K
DdtySdkANJmjGtABLzGTYHM2QwIRG4hUGGup03TYtLjDfYJ157i8fAEaAs0C
Uj/IKwCPnqPVcgdUYDFPWAfiaJo2CN1bA57Km4vXO33+N3r+gn5/dfLyzemr
k2P8/eLJ4bNn7peOtLh48uLNs+P6t7rn0Yuzs5Pnx9wZnkbBo87O2eFfd5iE
d16cvz598fzw2U6tENwiC9qEEdIxaiewizXadR1rRJOGfHR0/t//uf+VCI77
+/vffPggf3y9/29fwR/ACxnPRhTDfwKOVh2QEiD3cRRQVmi0oWUEWwpoN2Cg
A0sCFwH2dn9EzPztIHowGi/2v3ooD3DBwUOLs+Ah4Wz9yVpnRmLLo5ZpHDaD
5w1Mh/Ae/jX42+Lde/jg30HD6miw//W/P+wwjbD5QeIxRTerT7/PNUZc+HeR
xM+0mkTPQRD0OVZxlGdoivTRLD0HPgF+7nsmJzztgzeexWamrkBAUSQEWpwX
pFW9B2z2uL9xF1+xpR4foZGNVnSiRdkRM4ARTewH/GRwJz0h6GkZX8ncAcjZ
wAeFo9kno4WTsqb/YW+vE8EBzCrRL4+3kPROB8cUdhksANAF/L8ciHVQ1g1h
5ugRGNRL8nAIfGDpkmyKQoMQRFOQwSBZrye4OZleAhVrVGCHi0WKASg29Qk/
B9EBKDVBojwDsi4KsieU1wGtN1j52hbICIR1OwBaVZuGZE/yHNRcbtD7KjAE
OAcpmI9+0uOSWCkH19Gw6dkCAvotx5rGx6ePq4x8KXBZjh/3GJwnysygv539
sA6+YcMjoLqo++Ts8Kg3GCmcCJxpWNcA/wMaRIORhF1czzJxszzBaRDKQKiw
/PjD13/8hghki29FrpXAiZPAdJlBV7kmNo43pLDVIK6XOdvJmrRDPioVSh8Q
N2Sdi/fPy8gzcUzHOgGVeNd4TgAA5QcX64jJBTv1BFDo5hMYZK2iJiYvBIOl
ZcHOK3gUFVrAPibAw3p8en4R3b/3JbMB+k7D6BR0vgLrc8G6FLWw1X80NHo1
Nx/6K29okDqNMNHN1nOcTCaJHjwBXQkqFtzYJz1BIjlbrbv7zf7XzP7nL/de
C937KCW/0YNGzLOu3dceBgPukP1nw97ICLznJ+/AFmGJ4jk/EtDpcky85zyF
mlaKKmMi8VZKIgyIBh2qFHC5ysazIs+SX8SABmeOpLDIZTNLFoZ9LhzIDYLq
VCYk9HPIiUM/Qne0EeKAWTQjGsCIkabWvjkv9OCCaRaZo3t+8bTHwSUyHD20
yTjiVjIAzEOw6DGabgl6muCsl3mxIuuYRQh5VYdxLDJ/TlaUCBpCCdguaITm
GBTPiI9q1PAM1v5jI4nx4BmqsJjEODJmqz8Duka3wgHR1UPwYFF2IQdToxSh
DsJOKaETnYvrcPVB9Kg3jI4rbeMps2SK86yHHlng51UJz8mXNzYYiVEJcsSs
Iu15MS1aD/LliMKMSUERKDRBjal0VDumcRBp67mV0rJs3CulOGnW3E6O8zVi
e26IIah4NHApgmeHTSRCphueoaABCZ2iGmOQ8VWqyTQjPwFtMv8NSELcaYMi
RiJLsI8ZGXQuzGhnRWoH4RAzI3gARQUaGKhpQZaCXmETOohmkRiA1kBtc/Ce
3cEMkPkRcO0yyWJS2zbW05icZ0A/sIQtLvUaEvF8SEaxK6BopJCxOAIOVfMc
1jLVGWFkxQtalxy45dOM/X/DEYaa9eEB+J9Xg1H+jo3pCXijYOTmaHvQliI1
pgiuHyXlmCjC0+Ass2atD1nQgZmiqrREP5wi0CXoOhAXLPBqArTCJSEtOEaY
9VrAm3023Fw7zNYzBC+MDpL24mmbNCN7BByJawwWwKoRcniMZHKYAloyOu7A
WL1aB5Y8e1R0Iy0gg2yakC+4ETIMo6kUGscrjmKCgM8kJpaQ6IthevSk82o6
42FdPL91iWTfBvIeVILOYu71g04BbjSAxVLLHUlhZ96H02yCW4Pa2VrHodHu
ED9XVzyuz0BNdSpDvH8/pveDCchJMJGBfhEhaF/fsV0fowh9f8dv2OlYlgVK
qOU7+CuI511hrV00LXcRil0QWxSeCZmuz2S8QfuA7SSxCCMnCzFIchToFjNs
wuqBAGpICoLMIiK64KVE+/dREvvOg8DioQdJRwaBySZJYUo2e+tIekO7qszX
ONir0b5lQfWxDxA6Gba4ohb1ze3wIRnZ+sTGwC5Y5SMAl7PFz/PUvF2Yq8so
VSOdRl2jcUdB/A6s+P3wAQ8GMPJnUPTysVkB1mlJQCA1z4X7thkCfdHGGOeU
QCCdS8lhI+JkBLqP14HjZmxusLWBxoYlEhdJa99wQScIeT6vsKTFArR9wkB+
oLmiFqhmQWNyPODut3ctuU+SKbwBwaqtWZCkaYUHpGzcVAXSk+nZYwp/CafH
lv2Il4BDU2uZeqT1Sgx/4ywl2VtZGeCYdx4QhH6hjba10RhxcxNXMk6XT1pI
tLkNsei3aOt50+G7tQnbbL5O5x//+EcnuqUfklEy2uHNujza+OaIg/s03N9v
CsHWhn+XsRird7u9WxgLfoBujEc33/6asVpFQPduzf53e5+yxm5I0+sLvslY
g1v4efj332AfP3ssjwA+Z6xNuJWxHtwGwr74RLi2TcpjPU6m0b49vK8FFJhM
er4oPaGN8njoZILEdAzbN3fJbDcY/LVSJRBldb+GNOXTjEnCwQ0QW06QezrR
dXbWZ9YQZbVJoOpdJH2xaWJReymG69OVFZ+xHZoNHdfZPk0VADD2tPl1otaU
hIuqDUmK3qYkxZ9blab4c/sSlRp86nhvFvHd7qONwvdzxus+6keTDSN+6ni/
pyT7HPg2vbBovZ3xaqTeplS7bcn2OeN9tEHDSkC8brEUPmV/f7Wl0BjvV1sL
/nii1WC5/WiL2XDT8W6LXP4J+S2kjF9hQbTi+v8Hv5E1MWqzJt6Q9+75gKjf
j+hwMnr0+XYFatcHCtN+orkqrmJw9r7dGaX5+GrnYefVydnhq6cHAhUdDRs7
52GkxmO9cGmEVQifCQHk4Lm3KnZGJ6maRpeTy3UDoTFcdOkkJzaOKQHdRI/u
UpiVg1mSvdJA3XKWzzHqHXnRFvxn4YyMB3u0/ocUrzmMJaD0xuii08H/Ryme
8WY5eoeITgltxHFrYCOMrrhwShA4smGVLxtRFUymB5RK7AJzIuoMRU5seXL+
9MR/SklGHIzR7xTYY3hUbI+iMC7KibD+YTQm0/rhMYq41Qds/WgOzrwscqT5
DR1DWlvtGKaEpdApDyyluMbEwO7xBRuMvJFeEqoNnoEz3gjSIZGmKU5CFIot
xOGvDUnfnR+P84KTp/JtkanXNljokJ9gRHfBgUsZ10iapBtdUB9un09LdU63
G5f3RDVtY0e0GNGKbXAAcwNppNIG53/KKZJNGRV8VrEWbzQ5ZwDBeIaTvynu
ij0FETaB5/zo4teGHcj2ZjK5SfPakL6hGY0/nil9nGAMDc++bvDzWUb2WtNP
6PmpCgib1mz26O5vPZc/2efM9dmK8IvfeF1b/rzRXNaMAEl+t+vvSK9hbt4K
bdzE9rytuW5il97OXGJIAQp9DPZarKpfO9cXn0uGn/LzqcbureBQlN3d33Gu
j8Ylf8/9evj7yt7/y7luLnJua66bsOYtOzzbfr7oiNXxmA6HovsH8nftLMSx
kVxKsAHEbKbTXOu7ND0XshRbTvaGGB9EIxENIGtR0p0POUZcO5aRCbi/ve9U
n/S4kGlb7DT0lMBDuOPmtGl536s0iSWLktNAlF0pmdJorAUZSXwSuGYMYwIF
n3yRk6Ixi99apzSQ9Xs4A4xPTDEf3FTuNiD0o+noTBgP2OWkkA5ayeosNLhJ
kmzSdipOU1j7l0w8UGt03azO9TeSbB3mWZEdS0nLYSy4eTSPfgS4VZiD76e4
+yfxkVNyQb7TNWNa1/bvTK+lK+BFEfAqJEeAoQL/L5ms1rLF6KQTeoBDIy5y
I31EkhwIpXKaSFFzHmKr5R44fOLWM/3g2go8LfwzDGs6Hfc3TlMn8OD5qV0E
OLEChKwBeQTPbkca0QCEawPx7JZ2EccqQ2+2ebBP57L25N3dUeGJ2C3RFp7K
2DXS3O7yzvoRa3vi26GJJK+3zjzpe3SFdFdJgqykwuBLhw+BnCAQh7WdbGEq
3y3q38Y+ceYdO8gELvA7DiYxgQLfUr6GUD2ls1gstdy7cETFHibvbwiNhHiU
2QSXgHA7RC0r4MW25FQDZYbZS4W92GeCLK2WjAcvf2cYDO1kneJEChZGLK2C
KNXGxA98ewl0jBdS4OlbTuC8tKC5y5FB/pyVVi2jtgcV/tAMKmDC6xlFgODF
C5soBvLeYiHTGhTcNd50Ha2Ca+mc1WhWsB3zgZF70VGRmCuYMoWR5JbZHt0b
x+RhTIfzrlS67FE/661UxVSXxotKqLX0mtYFl5SsNi20bt5ZkxTKskJhGuuF
5FZJH2DUwVgZfWBvYyMV7L0G2g3vVL0gzVNYPmhpwVcI4MWhfy2RYlgbR+w3
BQ9xgE285itlnEw44buQ4aWxTZ0JSDuCIA3+OL44ZFE4t1vucgM5oMq7WFPb
JTa85HAmkPC6XqWhoSceAmM3zJ1hztu45DCvECcIAUm2bQA2l1Q76uk4t61I
QJqA9NGNYgFqiimnZX2Tm659gYgBKYQ8CyJ9nBhKGUzKQDK0DrMD2gqjrIXZ
6Yv9gveNNk1CGi/m6258nXM8ZrOo6+UAS/Y28DptEuYw+9JwGHV9EiOL0tTG
3QTvRxAoG4UDGq2HJ4fH0V50dngETDc1cj0bN5MuJ15jyRFJOHZrZBv26NXL
o2HP2wV3bxH1IYo7u+5kDttqcskPlxt2JEhITQciHrfVoi94YytK4LSUs2kq
RJrhm/n1FNqp/wBZnc7z3NqWfJWTMqxkR2TwMadj5f40I80meAjMyJ+yNjHc
taR5Tnfd8DoaIZMMF7YZqvGMWTagJK+YA+A5JZNPjTA5nvN48xTvyEVpjrJQ
ag246gOwAws8WoDWcVVYRWKDs0g8aC6EeN7Mnl8EoosZlW4uIRe1cioLoI8O
JXz7hnIEFYkonV0nRZ7Z6gOqpdqAuzVlyYlT62GILm5Sry8nP/WlVTa7EqsN
PBGzzKs0JjWQY460umLRBbaTKCpKGZTTmWB/Eps2jdv4SiNoQkxBK77LAoqf
7onnBJamsj/Ew/UuH0T7PR6gPi7Q9jSLbCehNNHuvHlNO0BQgQp4PtdlAaqX
G1IBDsECsng/ui/T+aU5aEa5wmpNNvJC2ibn/OEvZRjlHJ4lBvId1HW1ADaw
u3Qgk+XZoNCLKk6IZnrBQmIpXeFEH93Vt2jxii9sXiWqRZJkWywse80AjQyw
hKwjLKxeM5NN2rYOdGu+uQcr0xTKvZG2pTGs5Ae4pnhr2jo0XlUXPMLCVHrM
7p+5+3qOGDI87cORWu1LJFj2LEh9NNDrpm+uLXCR3RHUzfj2IzYKLifJapkD
oIndEXjWuFEtq+1+bNOqjK/Bxz17aRqXlLjSBGHFik3qeu08867cgmUPxYLT
R7tGZ1PsSfvl5AOC393n2iGUMI2vu/f5bNDwzfyqyPwaIWHnNeOdqEuUrrfV
pPRx/20S+JZ03MAHcR0t9ysWADS7kL6gDVfeTl7s9hYatVwGvyRljTc2p8Pr
VmZm5SqwAdIlSgho7eiSJ6irZSBxtxN2eJewC+JGwkByEiiiT2wOWLt/yb7J
B8gKbdMwy4o8d7U2apbejOw+WwrkgcbuQg0aR1K+p3kjES8NY3UxuTQsF4bd
XOQygRE9N+SGde54saFXdekimgL2i5XxugEu8QODxSLwYixsGV0j9NPhRdjA
WrhAlS1k4mwUFt3Jgg0aCse4MiT+ZT/cEI2WErmD6GPYe7ekr4M7dSynmxf4
WOnyBUXxzrTi6we5sx4xWQPrnBEHis2IoZRcvRPw6T4CQO3D/BOGEik0uB7D
Y6/nkmB6m8SX/eiShdNbkk6XrOEuKWn00ivp4oIL3UvwxbdcT+D+i5/rRrWo
6dVcife28vzqSusFQg0at2Lr30UA2ae2SLPav77CJSthvwzP4XHAVAOv02AH
0eW9GgZrAW33pxj2fR/0Gxp0W4gSqc9YsXuhJromb3A9zk/thZT6bj2WGKwL
utDllMDayupyL3yTI8U7FrsGxt6NkglKI+eHAHQYQsIbw2GdAFghuwj4tJ4N
BNgKK26wlvZKiQgthQtA+IUj5Ba4o2YFNLEyCfvWVWHvyR2txTnwmpXJ5fK5
zOJG8V0CfrW+EirZQw4agWts/bHA1mRqeXJu96fGoOwUV64YucoydZoIi48D
P/WC+7z3EjEcSl6DnSuL/ZP3Pl+onytdT/sWawQ8+P6h3+ZDPQpFybPyT52N
E8qA5VvhrbeWpRuDSrvzlx9riNxDxOw/PCLZcEHlf8q3vqTY1Grx88ZmFQir
P34F45B0aXkDfYNXHzyOsqczlMNyYU2H93eCe1zMhsGlL1d+0NVJaE09ckHe
ugUHDslscVcU2/h3WiXcihj5xN0959N7w0pwG3OfZp7LQMaEK6Piqihe1pRj
A6JUaK0BNglsd12Qxbjr4Kz4wPpq3s2y+q109+GAAZacSAXjjAOmFNll+XUQ
GgW4uk7n5JpSxpxDEWyP3EajQy4tFeKo1TJBA92GFIT5RYgEZ2aKI528oyT6
sTWbkzg6a3rCMsjvKfvZWzd0kYO5xBYaDACmsEyLf7D24v0xuowu4SGx/LfR
l5eiO91OlfyCu18ysmwE+v5wf/jHRrGBj9OKL4SAeqWERNT+45d4kJbStT7X
3dC15QS44/j1x+Fw+Df6qz1fxae6vsflwVH3jlAB8+dOL2j3bVTTSDuANQwt
Y7f8cCaeAPUJ/aTV79Dje6+Hl4PxMHoASBDAoy7Q5L3ewwifPz1+PDzhIjDh
1nwieDf7+fQeXyCQTCFCGMN+tLPks+Jgw28IAf7v20gGWN/KG47yyT2+v3GP
E6rOg4X9nuFVY1ovMcNOWDvq7Y/Z3/q0f89nn4GHf6o1R5HP7v+Ui2klxAd0
G/zhZ5PhA17ww0/sX8stPPH98oALiNbCThSdZ5mgNs5+4midu33ecvhJg24/
VkUPwbf1Udm1inCbCxMdBaVsX1DlK8NlD8jIi8joM53XrlxllrtqjQDr7ixf
7kr4K5L4l/MB0XPlwKsXy/SKxshJzo9inPyta2u1L5fLYTEZDzSsNS+oBDz8
if9huztYR3zAcw54zp4Xq6GY8SxPuFrhLhkKu+BN4BEZZeb46RlNJ1eKo5lq
5BxiMkJG2k/RkJwI6e9bx1w7jE+PQNdf1vbt5TC6yIOzjba9JNOOKkPVFyl8
0CVZI6iSwEFArxUaNnSeqpoGFcYU0f9ulveWMRtjSGeLgLsLMBbvRl06jepB
+wOuzGO48IMrFULBjDnebwC3Po7kdM65c1gkM8X6Lco6YF4B9ICQuIJi1X6X
wJbQxBsUgEmverYU1sZi63QqXRXoB89dztRlw4W5pHNzm56iPMyvRe3rixsC
1sQLUKC5CCDfw4pmzaDCAGMQPSq4aU16PtSDpm2D7LcN8oUfl3DxWB9nfpEq
phY+/6Y5JXwP7D7FeAJsMAUPEq8WTINcsAQMxo0x6whohlMBZbRCI6Wv9yHL
O8n4iAXmiCsOTurG5kpxqmXeUrw9slzN6VZbath1Oo9rQg2z8wI29iP5Hy2J
Z0+33RUTomPgdiz0xkFmv+aSd5y3ajIWUSkVEacx65LgRqcs8unOjLuhYyfB
CyNYOIhFf7JlRg/IsDYZIbiu2m28nAfMR5LieByyW2Bxx7KUU6bK6HWG4wAL
vgKYsGIYyAoq+d6nkLSPqn5dKJ/Xvs69gNxGyc/A3WXiYnwQLyd4OMopmbbM
t1/1nh1ZvklWUAhRYkScEOIlU3mFdmELsC6l1JfG8JvQUawXab6imLRQIJb/
BEm1hdpqjbNNaHiIqEmTE3WMdXEdZawdQ4OPO/GTVT5JXGw729oG8ufzQl07
UcrFb6DBrz6TtFqgvW1Sc7XC+CBmE/q3iPx1tB/+VbB+Iz3DRZrLGj+KMB8g
hYZvozbjr9rqi8I/cnEVkURLb8zXmDTJnk9uU76g6MItdJUz1l7BdVb3cjOQ
DgwDfnRsSGWI2ti3jjgzoza4sy5xdxQeWL2/sylqRfatn7b5mCsHjledTsNG
81thzS8qjGXTP+vDHxXPkyxxFZTUWMoaBmUDDZvm3qXTDcUm3fF1UIwQE3Xy
MVZLV0GtQ8Kb9zefL2ISB+cJwz4m19o7meTwl5OioAWZ0NWmD9QI5UkiBp4c
54UraVx/0QSGyqtiLMYjrm+GtiEmQYNhRZ8WSflDCBgMdTeEneDbkH/aF/gd
jbaly1JNRMqXw3LweB7h7M3WlFcyElVW199UUvGw8Csc2hyDwENwCW5S4Zy2
oxFB3dIfUNOSK4f8g0RV1HYs1Yb0P34h9ffwSLGu/R+UlK29B85LMPJZCfh1
Dz9g0mIMw9uWBa9DyGlitXJydX5VeP5MlIPbhZ81oEMbjviCRO9HIE3oo2Hk
9pH959biM1qSfewcz8/AbpbPlCg4oGORJxhxzpb0MZWu+xCHFKTEScK6+sF0
/WDbWvKl+s3CmH2bGOs/b5AGFSNzX+hpVBsVJ37Oaau/BcSNAW4KNEXXb3pY
ytTcukamObC6kdEwF1nSFOR876bLbLy/xZVKLr0cxQM9PwcD5FWdbtHpcKYW
sI3NDUOlNbUSvpm8VmdzrWerqXqWZlKH2O4sT22GVW9jrgf6r6aUm/juojnl
qjUSvwzdbuIDJF/5BGlpfIA/KeWkBqH1c2G8T/vUYR06pZlTnf1SDphAkgTX
mub4qR5USBgamXJtWCrUCwaozhKs0DsZGKlGwMgRLxHvwkiWBUZeUL+F2RZM
oA6sNiT1G9n0trwCG02SOU+YFr1Z36IJcVhbZGM+xI269UdhXHFIl5PSY/WE
m1Nn5cEElLDEp1iV+xrGeu6fVWmb4WHDgPRrnsWUqh5NVGr0YFKoeZ1Z0pdi
B4H6ZCtOUu0kNhnYgGRxWlLn2E6dCBmkC1ulH34wTFLaeHkO3fx1ETRWwPad
TAAscs0Qd3/C89EweUnhHTIy4NbyGLF6QllRTo6QF2ylAcEjSTV54fITaywk
XE1VMiEIsjFYnbx+ZmIyHUAYnE4cOZPZOoYd6HsBK/osmOhGP1DVem9DMiHb
qNOWn6bJJNtST5HW5+hDyc5YkwzPaCkVinSdjf96kMt3F9qZygFsC0/YbFDi
SPS/CPTK8KdgrBsn6V/2NNfa1LBm+dQIGtUiTS9YmnY6fl6Ll7FE3zqi3DwG
Yd2CSih5PgZzo2SaE8MNv5BKIUqbUuTk1ErKxIPUwURfV/xcrhpRLIqLgHJe
DGYR7mW4pfJ5ubW4O9KvRpcExWFda69RrEXgsL4uOYjgDJTuWB4aNw7qOekx
5Y/CsCzZpULRu8xv3lTiciKuLm2qgz/yhtyBtnq6iRxux1S1gz0FLjm4Jd2r
vuGBDQLfEZ1fSt8nrZ5xOiVzyiIvWV0DMkG3FwmWZ7UpoFlDdslHBBsEMALK
keQIo9dzRXf5EsAuCUaqgGgv6CBxCnLXrssGqQmtuRUtaRWuYPb6Ttm529BN
2QBym/rL3uZ0C+ac1+7jG9afJeah4GtsT0sovZUyB5EnNvN3XtAHWUCRlPI1
tsxIfC+4vyeJr3btQGTkUZ8ePj9seNOceBP4//4HGULhI0lx1sul4Qo9paJD
MLPcoMLVNL5NM+RPVI5gEQjH4fgqy5epjqdEcJ33B/zBZB1/u0MabueDVOjO
uJxRXrQ3eppnQNnR03w2KvKrzvksB9S9i17963HnhD8pe0Uthlfc4jtM3jIz
IDA9jHXnfwEgAj9WPnoAAA==

-->

</rfc>
