<?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-03" 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="2025" month="March" 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 some
combinations of traditional Diffie-Hellman key agreement using curves
P-256, P-384, X25519, X448, brainpoolP256, brainpoolP384 and
brainpoolP512 combined with post quantum methods ML-KEM-768,
ML-KEM-1024, Streamlined NTRU Prime sntrup761, Classic McEliece and
FrodoKEM.</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 analysis 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>While non-hybrid approaches may eventually be preferrable, there are
doubts on what properties protocols demand from cryptographic
primitives, and some of the properties are different from what have
been expected from traditional algorithms <xref target="CDM23"/>.  This suggests
that some post-quantum KEM's should be used together with a other
algorithms to strengthen the properties.</t>

<t>Finally this leads up to our approach to describe a generic method
that can be analysed independently of the individual components, with
as few parameters as possible in 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>
  <t>Chempat hashes the public keys of the component KEM's.</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>func1(), func2(a,b) - denote functions called FUNC1 and FUNC2 that
takes no parameters and two parameters a and b, respectively.</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 is 32 for all Chempat instances, and Nenc, Npk, and Nsk
depends on the underlying components.</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-with-classic-mceliece-with-x448-and-x25519"><name>Chempat with Classic McEliece with X448 and X25519</name>

<t>This is a set of mechanisms implemented the same way but with
different component algorithms and parameter lengths.</t>

<t>This algorithm is instantiated using the TKEM as DHKEM(X, HKDF-SHA512)
from <xref target="RFC9180"/> and PQKEM as a HPKE variant of M from <xref target="MCELIECE"/>
<xref target="CM-spec"/>, substituting X and M for the particular algorithm from
the tables below.  Sizes for DHKEM for X25519 and X448 as per
<xref section="7.1" sectionFormat="of" target="RFC9180"/>, and sizes for PQKEM as per <xref target="CM-spec"/>.</t>

<t>The f and non-f versions are interoperable.
The f versions have faster key generation, while the non-f versions have simpler key generation.
For example, a key generated with mceliece6688128f can decapsulate ciphertexts that were encapsulated with mceliece6688128, and vice versa.
The secret-key sizes (and formats) are the same, the encapsulation functions are the same, and the decapsulation functions are the same.
Implementations of this protocol can chose between f and non-f variants, however the name of the hybrid will use the non-f names.</t>

<texttable title="X25519/X448 DHKEM size" anchor="x25519-x448-dhkem-sizes">
      <ttcol align='left'>DHKEM variant</ttcol>
      <ttcol align='left'>Nsecret</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <c>X25519</c>
      <c>32</c>
      <c>32</c>
      <c>32</c>
      <c>32</c>
      <c>X448</c>
      <c>64</c>
      <c>56</c>
      <c>56</c>
      <c>56</c>
</texttable>

<texttable title="Classic McEliece sizes" anchor="mceliece-sizes">
      <ttcol align='left'>PQKEM variant</ttcol>
      <ttcol align='left'>Nsecret</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <c>mceliece348864</c>
      <c>32</c>
      <c>96</c>
      <c>261120</c>
      <c>6492</c>
      <c>mceliece460896</c>
      <c>32</c>
      <c>156</c>
      <c>524160</c>
      <c>13608</c>
      <c>mceliece6688128</c>
      <c>32</c>
      <c>208</c>
      <c>1044992</c>
      <c>13932</c>
      <c>mceliece6960119</c>
      <c>32</c>
      <c>194</c>
      <c>1047319</c>
      <c>13948</c>
      <c>mceliece8192128</c>
      <c>32</c>
      <c>208</c>
      <c>1357824</c>
      <c>14120</c>
</texttable>

<t>Names and sizes of the Chempat hybrids are per table below.</t>

<texttable title="Classic McEliece with X25519/X448" anchor="chempat-mceliece-x25519-x448">
      <ttcol align='left'>Variant</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <c>Chempat-X25519-mceliece348864</c>
      <c>128</c>
      <c>261152</c>
      <c>6524</c>
      <c>Chempat-X25519-mceliece460896</c>
      <c>188</c>
      <c>524192</c>
      <c>13640</c>
      <c>Chempat-X25519-mceliece6688128</c>
      <c>240</c>
      <c>1045024</c>
      <c>13964</c>
      <c>Chempat-X25519-mceliece6960119</c>
      <c>226</c>
      <c>1047351</c>
      <c>13980</c>
      <c>Chempat-X25519-mceliece8192128</c>
      <c>240</c>
      <c>1357856</c>
      <c>14152</c>
      <c>Chempat-X448-mceliece348864</c>
      <c>160</c>
      <c>261176</c>
      <c>6548</c>
      <c>Chempat-X448-mceliece460896</c>
      <c>220</c>
      <c>524216</c>
      <c>13664</c>
      <c>Chempat-X448-mceliece6688128</c>
      <c>272</c>
      <c>1045048</c>
      <c>13988</c>
      <c>Chempat-X448-mceliece6960119</c>
      <c>258</c>
      <c>1047375</c>
      <c>14004</c>
      <c>Chempat-X448-mceliece8192128</c>
      <c>272</c>
      <c>1357880</c>
      <c>14176</c>
