<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.16 (Ruby 2.7.0) -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-dnhpke-01" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.40.0 -->
  <front>
    <title abbrev="DNHPKE">Deterministic Nonce-less Hybrid Public Key Encryption</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-dnhpke-01"/>
    <author initials="D." surname="Harkins" fullname="Dan Harkins">
      <organization>Hewlett-Packard Enterprise</organization>
      <address>
        <email>daniel.harkins@hpe.com</email>
      </address>
    </author>
    <date year="2023" month="July" day="06"/>
    <area>cfrg</area>
    <abstract>
      <t>This document describes enhancements to the Hybrid Public Key Encryption
standard published by CFRG. These include use of "compact representation" of
relevant public keys, support for key-wrapping, and two ways to address the
use of HPKE on lossy networks: a determinstic, nonce-less AEAD scheme, and
use of a rolling sequence number with existing AEAD schemes.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t><xref target="RFC9180"/>, hereinafter simply HPKE, is a robust, provably-secure construct.
It defines APIs to ensure proper use to retain its security guarantees. These
APIs are therefore rigid and purposeful. Unfortunately, there are applications
for which this rigidity is an impediment to use: networks with bandwidth
constrained mediums, networks which cannot guarantee in-order delivery of
every packet sent, and for key-wrapping applications.</t>
      <t>This memo proposes three modifications to HPKE to make it more suitable
for different use cases.</t>
      <section anchor="compact-representation">
        <name>Compact Representation</name>
        <t>HPKE generates an ephemeral keypair and uses it to perform a Diffie-Hellman
with the static keypair of the proposed recipient of a secure message. The
ephemeral public key is required to accompany the message, or at least the
first of a stateful sequence of messages. HPKE therefore defines a
serialization and deserialization for public keys used with defined KEMs.</t>
        <t>HPKE defines KEMs that use three Weierstrass curves defined in
<xref target="NISTCurves"/>. The serialization and deserialization for public keys
in these KEMs use the uncompressed form of an elliptic curve from <xref target="SECG"/>.
Unfortunately, this results in the string that accompanies the message to
be over twice as long as it needs to be. This can be an issue for
applications that have constrained bandwidth or that use the HPKE APIs
in a stateless, "single shot" mode where the message being sent is dwarfed
by the size of the serialized public key.</t>
        <t><xref target="RFC6090"/> defines a notion of "compact output" and "compact
representation" for elliptic curves. Compact output means that the
output of the ECDH operation is the x-coordinate of the resulting point,
the y-coordinate is discarded. Compact representation is a way of
communicating an elliptic curve Diffie-Hellman public key using the
x-coordinate only. Compact representation will work if compact output
is employed-- the sign of the ECDH secret is irrelevant so it doesn't
matter what the sign of the peer's public key is.</t>
        <t>HPKE uses compact output, it passes the x-coordinate of the ECDH secret
key to HKDF to derive a key to pass to the AEAD cipher. Since HPKE 
uses compact output, it can define serialization and deserialization
that uses compact representation and thereby address use cases in which
message size is important. Redefining the serialization and
deserialization, though, requires definition of new KEMs that will
use the new technique.</t>
      </section>
      <section anchor="addressing-lossy-networks">
        <name>Addressing Lossy Networks</name>
        <t>To prevent the possibility of misuse, management of AEAD counters
are entirely constrained to the HPKE context. The sender and
receiver have no ability to know what particular counter was used
with a particular invocation or to manage how counters are used.</t>
        <t>This restriction is not an issue for an applications
that use HPKE which have a guarantee of in-order packet delivery,
where sender and receiver HPKE contexts are kept in sync. But not
everyone has a guarantee of in-order delivery of packets and this
restriction makes use of HPKE impracticle by a great many use cases.
Any undetected packet loss or reordering would result in the sender
and receiver HPKE contexts getting out of sync. Since HPKE provides
no way to resynchronize such a situation, the result would be tragic.</t>
        <t>Therefore, two techiques are added to allow HPKE to be used in
lossy networks or networks that reorder packets: a rolling window
of received sequence numbers, and a determinstic mode of AEAD.</t>
        <section anchor="rolling-sequence-window">
          <name>Rolling Sequence Window</name>
          <t>The technique from <xref target="RFC2401"/> can be adopted which implements
a rolling window that represents received messages (inside the
window). As the sequence number advances, and a message is
successfully opened thus validating the sequence number, the
window advances to include it. The result is that reorder and loss
is acceptable for a number of messages defined by the size of the
window and messages deemed "too old" are dropped. Messages replayed
with a used sequence number are also dropped.</t>
          <t>To implement such a scheme, the receiver needs to know the
counter used with the AEAD algorithm. Therefore, the sequence
number used to construct the counter in HPKE (it is XOR'd with
a secret base nonce) is pre-peneded to the ciphertext.</t>
        </section>
        <section anchor="deterministic-authenticated-encryption">
          <name>Deterministic Authenticated Encryption</name>
          <t><xref target="SIV"/> defines a provably secure mode of deterministic authenticated
encryption (DAE). In this mode, a counter is optional. If one is used
and it is guaranteed to be unique, SIV achieves the same level of
IND-CCA2 security offered by other HPKE ciphers. But if the nonce is
reused or, in the case proposed here, the nonce is not used, SIV will
provide a different security guarantee, that of deterministic security.</t>
          <t>Determinsitic authenticity in a DAE scheme provides the traditional
inability of an adversary to come up with a non-trivial query that
will return a non-FAIL response-- i.e. a valid forgery-- with
non-negligible probability. Deterministic privacy in a DAE scheme
provides for the typical indistinguishability from random guarantee
of a traditional AEAD scheme, with a caveat: it cannot achieve
the indistinguishability goal that requires concealment of whether
or not a given plaintext was encrypted twice in a sequence of
ciphertexts.</t>
          <t>What this means is that the security of a DAE scheme is the
same as a traditional AE scheme with the exception that encrypting
the same AAD and the same plaintext twice will result in the
same ciphertext, an outcome an adversary would notice. Unlike other
AEAD schemes, after this misuse the privacy and authenticity
guarantees remain, albeit with this consideration to traffic
analysis. This is a reasonable price to pay for the ability to
use the HPKE APIs as more than a "single shot".</t>
          <t>DAE can achieve the equivalent of semantic security if the message
space is random enough. This is the justification for the security
of key wrap schemes (see <xref target="key-wrap"/>) in which (a portion of) the
plaintext is a random key.</t>
          <t>SIV takes a vector of AAD. When a
unique sequence number can be managed it can be part of that
vector. It should be noted, therefore, that it is trivial for
an application that has control of the AAD to add a nonce as a
component of the AAD vector to ensure unique AAD per invocation
of the HPKE API and achieve the IND-CCA2 notion of security.</t>
          <t>Alternately, for some situations-- e.g. when the message protected
by HPKE is idempotent-- DAE security can be acceptable.</t>
          <t>See <xref target="sec-consider"/>.</t>
        </section>
      </section>
      <section anchor="key-wrap">
        <name>Key Wrapping</name>
        <t>Key wrapping schemes utilize a symmetric encryption algorithm to
provide privacy and integrity to cryptographic keying material.
Additionally, such schemes should provide integrity
protection of cleartext associated data which contains control
information about the wrapped key. Due to the symmetric nature
of the algorithm, it is assumed both sides possess a shared
secret whose establishment is problematic. Therefore HPKE is
naturally an attractive option to use to wrap a cryptographic
key to a receipent's public key.</t>
        <t>Since the data being wrapped is, in effect, random, a probabalistic
input like a nonce is not needed, hence the deterministic nature of
proposed key-wrapping schemes (see <xref target="X9102"/> and <xref target="RFC5649"/>).
<xref target="SIV"/> is superior to those schemes in a number of ways:</t>
        <ul spacing="normal">
          <li>it accepts associated data;</li>
          <li>it is more efficient;</li>
          <li>it accepts natural data lengths without requiring padding; and,</li>
          <li>it has a security proof.</li>
        </ul>
        <t>Thus, making it well-suited for key wrapping use cases with HPKE.</t>
      </section>
    </section>
    <section anchor="requirements-notation">
      <name>Requirements Notation</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY",
and "OPTIONAL" 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>
    </section>
    <section anchor="notation">
      <name>Notation</name>
      <t>This document re-uses the notation from HPKE and adds the following:</t>
      <ul spacing="normal">
        <li>
          <tt>or(a,b)</tt>: logical OR of byte strings; <tt>or(0x9876, 0x1234) = 0x9cf6</tt>.
 It is an error to call this function with two arguments of unequal
 length.</li>
        <li>
          <tt>and(a,b)</tt>: logical AND of byte strings; <tt>and(0x1234, 0x5678) = 0x1230</tt>.
 It is an error to call this function with two arguments of unequal
 length.</li>
        <li>
          <tt>a | b</tt>: concatenation of byte strings "a" and "b". The length of the
 resulting string is the sum of the lengths of "a" and "b". If this
 symbol is on the left side of an equation it represents distinct
 data, represented by "a" and "b", as the result of the equation.</li>
      </ul>
    </section>
    <section anchor="modifying-hpke">
      <name>Modifying HPKE</name>
      <section anchor="adding-compact-representation">
        <name>Adding Compact Representation</name>
        <t>New DHKEMs are defined for the three NIST curves, P-256, P-384, and P-521.
