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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>


<rfc ipr="trust200902" docName="draft-josefsson-chempat-00" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Chempat">Chempat: Generic Instantiated PQ/T Hybrid Key Encapsulation Mechanisms</title>

    <author fullname="Simon Josefsson">
      <organization></organization>
      <address>
        <email>simon@josefsson.org</email>
      </address>
    </author>

    <date year="2024" month="February" day="18"/>

    <area>IRTF</area>
    <workgroup>CFRG</workgroup>
    <keyword>chempat</keyword> <keyword>PQ/T hybrid</keyword> <keyword>post quantum</keyword> <keyword>hybrid</keyword> <keyword>kem</keyword>

    <abstract>


<t>This document specify Chempat as a generic family of instantiated
Post-Quantum/Traditional (PQ/T) Hybrid Key Exchange Methods (KEMs).
The goal is to provide a generic combiner construct that can be
analysed separately for security assurance, and to offer concrete
instantiated algorithms for integration into protocol and
implementations.  Identified instances are provided based on
traditional Diffie-Hellman key agreement using curves P-256, P-384,
X25519, X448, brainpoolP256, brainpoolP384 combined with post quantum
methods ML-KEM-768, ML-KEM-1024, Streamlined NTRU Prime sntrup761,
Classic McEliece mceliece6688128f.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-josefsson-chempat/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group (CFRG) Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/jas/ietf-chempat"/>.</t>
    </note>


  </front>

  <middle>


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

<t>To hedge against attacks on a traditional key agreement algorithm such
as X25519 <xref target="RFC7748"/> and a post-quantum key encapsulation mechanism
(KEM) such as ML-KEM-768 <xref target="MLKEM"/>, it is possible to combine both
algorithms to derive a shared secret <xref target="GHP18"/> and define the
combination mechanism as a new KEM.  Using the terminology of
<xref target="I-D.driscoll-pqt-hybrid-terminology"/>, this combination forms a PQ/T
Hybrid Key Encapsulation Mechanism.</t>

<t>Chempat is a generic pattern to create a PQ/T Hybrid Key Encapsulation
Mechanism based on at least one post-quantum algorithm and at least
one traditional algorithm.  The idea is that the Chempat combiner can
be analyzed generally and some assurance can be had that it behaves
well.  For ease of presentation, this document combine one traditional
DH-Based KEM algorithm with one post-quantum KEM algorithm.</t>

<t>While a natural approach would be to integrate the generic key
combiner construct into protocols and have the protocol and
implementation negotiate parameters, that leads to complexity
detrimental to security.  Therefor this document describe specific
instances of Chempat applied on selected algorithms.</t>

</section>
<section anchor="motivation"><name>Motivation</name>

<t>There are many choices that can be made when specifying a hybrid KEM:
the constituent KEMs; their security levels; the combiner; and the
hash within, to name but a few.  Having too many similar options are a
burden to the ecosystem.</t>

<t>The above argues for having carefully selected instantiated hybrid
KEMs.  Each hybrid KEM should be analysed to meet security targets.
If that anlysis assume specific behaviour of the combiner, or if the
analysis become more complex due to the combiner, that leads to more
work to re-use the analysis for other combinations.  While it would be
preferrable to only specify one hybrid KEM and analyse that, such as
<xref target="XWING"/>, cryptographic history suggests that algorithm preferences
varies over time.</t>

<t>The argument then is to establish a generic method that can be
analysed independent of its component algorithms, such as
<xref target="KEMCOMBINER"/>.  Generic methods can lead to parametrized protocols
and implementations that is more difficult to analyse, and a lack of
instantiated algorithm identifiers.</t>

<t>Finally this leads up to our approach to describe a generic method
that can be analysed independently of the individual components,
without paramtrization of the generic combiner, and to instantiate it
with common algorithm choices that make sense for protocols and
implementations.  That is the essence of Chempat.</t>

</section>
<section anchor="comparison-to-x-wing"><name>Comparison to X-Wing</name>

<t>X-Wing <xref target="XWING"/> is a Hybrid PQ/T KEM based on X25519 and ML-KEM-768.
Main differences:</t>

<t><list style="symbols">
  <t>Chempat is applicable to other algorithm combinations, X-Wing's
combiner does not extend securely to other KEM combinations.</t>
  <t>Chempat on X25519 with ML-KEM-768 will hash the ML-KEM ciphertext
and public key.</t>
  <t>Chempat on X25519 with ML-KEM-768 can provide a per-protocol
key-domain separation context string.</t>
</list></t>

</section>
<section anchor="comparison-to-hpke-x25519kyber768draft00"><name>Comparison to HPKE X25519Kyber768Draft00</name>