</texttable>

</section>
<section anchor="chempat-with-efrodokem-and-x25519brainpool"><name>Chempat with (e)FrodoKEM and X25519/Brainpool</name>

<t>This algorithm is instantiated using the TKEM as DHKEM(X, HKDF-SHA512)
from <xref target="RFC9180"/> and PQKEM as a HPKE variant of M from <xref target="FRODOKEM"/>,
substituting X and M for the particular algorithm from the tables
below.  Sizes for DHKEM for X25519 as per <xref section="7.1" sectionFormat="of" target="RFC9180"/>,
sizes for Brainpool curves as per <xref target="RFC5639"/>, and sizes for PQKEM as
per <xref target="FRODOKEM"/>.</t>

<texttable title="X25519 DHKEM size" anchor="x25519-dhkem-sizes">
      <ttcol align='left'>DHKEM variant</ttcol>
      <ttcol align='left'>Nsecret</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <c>X25519</c>
      <c>32</c>
      <c>32</c>
      <c>32</c>
      <c>32</c>
      <c>brainpoolP256</c>
      <c>32</c>
      <c>65</c>
      <c>65</c>
      <c>32</c>
      <c>brainpoolP384</c>
      <c>48</c>
      <c>97</c>
      <c>97</c>
      <c>48</c>
      <c>brainpoolP512</c>
      <c>64</c>
      <c>129</c>
      <c>129</c>
      <c>64</c>
</texttable>

<texttable title="FrodoKEM sizes" anchor="frodokem-sizes">
      <ttcol align='left'>PQKEM variant</ttcol>
      <ttcol align='left'>Nsecret</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <c>FrodoKEM-640</c>
      <c>16</c>
      <c>9752</c>
      <c>9616</c>
      <c>19888</c>
      <c>eFrodoKEM-640</c>
      <c>16</c>
      <c>9720</c>
      <c>9616</c>
      <c>19888</c>
      <c>FrodoKEM-976</c>
      <c>24</c>
      <c>15792</c>
      <c>15632</c>
      <c>31296</c>
      <c>eFrodoKEM-976</c>
      <c>24</c>
      <c>15744</c>
      <c>15632</c>
      <c>31296</c>
      <c>FrodoKEM-134</c>
      <c>32</c>
      <c>21696</c>
      <c>21520</c>
      <c>43088</c>
      <c>eFrodoKEM-1344</c>
      <c>32</c>
      <c>21632</c>
      <c>21520</c>
      <c>43088</c>
</texttable>

<t>Names and sizes of the Chempat hybrids are per table below.</t>

<texttable title="FrodoKEM with X25519" anchor="chempat-frodokem-x25519">
      <ttcol align='left'>Variant</ttcol>
      <ttcol align='left'>Nenc</ttcol>
      <ttcol align='left'>Npk</ttcol>
      <ttcol align='left'>Nsk</ttcol>
      <c>Chempat-X25519-FrodoKEM-976</c>
      <c>15792+32</c>
      <c>15632+32</c>
      <c>31296+32</c>
      <c>Chempat-X25519-eFrodoKEM-976</c>
      <c>15744+32</c>
      <c>15632+32</c>
      <c>31296+32</c>
      <c>Chempat-brainpoolP256-FrodoKEM-640</c>
      <c>9752+65</c>
      <c>9616+65</c>
      <c>19920+32</c>
      <c>Chempat-brainpoolP256-eFrodoKEM-640</c>
      <c>9720+65</c>
      <c>9616+65</c>
      <c>19920+32</c>
      <c>Chempat-brainpoolP384-FrodoKEM-976</c>
      <c>15792+97</c>
      <c>15632+97</c>
      <c>31328+48</c>
      <c>Chempat-brainpoolP384-eFrodoKEM-976</c>
      <c>15744+97</c>
      <c>15632+97</c>
      <c>31328+48</c>
      <c>Chempat-brainpoolP512-FrodoKEM-1344</c>
      <c>21696+129</c>
      <c>21520+129</c>
      <c>43088+64</c>
      <c>Chempat-brainpoolP512-eFrodoKEM-1344</c>
      <c>21632+129</c>
      <c>21520+129</c>
      <c>43088+64</c>
