<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-reddy-cose-hpke-hqc-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="HQC for COSE-HPKE">Hamming Quasi-Cyclic (HQC) Ciphersuites for COSE-HPKE</title>
    <seriesInfo name="Internet-Draft" value="draft-reddy-cose-hpke-hqc-00"/>
    <author fullname="Hannes Tschofenig">
      <organization abbrev="UniBw M.">University of the Bundeswehr Munich</organization>
      <address>
        <postal>
          <city>Neubiberg</city>
          <code>85577</code>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="14"/>
    <area>Security</area>
    <workgroup>CBOR Object Signing and Encryption</workgroup>
    <keyword>HQC</keyword>
    <keyword>COSE</keyword>
    <keyword>HPKE</keyword>
    <keyword>Post-Quantum Cryptography</keyword>
    <abstract>
      <?line 46?>

<t>This document specifies Hamming Quasi-Cyclic (HQC)-based ciphersuites
for use with COSE-HPKE.
It defines fully specified COSE algorithms for HPKE Integrated
Encryption and HPKE Key Encryption, using HQC or PQ/T hybrid HQC key
encapsulation, SHAKE256 key derivation, and AES-256-GCM authenticated
encryption. It specifies their AKP key representation and requests
twelve COSE algorithm registrations. Message processing and context
binding are inherited from COSE-HPKE.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    CBOR Object Signing and Encryption Working Group mailing list (cose@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cose/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/hannestschofenig/draft-reddy-cose-hpke-hqc"/>.</t>
    </note>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>COSE-HPKE <xref target="COSE-HPKE"/> embeds Hybrid Public Key Encryption <xref target="HPKE"/>
in CBOR Object Signing and Encryption (COSE) <xref target="RFC9052"/>. A COSE-HPKE
algorithm identifier selects a complete HPKE ciphersuite and a COSE
usage mode.</t>
      <t>This document adds ciphersuites using the KEMs of <xref target="HQC-HPKE"/>:
HQC-1, HQC-3, and HQC-5, and the PQ/T hybrid <xref target="RFC9794"/> KEMs
HQC3-P256, HQC3-X25519, and HQC5-P384. Each KEM is combined with the
SHAKE256 KDF of <xref target="PQ-HPKE"/> and AES-256-GCM. Separate COSE
algorithms identify Integrated Encryption and Key Encryption.</t>
      <t>The document does not change the COSE-HPKE message formats, HPKE key
schedule, or existing header parameters. It is also separate from
direct PQ-KEM-for-COSE constructions using an external KDF and AES Key
Wrap; their algorithm identifiers and key-use conventions do not apply
here.</t>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The notation of <xref target="HPKE"/> and <xref target="COSE-HPKE"/> applies. <tt>enc</tt> is the HPKE
encapsulation output. The COSE <tt>ek</tt> header carries that output and
not a recipient public key. <tt>ct</tt> is the HPKE AEAD ciphertext. A CEK
is a content-encryption key used in the next lower COSE layer.</t>
      <t>"Integrated" and "Key Encryption" refer to the two COSE-HPKE usage
modes. "Base" and "PSK" refer to HPKE authentication modes. These
are independent choices; a COSE usage-mode identifier does not select
between Base and PSK.</t>
    </section>
    <section anchor="suites">
      <name>Ciphersuites</name>
      <t>The twelve ciphersuites are defined in <xref target="suite-table"/>. Each row
selects exactly one COSE usage mode and one HPKE triple <tt>(kem_id,
kdf_id, aead_id)</tt>. Implementations <bcp14>MUST NOT</bcp14> substitute another KDF,
AEAD, or KEM under the same COSE algorithm identifier.</t>
      <table anchor="suite-table">
        <name>HQC COSE-HPKE algorithms</name>
        <thead>
          <tr>
            <th align="left">COSE name</th>
            <th align="left">COSE value</th>
            <th align="left">Mode</th>
            <th align="left">HPKE KEM</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">HPKE-HQC-1</td>
            <td align="left">TBD-COSE-HQC-1</td>
            <td align="left">Integrated</td>
            <td align="left">HQC-1</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-3</td>
            <td align="left">TBD-COSE-HQC-3</td>
            <td align="left">Integrated</td>
            <td align="left">HQC-3</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-5</td>
            <td align="left">TBD-COSE-HQC-5</td>
            <td align="left">Integrated</td>
            <td align="left">HQC-5</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-P256</td>
            <td align="left">TBD-COSE-HQC3-P256</td>
            <td align="left">Integrated</td>
            <td align="left">HQC3-P256</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-X25519</td>
            <td align="left">TBD-COSE-HQC3-X25519</td>
            <td align="left">Integrated</td>
            <td align="left">HQC3-X25519</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC5-P384</td>
            <td align="left">TBD-COSE-HQC5-P384</td>
            <td align="left">Integrated</td>
            <td align="left">HQC5-P384</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-1-KE</td>
            <td align="left">TBD-COSE-HQC-1-KE</td>
            <td align="left">Key Encryption</td>
            <td align="left">HQC-1</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-3-KE</td>
            <td align="left">TBD-COSE-HQC-3-KE</td>
            <td align="left">Key Encryption</td>
            <td align="left">HQC-3</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-5-KE</td>
            <td align="left">TBD-COSE-HQC-5-KE</td>
            <td align="left">Key Encryption</td>
            <td align="left">HQC-5</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-P256-KE</td>
            <td align="left">TBD-COSE-HQC3-P256-KE</td>
            <td align="left">Key Encryption</td>
            <td align="left">HQC3-P256</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-X25519-KE</td>
            <td align="left">TBD-COSE-HQC3-X25519-KE</td>
            <td align="left">Key Encryption</td>
            <td align="left">HQC3-X25519</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC5-P384-KE</td>
            <td align="left">TBD-COSE-HQC5-P384-KE</td>
            <td align="left">Key Encryption</td>
            <td align="left">HQC5-P384</td>
          </tr>
        </tbody>
      </table>
      <t>For every row, the HPKE KDF is SHAKE256 (<tt>kdf_id = 0x0011</tt>) as defined
in <xref target="PQ-HPKE"/>, and the HPKE AEAD is AES-256-GCM (<tt>aead_id = 0x0002</tt>)
as defined in <xref target="HPKE"/>. The <tt>kem_id</tt> is the corresponding allocation
requested by <xref target="HQC-HPKE"/>.</t>
      <t>SHAKE256 is selected because HQC-KEM uses SHAKE256 internally,
following the guidance in Section 7.1 of <xref target="COSE-HPKE"/> that the KDF
match one used by the KEM where possible. A single KDF and AEAD
limits the initial suite count while allowing all HQC KEMs.</t>
    </section>
    <section anchor="keys">
      <name>Key Representation</name>
      <t>Keys <bcp14>MUST</bcp14> use the Algorithm Key Pair (AKP) key type of <xref target="RFC9964"/> and
the raw HPKE key mapping specified in Section 3.4 of <xref target="COSE-HPKE"/>.</t>
      <table anchor="key-fields">
        <name>HQC COSE_Key parameters</name>
        <thead>
          <tr>
            <th align="left">Parameter</th>
            <th align="right">Label</th>
            <th align="left">Requirement</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">kty</td>
            <td align="right">1</td>
            <td align="left">Integer 7 (AKP)</td>
          </tr>
          <tr>
            <td align="left">alg</td>
            <td align="right">3</td>
            <td align="left">COSE algorithm value</td>
          </tr>
          <tr>
            <td align="left">pub</td>
            <td align="right">-1</td>
            <td align="left">HPKE SerializePublicKey output, bstr</td>
          </tr>
          <tr>
            <td align="left">priv</td>
            <td align="right">-2</td>
            <td align="left">HPKE SerializePrivateKey output, bstr, private keys only</td>
          </tr>
        </tbody>
      </table>
      <t>The <tt>alg</tt> field <bcp14>MUST</bcp14> be present and <bcp14>MUST</bcp14> identify the ciphersuite for
which the key is used. It <bcp14>MUST</bcp14> match the selected COSE-HPKE algorithm.
This is a complete ciphersuite binding, not merely a KEM binding:
HPKE-HQC-1 and HPKE-HQC-1-KE identify different key objects.</t>
      <t>The <tt>pub</tt> length for each KEM is given in <xref target="len-table"/>. The <tt>priv</tt>
value, when present, is the 32-octet seed serialization defined by
<xref target="HQC-HPKE"/>. Expanded private keys <bcp14>MUST NOT</bcp14> be placed in <tt>priv</tt>.
Public-key objects <bcp14>MUST NOT</bcp14> contain <tt>priv</tt>. No <tt>crv</tt> parameter is
used.</t>
      <table anchor="len-table">
        <name>Public key and encapsulated key lengths</name>
        <thead>
          <tr>
            <th align="left">HPKE KEM</th>
            <th align="right">pub (octets)</th>
            <th align="right">ek (octets)</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">HQC-1</td>
            <td align="right">2241</td>
            <td align="right">4433</td>
          </tr>
          <tr>
            <td align="left">HQC-3</td>
            <td align="right">4514</td>
            <td align="right">8978</td>
          </tr>
          <tr>
            <td align="left">HQC-5</td>
            <td align="right">7237</td>
            <td align="right">14421</td>
          </tr>
          <tr>
            <td align="left">HQC3-P256</td>
            <td align="right">4579</td>
            <td align="right">9043</td>
          </tr>
          <tr>
            <td align="left">HQC3-X25519</td>
            <td align="right">4546</td>
            <td align="right">9010</td>
          </tr>
          <tr>
            <td align="left">HQC5-P384</td>
            <td align="right">7334</td>
            <td align="right">14518</td>
          </tr>
        </tbody>
      </table>
      <t>Implementations <bcp14>MUST</bcp14> perform the deserialization and consistency checks
specified by <xref target="HQC-HPKE"/>, including rejection of an imported seed and
public-key pair that do not match. The parameter set <bcp14>MUST</bcp14> be determined
from <tt>alg</tt>, not inferred from a byte-string length alone.</t>
      <t>If <tt>key_ops</tt> (label 4) is present, it <bcp14>MUST</bcp14> be <tt>[8]</tt> (derive bits) for
a private key and <tt>[]</tt> for a public key, as required by Section 3.4
of <xref target="COSE-HPKE"/>. This is not a <tt>deriveKey</tt> permission and does not
authorize use of the HQC key as a symmetric key.</t>
      <t>AKP thumbprints follow Section 6 of <xref target="RFC9964"/>. They include the
COSE algorithm value, so two ciphersuite bindings do not have the same
thumbprint merely because their public-key bytes are identical.</t>
    </section>
    <section anchor="processing">
      <name>Processing Requirements</name>
      <t>The processing of <xref target="COSE-HPKE"/> applies with the algorithms from
<xref target="suites"/> and the key mapping in <xref target="keys"/>. Only the HPKE Single-Shot
APIs are used. A new HPKE operation, with fresh encapsulation randomness,
<bcp14>MUST</bcp14> be used for each independently encrypted message or recipient.
Reusing a provisioned recipient public key is distinct from reusing
encapsulation randomness or an HPKE encryption context.</t>
      <t>If the <tt>alg</tt> header is present, it <bcp14>MUST</bcp14> be protected and <bcp14>MUST</bcp14> match
the selected suite. When it is omitted as permitted by <xref target="COSE-HPKE"/>,
the suite <bcp14>MUST</bcp14> be unambiguously established by the application context
and <bcp14>MUST</bcp14> still match the key's mandatory <tt>alg</tt>. A receiver <bcp14>MUST NOT</bcp14>
try different suites until one decrypts successfully.</t>
      <t>The <tt>ek</tt> header <bcp14>MUST</bcp14> contain the raw HPKE <tt>enc</tt> output as a byte
string in the unprotected header of the structure performing HPKE.
Its expected length is given in <xref target="len-table"/>. A missing header,
incorrect type, or incorrect length <bcp14>MUST</bcp14> be rejected before invoking
decapsulation. The checks of <xref target="HQC-HPKE"/> apply in addition to these
COSE checks.</t>
      <section anchor="integrated">
        <name>Integrated Encryption</name>
        <t>The algorithms without the <tt>-KE</tt> suffix <bcp14>MUST</bcp14> be used only with the
Integrated Encryption processing of Section 3.2 of <xref target="COSE-HPKE"/>.
This mode uses COSE_Encrypt0 and has one recipient.</t>
        <t>HPKE encrypts the raw content. The inputs and outputs are mapped as
specified by the base document:</t>
        <ul spacing="normal">
          <li>
            <t><tt>info</tt> is empty unless the application supplies the same external
value to both parties.</t>
          </li>
          <li>
            <t><tt>aad</tt> is the encoded COSE Enc_structure with context <tt>Encrypt0</tt>,
the protected-header byte string, and the application's external AAD.</t>
          </li>
          <li>
            <t><tt>pt</tt> is the content to encrypt.</t>
          </li>
          <li>
            <t><tt>enc</tt> is carried in the unprotected <tt>ek</tt> header.</t>
          </li>
          <li>
            <t><tt>ct</tt> is the COSE_Encrypt0 ciphertext, or the detached ciphertext
when that field is <tt>null</tt>.</t>
          </li>
        </ul>
        <t>HPKE manages the AEAD key and nonce internally.</t>
      </section>
      <section anchor="key-encryption">
        <name>Key Encryption</name>
        <t>The algorithms with the <tt>-KE</tt> suffix <bcp14>MUST</bcp14> be used only with the Key
Encryption processing of Section 3.3 of <xref target="COSE-HPKE"/>. A COSE_Encrypt
contains the content encrypted with an independently generated CEK.
Each COSE_Recipient uses HPKE to encrypt that CEK for its recipient.</t>
        <t>The <tt>info</tt> input is the Recipient_structure of the base document,
encoded according to the Core Deterministic Encoding Requirements in
Section 4.2.1 of <xref target="RFC8949"/>. Its four members bind the HPKE recipient
context, the algorithm of the next lower COSE layer, the exact recipient
protected-header bytes, and any agreed recipient extra information.
The <tt>next_layer_alg</tt> value <bcp14>MUST</bcp14> match the algorithm of that lower
layer. Deterministic encoding applies to the structure, not to
re-encoding the protected-header bytes it contains.</t>
        <t>The HPKE <tt>aad</tt> input <bcp14>SHOULD</bcp14> be empty, with any additional data handled
as specified in Section 3.3.4 of <xref target="COSE-HPKE"/>. The HPKE plaintext is
the CEK. The encapsulation output is placed in the recipient's
unprotected <tt>ek</tt> header, and the HPKE ciphertext is placed in that
recipient's ciphertext field.</t>
        <t>The HPKE AEAD of these suites is always AES-256-GCM and encrypts the
CEK. The selected outer algorithm determines the CEK length and its own
nonce and usage requirements. There is no AES Key Wrap step and no
COSE_KDF_Context in this processing.</t>
        <t>The receiver uses HPKE Open to recover the CEK, checks that its length
is appropriate for the next layer, and processes that layer according
to COSE. A failed HPKE Open or failed content authentication <bcp14>MUST NOT</bcp14>
result in plaintext release. Each recipient receives an independent
encapsulation and encrypted copy of the CEK.</t>
      </section>
      <section anchor="modes">
        <name>Base and PSK Authentication Modes</name>
        <t>Both COSE usage modes support HPKE Base and PSK. Following
<xref target="COSE-HPKE"/>, a protected <tt>psk_id</tt> selects PSK mode; its absence
selects Base mode. The PSK is provided externally and <bcp14>MUST NOT</bcp14> be
included in the COSE structure. Its provisioning, entropy, and matching
requirements are those of <xref target="HPKE"/>.</t>
        <t>No additional COSE algorithm identifiers are required for PSK mode.</t>
      </section>
      <section anchor="failure-handling">
        <name>Failure Handling</name>
        <t>The explicit errors and implicit-rejection behavior of <xref target="HQC-HPKE"/>
and <xref target="HPKE"/> apply. Implementations <bcp14>MUST NOT</bcp14> turn the internal HQC
consistency check into a distinguishable COSE rejection signal.
Implicit rejection continues through HPKE; authentication failure is
handled through the normal Open path. Explicit parse or KEM failures
stop the operation without releasing content or a CEK.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="HQC-HPKE"/>, <xref target="HPKE"/>, <xref target="PQ-HPKE"/>,
<xref target="COSE-HPKE"/>, and <xref target="RFC9052"/> apply. This document selects and encodes
ciphersuites; it does not supply an independent proof of HQC or HPKE.</t>
      <t>The protected headers, Recipient_structure, and the distinction
between HPKE <tt>info</tt> and <tt>aad</tt> <bcp14>MUST</bcp14> be handled exactly as specified by
<xref target="COSE-HPKE"/>. Replacing that structure with the context from another
COSE key-distribution mechanism can remove intended algorithm binding
and produces a different construction.</t>
      <t>Applications <bcp14>MUST</bcp14> constrain algorithm selection by policy and <bcp14>MUST NOT</bcp14>
silently fall back to another KEM, ciphersuite, or HQC revision after
decryption failure. Selection of a high-category KEM does not remove
limits imposed by a content algorithm, KDF, AEAD, PSK, or implementation.</t>
      <t>Multiple recipients do not form a hybrid KEM. If HQC and ML-KEM
recipients independently protect the same CEK, either recipient's
private key is sufficient to recover it. Confidentiality therefore
depends on every enabled recovery path. Applications requiring security
when one KEM fails can use the PQ/T hybrid ciphersuites in
<xref target="suites"/>.</t>
      <t>Base mode does not authenticate the sender. A <tt>kid</tt> is a lookup hint,
not a substitute for authenticated public-key distribution. Sender
authentication can be provided by the PSK mode or suitable COSE-native
mechanisms as described by the base document. Long-term recipient
key compromise permits recovery of recorded messages.</t>
      <t>Fresh randomness is required for encapsulation and for CEK generation
in Key Encryption mode. The 32-octet private seed is secret key
material and implementations <bcp14>MUST</bcp14> protect it and
all expanded keys and intermediate shared secrets against disclosure.</t>
      <t>Message-size limits need to account for the entire encoded COSE
object, not just the plaintext. In Key Encryption mode, each HQC
recipient adds its KEM ciphertext and an encrypted CEK. Implementations
<bcp14>SHOULD</bcp14> bound parsing, reassembly, memory allocation, and decapsulation
work. Detached content does not eliminate the per-recipient KEM
ciphertext overhead.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to add the following twelve entries to the "COSE
Algorithms" registry <xref target="COSE-IANA"/>. The entries are fully specified
by <xref target="suites"/>. For every entry, the KDF is HPKE SHAKE256 (0x0011)
and the AEAD is HPKE AES-256-GCM (0x0002).</t>
      <table>
        <thead>
          <tr>
            <th align="left">Name</th>
            <th align="left">Value</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">HPKE-HQC-1</td>
            <td align="left">TBD-COSE-HQC-1</td>
            <td align="left">Integrated Encryption: HQC-1, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-3</td>
            <td align="left">TBD-COSE-HQC-3</td>
            <td align="left">Integrated Encryption: HQC-3, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-5</td>
            <td align="left">TBD-COSE-HQC-5</td>
            <td align="left">Integrated Encryption: HQC-5, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-P256</td>
            <td align="left">TBD-COSE-HQC3-P256</td>
            <td align="left">Integrated Encryption: HQC3-P256, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-X25519</td>
            <td align="left">TBD-COSE-HQC3-X25519</td>
            <td align="left">Integrated Encryption: HQC3-X25519, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC5-P384</td>
            <td align="left">TBD-COSE-HQC5-P384</td>
            <td align="left">Integrated Encryption: HQC5-P384, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-1-KE</td>
            <td align="left">TBD-COSE-HQC-1-KE</td>
            <td align="left">Key Encryption: HQC-1, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-3-KE</td>
            <td align="left">TBD-COSE-HQC-3-KE</td>
            <td align="left">Key Encryption: HQC-3, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC-5-KE</td>
            <td align="left">TBD-COSE-HQC-5-KE</td>
            <td align="left">Key Encryption: HQC-5, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-P256-KE</td>
            <td align="left">TBD-COSE-HQC3-P256-KE</td>
            <td align="left">Key Encryption: HQC3-P256, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC3-X25519-KE</td>
            <td align="left">TBD-COSE-HQC3-X25519-KE</td>
            <td align="left">Key Encryption: HQC3-X25519, SHAKE256, AES-256-GCM</td>
          </tr>
          <tr>
            <td align="left">HPKE-HQC5-P384-KE</td>
            <td align="left">TBD-COSE-HQC5-P384-KE</td>
            <td align="left">Key Encryption: HQC5-P384, SHAKE256, AES-256-GCM</td>
          </tr>
        </tbody>
      </table>
      <t>The following fields apply to every row:</t>
      <ul spacing="normal">
        <li>
          <t>Capabilities: <tt>[kty]</tt></t>
        </li>
        <li>
          <t>Change Controller: IESG</t>
        </li>
        <li>
          <t>Reference: this document, <xref target="suites"/>, <xref target="keys"/>, and <xref target="processing"/></t>
        </li>
        <li>
          <t>Recommended: No</t>
        </li>
      </ul>
      <t>The corresponding HPKE KEM ID in each description is the identifier
assigned to that KEM by <xref target="HQC-HPKE"/>. Those values <bcp14>MUST</bcp14> be resolved
in <xref target="suites"/> before publication.</t>
      <t>The existing AKP key type and the <tt>ek</tt> and <tt>psk_id</tt> parameters
defined by <xref target="COSE-HPKE"/> are reused.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="RFC9964">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="HPKE">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
         </author>
            <author fullname="Karthikeyan Bhargavan" initials="K." surname="Bhargavan">
              <organization>Inria</organization>
            </author>
            <author fullname="Benjamin Lipp" initials="B." surname="Lipp">
              <organization>Rosenpass</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
         </author>
            <date day="25" month="September" year="2026"/>
            <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 a variant that authenticates possession of a pre-shared key.
   HPKE works for any combination of an asymmetric Key Encapsulation
   Mechanism (KEM), key derivation function (KDF), and authenticated
   encryption with additional data (AEAD) encryption function.  This
   document provides 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 SHA-2.

   This document obsoletes RFC 9180.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-hpke-05"/>
        </reference>
        <reference anchor="PQ-HPKE">
          <front>
            <title>Post-Quantum and Post-Quantum/Traditional Hybrid Algorithms for HPKE</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>Selkie Cryptography</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Updating key exchange and public-key encryption protocols to resist
   attack by quantum computers is a high priority given the possibility
   of "harvest now, decrypt later" attacks.  Hybrid Public Key
   Encryption (HPKE) is a widely-used public key encryption scheme based
   on combining a Key Encapsulation Mechanism (KEM), a Key Derivation
   Function (KDF), and an Authenticated Encryption with Associated Data
   (AEAD) scheme.  In this document, we define KEM algorithms for HPKE
   based on both post-quantum KEMs and hybrid constructions of post-
   quantum KEMs with traditional KEMs, as well as a KDF based on SHA-3
   that is suitable for use with these KEMs.  When used with these
   algorithms, HPKE is resilient with respect to attacks by a quantum
   computer.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-hpke-pq-05"/>
        </reference>
        <reference anchor="HQC-HPKE">
          <front>
            <title>Hamming Quasi-Cyclic (HQC) Key Encapsulation Mechanisms for Hybrid Public Key Encryption (HPKE)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <date day="14" month="October" year="2026"/>
            <abstract>
              <t>   This document specifies Hamming Quasi-Cyclic (HQC) key encapsulation
   mechanisms for use with Hybrid Public Key Encryption (HPKE).  It
   defines the HPKE KEM interface, deterministic key-pair derivation,
   public and private key encodings, and input validation for three HQC
   parameter sets.  It also defines three PQ/T hybrid KEMs that combine
   HQC with P-256, X25519, or P-384.  It requests six HPKE KEM algorithm
   identifiers and reuses the existing HPKE key schedule, encryption
   operations, and export interface.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-reddy-hpke-hqc-01"/>
        </reference>
        <reference anchor="COSE-HPKE">
          <front>
            <title>Use of Hybrid Public-Key Encryption (HPKE) with CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <author fullname="Michael B. Jones" initials="M. B." surname="Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author fullname="Orie Steele" initials="O." surname="Steele">
              <organization>Tradeverifyd</organization>
            </author>
            <author fullname="Ajitomi, Daisuke" initials="A." surname="Daisuke">
              <organization>bibital LLC</organization>
            </author>
            <author fullname="Laurence Lundblade" initials="L." surname="Lundblade">
              <organization>Security Theory LLC</organization>
            </author>
            <date day="12" month="September" year="2026"/>
            <abstract>
              <t>   This specification defines hybrid public-key encryption (HPKE) for
   use with CBOR Object Signing and Encryption (COSE).  HPKE offers a
   variant of public-key encryption of arbitrary-sized plaintexts for a
   recipient public key.

   HPKE is a general encryption framework utilizing an asymmetric key
   encapsulation mechanism (KEM), a key derivation function (KDF), and
   an Authenticated Encryption with Associated Data (AEAD) algorithm.

   This document defines the use of HPKE with COSE.  Authentication for
   HPKE in COSE is provided by COSE-native security mechanisms or by the
   pre-shared key authenticated variant of HPKE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-cose-hpke-27"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9794">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="F. Driscoll" initials="F." surname="Driscoll"/>
            <author fullname="M. Parsons" initials="M." surname="Parsons"/>
            <author fullname="B. Hale" initials="B." surname="Hale"/>
            <date month="June" year="2025"/>
            <abstract>
              <t>One aspect of the transition to post-quantum algorithms in cryptographic protocols is the development of hybrid schemes that incorporate both post-quantum and traditional asymmetric algorithms. This document defines terminology for such schemes. It is intended to be used as a reference and, hopefully, to ensure consistency and clarity across different protocols, standards, and organisations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9794"/>
          <seriesInfo name="DOI" value="10.17487/RFC9794"/>
        </reference>
        <reference anchor="COSE-IANA" target="https://www.iana.org/assignments/cose/">
          <front>
            <title>CBOR Object Signing and Encryption (COSE)</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 363?>

<section anchor="examples">
      <name>Example</name>
      <t>These examples are pseudocode, not executable CBOR diagnostic notation
or cryptographic test vectors. <tt>encode</tt> denotes CBOR encoding,
<tt>bstr(name)</tt> denotes the byte string held in <tt>name</tt>, and symbolic
algorithm and header identifiers stand for integer assignments.
<tt>EK</tt> and <tt>PSK_ID</tt> denote the header labels assigned by <xref target="COSE-HPKE"/>.</t>
      <t>A future version of this specification will provide working
examples.</t>
      <section anchor="akp-public-key">
        <name>AKP Public Key</name>
        <artwork><![CDATA[
{
   1: 7,                         / AKP /
   3: TBD-COSE-HQC-1,
   4: [],                        / optional key_ops /
  -1: bstr(pk)                   / 2241 octets /
}
]]></artwork>
        <t>A corresponding private-key object includes <tt>-2: bstr(seed)</tt> with
32 octets and, if <tt>key_ops</tt> is present, replaces <tt>[]</tt> with <tt>[8]</tt>.
A Key Encryption object uses its own matching <tt>-KE</tt> algorithm binding.</t>
      </section>
      <section anchor="integrated-encryption-in-base-mode">
        <name>Integrated Encryption in Base Mode</name>
        <artwork><![CDATA[
16([
  encode({1: TBD-COSE-HQC-1}),
  {4: bstr(kid), EK: bstr(enc)},
  bstr(ct)
])
]]></artwork>
        <t>The tag is the optional COSE_Encrypt0 tag. <tt>enc</tt> has 4433 octets.
The protected bytes shown are also used in Enc_structure, which is
passed as HPKE AAD. <tt>ct</tt> contains the encrypted content and its
16-octet AES-GCM authentication tag. No external COSE IV is needed
for the HPKE operation.</t>
      </section>
      <section anchor="key-encryption-in-base-mode">
        <name>Key Encryption in Base Mode</name>
        <artwork><![CDATA[
96([
  encode({1: 3}),                 / outer A256GCM /
  {5: bstr(content_iv)},
  bstr(encrypted_content),
  [
    [
      encode({1: TBD-COSE-HQC-5-KE, 4: bstr(kid)}),
      {EK: bstr(enc)},
      bstr(encrypted_cek)
    ]
  ]
])
]]></artwork>
        <t>Here the independent CEK has 32 octets and <tt>content_iv</tt> has 12 octets.
For the HQC-5 recipient, <tt>enc</tt> has 14421 octets. <tt>encrypted_cek</tt> has
48 octets: the encrypted 32-octet CEK followed by the 16-octet HPKE
AES-GCM tag. The recipient's <tt>info</tt> is the deterministic encoding of:</t>
        <artwork><![CDATA[
[
  "HPKE Recipient",
  3,
  encode({1: TBD-COSE-HQC-5-KE, 4: bstr(kid)}),
  h''
]
]]></artwork>
        <t>The protected-header byte string <bcp14>MUST</bcp14> be the same one transmitted in
the recipient, not a separately re-encoded equivalent map. To use PSK
mode, add <tt>PSK_ID: bstr(psk_id)</tt> to that protected map and supply the
corresponding PSK externally. This also changes the bytes in <tt>info</tt>.</t>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