<t>HPKE's X25519Kyber768Draft00 <xref target="XYBERHPKE"/> is similar to X-Wing.  Main
differences to Chempat:</t>

<t><list style="symbols">
  <t>Chempat is applicable to other algorithm combinations,
X25519Kyber768Draft00's combiner does not extend securely to other
KEM combinations.</t>
  <t>Chempat hashes the shared secret, to be usable outside of HPKE.</t>
  <t>Chempat hashes the combined ciphertext and public keys.</t>
</list></t>

<t>There is also a different KEM called X25519Kyber768Draft00
<xref target="XYBERTLS"/> which is used in TLS.  This one should not be used
outside of TLS, as it assumes the presence of the TLS transcript to
ensure non malleability.</t>

</section>
<section anchor="comparison-to-kem-generic-combiner"><name>Comparison to KEM Generic Combiner</name>

<t>Chempat is most similar to the generic combiner in <xref target="KEMCOMBINER"/>.
Main differences:</t>

<t><list style="symbols">
  <t>Chempat offers instantiated identified Hybrid KEMs for direct use in
protocols and implementations.</t>
  <t>Chempat offers the possibility of a generic simpler security
argument for the combiner, whereas <xref target="KEMCOMBINER"/> is parametrized
with several algorithm choices and any security analysis needs to be
parametrized over the numerous options permitted.</t>
  <t>Chempat has a fixed 32 byte shared secret instead of a variable
length shared secret.</t>
</list></t>

</section>
<section anchor="design-goals"><name>Design Goals</name>

<t>While Chempat share a lot with <xref target="XWING"/>, <xref target="XYBERHPKE"/> and
<xref target="KEMCOMBINER"/> the following goals set it apart:</t>

<t><list style="symbols">
  <t>Allow generic security analysis independent of combinations.</t>
  <t>Provide concrete instantiated algorithm identifiers for several
anticipated uses of Hybrid KEM combinations.</t>
</list></t>

<t>We aim for instantiated algorithms of Chempat to be usable for most
applications, including specifically HPKE <xref target="RFC9180"/>, TLS
<xref target="RFC8446"/>, OpenPGP <xref target="RFC4880"/> and SSH <xref target="RFC4251"/>.</t>

</section>
<section anchor="conventions-definitions"><name>Conventions and Definitions</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>

<t>The following terms are used throughout this document:</t>

<t>string - array of bytes</t>

<t>concat(x0, ..., xN): returns the concatenation of byte
strings. concat(0x01, 0x0203, 0x040506) = 0x010203040506.</t>

<t>random(n): return a pseudorandom byte string of length n bytes
produced by a cryptographically-secure random number generator.</t>

</section>
<section anchor="chempat"><name>Chempat</name>

<t>Chempat is defined as follows:</t>

<figure><artwork><![CDATA[
H = SHA3-256

hybrid_pk = concat(receiver_pk_TKEM, receiver_pk_PQKEM)

hybrid_ct = concat(sender_ct_TKEM, sender_ct_PQKEM)

hybrid_ss = H(concat(ss_TKEM,
                     ss_PQKEM,
                     H(hybrid_ct),
                     H(hybrid_pk),
                     context))
]]></artwork></figure>

<t>The hash function SHA3-256 is defined in <xref target="NIST.FIPS.202"></xref>.</t>

<t>The hybrid_pk string is the concatenation of the serialized
public-key output from the traditional (receiver_pk_TEM) and
post-quantum (receiver_pk_PQKEM) respectively.  To reduce memory
usage it is possible to hash the public keys to pre-compute
H(hybrid_pk) directly when hybrid_pk is received.</t>

<t>The hybrid_ct string is the concatenation of the serialized
ciphertext output from the traditional (receiver_ct_TEM) and
post-quantum (receiver_ct_PQKEM) respectively.  To reduce memory
usage it is possible to hash the ciphertext to pre-compute
H(hybrid_ct) directly when hybrid_ct is received.</t>