Being "compact", they are denoted here CP-256, CP-384, and CP-521 but are,
for the purposes of cryptography, otherwise identical.</t>
        <t>All KEM modes defined in HPKE are supported for these KEMs, including Auth
and AuthPSK.</t>
        <table anchor="kemid-values">
          <name>KEM IDs</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">KEM</th>
              <th align="left">Nsecret</th>
              <th align="left">Nenc</th>
              <th align="left">Npk</th>
              <th align="left">Nsk</th>
              <th align="left">Auth</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">DHKEM(CP-256, HKDF-SHA256)</td>
              <td align="left">32</td>
              <td align="left">32</td>
              <td align="left">32</td>
              <td align="left">32</td>
              <td align="left">yes</td>
              <td align="left">
                <xref target="NISTCurves"/>, <xref target="RFC6090"/></td>
            </tr>
            <tr>
              <td align="left">TBD2</td>
              <td align="left">DHKEM(CP-384, HKDF-SHA384)</td>
              <td align="left">48</td>
              <td align="left">48</td>
              <td align="left">48</td>
              <td align="left">48</td>
              <td align="left">yes</td>
              <td align="left">
                <xref target="NISTCurves"/>, <xref target="RFC6090"/></td>
            </tr>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">DHKEM(CP-521, HKDF-SHA512)</td>
              <td align="left">64</td>
              <td align="left">66</td>
              <td align="left">66</td>
              <td align="left">66</td>
              <td align="left">yes</td>
              <td align="left">
                <xref target="NISTCurves"/>, <xref target="RFC6090"/></td>
            </tr>
          </tbody>
        </table>
        <t>These KEMs use the KDFs defined in HPKE and therefore are bound by the
input length restrictions of the KDF used (see 7.2.1 of HPKE).</t>
        <t>The security properties of these KEMs satisfy the security requirements
of a KEM used in HPKE (see section 9.2 of HPKE).</t>
        <section anchor="serializepublickey-and-deserializepublickey">
          <name>SerializePublicKey and DeserializePublicKey</name>
          <t>For CP-256, CP-384 and CP-521, the <tt>SerializePublicKey()</tt> function of the
KEM performs the Integer-to-Octet-String conversion of the x-coordinate of
the public key only, according to <xref target="RFC6090"/>. <tt>DeserializePublicKey()</tt>
performs the Octet-String-to-Integer conversion of <xref target="RFC6090"/> to produce
the x-coordinate of a the resulting point. Since all of these curves have
a prime p = 3 mod 4, the y-coordindate can be computed using the equation
of the curve and Shanks' method of computing the square root modulo p:</t>
          <artwork><![CDATA[
        y = ((x^3 + a*x + b)^((p + 1)/4)) mod p
]]></artwork>
          <t>for a, b, and p defined for the curve in <xref target="NISTCurves"/>. There will be
two distinct solutions for y that will differ only in sign but either
one is acceptable to produce a Diffie-Hellman shared secret that is
used in compact output.</t>
          <t>These deserialized public keys MUST be validated before they can be used.
See HPKE for specifics.</t>
        </section>
        <section anchor="serializeprivatekey">
          <name>SerializePrivateKey and DeserializePrivateKey</name>
          <t>As with HPKE, CP-256, CP-384, and CP-521 private keys are field elements
in the scalar field of the curve being used. Serialization of the private
key uses the Integer-to-OctetString function from <xref target="RFC6090"/> and
deserialization uses the OctetString-to-Integer function from <xref target="RFC6090"/>.
If the private key is an integer outside the range <tt>[0, order-1]</tt>,
where <tt>order</tt> for each curve is defined in <xref target="NISTCurves"/>, the private
key MUST be reduced, modulo the order, to <tt>[0, order-1]</tt> before being
serialized.</t>
          <t>To catch invalid keys early on, implementers of DHKEMs SHOULD check that
deserialized private keys are not equivalent to 0 (mod <tt>order</tt>), where <tt>order</tt>
is the order of the curve.</t>
        </section>
      </section>
      <section anchor="adding-a-rolling-window">
        <name>Adding A Rolling Window</name>
        <t>A rolling receiver replay window is added by overloading the way a
context encrypts and decrypts messages-- ContextS.Seal() and
ContextR.Open(). The calling parameters remain the same but the
internals change and, for ContextS.Seal(), the output differs.</t>
        <t>The replay window is implemented as a bitmask check for a window whose
size is implementation-specific. For illustration purposes only it is
described here as being of size 32, meaning it can tolerate loss and
reorder of the previous 31 messages. The following pseudo-code has
separate routines for a quick check of a received sequence number and
an update to the window for sequence numbers that have been validated.</t>
        <t>The context encryption API template is the same as that in HPKE except
it prepends the sequence number, used to construct the counter for the
AEAD operation, to the data returned from Seal(). Therefore the single
"ct" output is, in fact, a concatenation of the four octet sequence
number and the returned ciphertext.</t>
        <t>The context decryption API template is changed to extract the sequence
number from the input ciphertext, and check whether the received sequence
number is conditionally good. If it is and the message is successfully
opened, the window is updated with the received sequence number.</t>
        <t>Details are as follows:</t>
        <artwork><![CDATA[
windowSize = 32

def CheckSeq(num):
  if num > self.seq
      return Good
  diff = self.seq - num
  if diff > windowSize
      return Bad
  if and(self.window, (1 << diff)) == 0
      return Good
  else
      return Bad

def UpdateWindow(num)
  if num > self.seq
      diff = num - self.seq
      if diff < windowSize
          self.window <<= diff
          self.window = or(self.window, 1)
      else
          self.window = 1
      self.seq = num
  else
      diff = self.seq - num
      self.window = or(self.window, (1 << diff))
  return

def ContextS.DSeal(aad, pt):
  num = self.ComputeNonce(self.seq)
  ct = num | Seal(self.key, num, aad, pt)
  return ct

def ContextR.DOpen(aad, m):
  num | ct = m
  if CheckSeq(num) == Bad
      raise OpenReplay
  pt = Open(self.key, num, aad, ct)
  if pt == OpenError
      raise OpenError
  else
      UpdateWindow(num)
  return pt
]]></artwork>
        <t>The window is added to the Encryption Context as well as a single datum to
indicate whether the rolling receiver replay window is used (1) or not (0).
When the replay window is used, <tt>Context&lt;ROLE&gt;.DOpen()</tt> and
<tt>Context&lt;ROLE&gt;.DSeal()</tt> are used, when it is not the encryption and
decryption operations from HPKE are used.</t>
      </section>
      <section anchor="adding-dae">
        <name>Adding DAE</name>
        <t>AES-SIV, defined in <xref target="RFC5297"/> uses a "double-wide" key. A single large
key is passed to AES-SIV which divides the key into two, one for
encipherment and the other for authenticity. Since these cipher modes are
being added in their determinsitic, nonce-less varient the nonce derived
for these ciphers is zero (0).</t>
        <t>Unlike other AEAD schemes, AES-SIV takes a vector of AAD. The number
of components of that vector is up to the application using AES-SIV
in HPKE.</t>
        <table anchor="aeadid-values">
          <name>AEAD IDs</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">AEAD</th>
              <th align="left">Nk</th>
              <th align="left">Nn</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD4</td>
              <td align="left">AES-256-SIV</td>
              <td align="left">32</td>
              <td align="left">0</td>
              <td align="left">
                <xref target="RFC5297"/></td>
            </tr>
            <tr>
              <td align="left">TBD5</td>
              <td align="left">AES-512-SIV</td>
              <td align="left">64</td>
              <td align="left">0</td>
              <td align="left">
                <xref target="RFC5297"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is instructed to please update the "Hybrid Public Key Encryption"
repositories:</t>
      <artwork><![CDATA[
- assign values for TBD1, TBD2, and TBD3 from the HPKE KEM
  Identifiers repository; and,
- assign values for TBD4, and TBD5 from the HPKE AEAD Identifiers
  repository.
]]></artwork>
      <t>Please replace the TBD placeholders above with the assigned values.</t>
    </section>
    <section anchor="sec-consider">
      <name>Security Considerations</name>
      <t>Since HPKE uses Diffie-Hellman in "compact output", the sign
of the public keys is irrelevant. Discarding that which has
no impact on the result, i.e. doing "compact representation",
does not present a security issue.</t>
      <t>See <xref target="SIV"/> for a formal security proof.</t>
      <t>Uses of the DAE ciphers in HPKE can achieve the same level of
security as the non-DAE ciphers if the calling application
guarantees unique AAD per invocation or if the calling
application can guarantee a random message space.</t>
      <t>This opens up the possibility of misuse where an application
inadvertently makes a non-unique invocation (which is a good
reason to hide nonce management inside the HPKE context, as the
existing AEAD ciphers do). For some use cases-- e.g. messages
are idempotent, or a probabalistic operation can be achieved
(e.g. key wrapping), the DAE ciphers provide an acceptable option.</t>
      <t>It deserves to be mentioned again that even if a nonce is