</texttable>

</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-256 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-X25519-mceliece348864</c>
      <c>32</c>
      <c>128</c>
      <c>261152</c>
      <c>6524</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X25519-mceliece460896</c>
      <c>32</c>
      <c>188</c>
      <c>524192</c>
      <c>13640</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X25519-mceliece6688128</c>
      <c>32</c>
      <c>240</c>
      <c>1045024</c>
      <c>13964</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X25519-mceliece6960119</c>
      <c>32</c>
      <c>226</c>
      <c>1047351</c>
      <c>13980</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X25519-mceliece8192128</c>
      <c>32</c>
      <c>240</c>
      <c>1357856</c>
      <c>14152</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece348864</c>
      <c>32</c>
      <c>160</c>
      <c>261176</c>
      <c>6548</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece460896</c>
      <c>32</c>
      <c>220</c>
      <c>524216</c>
      <c>13664</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece6688128</c>
      <c>32</c>
      <c>272</c>
      <c>1045048</c>
      <c>13988</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece6960119</c>
      <c>32</c>
      <c>258</c>
      <c>1047375</c>
      <c>14004</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X448-mceliece8192128</c>
      <c>32</c>
      <c>272</c>
      <c>1357880</c>
      <c>14176</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>
      <c>TBD</c>
      <c>Chempat-X25519-FrodoKEM-976</c>
      <c>32</c>
      <c>15824</c>
      <c>15664</c>
      <c>31328</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-X25519-eFrodoKEM-976</c>
      <c>32</c>
      <c>15776</c>
      <c>15665</c>
      <c>31328</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP256-FrodoKEM-640</c>
      <c>32</c>
      <c>9817</c>
      <c>9681</c>
      <c>19952</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP256-FrodoKEM-640</c>
      <c>32</c>
      <c>9785</c>
      <c>9681</c>
      <c>19952</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP384-FrodoKEM-976</c>
      <c>32</c>
      <c>15889</c>
      <c>15729</c>
      <c>31376</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP384-FrodoKEM-976</c>
      <c>32</c>
      <c>15841</c>
      <c>15729</c>
      <c>31376</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP512-FrodoKEM-1344</c>
      <c>32</c>
      <c>21825</c>
      <c>21649</c>
      <c>43152</c>
      <c>No</c>
      <c>THISRFC</c>
      <c>TBD</c>
      <c>Chempat-brainpoolP512-FrodoKEM-1344</c>
      <c>32</c>
      <c>21761</c>
      <c>21649</c>
      <c>43152</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-X25519-eFrodoKEM-976</c>
      <c>Y</c>
      <c>Y</c>
      <c>THISRFC</c>
      <c>PQ/T hybrid of X25519 and eFrodoKEM-976</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-06'>
   <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='21' month='October' 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-06'/>
   
</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='Flo 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-02'>
   <front>
      <title>Classic McEliece</title>
      <author fullname='Simon Josefsson' initials='S.' surname='Josefsson'>
         </author>
      <date day='17' month='March' year='2025'/>
      <abstract>
	 <t>   This document specifies Classic McEliece, a Key Encapsulation Method
   (KEM) designed for IND-CCA2 security, even against quantum computers.

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-02'/>
   
</reference>