<t>The hybrid_ss string is the 32-byte output shared secret, formed as
the output of the SHA3-256 hash function.  The inputs to the hash
function is a concatenation of the shared secrets from the traditional
(ss_TKEM) and post-quantum (ss_PQKEM) KEMs with the hashes of the
ciphertexts (H(hybrid_ct) and public keys (H(hybrid_pk)) together
with a variable-length protocol-specific context string.</t>

<t>The context string can be chosen uniquely by the protocol referencing
this document.  The purpose is to provide protocol domain separation
of the generated keys.  The content is arbitrary, and in practice the
name of the protocol will suffice.  Since this results in a new
Chempat instance, to reduce combinatorical complexity of parameters,
we provide one instance with the context variable set to the name of
the Chempat instance, for example "Chempat-X25519-sntrup761".</t>

</section>
<section anchor="naming"><name>Naming</name>

<t>Protocols wishing to utilize a PQ/T Hybrid KEM described in this
document <bcp14>MUST</bcp14> refer to one of the derived instantiated algorithm
identifiers and <bcp14>MUST NOT</bcp14> specify a generic construction where the
individual algorithms are parameters.</t>

<t>The convention for identifiers is "Chempat-TKEM-PQKEM" replacing
"TKEM" and "PQKEM" with a brief mnemonic identifying the traditional
and post-quantum algorithm respectively.</t>

</section>
<section anchor="use-in-hpke"><name>Use in HPKE</name>

<t>Each Chempat instance satisfy the HPKE KEM interface as follows.</t>

<t>The SerializePublicKey, DeserializePublicKey, SerializePrivateKey and
DeserializePrivateKey are concatenation and splitting of the
known-length component strings.</t>

<figure><artwork><![CDATA[
H = SHA3-256

def GenerateKeyPair():
  (pk_T, sk_T) = DHKEM.KeyGen()
  (pk_PQ, sk_PT) = PQKEM.KeyGen()
  return (concat(sk_T, sk_PQ, pk_T, pk_PQ), concat(pk_T, pk_PQ))

# TBA DeriveKeyPair

def Chempat(ss_T, ss_PQ, ct_T, ct_PQ, pk_T, pk_PQ):
  return H(concat(ss_T,
                  ss_PQ,
                  H(concat(ct_T, ct_PQ)),
                  H(concat(pk_T, pk_PQ)),
                  Context))

def Encapsulate(pk):
  pk_T = pk[0:DHKEM.Npk]
  pk_PQ = pk[DHKEM.Npk:PQKEM.Npk-DHKEM.Npk]
  (ss_T, ct_T) = DHKEM.Encap(pk_T)
  (ss_PQ, ct_PQ) = PQKEM.Encap(pk_PQ)
  ss = Chempat(ss_T, ss_PQ, ct_T, ct_PQ, pk_T, pk_PQ)
  ct = concat(ct_T, ct_PQ)
  return (ss, ct)

def Decapsulate(ct, sk):
  ct_T = ct[0:DHKEM.Nenc]
  ct_T = ct[DHKEM.Nenc:PQKEM.Nenc-DHKEM.Nenc]
  sk_PQ = sk[0:DHKEM.Nsecret]
  sk_T = sk[DHKEM.Nsecret:PQKEM.Nsecret-DHKEM.Nsecret]
  pk_T = sk[0:DHKEM.Npk]
  pk_PQ = sk[DHKEM.Npk:PQKEM.Npk-DHKEM.Npk]
  ss_T = DHKEM.Decap(ct_T, sk_T)
  ss_PQ = PQKEM.Decap(ct_PQ, sk_PQ)
  return Chempat(ss_T, ss_PQ, ct_T, ct_PQ, pk_T, pk_PQ)
]]></artwork></figure>

<t>Chempat does not provide authenticeted KEMs and does not support
AuthEncap() or AuthDecap() of <xref target="RFC9180"/>.</t>

<t>Context is a string provided by the protocol referencing this
document, or if not provided corresponds to the name of the Chempat
instance, such as "Chempat-X25519-sntrup761".</t>

<t>Nsecret, Nenc, Npk, and Nsk are defined for each Chempat instance.</t>

</section>
<section anchor="chempat-x25519-sntrup761"><name>Chempat-X25519-sntrup761</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(X25519,
HKDF-SHA256) from <xref target="RFC9180"/> and PQKEM as a HPKE variant of sntrup761
from <xref target="NTRUPrimePQCS"/> <xref target="NTRUPrime"/>.</t>

<t>The DHKEM.Nsecret, DHKEM.Nenc, DHKEM.Npk, DHKEM.Nsk are all 32 for
X25519 per <xref section="7.1" sectionFormat="of" target="RFC9180"/>.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 1039, PQKEM.Npk is 1158 and
PQKEM.Nsk is 1763 for sntrup761 per <xref target="NTRUPrimePQCS"/>.</t>

<t>Thus Nenc is 1071, Npk is 1190 and Nsk is 1795 for
Chempat-X25519-sntrup761.</t>

</section>
<section anchor="chempat-x448-mceliece6688128f"><name>Chempat-X448-mceliece6688128f</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(X448,
HKDF-SHA512) from <xref target="RFC9180"/> and PQKEM as a HPKE variant of
mceliece6688128f from <xref target="MCELIECE"/> <xref target="CM-spec"/>.</t>

<t>For X448 DHKEM.Nsecret is 64, DHKEM.Nenc is 56, DHKEM.Npk is 56,
DHKEM.Nsk is 56 per <xref section="7.1" sectionFormat="of" target="RFC9180"/>.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 208, PQKEM.Npk is 1044992 and
PQKEM.Nsk is 13932 for mceliece6688128 per <xref target="CM-spec"/>.</t>

<t>Thus Nenc is 240, Npk is 1045048 and Nsk is 13988 for
Chempat-X25519-mceliece6688128f.</t>

</section>
<section anchor="chempat-x25519-ml-kem-768"><name>Chempat-X25519-ML-KEM-768</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(X25519,
HKDF-SHA256) from <xref target="RFC9180"/> and PQKEM as a HPKE variant of
ML-KEM-768 from <xref target="MLKEM"/>.</t>

<t>Protocols and implementation <bcp14>MAY</bcp14> consider <xref target="XWING"/> instead of
Chempat-X25519-ML-KEM-768, and the definition of
Chempat-X25519-ML-KEM-768 is here for situations when some property of
X-Wing is not wanted.  Informally and non-conclusively, X-Wing offers
better performance and Chempat-X25519-ML-KEM-768 offers re-use of the
generic security claims on Chempat and a per-protocol key-separation
context string.</t>

<t>The DHKEM.Nsecret, DHKEM.Nenc, DHKEM.Npk, DHKEM.Nsk are all 32 for
X25519 per <xref section="7.1" sectionFormat="of" target="RFC9180"/>.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 1088, PQKEM.Npk is 1184 and
PQKEM.Nsk is 2400 for ML-KEM-768 per <xref target="MLKEM"/>.</t>

<t>Thus Nenc is 1120, Npk is 1216 and Nsk is 2432 for
Chempat-X25519-ML-KEM-768.</t>

</section>
<section anchor="chempat-x448-ml-kem-1024"><name>Chempat-X448-ML-KEM-1024</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(X448,
HKDF-SHA512) from <xref target="RFC9180"/> and PQKEM as a HPKE variant of
ML-KEM-1024 from <xref target="MLKEM"/>.</t>

<t>For X448 DHKEM.Nsecret is 64, DHKEM.Nenc is 56, DHKEM.Npk is 56,
DHKEM.Nsk is 56 per <xref section="7.1" sectionFormat="of" target="RFC9180"/>.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 864, PQKEM.Npk is 1568 and
PQKEM.Nsk is 2400 for ML-KEM-1024 per <xref target="MLKEM"/>.</t>

<t>Thus Nenc is 1120, Npk is 1624 and Nsk is 2456 for
Chempat-X25519-ML-KEM-1024.</t>

</section>
<section anchor="chempat-p256-ml-kem-768"><name>Chempat-P256-ML-KEM-768</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(P-256,
HKDF-SHA256) from <xref target="RFC9180"/> and PQKEM as a HPKE variant of
ML-KEM-768 from <xref target="MLKEM"/>.</t>

<t>For P256 DHKEM.Nsecret is 32, DHKEM.Nenc is 65, DHKEM.Npk is 65,
DHKEM.Nsk is 32 per <xref section="7.1" sectionFormat="of" target="RFC9180"/>.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 1088, PQKEM.Npk is 1184 and
PQKEM.Nsk is 2400 for ML-KEM-768 per <xref target="MLKEM"/>.</t>

<t>Thus Nenc is 1153, Npk is 1249 and Nsk is 2432 for
Chempat-P256-ML-KEM-768.</t>

</section>
<section anchor="chempat-p384-ml-kem-1024"><name>Chempat-P384-ML-KEM-1024</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(P-384,
HKDF-SHA384) from <xref target="RFC9180"/> and PQKEM as a HPKE variant of
ML-KEM-1024 from <xref target="MLKEM"/>.</t>

<t>For P384 DHKEM.Nsecret is 48, DHKEM.Nenc is 97, DHKEM.Npk is 97,
DHKEM.Nsk is 48 per <xref section="7.1" sectionFormat="of" target="RFC9180"/>.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 864, PQKEM.Npk is 1568 and
PQKEM.Nsk is 2400 for ML-KEM-1024 per <xref target="MLKEM"/>.</t>

<t>Thus Nenc is 961, Npk is 1665 and Nsk is 2448 for
Chempat-P384-ML-KEM-1024.</t>

</section>
<section anchor="chempat-brainpoolp256-ml-kem-768"><name>Chempat-brainpoolP256-ML-KEM-768</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(brainpoolP256,
HKDF-SHA256) from <xref target="RFC9180"/> <xref target="RFC5639"/> and PQKEM as a HPKE variant
of ML-KEM-768 from <xref target="MLKEM"/>.</t>

<t>For brainpoolP256 DHKEM.Nsecret is 32, DHKEM.Nenc is 65, DHKEM.Npk is
65, DHKEM.Nsk is 32.</t>

<t>The PQKEM.Nsecret is 32, PQKEM.Nenc is 1088, PQKEM.Npk is 1184 and
PQKEM.Nsk is 2400 for ML-KEM-768 per <xref target="MLKEM"/>.</t>

<t>Thus Nenc is 1153, Npk is 1249 and Nsk is 2432 for
Chempat-brainpoolP256-ML-KEM-768.</t>

</section>
<section anchor="chempat-brainpoolp384-ml-kem-1024"><name>Chempat-brainpoolP384-ML-KEM-1024</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(brainpoolP384,
HKDF-SHA384) from <xref target="RFC9180"/> <xref target="RFC5639"/> and PQKEM as a HPKE variant
of ML-KEM-1024 from <xref target="MLKEM"/>.</t>

<t>For brainpoolP384 DHKEM.Nsecret is 48, DHKEM.Nenc is 97, DHKEM.Npk is
97, DHKEM.Nsk is 48.
The PQKEM.Nsecret is 32, PQKEM.Nenc is 864, PQKEM.Npk is 1568 and
PQKEM.Nsk is 2400 for ML-KEM-1024 per <xref target="MLKEM"/>.</t>

<t>Thus Nenc is 961, Npk is 1665 and Nsk is 2448 for
Chempat-brainpoolP384-ML-KEM-1024.</t>

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

<t>Chempat is intended to be secure if SHA3 is secure and either the
traditional algorithm is secure or the post-quantum algorithm is
secure.</t>

<t>The security considerations of each component algorithm are inherited.</t>

<t>Cryptographic algorithms and parameters will be broken or weakened
over time.  Blindly implementing supported groups listed here is not
advised.  Implementers and users need to check that the cryptographic
algorithms listed continue to provide the expected level of security.</t>

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

<t>Protocols that provide a Context variable will need to register their
own key-domain separate identifiers.  The registrations below are when
Chempat instances are used with their default value of Context.</t>

<t>This document requests/registers new entries to the "HPKE KEM
Identifiers" registry as follows.</t>

<texttable title="Chempat HPKE KEM Identifiers" anchor="chempat-hpke-kem-identifiers">
      <ttcol align='right'>Value</ttcol>
      <ttcol align='left'>KEM</ttcol>
      <ttcol align='left'>Nsecret</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <ttcol align='left'>Auth</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBD</c>
      <c>Chempat-X25519-sntrup761</c>
      <c>32</c>
      <c>1071</c>
      <c>1190</c>
      <c>1795</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece6688128f</c>
      <c>32</c>
      <c>240</c>
      <c>1045048</c>
      <c>13988</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X25519-ML-KEM-768</c>
      <c>32</c>
      <c>1120</c>
      <c>1216</c>
      <c>2432</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-ML-KEM-1024</c>
      <c>32</c>
      <c>1120</c>
      <c>1624</c>
      <c>2456</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-P256-ML-KEM-768</c>
      <c>32</c>
      <c>1153</c>
      <c>1249</c>
      <c>2432</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-P384-ML-KEM-1024</c>
      <c>32</c>
      <c>961</c>
      <c>1665</c>
      <c>2448</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP256-ML-KEM-768</c>
      <c>32</c>
      <c>1153</c>
      <c>1249</c>
      <c>2432</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP384-ML-KEM-1024</c>
      <c>32</c>
      <c>961</c>
      <c>1665</c>
      <c>2448</c>
      <c>No</c>
      <c>THISRFC</c>
</texttable>

<t>This document requests/registers a new entry to the TLS Supported
Group registry as follows.</t>

<texttable title="Chempat TLS Supported Groups" anchor="chempat-tls-supported-groups">
      <ttcol align='right'>Value</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>DTLS-OK</ttcol>
      <ttcol align='left'>Recommended</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <ttcol align='left'>Comment</ttcol>
      <c>TBD</c>
      <c>Chempat-X25519-sntrup761</c>
      <c>Y</c>
      <c>Y</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of X25519 and sntrup761</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece6688128f</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of X448 and mceliece6688128f</c>
      <c>TBD</c>
      <c>Chempat-X25519-ML-KEM-768</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of X25519 and ML-KEM-768</c>
      <c>TBD</c>
      <c>Chempat-X448-ML-KEM-1024</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of X448 and ML-KEM-1024</c>
      <c>TBD</c>
      <c>Chempat-P256-ML-KEM-768</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of P256 and ML-KEM-768</c>
      <c>TBD</c>
      <c>Chempat-P384-ML-KEM-1024</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of P384 and ML-KEM-1024</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP256-ML-KEM-768</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of brainpoolP256 and ML-KEM-768</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP384-ML-KEM-1024</c>
      <c>Y</c>
      <c>N</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of brainpoolP384 and ML-KEM-1024</c>
</texttable>

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

<t>The combiner function was suggested by <contact fullname="Daniel J. Bernstein"/>.  The
document re-use ideas and some text from <xref target="XWING"/>, <xref target="KEMCOMBINER"/>,
<xref target="XYBERHPKE"/> and <xref target="RFC9180"/>.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>



<reference anchor='RFC2119' target='https://www.rfc-editor.org/info/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' target='https://www.rfc-editor.org/info/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>




    </references>

    <references title='Informative References'>




<reference anchor='XWING' target='https://datatracker.ietf.org/doc/html/draft-connolly-cfrg-xwing-kem-01'>
   <front>
      <title>X-Wing: general-purpose hybrid post-quantum KEM</title>
      <author fullname='Deirdre Connolly' initials='D.' surname='Connolly'>
         <organization>SandboxAQ</organization>
      </author>
      <author fullname='Peter Schwabe' initials='P.' surname='Schwabe'>
         <organization>MPI-SP &amp; Radboud University</organization>
      </author>
      <author fullname='Bas Westerbaan' initials='B.' surname='Westerbaan'>
         <organization>Cloudflare</organization>
      </author>
      <date day='23' month='January' year='2024'/>
      <abstract>
	 <t>   This memo defines X-Wing, a general-purpose post-quantum/traditional
   hybrid key encapsulation mechanism (PQ/T KEM) built on X25519 and ML-
   KEM-768.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-connolly-cfrg-xwing-kem-01'/>
   
</reference>


<reference anchor='I-D.driscoll-pqt-hybrid-terminology' target='https://datatracker.ietf.org/doc/html/draft-driscoll-pqt-hybrid-terminology-02'>
   <front>
      <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
      <author fullname='Florence D' initials='F.' surname='D'>
         <organization>UK National Cyber Security Centre</organization>
      </author>
      <date day='7' month='March' year='2023'/>
      <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-driscoll-pqt-hybrid-terminology-02'/>
   
</reference>


<reference anchor="CM-spec" target="https://classic.mceliece.org/mceliece-spec-20221023.pdf">
  <front>
    <title>Classic McEliece: conservative code-based cryptography: cryptosystem specification</title>
    <author >
      <organization>Classic McEliece Team</organization>
    </author>
    <date year="2022" month="October"/>
  </front>
</reference>



<reference anchor='MCELIECE' target='https://datatracker.ietf.org/doc/html/draft-josefsson-mceliece-00'>
   <front>
      <title>Classic McEliece</title>
      <author fullname='Simon Josefsson' initials='S.' surname='Josefsson'>
         </author>
      <date day='13' month='October' year='2023'/>
      <abstract>
	 <t>   This document specifies Classic McEliece, a particular family of
   encryption algorithms.

About This Document

   This note is to be removed before publishing as an RFC.

   Status information for this document may be found at
   https://datatracker.ietf.org/doc/draft-josefsson-mceliece/.

   Source for this draft and an issue tracker can be found at
   https://gitlab.com/jas/ietf-mceliece.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-josefsson-mceliece-00'/>
   
</reference>


<reference anchor='KEMCOMBINER' target='https://datatracker.ietf.org/doc/html/draft-ounsworth-cfrg-kem-combiners-05'>
   <front>
      <title>Combiner function for hybrid key encapsulation mechanisms (Hybrid KEMs)</title>
      <author fullname='Mike Ounsworth' initials='M.' surname='Ounsworth'>
         <organization>Entrust Limited</organization>
      </author>
      <author fullname='Aron Wussler' initials='A.' surname='Wussler'>
         <organization>Proton AG</organization>
      </author>
      <author fullname='Stavros Kousidis' initials='S.' surname='Kousidis'>
         <organization>BSI</organization>
      </author>
      <date day='31' month='January' year='2024'/>
      <abstract>
	 <t>   The migration to post-quantum cryptography often calls for performing
   multiple key encapsulations in parallel and then combining their
   outputs to derive a single shared secret.

   This document defines a comprehensible and easy to implement Keccak-
   based KEM combiner to join an arbitrary number of key shares, that is
   compatible with NIST SP 800-56Cr2 [SP800-56C] when viewed as a key
   derivation function.  The combiners defined here are practical split-
   key PRFs and are CCA-secure as long as at least one of the ingredient
   KEMs is.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ounsworth-cfrg-kem-combiners-05'/>
   
</reference>

<reference anchor='NIST.FIPS.202' target='http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf'>
   <front>
      <title>SHA-3 Standard:  Permutation-Based Hash and Extendable-Output Functions</title>
      <author fullname='Morris J. Dworkin' initials='M.' surname='Dworkin'>
	 <organization>National Institute of Standards and Technology</organization>
      </author>
      <date month='August' year='2015'/>
   </front>
   <seriesInfo name='FIPS' value='PUB 202'/>
   <seriesInfo name='DOI' value='10.6028/nist.fips.202'/>
</reference>

<reference anchor='RFC4251' target='https://www.rfc-editor.org/info/rfc4251'>
  <front>
    <title>The Secure Shell (SSH) Protocol Architecture</title>
    <author fullname='T. Ylonen' initials='T.' surname='Ylonen'/>
    <author fullname='C. Lonvick' initials='C.' role='editor' surname='Lonvick'/>
    <date month='January' year='2006'/>
    <abstract>
      <t>The Secure Shell (SSH) Protocol is a protocol for secure remote login and other secure network services over an insecure network. This document describes the architecture of the SSH protocol, as well as the notation and terminology used in SSH protocol documents. It also discusses the SSH algorithm naming system that allows local extensions. The SSH protocol consists of three major components: The Transport Layer Protocol provides server authentication, confidentiality, and integrity with perfect forward secrecy. The User Authentication Protocol authenticates the client to the server. The Connection Protocol multiplexes the encrypted tunnel into several logical channels. Details of these protocols are described in separate documents. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4251'/>
  <seriesInfo name='DOI' value='10.17487/RFC4251'/>
</reference>

<reference anchor='RFC4880' target='https://www.rfc-editor.org/info/rfc4880'>
  <front>
    <title>OpenPGP Message Format</title>
    <author fullname='J. Callas' initials='J.' surname='Callas'/>
    <author fullname='L. Donnerhacke' initials='L.' surname='Donnerhacke'/>
    <author fullname='H. Finney' initials='H.' surname='Finney'/>
    <author fullname='D. Shaw' initials='D.' surname='Shaw'/>
    <author fullname='R. Thayer' initials='R.' surname='Thayer'/>
    <date month='November' year='2007'/>
    <abstract>
      <t>This document is maintained in order to publish all necessary information needed to develop interoperable applications based on the OpenPGP format. It is not a step-by-step cookbook for writing an application. It describes only the format and methods needed to read, check, generate, and write conforming packets crossing any network. It does not deal with storage and implementation questions. It does, however, discuss implementation issues necessary to avoid security flaws.</t>
      <t>OpenPGP software uses a combination of strong public-key and symmetric cryptography to provide security services for electronic communications and data storage. These services include confidentiality, key management, authentication, and digital signatures. This document specifies the message formats used in OpenPGP. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='4880'/>
  <seriesInfo name='DOI' value='10.17487/RFC4880'/>
</reference>

<reference anchor='RFC5639' target='https://www.rfc-editor.org/info/rfc5639'>
  <front>
    <title>Elliptic Curve Cryptography (ECC) Brainpool Standard Curves and Curve Generation</title>
    <author fullname='M. Lochter' initials='M.' surname='Lochter'/>
    <author fullname='J. Merkle' initials='J.' surname='Merkle'/>
    <date month='March' year='2010'/>
    <abstract>
      <t>This memo proposes several elliptic curve domain parameters over finite prime fields for use in cryptographic applications. The domain parameters are consistent with the relevant international standards, and can be used in X.509 certificates and certificate revocation lists (CRLs), for Internet Key Exchange (IKE), Transport Layer Security (TLS), XML signatures, and all applications or protocols based on the cryptographic message syntax (CMS). This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='5639'/>
  <seriesInfo name='DOI' value='10.17487/RFC5639'/>
</reference>

<reference anchor='RFC7748' target='https://www.rfc-editor.org/info/rfc7748'>
  <front>
    <title>Elliptic Curves for Security</title>
    <author fullname='A. Langley' initials='A.' surname='Langley'/>
    <author fullname='M. Hamburg' initials='M.' surname='Hamburg'/>
    <author fullname='S. Turner' initials='S.' surname='Turner'/>
    <date month='January' year='2016'/>
    <abstract>
      <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='7748'/>
  <seriesInfo name='DOI' value='10.17487/RFC7748'/>
</reference>

<reference anchor='RFC9180' target='https://www.rfc-editor.org/info/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='RFC8446' target='https://www.rfc-editor.org/info/rfc8446'>
  <front>
    <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
    <author fullname='E. Rescorla' initials='E.' surname='Rescorla'/>
    <date month='August' year='2018'/>
    <abstract>
      <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
      <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
    </abstract>
  </front>
  <seriesInfo name='RFC' value='8446'/>
  <seriesInfo name='DOI' value='10.17487/RFC8446'/>
</reference>


<reference anchor='XYBERHPKE' target='https://datatracker.ietf.org/doc/html/draft-westerbaan-cfrg-hpke-xyber768d00-02'>
   <front>
      <title>X25519Kyber768Draft00 hybrid post-quantum KEM for HPKE</title>
      <author fullname='Bas Westerbaan' initials='B.' surname='Westerbaan'>
         <organization>Cloudflare</organization>
      </author>
      <author fullname='Christopher A. Wood' initials='C. A.' surname='Wood'>
         <organization>Cloudflare</organization>
      </author>
      <date day='4' month='May' year='2023'/>
      <abstract>
	 <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum KEM,
   for HPKE (RFC9180).  This KEM does not support the authenticated
   modes of HPKE.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-westerbaan-cfrg-hpke-xyber768d00-02'/>
   
</reference>


<reference anchor='XYBERTLS' target='https://datatracker.ietf.org/doc/html/draft-tls-westerbaan-xyber768d00-03'>
   <front>
      <title>X25519Kyber768Draft00 hybrid post-quantum key agreement</title>
      <author fullname='Bas Westerbaan' initials='B.' surname='Westerbaan'>
         <organization>Cloudflare</organization>
      </author>
      <author fullname='Douglas Stebila' initials='D.' surname='Stebila'>
         <organization>University of Waterloo</organization>
      </author>
      <date day='24' month='September' year='2023'/>
      <abstract>
	 <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum key
   exchange for TLS 1.3.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-tls-westerbaan-xyber768d00-03'/>
   
</reference>


<reference anchor="MLKEM" target="https://csrc.nist.gov/pubs/fips/203/ipd">
  <front>
    <title>FIPS 203 (Initial Draft): Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
    <author initials="." surname="National Institute of Standards and Technology">
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="NTRUPrime" target="https://ntruprime.cr.yp.to/ntruprime-20170816.pdf">
  <front>
    <title>NTRU Prime: reducing attack surface at low cost</title>
    <author initials="D.J." surname="Bernstein">
      <organization></organization>
    </author>
    <author initials="C." surname="Chuengsatiansup">
      <organization></organization>
    </author>
    <author initials="T." surname="Lange">
      <organization></organization>
    </author>
    <author initials="C." surname="van Vredendaal">
      <organization></organization>
    </author>
    <date year="2017" month="August"/>
  </front>
</reference>
<reference anchor="NTRUPrimePQCS" target="https://csrc.nist.gov/CSRC/media/Projects/post-quantum-cryptography/documents/round-3/submissions/NTRU-Prime-Round3.zip">
  <front>
    <title>NTRU Prime: round 3, Submission to the NIST PQC Standardization Round 3 Process</title>
    <author initials="Daniel J." surname="Bernstein">
      <organization></organization>
    </author>
    <author initials="." surname="Billy Bob Brumley">
      <organization></organization>
    </author>
    <author initials="." surname="Ming-Shing Chen">
      <organization></organization>
    </author>
    <author initials="." surname="Chitchanok Chuengsatiansup">
      <organization></organization>
    </author>
    <author initials="." surname="Tanja Lange">
      <organization></organization>
    </author>
    <author initials="." surname="Adrian Marotzke">
      <organization></organization>
    </author>
    <author initials="." surname="Bo-Yuan Peng">
      <organization></organization>
    </author>
    <author initials="." surname="Nicola Tuveri">
      <organization></organization>
    </author>
    <author initials="." surname="Christine van Vredendaal">
      <organization></organization>
    </author>
    <author initials="." surname="Bo-Yin Yang">
      <organization></organization>
    </author>
    <date year="2020" month="October"/>
  </front>
</reference>
<reference anchor="GHP18" target="https://doi.org/10.1007/978-3-319-76578-5_7">
  <front>
    <title>KEM Combiners</title>
    <author initials="F." surname="Giacon" fullname="Federico Giacon">
      <organization></organization>
    </author>
    <author initials="F." surname="Heuer" fullname="Felix Heuer">
      <organization></organization>
    </author>
    <author initials="B." surname="Poettering" fullname="Bertram Poettering">
      <organization></organization>
    </author>
    <date year="2018"/>
  </front>
</reference>


    </references>



  </back>

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

-->

</rfc>