reused (i.e. misused) by an application wishing to manage
the AAD of AES-SIV, the security of the cipher is not
completely voided as it is with a non-DAE mode. The notion
of deterministic privacy and determinstic authenticity
are retained (see <xref target="SIV"/>).</t>
    </section>
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The algorithm for the sliding window to address dropped and
reordered messages was proposed by James Hughes and Harry
Varnis in <xref target="RFC2401"/>.</t>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>The following test vectors have been generated assuming the
following registry value assignments would be made by IANA:</t>
      <ul spacing="normal">
        <li>DHKEM(CP-256, HKDF-SHA256):   19</li>
        <li>DHKEM(CP-384, HKDF-SHA384):   20</li>
        <li>DHKEM(CP-521, HKDR-SHA512):   21</li>
        <li>AES-256-SIV:                  4</li>
        <li>AES-512-SIV:                  5</li>
      </ul>
      <section anchor="dhkemcp-256-hkdf-sha256-hkdf-sha256-aes-256-siv">
        <name>DHKEM(CP-256, HKDF-SHA256), HKDF-SHA256, AES-256-SIV</name>
        <section anchor="base-setup-information">
          <name>Base Setup Information</name>
          <artwork><![CDATA[
mode: 0
kem_id: 19
kdf_id: 1
aead_id: 4
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
4270e54f fd08d79d 5928020a f4686d8f 6b7d35db e470265f 1f5aa228 16ce860e

pkEm:
23cd4f6a 91f37b51 3480ff24 9b4a08fd 27a56651 cb359476 02073780 7d5ce831

ikmR:
668b3717 1f1072f3 cf12ea8a 236a45df 23fc13b8 2af3609a d1e354f6 ef817550

pkRm:
3dbc347a e6a2a467 5a6848b3 4e10bf28 ed957847 18b43f05 959b2034 039c9626

enc:
23cd4f6a 91f37b51 3480ff24 9b4a08fd 27a56651 cb359476 02073780 7d5ce831

kem_context:
23cd4f6a 91f37b51 3480ff24 9b4a08fd 27a56651 cb359476 02073780 7d5ce831 
3dbc347a e6a2a467 5a6848b3 4e10bf28 ed957847 18b43f05 959b2034 039c9626

shared_secret:
97d46fdd 749db253 1604b8b6 763897ef bd75aee0 d0fc361e 186e86e6 5511ac45

key sched context:
0042df88 379ec00c 85fc09e8 fd8fce69 af9af9f4 9542c43e 7f40f222 88748ec4 
6db0932e 0232d272 ff914ccb 9eb2ccfb 8d530d53 da2d99f9 5f2a8e34 ab6a4901 
98

secret:
bba5e681 2bbd25f7 6ba0b01b 69431c59 6763ed32 f2614eda ab8b1798 ffd76848

key:
d76486f0 96d7b916 5dae3721 b7480709 a9253f57 134d7138 852cdbda e5d77d8a

exp:
c03303f5 8c920f88 2962d216 0fb989f3 351cfe36 846b39dc 359b876b bf6d638e
]]></artwork>
        </section>
        <section anchor="encryption">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
f663e10b f2d9ea5d 26b26f15 abf61f0c 7c02c1f1 8df3b8d9 76583d0d d7c2d190 
e5e16271 2f4edd5c 1efb478c 78

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
d5462e1c 178ca945 47a21b8c d6d1fd84 32e925e4 6052b7f4 70929da5 a0342ff0 
b8acc1d5 549b2bc6 30ae16d9 44

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
79c73f74 932621f2 7db58b8d 8c1c6f61 70b16944 6411f33d 2fd71b24 604ef25b 
a2c5508c d06087d4 89993052 4f

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
86f34032 79358243 48b8a1c8 f4e479c4 fd1a7331 05b89b46 58b59797 1face390 
7d5bcff2 41c2ea47 9d965bd1 38

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
20cb9542 523b9d2e 3ef45593 8c1edddd 72f93861 e50a273b e5ccab6b a56df502 
7f56696b c49e9232 8f85be3e 17
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-256-hkdf-sha256-hkdf-sha256-aes-256-siv-1">
        <name>DHKEM(CP-256, HKDF-SHA256), HKDF-SHA256, AES-256-SIV</name>
        <section anchor="auth-setup-information">
          <name>Auth Setup Information</name>
          <artwork><![CDATA[
mode: 2
kem_id: 19
kdf_id: 1
aead_id: 4
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
798d82a8 d9ea19db c7f2c6df a54e8a67 06f7cdc1 19db0813 dacf8440 ab37c857

pkEm:
ba2b510d 3808c4be ced6b153 120b79d7 78c785f9 2c3b67b3 0e153d94 5b20727d

ikmR:
7bc93bde 8890d1fb 55220e7f 3b0c107a e7e6eda3 5ca4040b b6651284 bf0747ee

pkRm:
48b9c95a 72c53280 d19d5886 15b1f3a6 b1f607c8 111b9802 1441b9ad 709da767

ikmS:
874baa0d cf93595a 24a45a7f 042e0d22 d368747d aaa7e19f 80a802af 19204ba8

pkSm:
57fc29c0 7963a7bb ec000475 c11b4633 c51788fb d2fff55e 3b9cd8cb 31acb077

enc:
ba2b510d 3808c4be ced6b153 120b79d7 78c785f9 2c3b67b3 0e153d94 5b20727d

kem_context:
ba2b510d 3808c4be ced6b153 120b79d7 78c785f9 2c3b67b3 0e153d94 5b20727d 
48b9c95a 72c53280 d19d5886 15b1f3a6 b1f607c8 111b9802 1441b9ad 709da767 
57fc29c0 7963a7bb ec000475 c11b4633 c51788fb d2fff55e 3b9cd8cb 31acb077

shared_secret:
ef299e8f 1be52e52 d66d3ee1 1b8a62f8 6a0b5e34 3508e6c4 8873f5ca 33926369

key sched context:
0242df88 379ec00c 85fc09e8 fd8fce69 af9af9f4 9542c43e 7f40f222 88748ec4 
6db0932e 0232d272 ff914ccb 9eb2ccfb 8d530d53 da2d99f9 5f2a8e34 ab6a4901 
98

secret:
b8ddfe01 c96ffeb7 713baa45 4054b2ff e724f89d 7d9b0700 487e3253 8d72d2d4

key:
215c527f e33c2626 28e08146 0b923adc 106ff93e 0ba9f297 9dc259af 14c06406

exp:
40d14e24 1ea8dfe2 62f46807 991dae10 6ccae6ed 497f2263 7676b887 a7b340a3
]]></artwork>
        </section>
        <section anchor="encryption-1">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
bedb26a7 9e3db3c1 bd289c88 9a269194 bf9bd3c1 b00b8009 a61bd95e 102c1d8b 
dd84ec9e cb720af1 27a1322c 28

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
c8d84bc0 88814aba 99727a55 dd230ca7 d29c3033 87c3f6de 56d7ca6b 1cba1cb2 
9798c7a3 5dddf1ff 4f005f46 43

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
1d15176a 07ee9bce 3bae7627 a94945bc 3a935792 1e18d47e 0a95b4b6 0bb8fada 
433a162b b76b31c6 9a3b1935 3a

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
d25a11b8 c44b74ba a20be259 6e2e0d06 b5b9ba93 ccd82d05 0a613362 e0533983 
887dcb70 2a3dd34a d610fb8f 5f

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
7f81b231 64c6cff3 76bbc46f 5c57fcfc dc16b80c c87ec709 6d27c40a 78619f03 
1d30b956 10eb6f8a 47e880bf 1e
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-256-hkdf-sha256-hkdf-sha256-aes-512-siv">
        <name>DHKEM(CP-256, HKDF-SHA256), HKDF-SHA256, AES-512-SIV</name>
        <section anchor="base-setup-information-1">
          <name>Base Setup Information</name>
          <artwork><![CDATA[
mode: 0
kem_id: 19
kdf_id: 1
aead_id: 5
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
a90d3417 c3da9cb6 c6ae19b4 b5dd6cc9 529a4cc2 4efb7ae0 ace1f318 87a8cd6c

pkEm:
0c83751b 613bf3e6 3fa4ee1a e64ffa4c 86c997bc 97983c2a 7ec9546b ee856e0b

ikmR:
a0ce15d4 9e28bd47 a18a97e1 47582d81 4b08cbe0 0109fed5 ec27d1b4 e9f6f5e3

pkRm:
d6643f01 efee734d 147e78f7 9722012f 22dbc5bd 640348e4 dc7872fd 6afb2748

enc:
0c83751b 613bf3e6 3fa4ee1a e64ffa4c 86c997bc 97983c2a 7ec9546b ee856e0b

kem_context:
0c83751b 613bf3e6 3fa4ee1a e64ffa4c 86c997bc 97983c2a 7ec9546b ee856e0b 
d6643f01 efee734d 147e78f7 9722012f 22dbc5bd 640348e4 dc7872fd 6afb2748

shared_secret:
81a5c8af 1952bbdf d200ca47 9b9b6433 fe3c1a13 55cb1381 8fa0a828 99e5746e

key sched context:
00519e25 346f3708 db318b4d dcb49fd6 becbedd5 aa490f08 b61fcbf8 2d851c0a 
404abd81 049c5f21 76ab65a4 b5dcc106 ce0debc6 75606d93 4c4c4f89 230221ab 
9b

secret:
14cbd262 5b385b0b e6489b24 1b78fea2 5aa60ce1 65e457ac dbd27cb1 b514eb46

key:
4134d7b1 943fc7f1 72c5d85a 47d511f2 6f917be9 634fd16c 00c997f9 96cbfa84 
4e96efd4 31ea4c37 ecd5190e 4ee27245 f6c659ea 68c3bf40 ee7ae8d9 a87f0cba

exp:
f6c659ea 68c3bf40 ee7ae8d9 a87f0cba 68dded2e 39b4f8fb 10fa73a5 c7835670
]]></artwork>
        </section>
        <section anchor="encryption-2">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