<reference anchor='FRODOKEM' target='https://datatracker.ietf.org/doc/html/draft-longa-cfrg-frodokem-00'>
   <front>
      <title>FrodoKEM: key encapsulation from learning with errors</title>
      <author fullname='Patrick Longa' initials='P.' surname='Longa'>
         <organization>Microsoft</organization>
      </author>
      <author fullname='Joppe W. Bos' initials='J. W.' surname='Bos'>
         <organization>NXP Semiconductors</organization>
      </author>
      <author fullname='Stephan Ehlen' initials='S.' surname='Ehlen'>
         <organization>Federal Office for Information Security (BSI)</organization>
      </author>
      <author fullname='Douglas Stebila' initials='D.' surname='Stebila'>
         <organization>University of Waterloo</organization>
      </author>
      <date day='17' month='March' year='2025'/>
      <abstract>
	 <t>   This internet draft specifies FrodoKEM, an IND-CCA2 secure Key
   Encapsulation Mechanism (KEM).

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-longa-cfrg-frodokem/.

   Source for this draft and an issue tracker can be found at
   github.com/dstebila/frodokem-internet-draft.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-longa-cfrg-frodokem-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>
    <author fullname='Morris J. Dworkin' surname='Dworkin'>
      <organization>Information Technology Laboratory</organization>
    </author>
    <author>
      <organization abbrev='NIST'>National Institute of Standards and Technology</organization>
      <address>
        <postal>
          <country>US</country>
          <city>Gaithersburg</city>
        </postal>
      </address>
    </author>
    <date month='August' year='2015'/>
  </front>
  <seriesInfo name='FIPS' value='PUB 202'/>
  <seriesInfo name='NIST Federal Information Processing Standards Publications' value='202'/>
  <seriesInfo name='DOI' value='10.6028/nist.fips.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-03'>
   <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='14' month='May' year='2024'/>
      <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-03'/>
   
</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>
<reference anchor="CDM23" target="https://eprint.iacr.org/2023/1933">
  <front>
    <title>Keeping Up with the KEMs: Stronger Security Notions for KEMs and automated analysis of KEM-based protocols</title>
    <author initials="C." surname="Cremers" fullname="Cas Cremers">
      <organization></organization>
    </author>
    <author initials="A." surname="Dax" fullname="Alexander Dax">
      <organization></organization>
    </author>
    <author initials="N." surname="Medinger" fullname="Niklas Medinger">
      <organization></organization>
    </author>
    <date year="2023"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
wegNPT2pMauI5hkppGvdyMMyQFVJ4EBt8y0A8nz5csklLtmrN3E+rizhUJ6C
SibVmDUCWNJstAemTEaTzWa3T15XN5ele722TBHrRas5lNZMQxeC2QH2msR1
2fWgoZkvOx10aVWb+OsyXwKfyglPKsWjqNSx7ECJhdQjTrwyhxaF3YShpBzi
GVCEZbSiM0y0xW730NadHJFxkIZ5Kv8kwc7LZLHGtBh2m62d4LlieKoFV18I
u78PvnxRF+IwIy6Kobw2hON/LxGv2S7CPQc8lxK5W6fYIQF+PHrD8ewS4DmK
VH5Tx7Fo6vTkbMRLNtAGT7BZOtWZEdOVWZoUKDNxJcXXVB3Pu1yzW0DN5ggZ
QU48oYFzrKu6pgadBLyO8DoYpepVHEenHZe0n0NG0O+WGulNNr9VPTi2oQ4s
wX2tjzPrm3e9Xr/fbPWvKXYdW9/N3OiaDlcsMaCwp343dCQpdosxJU41kotV
jhfnIYm5Tcd16Ial2JHpfyXeNXkcwzs0a9PHfk11zM+Z9+ba9eBd6cwTOZTY
HiMiElDsDkKUL/HQj8dQKcbgIqbpkpsdQ8c1qUNOFDLrs2+yLdZCtfuyL29u
/HlLiuIuiaEUUCTMFvvmTtqVO3gRjqd4l5Eodh/IWlqZfmfaWDJ8RhMmn8B8
qSfwWqH7B8rWPKsn2UaVadOt/vyOFr3y7D8FtBJmq/U69rnbW/fkkqNiK2nR
QA579VVSQWqgpgJ7lA7rCPEEUji00DNod/p9XJRPjYFZUKvXbLYaau2DlmnX
6TX6WMtv11SUAEK0Os2ebNdsQ92gpFGlhq1GX3fR6HQGg5ZsOGjbEXuDXgP8
V3nEQcc23Gsje6lhx47Ybw5aD47Y7u71W0SDZgcWC7AKBdsxkj5IUxqhsg2o
MZSxkSb6QfZLV2l1BCRBX7Y3EuFoyn3wNyMRa/88XTQ2Ssp66SjBgaqwID2t
gHRbUkCA6ZuaWnlp9nVTlJFBS8tIp7GprRWZVqdhud1tKKa1B72N41qpabV6
tu1eu9tUbfsbx7WC44yLwtLtKWHptmxbNG1lQlG1XsMh1V5PkQoEdG1TTShq
0GpYUrWaPU0qd7luW00oarvXckmFZkwud8O4mlDUttt3SbXXlcttNDaMqwlV
GhdJ1W8oUu31KlBym+/oq0EOdtx9re8r/fsBnb6+D5gpeBmIYxbEBU8BceKR
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

-->

</rfc>