cc89205a 7b94242f 04c29c31 88269b09 e7ab0c3d 568bd477 6b5f79cc 7af12307 
632c62b0 69dffeaa 881e9338 52

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
a6c382c8 202a4886 1125fcad a36084f6 6edcb1b1 704ba464 9549cf32 359a81d8 
67a311d4 115e4735 d2a0d328 01

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
cac52c02 fc5136dc 80ab7ce8 5a23bb5a 08849278 ea1ff0d8 a239f1a2 4aa46f0e 
e47bac8e 4ab5acbb b17ff7c0 07

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
62232cff 2e7e7d51 28f4f62a 5899fd42 808916cf daaa8192 974fe6ff aa588a9e 
82776d62 04fadaac af1ae9d5 2b

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
822dba19 de41c774 5283731a 63456269 d3738459 1e6b4c33 0b558764 dc24cfa4 
abdff166 42f572e1 356c6f4c 4f
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-256-hkdf-sha256-hkdf-sha256-aes-512-siv-1">
        <name>DHKEM(CP-256, HKDF-SHA256), HKDF-SHA256, AES-512-SIV</name>
        <section anchor="auth-setup-information-1">
          <name>Auth Setup Information</name>
          <artwork><![CDATA[
mode: 2
kem_id: 19
kdf_id: 1
aead_id: 5
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
d6c49e44 2aad90bc c1bc0d16 6e5c4d3d f845c803 ba08b8a4 d891af2e eae4f97e

pkEm:
5fc3876c 0e3d841c 070d5c5b e41c048c e924f8d5 c8d11893 70955bbc 0fe349f0

ikmR:
3c567569 48f1c27a ed3eb27a 923c891d c073eccf 94bb6c1b 64a8bfaa 95f1f8f7

pkRm:
5ac93274 8d20c9aa af3c4126 51706a2a 08958a48 e7ed10f8 a944c556 9fbeca8c

ikmS:
0f3def8c c45967f8 6c566f2c 2a7deced ff0d5f8b 20a34ab6 5318144c 80cb6b2b

pkSm:
db74c19a 176482fe bad3e945 03c4b89d 622ddbf2 b1428cff 37627f6b e154011a

enc:
5fc3876c 0e3d841c 070d5c5b e41c048c e924f8d5 c8d11893 70955bbc 0fe349f0

kem_context:
5fc3876c 0e3d841c 070d5c5b e41c048c e924f8d5 c8d11893 70955bbc 0fe349f0 
5ac93274 8d20c9aa af3c4126 51706a2a 08958a48 e7ed10f8 a944c556 9fbeca8c 
db74c19a 176482fe bad3e945 03c4b89d 622ddbf2 b1428cff 37627f6b e154011a

shared_secret:
a67f3222 eeb41eba 6c7a9f5a 10478fd7 a0e809e9 32ec4b8c f2edd01e cc96af50

key sched context:
02519e25 346f3708 db318b4d dcb49fd6 becbedd5 aa490f08 b61fcbf8 2d851c0a 
404abd81 049c5f21 76ab65a4 b5dcc106 ce0debc6 75606d93 4c4c4f89 230221ab 
9b

secret:
ba6d7757 d6cdadf1 d180c866 f32b7356 cdb12e74 f6260531 85afc26f 84a68be5

key:
2d4d5c2e 584baaf4 f280cc74 8554917a 97f20b61 661e6dc9 d8a890a9 64c08c8e 
9afb8755 7dd86150 d2653b49 4fcb4c85 81188ab5 38617545 8bdaae78 492fce03

exp:
81188ab5 38617545 8bdaae78 492fce03 fe7f5779 f7fd6c75 beb65c2c 04e2996e
]]></artwork>
        </section>
        <section anchor="encryption-3">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
2f222fa0 1a9de65c ce5c6806 2b8c6eaf 2f093fe3 431ac27b 812dce8c e466767c 
eb2fd896 f587f7e7 d5c77c24 16

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
1b630e19 f1c5eb24 471c02b8 e27a7627 b22b08ac 6c6da703 a8518de0 156996ea 
8f3c909e 35c3d755 797f3546 72

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
1a14eb89 70e44530 5cf558a7 7dddfcfb 1bc859b1 9bf9867d 21de9caf 4dc625ce 
9f7a006a 7eff8276 ba4509f0 04

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
fad19bf7 0ecb25f3 20187fb0 bbf2489c a1f47e91 ce251e9d 021c4595 98f945d8 
2e6b10ac 7dca809e dd13eaf4 65

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
833c3db5 fe83d887 266629a5 712eead2 1824c4c5 2af25ea5 a5c999e7 6178033e 
cc9b1caa 8ed0b19a e21433d2 f1
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-256-hkdf-sha256-hkdf-sha512-aes-512-siv">
        <name>DHKEM(CP-256, HKDF-SHA256), HKDF-SHA512, AES-512-SIV</name>
        <section anchor="auth-psk-setup-information">
          <name>Auth PSK Setup Information</name>
          <artwork><![CDATA[
mode: 3
kem_id: 19
kdf_id: 3
aead_id: 4
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
37ae06a5 21cd5556 48c928d7 af58ad2a a4a85e34 b8cabd06 9e94ad55 ab872cc8

pkEm:
87e52765 608be760 1d402d76 fd0cef53 c79365b6 96f0217f 89165f90 f07fb191

ikmR:
7466024b 7e2d2366 c3914d78 33718f13 afb9e3e4 5bcfbb51 0594d614 ddd9b4e7

pkRm:
474f1abb 69c066b7 1c1c35c6 a67dccb1 8d3a6cfd 5bf95501 d6594c3e 144b7b9b

ikmS:
ee27aaf9 9bf5cd83 98e9de88 ac09a82a c22cdb8d 0905ab05 c0f5fa12 ba1709f3

pkSm:
a2076645 915893d8 df5d99b2 5368e1de 74de3b6b 070d8fbe b85b242c bf00a47c

psk:
0247fd33 b913760f a1fa51e1 892d9f30 7fbe65eb 171e8132 c2af1855 5a738b82

psk_id:
456e6e79 6e204475 72696e20 6172616e 204d6f72 6961

enc:
87e52765 608be760 1d402d76 fd0cef53 c79365b6 96f0217f 89165f90 f07fb191

kem_context:
87e52765 608be760 1d402d76 fd0cef53 c79365b6 96f0217f 89165f90 f07fb191 
474f1abb 69c066b7 1c1c35c6 a67dccb1 8d3a6cfd 5bf95501 d6594c3e 144b7b9b 
a2076645 915893d8 df5d99b2 5368e1de 74de3b6b 070d8fbe b85b242c bf00a47c

shared_secret:
0c554e67 af28a8cb 6548163c bba01e0c 882111cb 9a9d2b70 d52f27a6 b5da0e93

key sched context:
03642680 fd2063b9 86985586 8974385d 56017618 19fa5a72 37b63dc0 da6e4077 
c5c78de8 337eca9c 42d67d80 a8325e74 054784b9 aee52c79 b2197221 1fe7818b 
6152309f 3bf294d6 6d770cfd 89d0650d bf6b3965 4f2ea930 e7969658 9bc27908 
57be3497 fbb54404 8c335380 9dfbdc6a 95d7ca0b 07bc85ef 7b0af851 1d553cf9 
18

secret:
2647e270 0b8ea588 b2a63c6b d1393457 f78ff2d1 e9c4a94e 7bd0c8d4 342b0144 
bea7736f 4326ae69 a64ba8ba 3e7c8638 6755d09a 2aa5a367 ae28ae7e acd0cba8

key:
3d42271a de1f9f1e dabf0e42 76ea6460 9537b59a 4b19da97 51f28001 04d82d1d

exp:
0c086497 bcf20cff 2d9f6afd 0b3a193c 2432bd7f 5ce1dc3d e486b58b eed4175d 
2f0db038 f2f5251a 0d7031c2 4b7cd6f9 f5113aa2 63fb341e fcd75d53 ba517012
]]></artwork>
        </section>
        <section anchor="encryption-4">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
5791f3bc 18c026d4 ae772474 a941c730 e8221677 6e638c49 0d7995df 451f94c2 
c6ccdd22 9f6b03fa bde4dfc2 53

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
6e277787 ad78afd6 3a05b3a1 b950f79c 2ae01270 77c2a415 a9da993e ad96021e 
a4ab4157 4bccf4bd 9829e58b 32

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
0b228658 535cd69c 5b18906d 5c9f694c 00d2ce05 84831c15 5d9b52ca b28e7b4c 
2e9cd3fd 5b71b269 74ac7b9c 24

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
ffec14a4 f2a60701 b720cbdc b80ceb46 038de563 53fec944 d2c1b732 b7c50cb9 
393d5c23 f9dc4681 d12347d6 f7

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
49cf661e 681e07e1 d1016a84 6069f3b1 ce0e0465 09726f1f d7b15036 e5b5fa81 
6fd58f65 7bd44afd 15c41608 da
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-521-hkdf-sha521-hkdf-sha256-aes-256-siv">
        <name>DHKEM(CP-521, HKDF-SHA521), HKDF-SHA256, AES-256-SIV</name>
        <section anchor="base-setup-information-2">
          <name>Base Setup Information</name>
          <artwork><![CDATA[
mode: 0
kem_id: 21
kdf_id: 1
aead_id: 4
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
5040af7a 10269b11 f78bb884 812ad200 41866db8 bbd749a6 a69e3f33 e54da716 
4598f005 bce09a9f e190e29c 2f42df9e 9e3aad04 0fccc625 ddbd7aa9 9063fc59 
4f40

pkEm:
005208f9 56649e60 0e958116 ae05435a 6adb3a17 2e29bc3b 22818043 535ede1a 
977bc486 40f4163e 8fc68c3c fb629380 cad13675 b93d186d 39e754ed 62055014 
a5f5

ikmR:
39a28dc3 17c3e48b 908948f9 9d608059 f882d3d0 9c054182 4bc25f94 e6dee7aa 
0df1c644 296b06fb b76e84ae f5008f8a 908e08fb abadf706 58538d74 753a85f8 
856a

pkRm:
01d07d98 c86f123e 13a052cf 58d4d7f9 ac98ab62 aa0fccc6 a2354ab4 4abc0e33 
8cf8ba8a 8a26225a a1bf023a 9d4db0a1 2135b7b7 c95aadc6 eec3fdc6 4eb4fdf0 
e440

enc:
005208f9 56649e60 0e958116 ae05435a 6adb3a17 2e29bc3b 22818043 535ede1a 
977bc486 40f4163e 8fc68c3c fb629380 cad13675 b93d186d 39e754ed 62055014 
a5f5

kem_context:
005208f9 56649e60 0e958116 ae05435a 6adb3a17 2e29bc3b 22818043 535ede1a 
977bc486 40f4163e 8fc68c3c fb629380 cad13675 b93d186d 39e754ed 62055014 
a5f501d0 7d98c86f 123e13a0 52cf58d4 d7f9ac98 ab62aa0f ccc6a235 4ab44abc 
0e338cf8 ba8a8a26 225aa1bf 023a9d4d b0a12135 b7b7c95a adc6eec3 fdc64eb4 
fdf0e440

shared_secret:
01b5e494 8af1dae6 9fe69cf1 ff6c2f52 022ce691 6fa5e846 40351561 292f19c4 
2fa6fd27 132d0414 dbc67d34 8f9efaaf 2064f76e b6e43f2c 0c59d72f 2b75b988

key sched context:
0039cb31 552274b7 da50f702 38462e6b e53b4160 074e225a 907a8190 97ddb649 
abf15bdf a83da9ab 26c13dc8 a615e0f0 3facb5b5 5a8363ed a76e52b2 fdbf04f7 
d8

secret:
f2d20b62 5e87880e a2480be2 521ff460 456aed76 c5a6126f ca17f425 1a560170

key:
d5af37fe 38083050 a54eaa25 5ce46c17 2885f187 b9264003 0e3fd60b a7d87380

exp:
6808978c 1be493c8 5b9422cc 0d4dcb86 0527807e 5df1c453 78932f9d de0fda57
]]></artwork>
        </section>
        <section anchor="encryption-5">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
4ff1fe67 2ff031c3 3fc6c14a 6c136699 7d851d0a 4590018f ae2066e4 dcfcb13c 
3246d608 ca844350 a29ad685 5c

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
3ca22120 0355f2e6 439963de 114637bf 6f5377e1 87c549fe d17acfe8 90e66150 
db037d42 dfd52d94 1b6705b9 68

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
1d37ce24 9aa151cd 55d9d15b 610af39c ced8b1f7 cdc1ef9b fcaaef90 304a1a97 
1fed768a 69bdc3a9 77f85f60 a4

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
fb439464 8952c250 8e749bd6 d5efabfc ee6d3ce8 ac3af85c a2783e3d 052edcdf 
3e0dede7 e69dc3ff 31034868 d4

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
23e2c812 e82fdd54 8dd72af8 0f16ae02 c23ceedc 250332b6 d18dd132 2d433692 
895c7969 81fa655d d537ec20 2d
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-521-hkdf-sha521-hkdf-sha256-aes-256-siv-1">
        <name>DHKEM(CP-521, HKDF-SHA521), HKDF-SHA256, AES-256-SIV</name>
        <section anchor="psk-setup-information">
          <name>PSK Setup Information</name>
          <artwork><![CDATA[
mode: 1
kem_id: 21
kdf_id: 1
aead_id: 4
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
19484305 36ca540c 53351ae5 9d7a2240 8f1a0f20 1c1387e2 38ca8c52 ea162da7 
ffe27652 fbbfef9b 60b66a03 9c80853a 4224c01f d83155a1 7373c92f 3d41bc25 
4943

pkEm:
012c55eb 18a3184f 8fefb856 f2f16d9d 2e7bb9bd bf0842c4 f4d5d668 17302753 
ee239e72 627e724d a393436d 47d7dede 97734ce6 db12387b cfa5713b b20e0ccd 
cbd6

ikmR:
3c9a57ce 2773fc44 d2b03a9f ed866e9f 8dfd18bf c844c4dd c254fe0c 836643b9 
fd3f54ce 090caf5f 07829fd0 17ebdf4b 43408579 85f21056 d5a2dd46 1dd61da9 
afce

pkRm:
016368a1 295c5fef 6f80fd82 98401040 c2960e4b 8db4c265 c2eb4832 8ac026c1 
74075384 12be0251 35f88f66 50f61fe1 0a6bd91a f4b9e431 442bbfa2 3192c08c 
757d

psk:
0247fd33 b913760f a1fa51e1 892d9f30 7fbe65eb 171e8132 c2af1855 5a738b82

psk_id:
456e6e79 6e204475 72696e20 6172616e 204d6f72 6961

enc:
012c55eb 18a3184f 8fefb856 f2f16d9d 2e7bb9bd bf0842c4 f4d5d668 17302753 
ee239e72 627e724d a393436d 47d7dede 97734ce6 db12387b cfa5713b b20e0ccd 
cbd6

kem_context:
012c55eb 18a3184f 8fefb856 f2f16d9d 2e7bb9bd bf0842c4 f4d5d668 17302753 
ee239e72 627e724d a393436d 47d7dede 97734ce6 db12387b cfa5713b b20e0ccd 
cbd60163 68a1295c 5fef6f80 fd829840 1040c296 0e4b8db4 c265c2eb 48328ac0 
26c17407 538412be 025135f8 8f6650f6 1fe10a6b d91af4b9 e431442b bfa23192 
c08c757d

shared_secret:
7dbf19ed dced8520 cf9f4f09 cbe09c67 c7493d6e 798d69f0 f13fc693 e3161d27 
8b37b1f7 78556a5d 293957bb 768a1567 75bded1e c835fc69 faeb6e01 d981110d

key sched context:
012c9501 61b56512 ae1c5fde be9b6c1e 680e1277 308a175e 6452aa32 28f6d60b 
5ef15bdf a83da9ab 26c13dc8 a615e0f0 3facb5b5 5a8363ed a76e52b2 fdbf04f7 
d8

secret:
7ef0b355 87409fe5 6a1fcad4 6f0615ae ae7b7481 a182a193 7496916c 50316b8e

key:
1896f4f4 95dd067d 784384af 71d3d58e 47dd910d c4262f98 c771a4ec a17de51f

exp:
d1aeffbc d46c96a6 2cdbc75d 9f7dc7dd 21ba50d5 9ec10191 b0e49add 953f9f21
]]></artwork>
        </section>
        <section anchor="encryption-6">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
46afb04f 153770d7 09a7781b 4363b9c2 69b9a0f8 686e76c6 e8a384c0 ea3c6713 
70f7c37c 02da3702 3330ebda 64

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
0f1be046 2892d8b7 177659c6 1620981e 4d5d3220 b58a7d88 05f9423e a8c7d30e 
e1837826 196c4bdb 33cdd0fc 28

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
cd2061da 9aca2be6 b740677d 0f37ad1d 3b0fad32 dbadbf48 0c8c665b 08472f6a 
fb5a4516 cb292372 02470111 41

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
2aae252b bb85bf18 769f2c74 4919897e d3315cdc 00f00975 abf5552b 41be8182 
13e10893 8359385e 3ba0b5d0 a1

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
e72f8b91 a13fb546 dd40a03d 178c1938 813fb62b ae1e45e4 fb2d8ed3 55cb6876 
0b02cce5 38571845 c014f91c 8e
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-521-hkdf-sha521-hkdf-sha256-aes-256-siv-2">
        <name>DHKEM(CP-521, HKDF-SHA521), HKDF-SHA256, AES-256-SIV</name>
        <section anchor="auth-setup-information-2">
          <name>Auth Setup Information</name>
          <artwork><![CDATA[
mode: 2
kem_id: 21
kdf_id: 1
aead_id: 4
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
d45cc999 ba65eb6b ec00cf9b df308ae7 57558d62 8938ada2 d7bbf97b f58b401d 
ea5710d5 c1f733fd 30dade61 6806669a cce09ba3 2cc57d58 02026955 3a19d632 
d1f7

pkEm:
00941aa3 61e3df67 8316e950 f082f38d 972b4f5d 789d4abb ebb0bd10 7f3e1d77 
66a02538 47840ec2 bb22dd43 6cbf9a8b fa90a38f 61e86ca1 44877699 8e1d7db7 
33a3

ikmR:
fd95b48b 2a8e53cd 12da39ec c343c273 ce282b00 f185b6e9 80d3b4b8 55e938ea 
0ba841e8 dfe5ac19 4ba830a5 23a7c5d1 faff6482 ff5e46ea 8f25b126 b8545c6d 
eb11

pkRm:
01f7b479 fef9ddbf 10a12c7e 5d4e22f5 ca3745e6 12dc7007 96f80ecf 0a32e5d0 
3b4e526d bc08234b 13740963 ea1e9de2 85a21647 72ae3fcf f7a513b8 f7c132f6 
7b18

ikmS:
7c533451 b4b61ba8 ee879bb4 e11fb330 d0397244 2d74fd7c f5ebc0f8 84a90005 
a87fcb0e 3401e9f7 24b45cec de6d9f6d d88f202e f23f790d a10867d6 bd8d9fb8 
bf89

pkSm:
01715f0e 475571c9 9e0bfac5 eae86e08 fbea30db 23f670ed 471b053f f5f7c464 
3daf384e 7714d25a 45170576 8d05ab73 00e0cb64 5d21c697 49a46680 f31eec0e 
fc2a

enc:
00941aa3 61e3df67 8316e950 f082f38d 972b4f5d 789d4abb ebb0bd10 7f3e1d77 
66a02538 47840ec2 bb22dd43 6cbf9a8b fa90a38f 61e86ca1 44877699 8e1d7db7 
33a3

kem_context:
00941aa3 61e3df67 8316e950 f082f38d 972b4f5d 789d4abb ebb0bd10 7f3e1d77 
66a02538 47840ec2 bb22dd43 6cbf9a8b fa90a38f 61e86ca1 44877699 8e1d7db7 
33a301f7 b479fef9 ddbf10a1 2c7e5d4e 22f5ca37 45e612dc 700796f8 0ecf0a32 
e5d03b4e 526dbc08 234b1374 0963ea1e 9de285a2 164772ae 3fcff7a5 13b8f7c1 
32f67b18 01715f0e 475571c9 9e0bfac5 eae86e08 fbea30db 23f670ed 471b053f 
f5f7c464 3daf384e 7714d25a 45170576 8d05ab73 00e0cb64 5d21c697 49a46680 
f31eec0e fc2a

shared_secret:
fd55afea 8cf91399 eab366b2 1f9c1c5e 1be2cc06 92a988d3 58884755 7eaebf4b 
1a85f6f1 150e34f5 0fa4faa8 2beba6b6 a06d97e7 8a63a43d 7c0369b4 851ddda4

key sched context:
0239cb31 552274b7 da50f702 38462e6b e53b4160 074e225a 907a8190 97ddb649 
abf15bdf a83da9ab 26c13dc8 a615e0f0 3facb5b5 5a8363ed a76e52b2 fdbf04f7 
d8

secret:
d0880b5f 93b8f99f 9c9abb4f 7601b1ca 2dff70fb 5529feef 0d99d93d 41884d40

key:
6d033540 ec5a1637 909a8a21 cd82f1eb 2ac87042 37a56060 e18ef2ac 477ad7db

exp:
dea686af f2384f2a dce9e499 2796f08d a0ff7261 95baa721 ae4000db c920673e
]]></artwork>
        </section>
        <section anchor="encryption-7">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
d07d5c55 86afa2a6 328c314c e93621cb 8ee6cb90 66970b1c e2f739bb 0706dd4d 
142d3748 aed46417 af8005f2 78

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
9c8533d4 02a7cec4 e930f41a 26f97df9 2c5d3ee4 829f79e0 b3b3ff85 4c8ba34f 
c58ab0be a948bd91 c5eb8a90 08

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
3e7da863 847fceb1 fcc49478 8f045e9b fcce98d7 9e091bae 0edeb004 cb9f0e93 
75b59eeb 635e885c 6e810c1c 12

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
ac688968 d5a19dc7 206f79e3 068fc6ef 3a9e0ce2 f8ff3d37 809cb238 de30638a 
81241150 f1cd8d77 89cd2513 a0

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
5c845010 89cb8655 7b84ba09 2ff19c20 3a771ca7 b4a0a5cb 57110ddc 71020a5a 
ed746a56 679223a6 503e368c 1d
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-521-hkdf-sha521-hkdf-sha256-aes-512-siv">
        <name>DHKEM(CP-521, HKDF-SHA521), HKDF-SHA256, AES-512-SIV</name>
        <section anchor="base-setup-information-3">
          <name>Base Setup Information</name>
          <artwork><![CDATA[
mode: 0
kem_id: 21
kdf_id: 1
aead_id: 5
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
9953fbd6 33be69d9 84fc4fff c4d7749f 007dbf97 102d36a6 47a8108b 0bb7c609 
e826b026 aec1cd47 b93fc5ac b7518fa4 55ed38d0 c29e900c 56990635 612fd3d2 
20d2

pkEm:
00fd79f7 20262f2f 38f6e164 3139fad0 58a07210 a0ded183 092de949 b70271ab 
7fc59999 b9f13ce8 a0c79454 841be330 e0298d6b b3449e1b e6835f52 2963fdbe 
2cbb

ikmR:
17320bc9 3d9bc1d4 22ba0c70 5bf693e9 a51a855d 6e09c11b ddea5687 adc1a112 
2ec81384 dc7e4795 9cae01c4 20a69e8e 39337d9e bf9a9b2f 3905cb76 a35b0693 
ac34

pkRm:
00685b94 a565c40e 44467ded 521e51dd 27062392 7f076cae 5d2ac51e daa00c08 
0cb53932 a0f96476 7016be86 e1828c97 406a1c45 210bd72a 6a4db565 a0a2ede1 
66bf

enc:
00fd79f7 20262f2f 38f6e164 3139fad0 58a07210 a0ded183 092de949 b70271ab 
7fc59999 b9f13ce8 a0c79454 841be330 e0298d6b b3449e1b e6835f52 2963fdbe 
2cbb

kem_context:
00fd79f7 20262f2f 38f6e164 3139fad0 58a07210 a0ded183 092de949 b70271ab 
7fc59999 b9f13ce8 a0c79454 841be330 e0298d6b b3449e1b e6835f52 2963fdbe 
2cbb0068 5b94a565 c40e4446 7ded521e 51dd2706 23927f07 6cae5d2a c51edaa0 
0c080cb5 3932a0f9 64767016 be86e182 8c97406a 1c45210b d72a6a4d b565a0a2 
ede166bf

shared_secret:
f4016476 1b23e62a 825c3a12 f00a300c 7fc0bca7 d63a4b4d 8decd9e3 e6665c77 
72e5caa3 1d81b01c 83f85fad 171604a5 f5620d0e b3adc049 cf84a244 da1b66fc

key sched context:
009c83af 569335de c008d972 3b99516d aeca636c f2f750ff d5097d80 b3325949 
62d402df a706d773 c51099d3 c7a050a9 601fec9e fcd1d0fe ee84db47 31678771 
a5

secret:
c1c03165 591c1b1f 402c6a2f e51cef09 fffe1014 5e1bbec1 48f16424 3e8e8657

key:
fcd7bd4d 7fb57f4b ac324cea fca16db2 c93579e9 cf3ac7d3 ebe1cc5d 9a961ff5 
64a7a5f7 4a27fbc7 c527b6e9 f69df654 b544b8c5 4a9d17f1 af85e9c0 c4878c58

exp:
b544b8c5 4a9d17f1 af85e9c0 c4878c58 a209c5f4 431a199f 605c7179 9153500d
]]></artwork>
        </section>
        <section anchor="encryption-8">
          <name>Encryption</name>
          <artwork><![CDATA[
pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d30

ct:
904a4929 f11643ef 3225d8e2 503b13cf cc3eb26d 6c9f4ccf c551c960 19465f64 
130278f3 492e3bad 15635243 3d

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d31

ct:
00d1baad b17b86a2 23eba165 0bf4b165 993365f0 c30d3a50 81f06d67 9a456e1a 
e786644c 6c26b617 18d93bc0 2d

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d32

ct:
c61f2a7b 01451896 06efcd72 ae5835f4 3d563368 8635d2e0 6e33dfc3 b89d11f5 
38a61f94 f1a48a98 4c74c01a 30

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d33

ct:
65f0fe74 1623cc3e 1f324cf6 51c30b9a cafff85c 53945d3c 1e9038df 4c3ffcd2 
3a587a83 e6089a78 5e92825d a4

pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79

aad:
436f756e 742d34

ct:
41466afb 39544cf3 39a1bb23 2b19660d 96d2b357 4c6ef39b a505e412 f49f5f3f 
8b45c53b dbc35f0b 8876a387 9d
]]></artwork>
        </section>
      </section>
      <section anchor="dhkemcp-521-hkdf-sha521-hkdf-sha512-aes-512-siv">
        <name>DHKEM(CP-521, HKDF-SHA521), HKDF-SHA512, AES-512-SIV</name>
        <section anchor="auth-psk-setup-information-1">
          <name>Auth PSK Setup Information</name>
          <artwork><![CDATA[
mode: 3
kem_id: 21
kdf_id: 3
aead_id: 5
info:
4f646520 6f6e2061 20477265 6369616e 2055726e

ikmE:
54272797 b1fbc128 a6967ff1 fd606e0c 67868f77 62ce1421 439cbc9e 90ce1b28 
d566e6c2 acbce712 e48eebf2 36696eb6 80849d68 73e99593 95b29319 75d61d38 
bd6c

pkEm:
01b716a3 3ef96baa 96761a89 0b08efc6 762f2f20 fe7db159 7c3e3663 4a3973e6 
8bdb71f9 1cc2d701 ad4424a3 04554f12 efce4c25 991f2033 d51c1f3c 43d95564 
4510

ikmR:
3db434a8 bc25b27e b0c590dc 64997ab1 378a99f5 2b2cb5a5 a5b2fa54 0888f6c0 
f09794c6 54f44685 24e040e6 b4eca2c9 dcf229f9 08b9d318 f960cc9e 9baa92c5 
eee6

pkRm:
01bf5b74 278612e1 cfa7a47c dbe24a6f be41b73c 32e98e98 6d40c849 0a9201d3 
187483b8 b66e2710 5a3eb80c 394a889a 24841875 7425b0e3 a4b376f3 fd8ea087 
daf4

ikmS:
65d523d9 b37e1273 eb25ad05 27d3a7bd 33f67208 dd1666d9 904c6bc0 4969ae58 
31a8b849 e7ff6425 81f2c3e5 6be84609 600d3c6b bdaded3f 6989c37d 2892b1e9 
78d5

pkSm:
01856189 0c5378f2 dedf9da7 8c082f22 01110f1c ca97637c e4ae528c af38ee87 
5d70b77f a72c4b6f 2fb42466 f98852dc 8466c4de f387db3a 6514872f 616d7379 
e27e

psk:
0247fd33 b913760f a1fa51e1 892d9f30 7fbe65eb 171e8132 c2af1855 5a738b82

psk_id:
456e6e79 6e204475 72696e20 6172616e 204d6f72 6961

enc:
01b716a3 3ef96baa 96761a89 0b08efc6 762f2f20 fe7db159 7c3e3663 4a3973e6 
8bdb71f9 1cc2d701 ad4424a3 04554f12 efce4c25 991f2033 d51c1f3c 43d95564 
4510

kem_context:
01b716a3 3ef96baa 96761a89 0b08efc6 762f2f20 fe7db159 7c3e3663 4a3973e6 
8bdb71f9 1cc2d701 ad4424a3 04554f12 efce4c25 991f2033 d51c1f3c 43d95564 
451001bf 5b742786 12e1cfa7 a47cdbe2 4a6fbe41 b73c32e9 8e986d40 c8490a92 
01d31874 83b8b66e 27105a3e b80c394a 889a2484 18757425 b0e3a4b3 76f3fd8e 
a087daf4 01856189 0c5378f2 dedf9da7 8c082f22 01110f1c ca97637c e4ae528c 
af38ee87 5d70b77f a72c4b6f 2fb42466 f98852dc 8466c4de f387db3a 6514872f 
616d7379 e27e

shared_secret:
3c1c20e2 16a48012 e032127b af46a725 e55448f8 511a5ea2 ebffd891 473ebc8c 
20373d88 8738685b 018e7310 066976bb b35ad27f 9392a870 42865aeb 354b2428

key sched context:
03da3273 57c39707 4a257ebc 3c27e309 5b2cf890 951bd032 98123a00 638fa3e6 
2e6a1e3d 436ec52f 6c250a5f 944b3626 28790988 4d63325b d9695d6f 4f553903 
43600877 1dae94d9 1fb0cbbf 0fb8158c 0f900b77 6f6d42cf fb380ba2 1d7fdace 
bfc89e97 42c05989 9df732ff abd7c0bb b6be7b4d ca65329c a793a0e5 a5444136 
3b

secret:
4ed11ada 787796ec ae5c3893 f815b659 bc6f1639 410494da 971c3f30 5a4ad7cd 
32184287 ab2bb55d 51d23620 38a0cc8f 973636dd 853dafb4 af399229 38e8c8cc

key:
d52bfae5 a7cd0d6c 41c1be93 9de5c0a5 3782ad74 6deb76d7 fd662509 727eeb9d 
eaab86d1 7a444b7b 100519b9 d8ac2762 bdc1b9eb 64ec8bd8 362a2df3 e82bf4b0

exp:
bdc1b9eb 64ec8bd8 362a2df3 e82bf4b0 6ba82d93 e0bbf28c e286d3d6 53915dc1 
97b0de63 38e56727 e44fdc59 a1a942b6 5b82641d 00aceaf1 08e2bbc2 becd40ee
]]></artwork>
        </section>
        <section anchor="encryption-9">
          <name>Encryption</name>
          <t>~~~</t>
          <t>pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79</t>
          <t>aad:
436f756e 742d30</t>
          <t>ct:
1bb2088e 0e946ce2 6925273d 498a474c 49c7e735 eb8d3cca ba242e98 c560d5a1 
786c7982 234017bd 0f8a5985 0f</t>
          <t>pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79</t>
          <t>aad:
436f756e 742d31</t>
          <t>ct:
d5052151 1c06077c 00d7eaed 143ee355 2d1d0c44 c96227c0 c89a20e6 121f9721 
e288410c 4f94955c 32097c21 51</t>
          <t>pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79</t>
          <t>aad:
436f756e 742d32</t>
          <t>ct:
718eaaa6 97bae275 efbc2064 cd09cd81 48e45691 7de46704 d0ff2367 46d47fb9 
3936dafc 5baf0485 b61c2e43 f0</t>
          <t>pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79</t>
          <t>aad:
436f756e 742d33</t>
          <t>ct:
141754a9 97b92442 bff79fcb 92d51261 f45c2922 1c58f577 95863b53 c87f1fda 
e5c25c77 bc277abc 0508deac 55</t>
          <t>pt:
42656175 74792069 73207472 7574682c 20747275 74682062 65617574 79</t>
          <t>aad:
436f756e 742d34</t>
          <t>ct:
4e2f2352 29e2281b 92d40c86 2e84f9a5 19ac0766 49b42ef6 031c5967 3fbccb97 
312962f0 c51ccf0e 2395f8f0 75</t>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="NISTCurves">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <seriesInfo name="DOI" value="10.6028/nist.fips.186-4"/>
            <seriesInfo name="National Institute of Standards and Technology" value="report"/>
            <author>
              <organization/>
            </author>
            <date month="July" year="2013"/>
          </front>
        </reference>
        <reference anchor="RFC9180" target="https://www.rfc-editor.org/info/rfc9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <seriesInfo name="DOI" value="10.17487/RFC9180"/>
            <seriesInfo name="RFC" value="9180"/>
            <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>
        </reference>
        <reference anchor="RFC6090" target="https://www.rfc-editor.org/info/rfc6090">
          <front>
            <title>Fundamental Elliptic Curve Cryptography Algorithms</title>
            <seriesInfo name="DOI" value="10.17487/RFC6090"/>
            <seriesInfo name="RFC" value="6090"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="K. Igoe" initials="K." surname="Igoe"/>
            <author fullname="M. Salter" initials="M." surname="Salter"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>This note describes the fundamental algorithms of Elliptic Curve Cryptography (ECC) as they were defined in some seminal references from 1994 and earlier. These descriptions may be useful for implementing the fundamental algorithms without using any of the specialized methods that were developed in following years. Only elliptic curves defined over fields of characteristic greater than three are in scope; these curves are those used in Suite B. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </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>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <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>
        </reference>
        <reference anchor="RFC5297" target="https://www.rfc-editor.org/info/rfc5297">
          <front>
            <title>Synthetic Initialization Vector (SIV) Authenticated Encryption Using the Advanced Encryption Standard (AES)</title>
            <seriesInfo name="DOI" value="10.17487/RFC5297"/>
            <seriesInfo name="RFC" value="5297"/>
            <author fullname="D. Harkins" initials="D." surname="Harkins"/>
            <date month="October" year="2008"/>
            <abstract>
              <t>This memo describes SIV (Synthetic Initialization Vector), a block cipher mode of operation. SIV takes a key, a plaintext, and multiple variable-length octet strings that will be authenticated but not encrypted. It produces a ciphertext having the same length as the plaintext and a synthetic initialization vector. Depending on how it is used, SIV achieves either the goal of deterministic authenticated encryption or the goal of nonce-based, misuse-resistant authenticated encryption. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="SIV" target="https://www.cs.ucdavis.edu/~rogaway/papers/keywrap.pdf">
          <front>
            <title>Determinstic Authenticated Encryption: A Provable-Security Treatment of the Key-Wrap Problem</title>
            <author initials="P." surname="Rogaway" fullname="Phil Rogaway">
              <organization/>
            </author>
            <author initials="T." surname="Shrimpton" fullname="Tom Shrimpton">
              <organization/>
            </author>
            <date year="2007"/>
          </front>
        </reference>
        <reference anchor="SECG" target="https://secg.org/sec1-v2.pdf">
          <front>
            <title>Elliptic Curve Cryptography, Standards for Efficient Cryptography Group, ver. 2</title>
            <author>
              <organization/>
            </author>
            <date year="2009"/>
          </front>
        </reference>
        <reference anchor="X9102">
          <front>
            <title>Symmetric Key Cryptography For The Financial Services Industry-- Wrapping of Keys and Associated Data</title>
            <author initials="" surname="ANSI X9" fullname="American National Standards Institute, Committee X9">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="RFC2401" target="https://www.rfc-editor.org/info/rfc2401">
          <front>
            <title>Security Architecture for the Internet Protocol</title>
            <seriesInfo name="DOI" value="10.17487/RFC2401"/>
            <seriesInfo name="RFC" value="2401"/>
            <author fullname="S. Kent" initials="S." surname="Kent"/>
            <author fullname="R. Atkinson" initials="R." surname="Atkinson"/>
            <date month="November" year="1998"/>
            <abstract>
              <t>This memo specifies the base architecture for IPsec compliant systems. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC5649" target="https://www.rfc-editor.org/info/rfc5649">
          <front>
            <title>Advanced Encryption Standard (AES) Key Wrap with Padding Algorithm</title>
            <seriesInfo name="DOI" value="10.17487/RFC5649"/>
            <seriesInfo name="RFC" value="5649"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="M. Dworkin" initials="M." surname="Dworkin"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document specifies a padding convention for use with the AES Key Wrap algorithm specified in RFC 3394. This convention eliminates the requirement that the length of the key to be wrapped be a multiple of 64 bits, allowing a key of any practical length to be wrapped. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA82965oct5Ut+D+eAkP/aHKmqgxEAAiA3e4ZWpRaHNuSRpTt
M9/5zmnhSuawKrM6M0s023Y/+6yFiMhLkZTtY5IW2y1WZcYFwL6ttfcGeHl5
2XX71f66PBYPnpZ92d6s1qvdfpXEV5t1KpfXZbcTX76J21UW39zFa3zxq/JG
fL5O2ze3+9Vm/aALMW7LD4/F06++/OZXn3d5k9bhBs/L21D3l6vtvl6mun1x
mdcvb1+VS6m6FPblxWb75rFYreumC9sSHgte061ut4/Ffnu32/dSetl3u7t4
s9rt8KLv3tzioc++/e6Lrtvtwzr/e7jerPHRm7LrblePxX/fb9KF2G22+22p
O/z05oY//I+uC3f7l5vt405cdgJ/VusdRnslvgzbV/i5fTYN+WlYn3262b54
LL4sr6/Lfn/5TUivwjZj7lim2+1qV9o15SasrjHbsF6V66uX093/18vbcpU2
N13HGW5vwn71Q8EAxPNnv3vcbru/6G3Nn2CgZY2fsED5ZJEfiyfim+3mhxCv
y+Xzku62q/0b8R3WbX+D68WmCtxIyVz+fhtueS2uvHkwvSlsX5T9Y/Fyv7/d
Pf75z1+/fn2Vdld3KYcfVrurku9+/l/bzYvwOrz5+W24Ldvdz1+VN6/xnKvb
XNsjDgvY/lzOf88r+c2V+Ha6/fD5tJrfvFxd3/vq3q3fXYnnL7erm9v9Zn3v
5u82NyfftS8zVuWxgGKM/P3555/92/lSfn59vbrlMn52t/2hiM+4eJsXmMfL
NxfiOVUG4tsJyEN8Xusqrbh0p1eJf9tu7m4vxA9leyX6d6/erqQXV9AL/qAu
f+gPa3QYnefo/ptXsj8f3vM3Nzdlv50t6Oy9X2BI30GAX6zWYZ1W4Vo8L9sf
VqnsxLN1hjVs31xeCor2drV+QXHjETuBGYknu90Gd1BfnoZ9ePCX5fXkq+fP
ML576/3kpmBo0P+vAjWOQzis2DNq5/5uXy7EZ5ubm9V+X8ryhLO597Lr1qfq
/tWz5981adDivn52peSVlb37OT+/+uLZN8+vlLOXuusuMb8QMdGQ9l333cvV
TsCR3DXtzmWXtquIxSjrl1ifwk93Yr9pSv9jzmlyFDTaW369e4lVilj7L779
tysu+K5gSdL1XS7iDj9jXR/AaG8xBrEtt1t8v9635XiA77ptuS4/BAzodnoX
rIRu5u72Fj6nqRU+uXw9S+miiWf/eiOg/m20Iect3SlG3c2vo8cUm7W43ux2
b8S64PLtK6xVwKSPfuFCrI/O+MnnT56KXXqJVWivWB4VxHYDA4B67Mp/3BVc
L9Z3N7FsxevV/qUof6Bbx7cn9++upoW/WeV8Xbqu+xlEvd9u8l1qq9f98Y//
27dffOaVk3/+84V4WbYFCloxMLGDYV6/aeO/EBAW3x6hqBfidvJTby539FNF
pA3msMUTr7pnlGVdrSHJJ988a2tS1jtehJvgeJoQ8OG27MNqLVYQ8m5xdi/u
whZrXzDoSXJdewRiB9cTjn6Dn7arF1AFrvvt3fZ2syv17vpK/JYueH+3hpJe
wxO0y9uNENQ1fS3muusov9cvV+klLsCE2qP4Yk4OY7m5LXnV1BEDxDgfH6Q1
rW/EW1+v8v5lN00YE4Cy3eCmuxtoyfHi9goY2nqzP04Kani52WYsQS7XsJ3t
GypcaT9AHV+VvaAuTjp1X9PO5nElZvO5KTebtq5YBurcFm+52eRVXa7kRJr+
4e+b8Apj2OMCLMvubrVnpGlLghsq1gvzpnBS2DWt+dnP6AmaoXx7Zihd1x75
oqzLFuvd1q7cUtm2cCkY9W1Ybdss7jisVVtOiJ5BEkr0FG9blcsvy/X1TVh3
bWVp5Ds+PR3un+PdPLsMhUmr29UcCYOYNQ8KvgsvStOX7jiIo/VStlsYy2qL
Z9BAU7P+9Zv29Pn2C6AAEfbiuoTdvtluXW13y5swLirZ0ebw8XwjRDEt70E9
F+UP3Q7ONlyv/rOtWVsOOLmzz7j2J36Gy5UnTZueksWvPv8NRdHesTyZn+GF
YZLWJPTflxViOjQSziM1X3x4xGoNEz/66D//ua2V+JtHB5TDaeKVbQDTu+FT
11xP+rzStPamLRoUYgnUbTiibhHr//hHBnSMoHvLXJuUdnfXcAfTe7DsW+p9
m+gitFXT8oPYIM8uQhwwIThhhFIRdnCztJamdutScjOB2BQE72Dwwx009t3u
rnDA3allTa97GX5YfNpk4gfDp56cLH2ZpE8vxeWZdYUu/EI82GH415jHy83+
Aa2ywC+UyZUdJhDL5Myh1YyGr8O2ltzFSTl3q/8sixksoin5RCZXi/e2wNF/
/vNR9xBLmghPg93mbn97h5FQ1MuH3f0ISJmfSw4a/tnZEzD2sCwULWX+dB7n
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
f/zZ4dPb6VMMBm7wyQknufgxIDDfNc2BioEVus6iLPXBpayLqA/UPn15pnMT
g20TO4w9nDiF5Q3d1DZT3u0YZr9wcChzIfPEDt/RVnF83MkzTs36/Y+76p6d
jW7p/GOPwHwzBL+UOcnEX8AL/nfJxr+Mcav/8f1S8f++ffL91AoVmAuZVP4s
5twPbPcXZtEeKCR0FQx+Nk1e155/QVU+H8CiYE0C3VEtpzIhsDorveuphtHE
C97FUiuY2KGGyNYJyGnGpTOlBHtPr6Y847m639cVphxOUrcYoRQP6RvmNXl0
Ic7WqJsh/1SJPVWjY2NLg4WHevdS5n5yKFMfKpxTCXUpW1N2rZbP6hi+vt6E
vLg8dhEwazkla+ck225uHpp/WQq4l5cA8O3C51fPS7h++Khp3vzZt1df35b1
w0cTxSGxmhIM23BT2lpO+fdj+SBOia+ukek1iC4Wt+kScxFNZe69bVKNuUdu
cndz+255e8ZHMeapABJX+5sAADxJcKppz5e3dFh30sw03dkM6XJxQldt1wE8
LbcXTDZ2JAbN6TYfecgFTDwDr568ABO1fMHQX7Q6zpxEofPbb65b8+/URzK1
Cp2pAbuWVpu7nRjUSbPsd6ckXtzuyl3eIETm1iMDnefS7xnNGODmiloQUMm0
LMLUBf+e/os2EIzu7rbF2zkbOa9Y8873+jXEsd8zlrI+evsZ891TMi4gM9x7
NvfNLYoH3Qjz0xZUN5WnOrbdQdJlnd/ZUnHxF2rwc+CdKkqHxsqLZW4tVzbV
Phml6RcnxTtNhk6NDizbdA/ALxd1nNOTNTA5Gd5OCEwZlzuIlO74rd6Bpa52
ePtZpf909WarfNfqTebT5o8rmZ19Z59Cm9hU5OTIz6tzeVaNuZJ52jiR33rS
VDs75s/Fi80mt5TEnJGeZ3XsbBGnnS3d1NlycapYbBK4nTDCoTb5Pg2dquZh
dT33K+1mc9jNmG165HNaHaBk38E2q/iM03te/uMhnvGIW25WlY8T/4qnX9cr
vGLGenMR/N8wJXxCd4OnLNeIS9403d2++ldxfNv5A34Z8nQd81Pt/unKC/FQ
iX/5l3Y7YOMvfiHkO99crnfveGKby2/bSk1xoM3nR6YzT4DfXd7/bpnEv7w9
Cf45GTQG/It27Xu+/gXi1/kk1aP50pN5vH2X6k4+5fr+Yl7fk7veJ4K/PIbT
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
/x+22RrAOrcAAA==

-->

</rfc>
