<?xml version="1.0" encoding="utf-8"?>
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
<rfc version="3" ipr="trust200902" docName="draft-prorock-cose-post-quantum-signatures-01" submissionType="IETF" category="std" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">

<front>
<title abbrev="post-quantum-signatures">JSON Encoding for Post Quantum Signatures</title><seriesInfo value="draft-prorock-cose-post-quantum-signatures-01" stream="IETF" status="standard" name="Internet-Draft"></seriesInfo>
<author initials="M." surname="Prorock" fullname="Michael Prorock"><organization>mesur.io</organization><address><postal><street></street>
</postal><email>mprorock@mesur.io</email>
</address></author><author initials="O." surname="Steele" fullname="Orie Steele"><organization>Transmute</organization><address><postal><street></street>
</postal><email>orie@transmute.industries</email>
</address></author><author initials="R." surname="Misoczki" fullname="Rafael Misoczki"><organization>Google</organization><address><postal><street></street>
</postal><email>rafaelmisoczki@google.com</email>
</address></author><author initials="M" surname="Osborne" fullname="Michael Osborne"><organization>IBM</organization><address><postal><street></street>
</postal><email>osb@zurich.ibm.com</email>
</address></author><author initials="C" surname="Cloostermans" fullname="Christine Cloostermans"><organization>NXP</organization><address><postal><street></street>
</postal><email>christine.cloostermans@nxp.com</email>
</address></author><date/>
<area>Internet</area>
<workgroup>None</workgroup>
<keyword>JOSE</keyword>
<keyword>COSE</keyword>
<keyword>PQC</keyword>

<abstract>
<t>This document describes JSON and CBOR serializations for several
post quantum cryptography (PQC) based suites including CRYSTALS Dilithium,
Falcon, and SPHINCS+.</t>
<t>This document does not define any new cryptography,
only seralizations of existing cryptographic systems.</t>
<t>This document registers key types for JOSE and COSE, specifically <tt>LWE</tt>, <tt>NTRU</tt>, and <tt>HASH</tt>.</t>
<t>Key types in this document are specified by the cryptographic algorithm family in use by
a particular algorithm as discussed in RFC7517.</t>
<t>This document registers signature algorithms types for JOSE and COSE, specifically <tt>CRYDI3</tt>
and others as required for use of various post quantum signature schemes.</t>
</abstract>

</front>

<middle>

<section anchor="notational-conventions"><name>Notational Conventions</name>
<t>The key words &quot;<bcp14>MUST</bcp14>&quot;, &quot;<bcp14>MUST NOT</bcp14>&quot;, &quot;<bcp14>REQUIRED</bcp14>&quot;, &quot;<bcp14>SHALL</bcp14>&quot;, &quot;<bcp14>SHALL NOT</bcp14>&quot;, &quot;<bcp14>SHOULD</bcp14>&quot;,
&quot;<bcp14>SHOULD NOT</bcp14>&quot;, &quot;<bcp14>RECOMMENDED</bcp14>&quot;, &quot;<bcp14>MAY</bcp14>&quot;, and &quot;<bcp14>OPTIONAL</bcp14>&quot; in this
document are to be interpreted as described in <xref target="RFC2119"></xref>.</t>
</section>

<section anchor="terminology"><name>Terminology</name>
<t>The following terminology is used throughout this document:</t>

<dl spacing="compact">
<dt>PK</dt>
<dd>The public key for the signature scheme.</dd>
<dt>SK</dt>
<dd>The secret key for the signature scheme.</dd>
<dt>signature</dt>
<dd>The digital signature output.</dd>
<dt>message</dt>
<dd>The input to be signed by the signature scheme.</dd>
<dt>sha256</dt>
<dd>The SHA-256 hash function defined in <xref target="RFC6234"></xref>.</dd>
<dt>shake256</dt>
<dd>The SHAKE256 hash function defined in <xref target="RFC8702"></xref>.</dd>
</dl>
</section>

<section anchor="crystals-dilithium"><name>CRYSTALS-Dilithium</name>

<section anchor="overview"><name>Overview</name>
<t>This section of the document describes the lattice signature scheme CRYSTALS-Dilithium (CRYDI).
The scheme is based on &quot;Fiat-Shamir with Aborts&quot;[Lyu09, Lyu12] utlizing a matrix
of polynomials for key material, and a vector of polynomials for signatures.
The parameter set is strategically chosen such that the signing algorithm is large
enough to maintain zero-knowledge properties but small enough to prevent forgery of
signatures. An example implementation and test vectors are provided.</t>
<t>CRYSTALS-Dilithium is a Post Quantum approach to digital signatures that is
an algorithmic apprach that seeks to ensure key pair and signing properties
that is a strong implementation meeting Existential Unforgeability under
Chosen Message Attack (EUF-CMA) properties, while ensuring that the security
levels reached meet security needs for resistance to both classical and quantum
attacks. The algoritm itself is based on hard problems over module lattices,
specifically Ring Learning with Errors (Ring-LWE). For all security levels
the only operations required are variants of Keccak and number theoretic
transforms (NTT) for the ring Zq[X]/(X256+1). This ensures that to increase
or decrease the security level invovles only the change of parameters rather
than re-implementation of a related algorithm.</t>
<t>While based on Ring-LWE, CRYSTALS-Dilithium has less algebraic structure than
direct Ring-LWE implementations and more closely resembles the unstructured
lattices used in Learning with Errors (LWE). This brings a theorectical
protection against future algebraic attacks on Ring-LWE that may be developed.</t>
<t>CRYSTALS-Dilithium, brings several advantages over other approaches to
signature suites:</t>

<ul spacing="compact">
<li>Post Quantum in nature - use of lattices and other approaches that should
remain hard problems even when under attack utilizing quantum approaches</li>
<li>Simple implementation while maintaing security - a danger in many possible
approaches to cryptography is that it may be possible inadvertantly introduce
errors in code that lead to weakness or decreases in security level</li>
<li>Signature and Public Key Size - compared to other post quantum approaches
a reasonable key size has been achieved that also preserves desired security
properties</li>
<li>Conservative parameter space - parameterization is utilized for the purposes
of defining the sizes of marices in use, and thereby the number of polynomials
described by the key material.</li>
<li>Parameter set adjustment for greater security - increasing this matrix size
increases the number of polynomials, and thereby the security level</li>
<li>Performance and optimization - the approach makes use of well known
transforms that can be highly optimized, especially with use of hardware
optimizations without being so large that it cannot be deployed in embedded
or IoT environments without some degree of optimization.</li>
</ul>
<t>The primary known disadvantage to CRYSTALS-Dilithium is the size of keys and
signatures, especially as compared to classical approaches for digital signing.</t>
</section>

<section anchor="parameters"><name>Parameters</name>
<t>Unlike certain other approaches such as Ed25519 that have a large set of
parameters, CRYSTALS-Dilithium uses distinct numbers of paramters to
increase or decrease the security level according to the required
level for a particular scenario. Under CRYSTALS-Dilithium, the key
parameter specificiation determines the size of the matrix and thereby
the number of polynomials that describe he lattice. For use according to
this specification we do not recommend a parameter set of less than 3,
which should be sufficient to maintain 128bits of security for all known
classical and quantum attacks. Under a parameter set at NIST level 3, a
6x5 matrix is utilized that thereby consists of 30 polynomials.</t>

<section anchor="parameter-sets"><name>Parameter sets</name>
<t>Parameter sets are identified by the corresponding NIST level per the
table below</t>
<table align="left">
<thead>
<tr>
<th>NIST Level</th>
<th>Matrix Size</th>
<th>memory in bits</th>
</tr>
</thead>

<tbody>
<tr>
<td>2</td>
<td>4x4</td>
<td>97.8</td>
</tr>

<tr>
<td>3</td>
<td>6x5</td>
<td>138.7</td>
</tr>

<tr>
<td>5</td>
<td>8x7</td>
<td>187.4</td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="core-operations"><name>Core Operations</name>
<t>Core operations used by the signature scheme should be implemented according to the details in <xref target="CRYSTALS-Dilithium"></xref>.
Core operations include key generation, sign, and verify.</t>
</section>

<section anchor="using-crydi-with-jose"><name>Using CRYDI with JOSE</name>
<t>This sections is based on <eref target="https://datatracker.ietf.org/doc/html/rfc8812#section-3">CBOR Object Signing and Encryption (COSE) and
JSON Object Signing and Encryption (JOSE)</eref></t>

<section anchor="crydi-key-representations"><name>CRYDI Key Representations</name>
<t>A new key type (kty) value &quot;LWE&quot; (for keys related to the family of algorithms that utilize
Learning With Errors approaches to Post Quantum lattice based cryptography) is defined for
public key algorithms that use base 64 encoded strings of the underlying binary materia
as private and public keys and that support cryptographic sponge functions.
It has the following parameters:</t>

<ul>
<li><t>The parameter &quot;kty&quot; MUST be &quot;LWE&quot;.</t>
</li>
<li><t>The parameter &quot;alg&quot; MUST be specified, and its value MUST be one of the values
specified in the table below</t>
</li>
</ul>
<table>
<thead>
<tr>
<th>alg</th>
<th>Description</th>
</tr>
</thead>

<tbody>
<tr>
<td>CRYDI5</td>
<td>CRYSTALS-Dilithium paramter set 5</td>
</tr>

<tr>
<td>CRYDI3</td>
<td>CRYSTALS-Dilithium paramter set 3</td>
</tr>

<tr>
<td>CRYDI2</td>
<td>CRYSTALS-Dilithium paramter set 2</td>
</tr>
</tbody>
</table>
<ul>
<li><t>The parameter &quot;pset&quot; MAY be specfied to indicate the not only paramter set
in use for the algorithm, but SHOULD also reflect the targeted NIST level for the
algorithm in combination with the specified paramter set.
For &quot;alg&quot; &quot;CRYDI&quot; one of the described parameter sets &quot;2&quot;, &quot;3&quot;, or &quot;5&quot; MUST be
specified. Parameter set &quot;3&quot; or above SHOULD be used with &quot;CRYDI&quot; for any situation
requiring at least 128bits of security against both quantum and classical attacks</t>
</li>
<li><t>The parameter &quot;x&quot; MUST be present and contain the public key
encoded using the base64url <xref target="RFC4648"></xref> encoding.</t>
</li>
<li><t>The parameter &quot;d&quot; MUST be present for private keys and contain the
private key encoded using the base64url encoding. This parameter
MUST NOT be present for public keys.</t>
</li>
</ul>
<t>Sizes of various key and signature material is as follows (for &quot;pset&quot; value &quot;2&quot;)</t>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Paramter Name</th>
<th>Paramter Set</th>
<th>Size</th>
<th>base64url encoded size</th>
</tr>
</thead>

<tbody>
<tr>
<td>Signature</td>
<td>sig</td>
<td>2</td>
<td>3293</td>
<td>4393</td>
</tr>

<tr>
<td>Public Key</td>
<td>x</td>
<td>2</td>
<td>1952</td>
<td>2605</td>
</tr>

<tr>
<td>Private Key</td>
<td>d</td>
<td>2</td>
<td>4000</td>
<td>5337</td>
</tr>
</tbody>
</table><t>When calculating JWK Thumbprints <xref target="RFC7638"></xref>, the four public key
fields are included in the hash input in lexicographic order:
&quot;kty&quot;, &quot;alg&quot;, and &quot;x&quot;.</t>
</section>

<section anchor="crydi-algorithms"><name>CRYDI Algorithms</name>
<t>In order to reduce the complexity of the key representation and signature representations we register a unique algorithm name per pset.
This allows us to omit registering the <tt>pset</tt> term, and reduced the likelyhood that it will be misused.
These <tt>alg</tt> values are used in both key representations and signatures.</t>
<table>
<thead>
<tr>
<th>kty</th>
<th>alg</th>
<th>Paramter Set</th>
</tr>
</thead>

<tbody>
<tr>
<td>LWE</td>
<td>CRYDI5</td>
<td>5</td>
</tr>

<tr>
<td>LWE</td>
<td>CRYDI3</td>
<td>3</td>
</tr>

<tr>
<td>LWE</td>
<td>CRYDI2</td>
<td>2</td>
</tr>
</tbody>
</table>
<section anchor="public-key"><name>Public Key</name>
<t>Per section 5.1 of <xref target="CRYSTALS-Dilithium"></xref>:</t>
<blockquote><t>The public key, containing p and t1, is stored as the concatenation of the bit-packed representations of p and t1 in this order. Therefore, it has a size of 32 + 288 kbytes.</t>
</blockquote><t>The public key is represented as <tt>x</tt> and encoded using base64url encoding as described in <xref target="RFC7517"></xref>.</t>
<t>Example public key using only required fields:</t>

<sourcecode type="json">=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  &quot;kty&quot;: &quot;LWE&quot;,
  &quot;alg&quot;: &quot;CRYDI3&quot;,
  &quot;x&quot;: &quot;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\
/8uzsSQk0AbuhxWFQpSiBP8OZ/U=&quot;
}
</sourcecode>
<t>Example public key including optional fields:</t>

<sourcecode type="json">=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  &quot;kid&quot;: &quot;key-0&quot;,
  &quot;kty&quot;: &quot;LWE&quot;,
  &quot;alg&quot;: &quot;CRYDI3&quot;,
  &quot;key_ops&quot;: [&quot;verify&quot;],
  &quot;x&quot;: &quot;z7u7GwhsjjnfHH3Nkrs2xvvw020Rcw5ymdlTnhRenjDdrOO+nfXRVUZVy9q1\
5zDn77zTgrIskM3WX8bqslc+B1fq12iA/wxD2jc1d6j+YjKCtkGH26OR7vc0YC2ZiMzW\
zGl7yebt7JkmjRbN1N+u/2fAKFLuziMcLNP6WLoWbMqxoC2XOOVNAWX3QjXrCcGU23Nr\
imtdmWz5NrP43E592Sctt5M+SVlfgQeYv8pHmtkQknE8/jr7TrgNpuiV7nXmhWHTMJ4I\
zoGXgq43odFFthboEdKNT/enyu+VvUGoIJ6cN8C/1B6o1WlYHEaL0BEIFFbAiAhZ/vnf\
cUYMaVPqsDJuETsjetcE32kGCD7Jkume2tO68DlIhB/2Z2JX8mkcbxFI6KrmXiRxXQj9\
9LVn1fEzdf3Vfpcs/C3omsFGqmTpLDK+AvW/SWVkDi2NKq7hL/AyxlW2u2cqVErQZUTS\
Z+ic6V8kZfxr3gRMnH0KuF5BtjleZ/yVvqqPjwPOZegCKEl2Gd8duhcUde7CR55pil1o\
UXy5AwgCcZTdEcJn1OPObGoots9T19gw1x4vnZCQUKVDPZuZ1gIkGqDUYXS0lcNTjCMs\
miFEmnOZvB88jxULpb1vl9HoQ3ocM2oZu4AZRt9G/L07Mwcui0uFCWtAIau+2gqNAn/Z\
AS10l0j2N0LLtAaOxoF+Ctzscrt0ZMyGHmoQ9daHkpUvEq0cO8hDtLplnq3lQIIIfROQ\
jcNs9vNKBu87COBjukZD+L8vV4zy8FNO59MCSb9UCLwz2xvfdI1js9/J7hTGaVec8VPx\
md42yPFrGw5Na1oefm8vW49EDmevc8AjAtwDirRBDFv9pX3+5S+M6jhteSLYvpKJXQT1\
zs1379KvIHwkn9VHpA+PiUUw9TgF6xF8xWEGSNlOo1Vn1xtM3givehjYxJ5p5/kBEFZI\
DCyFzstAirJ2GadNhae+P1JFZzJWnX5jaLwzldquZwF3yTzNho4sgBA+fKqiXcgn2nw1\
vz0Dkbxr6cMaUool0eFScU1nAz1Z39W64LtT2nEuYsORx/ht2RzJxxFc21X3nLeEDFCe\
NkNDxQFBSfpZjKKgJtXEx23mp+CbBVMrbagsLnzsAGLYbnroVmATU5Iqr6LgYBpuFs+N\
Rkq7ZXh6CZPukMGQbcOGuNwO6NBuuMNhir5ayGk1ZBiW82C7Nu0hs2pLcgNqWMtt1+LW\
8R96KyoSc784ZYAZ40QqvoySwmxQPBRTRJ+wB0sVpGBLTxdY9Gw3pXeXN5nao340d2ZA\
7YEMlqcTHCAv3F8B9ewl7OfQlmg6bvdMuoVdVE+p0er7IAmWMRgviIzYv9sKEEQrCmua\
2qL5xPSbD05KRf8ZAZ2B8lSCDR1nzXrQXZbXBKJivsCVQDuzxrwGE0gqRMpbk4f5GYCG\
4i/O8Knoru+jjf6wVQDYKfyz1QUGRlXHkGUGlXfv03r7UbJugycjVO5kbGxhoZkqOq8z\
ZEpkefvrrNoxeotw/z4QpjI8JlY97GDb0mGVHbmdHugjMtVTGhVJFBbPIinmR+emt7O+\
4qOr7ywRxCvt2lziWtpPBwaf/1XDnN5Gesex1gR1YrcTRNmB808b01sxLQmxcTt4eQ0/\
LUkas7qTJ3AQThOfDdtIpkqsthsBFy+WjSQuoXCYMRcPi6MlpxJndDF32lCnL1ranV6e\
F2ST0SYT+NwNDesMzTRmNbHUW5KAhu0k9WABTvcM5ba0Uq6iOa1NsFrcLag+KhxN6HPn\
oobwJ/EsDi5S7TAl8WrjqIhZ8x6h9eRRXerpaOw/FYk+2MpWByp/98VE12/EwOqAIiPp\
elAvUeMOlRkpG64bJsmyYtHuNWgcv5Qiy7/eGw9ZpvB3J3G3jxvbynExqdFyDc067EKi\
5WxDFPuZUjkfKpekNvzQuIrqs49BzcRyMt5ndEVE21TPPfZ/R8B7Rxnb2LiK+hQc+cc9\
pEEaWgwAOiMILcp/1CyY6ImdO6RHsxwflMH7gej+hN41kaoEghIOl9kMGTLZbq5Pc8Pz\
6F2LKTBMJWg9o/0blvilMH9EPblcLeF/bR1AZTUD6ZFdi2TxN6Epn3QVqeG/qPm1EBTF\
Gw1V92m6/08Dd6zI1HPqwKbkHx4F567owofKHaM2imin0yVUpwxoRJrulRHMCB3tn8C4\
ZpFl+sGV3Gip3tKlS7PKQkTqI6DMwxEbdrvtdY1sHZagpclLDisA/yFT4RR2m3VNJR9P\
6Nx3teqN1eg6RXmD/MlKCdWrlcjZ/6yeIQYwbr9CjItY/tLQX2gtAR1SXOh99UUBVv+Z\
E03VOZ+Ecsc78lSB9G/6n6CFzlbk/HgAF+cu0yMbGnEM8W3mTUspS4JBACwk5w0XWNNQ\
DWVEdgzuLGhPq+hYExDjVZrLELhkH8YgZA+7RXXUZHM/joNOGHUhpUG/bFo3ktnaILCu\
xsOXMUbDC3VcitFFHsGK1svtcERDFxk1HA8pGa59jT0do6n3wEbnBDU1soKNFtpmcVkE\
Ul3XpvuoW3BgCwJzBUCWvPs47DJRgGxO11bSaEYYlhTVaaShcvzgz46AkqO+Q7TjckDP\
/8uzsSQk0AbuhxWFQpSiBP8OZ/U=&quot;
}
</sourcecode>
</section>

<section anchor="private-key"><name>Private Key</name>
<t>Per section 5.1 of <xref target="CRYSTALS-Dilithium"></xref>:</t>
<blockquote><t>The secret key contains p,K,tr,s1,s2 and t0 and is also stored as a bit-packed representation of these quantities in the given order. Consequently, a secret key requires 64 + 48 + 32((k+l) * dlog (2n+ 1)e + 14k) bytes. For the weak, medium and high security level this is equal to 112 + 576k+ 128l bytes. With the very high security parameters one needs 112 + 544k + 96l = 3856 bytes.</t>
</blockquote><t>The private key is represented as <tt>d</tt> and encoded using base64url encoding as described in <xref target="RFC7517"></xref>.</t>
<t>Example private key using only required fields:</t>

<sourcecode type="json">=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  &quot;kty&quot;: &quot;LWE&quot;,
  &quot;alg&quot;: &quot;CRYDI3&quot;,
  &quot;x&quot;: &quot;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\
/8uzsSQk0AbuhxWFQpSiBP8OZ/U=&quot;,
  &quot;d&quot;: &quot;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\
owebEJAy63htMytq+xd3cJyZR0lWBUOqvSpd/A==&quot;
}
</sourcecode>
<t>Example private key using optional fields:</t>

<sourcecode type="json">=============== NOTE: '\' line wrapping per RFC 8792 ================

{
  &quot;kid&quot;: &quot;key-0&quot;,
  &quot;kty&quot;: &quot;LWE&quot;,
  &quot;alg&quot;: &quot;CRYDI3&quot;,
  &quot;key_ops&quot;: [&quot;sign&quot;],
  &quot;x&quot;: &quot;z7u7GwhsjjnfHH3Nkrs2xvvw020Rcw5ymdlTnhRenjDdrOO+nfXRVUZVy9q1\
5zDn77zTgrIskM3WX8bqslc+B1fq12iA/wxD2jc1d6j+YjKCtkGH26OR7vc0YC2ZiMzW\
zGl7yebt7JkmjRbN1N+u/2fAKFLuziMcLNP6WLoWbMqxoC2XOOVNAWX3QjXrCcGU23Nr\
imtdmWz5NrP43E592Sctt5M+SVlfgQeYv8pHmtkQknE8/jr7TrgNpuiV7nXmhWHTMJ4I\
zoGXgq43odFFthboEdKNT/enyu+VvUGoIJ6cN8C/1B6o1WlYHEaL0BEIFFbAiAhZ/vnf\
cUYMaVPqsDJuETsjetcE32kGCD7Jkume2tO68DlIhB/2Z2JX8mkcbxFI6KrmXiRxXQj9\
9LVn1fEzdf3Vfpcs/C3omsFGqmTpLDK+AvW/SWVkDi2NKq7hL/AyxlW2u2cqVErQZUTS\
Z+ic6V8kZfxr3gRMnH0KuF5BtjleZ/yVvqqPjwPOZegCKEl2Gd8duhcUde7CR55pil1o\
UXy5AwgCcZTdEcJn1OPObGoots9T19gw1x4vnZCQUKVDPZuZ1gIkGqDUYXS0lcNTjCMs\
miFEmnOZvB88jxULpb1vl9HoQ3ocM2oZu4AZRt9G/L07Mwcui0uFCWtAIau+2gqNAn/Z\
AS10l0j2N0LLtAaOxoF+Ctzscrt0ZMyGHmoQ9daHkpUvEq0cO8hDtLplnq3lQIIIfROQ\
jcNs9vNKBu87COBjukZD+L8vV4zy8FNO59MCSb9UCLwz2xvfdI1js9/J7hTGaVec8VPx\
md42yPFrGw5Na1oefm8vW49EDmevc8AjAtwDirRBDFv9pX3+5S+M6jhteSLYvpKJXQT1\
zs1379KvIHwkn9VHpA+PiUUw9TgF6xF8xWEGSNlOo1Vn1xtM3givehjYxJ5p5/kBEFZI\
DCyFzstAirJ2GadNhae+P1JFZzJWnX5jaLwzldquZwF3yTzNho4sgBA+fKqiXcgn2nw1\
vz0Dkbxr6cMaUool0eFScU1nAz1Z39W64LtT2nEuYsORx/ht2RzJxxFc21X3nLeEDFCe\
NkNDxQFBSfpZjKKgJtXEx23mp+CbBVMrbagsLnzsAGLYbnroVmATU5Iqr6LgYBpuFs+N\
Rkq7ZXh6CZPukMGQbcOGuNwO6NBuuMNhir5ayGk1ZBiW82C7Nu0hs2pLcgNqWMtt1+LW\
8R96KyoSc784ZYAZ40QqvoySwmxQPBRTRJ+wB0sVpGBLTxdY9Gw3pXeXN5nao340d2ZA\
7YEMlqcTHCAv3F8B9ewl7OfQlmg6bvdMuoVdVE+p0er7IAmWMRgviIzYv9sKEEQrCmua\
2qL5xPSbD05KRf8ZAZ2B8lSCDR1nzXrQXZbXBKJivsCVQDuzxrwGE0gqRMpbk4f5GYCG\
4i/O8Knoru+jjf6wVQDYKfyz1QUGRlXHkGUGlXfv03r7UbJugycjVO5kbGxhoZkqOq8z\
ZEpkefvrrNoxeotw/z4QpjI8JlY97GDb0mGVHbmdHugjMtVTGhVJFBbPIinmR+emt7O+\
4qOr7ywRxCvt2lziWtpPBwaf/1XDnN5Gesex1gR1YrcTRNmB808b01sxLQmxcTt4eQ0/\
LUkas7qTJ3AQThOfDdtIpkqsthsBFy+WjSQuoXCYMRcPi6MlpxJndDF32lCnL1ranV6e\
F2ST0SYT+NwNDesMzTRmNbHUW5KAhu0k9WABTvcM5ba0Uq6iOa1NsFrcLag+KhxN6HPn\
oobwJ/EsDi5S7TAl8WrjqIhZ8x6h9eRRXerpaOw/FYk+2MpWByp/98VE12/EwOqAIiPp\
elAvUeMOlRkpG64bJsmyYtHuNWgcv5Qiy7/eGw9ZpvB3J3G3jxvbynExqdFyDc067EKi\
5WxDFPuZUjkfKpekNvzQuIrqs49BzcRyMt5ndEVE21TPPfZ/R8B7Rxnb2LiK+hQc+cc9\
pEEaWgwAOiMILcp/1CyY6ImdO6RHsxwflMH7gej+hN41kaoEghIOl9kMGTLZbq5Pc8Pz\
6F2LKTBMJWg9o/0blvilMH9EPblcLeF/bR1AZTUD6ZFdi2TxN6Epn3QVqeG/qPm1EBTF\
Gw1V92m6/08Dd6zI1HPqwKbkHx4F567owofKHaM2imin0yVUpwxoRJrulRHMCB3tn8C4\
ZpFl+sGV3Gip3tKlS7PKQkTqI6DMwxEbdrvtdY1sHZagpclLDisA/yFT4RR2m3VNJR9P\
6Nx3teqN1eg6RXmD/MlKCdWrlcjZ/6yeIQYwbr9CjItY/tLQX2gtAR1SXOh99UUBVv+Z\
E03VOZ+Ecsc78lSB9G/6n6CFzlbk/HgAF+cu0yMbGnEM8W3mTUspS4JBACwk5w0XWNNQ\
DWVEdgzuLGhPq+hYExDjVZrLELhkH8YgZA+7RXXUZHM/joNOGHUhpUG/bFo3ktnaILCu\
xsOXMUbDC3VcitFFHsGK1svtcERDFxk1HA8pGa59jT0do6n3wEbnBDU1soKNFtpmcVkE\
Ul3XpvuoW3BgCwJzBUCWvPs47DJRgGxO11bSaEYYlhTVaaShcvzgz46AkqO+Q7TjckDP\
/8uzsSQk0AbuhxWFQpSiBP8OZ/U=&quot;,
  &quot;d&quot;: &quot;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\
owebEJAy63htMytq+xd3cJyZR0lWBUOqvSpd/A==&quot;
}
</sourcecode>
</section>
</section>

<section anchor="crydi-signature-representation"><name>CRYDI Signature Representation</name>
<t>For the purpose of using the CRYSTALS-Dilithium Signature
Algorithm (CRYDI) for signing data using &quot;JSON Web Signature (JWS)&quot;
<xref target="RFC7515"></xref>, algorithm &quot;CRYDI&quot; is defined here, to be applied as the
value of the &quot;alg&quot; parameter.</t>
<t>The following key subtypes are defined here for use with CRYDI:</t>
<table>
<thead>
<tr>
<th>&quot;paramter&quot;</th>
<th>CRYDI Paramter Set</th>
</tr>
</thead>

<tbody>
<tr>
<td>5</td>
<td>CRYDI5</td>
</tr>

<tr>
<td>3</td>
<td>CRYDI3</td>
</tr>

<tr>
<td>2</td>
<td>CRYDI2</td>
</tr>
</tbody>
</table><t>The key type used with these keys is &quot;PQK&quot; and the algorithm used for
signing is &quot;CRYDI&quot;. These subtypes MUST NOT be used for key agreement.</t>
<t>The CRYDI variant used is determined by the subtype of the key
(CRYDI3 for &quot;pset 3&quot; and CRYDI2 for &quot;pset 2&quot;).</t>
<t>Implementations need to check that the key type is &quot;PQK&quot; for JOSE and
that the pset of the key is a valid subtype when creating a
signature.</t>
<t>The CRYDI digital signature is generated as
follows:</t>

<ol>
<li><t>Generate a digital signature of the JWS Signing Input
using CRYDI with the desired private key, as described in <eref target="#name-sign">Section 3.2</eref>.
The signature bit string is the concatenation of a bit packed
representation of z and encodings of h and c in this order.</t>
</li>
<li><t>The resulting octet sequence is the JWS Signature.</t>
</li>
</ol>
<t>When using a JWK for this algorithm, the following checks
are made:</t>

<ul>
<li><t>The &quot;kty&quot; field MUST be present, and it MUST be &quot;LWE&quot; for JOSE.</t>
</li>
<li><t>The &quot;alg&quot; field MUST be present, and it MUST represent the
algorith and parameter set.</t>
</li>
<li><t>If the &quot;key_ops&quot; field is present, it MUST include &quot;sign&quot; when
creating an CRYDI signature.</t>
</li>
<li><t>If the &quot;key_ops&quot; field is present, it MUST include &quot;verify&quot; when
verifying an CRYDI signature.</t>
</li>
<li><t>If the JWK &quot;use&quot; field is present, its value MUST be &quot;sig&quot;.</t>
</li>
</ul>
<t>Example signature using only required fields, represented in compact form:</t>

<sourcecode type="json">eyJhbGciOiJQUzM4NCIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZX
hhbXBsZSJ9
.
SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IH
lvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBk
b24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcm
UgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4
.
cu22eBqkYDKgIlTpzDXGvaFfz6WGoz7fUDcfT0kkOy42miAh2qyBzk1xEsnk2I
pN6-tPid6VrklHkqsGqDqHCdP6O8TTB5dDDItllVo6_1OLPpcbUrhiUSMxbbXU
vdvWXzg-UD8biiReQFlfz28zGWVsdiNAUf8ZnyPEgVFn442ZdNqiVJRmBqrYRX
e8P_ijQ7p8Vdz0TTrxUeT3lm8d9shnr2lfJT8ImUjvAA2Xez2Mlp8cBE5awDzT
0qI0n6uiP1aCN_2_jLAeQTlqRHtfa64QQSUmFAAjVKPbByi7xho0uTOcbH510a
6GYmJUAfmWjwZ6oD4ifKo8DYM-X72Eaw
</sourcecode>
<t>The same example decoded for readability:</t>

<sourcecode type="json">=============== NOTE: '\\' line wrapping per RFC 8792 ===============

{
  &quot;header&quot;: { &quot;alg&quot;: &quot;CRYDI3&quot;, &quot;kid&quot;: &quot;did:example:123#key-0&quot; },
  &quot;payload&quot;: &quot;It's a dangerous business, Frodo, going out your door.\
\ You step onto the road, and if you don't keep your feet, there's\
\ no knowing where you might be swept off to.&quot;,
  &quot;signature&quot;: &quot;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&quot;
}
</sourcecode>
</section>
</section>

<section anchor="using-crydi-with-cose"><name>Using CRYDI with COSE</name>
<t>The approach taken here matches the work done to support secp256k1 in JOSE and COSE in <xref target="RFC8812"></xref>.</t>
<t>The following tables map terms between JOSE and COSE for signatures.</t>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>Description</th>
<th>Recommended</th>
</tr>
</thead>

<tbody>
<tr>
<td>CRYDI5</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>CRYDI3</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>CRYDI2</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>
</tbody>
</table><t>The following tables map terms between JOSE and COSE for key types.</t>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>Description</th>
<th>Recommended</th>
</tr>
</thead>

<tbody>
<tr>
<td>PQK</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="falcon"><name>Falcon</name>

<section anchor="overview-1"><name>Overview</name>
<t>This section of the document describes the lattice signature scheme <xref target="Falcon"></xref>,
the &quot;Fast Fourier lattice-based compact signatures over NTRU&quot;. Falcon is
based on the GPV hash-and-sign lattice-based signature framework
introduced by Gentry, Peikert and Vaikuntanathan [GPV08], which is a
framework that requires a class of lattices and a trapdoor sampler technique.
For the class of lattices, Flacon uses the well-known NTRU lattices, while for
the trapdoor sampler, it uses a new fast Fourier sampling technique [DP16].
The underlying hard problem is the short integer solution problem (SIS) over
NTRU lattices, for which no efficient solving algorithm is currently known for
both classical as well as quantum settings.</t>
<t>The main design principle of Falcon is compactness, i.e. it was designed in a
way that achieves minimal total memory bandwidth requirement (the sum
of the signature size plus the public key size). This is possible due to the
compactness of NTRU lattices. Falcon also offers very efficient signing and
verification procedures. The main potential downsides of Falcon refer to the
non-triviality of its algorithms and the need for floating point arithmetic support.</t>
<t>The GPV framework, which underpins the Falcon design, is proven to be
secure in the (quantum) random oracle model as long as the SIS problem
remains intractable. Falcon requires an adaption of this prove to account for
the fact it uses NTRU lattices.</t>
<t>Falcon brings several advantages over other approaches to signature suites:</t>

<ul spacing="compact">
<li>Post quantum secure as long as the NTRU-SIS problem remains intractable.</li>
<li>Compactness: Falcon aims at minimum signature plus public key sizes. This
should be contrasted with hash-based signature schemes (e.g. SPHINCS+),
which minimizes public key sizes but suffer from long signatures, and
multivariate quadratic schemes, which minimizes signatures sizes but suffers
from long public keys. It also offers substantially shorter signatures than other
lattice schemes while public keys are about the same size.</li>
<li>Efficiency: Falcon can produce thousands of signatures per second on a
common computer, while verification is up to ten times faster. The operations
in Falcon have O(n log n) complexity for degree n.</li>
<li>Side-channel resistance: Falcon used to have an important limitation regarding
side-channel attacks due to the hardness of implementing discrete Gaussian sampling over
the integers in constant-time, a gap that has been recently filled in the literature.</li>
</ul>
</section>

<section anchor="core-operations-1"><name>Core Operations</name>
<t>Core operations used by the signature scheme should be implemented according to the details in <xref target="Falcon"></xref>.
Core operations include key generation, sign, and verify.</t>
</section>

<section anchor="using-falcon-with-jose"><name>Using FALCON with JOSE</name>
<t>This sections is based on <eref target="https://datatracker.ietf.org/doc/html/rfc8812#section-3">CBOR Object Signing and Encryption (COSE) and
JSON Object Signing and Encryption (JOSE)</eref></t>

<section anchor="falcon-key-representations"><name>FALCON Key Representations</name>
<t>A new key type (kty) value &quot;NTRU&quot; (for keys related to the family of algorithms that utilize
NTRU based approaches to Post Quantum lattice based cryptography) is defined for
public key algorithms that use base 64 encoded strings of the underlying binary materia
as private and public keys and that support cryptographic sponge functions.
It has the following parameters:</t>

<ul>
<li><t>The parameter &quot;kty&quot; MUST be &quot;NTRU&quot;.</t>
</li>
<li><t>The parameter &quot;alg&quot; MUST be specified, and its value MUST be one of the values
specified the below table</t>
</li>
</ul>
<table>
<thead>
<tr>
<th>alg</th>
<th>Description</th>
</tr>
</thead>

<tbody>
<tr>
<td>FALCON512</td>
<td>Falcon with parameter set 512</td>
</tr>

<tr>
<td>FALCON1024</td>
<td>Falcon with parameter set 1024</td>
</tr>
</tbody>
</table>
<ul>
<li><t>The parameter &quot;pset&quot; MAY be specfied to indicate the paramter set
in use for the algorithm, but SHOULD also reflect the targeted NIST level for the
algorithm in combination with the specified paramter set.
For &quot;alg&quot; &quot;FALCON&quot; one of the described parameter sets &quot;512&quot; or &quot;1024&quot; MUST be
specified. Parameter set &quot;512&quot; or above SHOULD be used with &quot;FALCON&quot; for any situation
requiring at least 128bits of security against both quantum and classical attacks</t>
</li>
<li><t>The parameter &quot;x&quot; MUST be present and contain the public key
encoded using the base64url <xref target="RFC4648"></xref> encoding.</t>
</li>
<li><t>The parameter &quot;d&quot; MUST be present for private keys and contain the
private key encoded using the base64url encoding. This parameter
MUST NOT be present for public keys.</t>
</li>
</ul>
<t>Sizes of various key and signature material is as follows</t>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Paramter Name</th>
<th>Paramter Set</th>
<th>Size</th>
<th>base64url encoded size</th>
</tr>
</thead>

<tbody>
<tr>
<td>Signature</td>
<td>sig</td>
<td>512</td>
<td>666</td>
<td></td>
</tr>

<tr>
<td>Public Key</td>
<td>x</td>
<td>512</td>
<td>897</td>
<td></td>
</tr>

<tr>
<td>Private Key</td>
<td>d</td>
<td>512</td>
<td>1281</td>
<td></td>
</tr>

<tr>
<td>Signature</td>
<td>sig</td>
<td>1024</td>
<td>1280</td>
<td></td>
</tr>

<tr>
<td>Public Key</td>
<td>x</td>
<td>1024</td>
<td>1793</td>
<td></td>
</tr>

<tr>
<td>Private Key</td>
<td>d</td>
<td>1024</td>
<td>2305</td>
<td></td>
</tr>
</tbody>
</table><t>When calculating JWK Thumbprints <xref target="RFC7638"></xref>, the four public key
fields are included in the hash input in lexicographic order:
&quot;kty&quot;, &quot;alg&quot;, and &quot;x&quot;.</t>
</section>

<section anchor="falcon-algorithms"><name>FALCON Algorithms</name>
<t>In order to reduce the complexity of the key representation and signature representations we register a unique algorithm name per pset.
This allows us to omit registering the <tt>pset</tt> term, and reduced the likelyhood that it will be misused.
These <tt>alg</tt> values are used in both key representations and signatures.</t>
<table>
<thead>
<tr>
<th>kty</th>
<th>alg</th>
<th>Paramter Set</th>
</tr>
</thead>

<tbody>
<tr>
<td>NTRU</td>
<td>FALCON512</td>
<td>512</td>
</tr>

<tr>
<td>NTRU</td>
<td>FALCON1024</td>
<td>1024</td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="using-falcon-with-cose"><name>Using FALCON with COSE</name>
<t>The approach taken here matches the work done to support secp256k1 in JOSE and COSE in <xref target="RFC8812"></xref>.</t>
<t>The following tables map terms between JOSE and COSE for signatures.</t>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>Description</th>
<th>Recommended</th>
</tr>
</thead>

<tbody>
<tr>
<td>FALCON512</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>FALCON1024</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>
</tbody>
</table><t>The following tables map terms between JOSE and COSE for key types.</t>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>Description</th>
<th>Recommended</th>
</tr>
</thead>

<tbody>
<tr>
<td>NTRU</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="sphincs-plus"><name>SPHINCS-PLUS</name>
<t>This section defines core operations used by the signature scheme, as proposed in <xref target="SPHINCS-PLUS"></xref>.</t>

<section anchor="overview-2"><name>Overview</name>
<t>This section of the document describes the hash-based signature scheme SPHINCS+.
The scheme is based on the concept of authenticating a large number or few-time
signatures keypair using a combination of Merkle-tree signatures, a so-called
hypertree. For each message to be signed a (pseudo-)random FTS keypair is
selected with which the message can be signed. Combining this signature along
with an authentication path through the hyper-tree consisting of hash-based
many-time signatures then gives the SPHINC+ signature.
The parameter set is strategically chosen such that the probability of signing
too many messages with a specific FTS keypair to impact security is small
enough to prevent forgery attacks. A trade-off in parameter set can be made
on security guarantees, performance and signature size.</t>
<t>SPHINCS+ is a post-quantum approach to digital signatures that is
promises Post-Quantum Existential Unforgeability under
Chosen Message Attack (PQ-EU-CMA), while ensuring that the security
levels reached meet security needs for resistance to both classical and quantum
attacks. The algoritm itself is based on the hardness assumptions of its
underlying hash functions, which can be chosen from the set Haraka,
SHA-256 or SHAKE256.
For all security levels the only operations required are calls to these
hash functions on various combinations of parameters and internal states.</t>
<t>Contrary to CRYSTALS-Dilithium and Falcon, SPHINCS+ is not based on any
algebraic structure. This reduces the possible attack surface of the
algorithm.</t>
<t>SPHINCS+ brings several advantages over other approaches to
signature suites:</t>

<ul spacing="compact">
<li>Post Quantum in nature - use of cryptographically secure hash functions and
other approaches that should remain hard problems even when under an attack
utilizing quantum approaches</li>
<li>Minimal security assumptions - compared to other schemes does not base its
security on a new paradigm. The security is solely based on the security of
the assumptions of the underlying hash function.</li>
<li>Performance and Optimization - based on combining a great many hash function
calls of SHA-256, SHAKE256 or Haraka means existing (secure) SW and HW
implementations of those hash functions can be re-used for increased
performance</li>
<li>Private and Public Key Size - compared to other post quantum approaches
a very small key size is the form of hash inputs-outputs. This then has the
drawback that either a large signature or low signing speed has to be
accepted</li>
<li>Cryptanalysis assuarance - attacks (both pre-quantum and quantum) are easy
to relate to existing attacks on hash functions. This allows for precise
quantification of the security levels</li>
<li>Overlap with stateful hash-based algorithms - means there are possibilities
to combine implementions with those of XMSS and LMS (TODO refs)</li>
<li>Inherent resistance against side-channel attacks - since its core primitive
is a hash function, it thereby is hard to attack with side-channels.</li>
</ul>
<t>The primary known disadvantage to SPHINCS+ is the size signatures, or the
speed of signing, depending on the chosen parameter set. Especially in IoT
applications this might pose a problem. Additionally hash-based schemes are
also vulnerable to differential and fault attacks.</t>
</section>

<section anchor="core-operations-2"><name>Core Operations</name>
<t>Core operations used by the signature scheme should be implemented according to the details in <xref target="SPHINCS-PLUS"></xref>.
Core operations include key generation, sign, and verify.</t>
</section>

<section anchor="using-sphincs-plus-with-jose"><name>Using SPHINCS-PLUS with JOSE</name>
<t>This sections is based on <eref target="https://datatracker.ietf.org/doc/html/rfc8812#section-3">CBOR Object Signing and Encryption (COSE) and
JSON Object Signing and Encryption (JOSE)</eref></t>

<section anchor="sphincs-plus-key-representations"><name>SPHINCS-PLUS Key Representations</name>
<t>A new key type (kty) value &quot;HASH&quot; (for keys related to the family of algorithms that utilize
hash based approaches to Post Quantum Cryptography) is defined for
public key algorithms that use base 64 encoded strings of the underlying binary materia
as private and public keys and that support cryptographic sponge functions.
It has the following parameters:</t>

<ul>
<li><t>The parameter &quot;kty&quot; MUST be &quot;HASH&quot;.</t>
</li>
<li><t>The parameter &quot;alg&quot; MUST be specified, and its value MUST be one of the values
specified the below table</t>
</li>
</ul>
<table>
<thead>
<tr>
<th>alg</th>
<th>Description</th>
</tr>
</thead>

<tbody>
<tr>
<td>SPHINCS+128s</td>
<td>SPHINCS+ with parameter set of 128s</td>
</tr>

<tr>
<td>SPHINCS+128f</td>
<td>SPHINCS+ with parameter set of 128f</td>
</tr>

<tr>
<td>SPHINCS+192s</td>
<td>SPHINCS+ with parameter set of 192s</td>
</tr>

<tr>
<td>SPHINCS+192f</td>
<td>SPHINCS+ with parameter set of 192f</td>
</tr>

<tr>
<td>SPHINCS+256s</td>
<td>SPHINCS+ with parameter set of 256s</td>
</tr>

<tr>
<td>SPHINCS+256f</td>
<td>SPHINCS+ with parameter set of 256f</td>
</tr>
</tbody>
</table>
<ul>
<li><t>The parameter &quot;pset&quot; MAY be specfied to indicate the paramter set
in use for the algorithm, but SHOULD also reflect the targeted NIST level for the
algorithm in combination with the specified paramter set.
For &quot;alg&quot; &quot;HAS&quot; one of the described parameter sets as listed in the section SPHINCS+
Algorithms MUST be specified.</t>
</li>
<li><t>The parameter &quot;x&quot; MUST be present and contain the public key
encoded using the base64url <xref target="RFC4648"></xref> encoding.</t>
</li>
<li><t>The parameter &quot;d&quot; MUST be present for private keys and contain the
private key encoded using the base64url encoding. This parameter
MUST NOT be present for public keys.</t>
</li>
</ul>
<t>Sizes of various key and signature material is as follows (TBD)</t>
<table>
<thead>
<tr>
<th>Variable</th>
<th>Paramter Name</th>
<th>Paramter Set</th>
<th>Size</th>
<th>base64url encoded size</th>
</tr>
</thead>

<tbody>
<tr>
<td>Signature</td>
<td>sig</td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td>Public Key</td>
<td>x</td>
<td></td>
<td></td>
<td></td>
</tr>

<tr>
<td>Private Key</td>
<td>d</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table><t>When calculating JWK Thumbprints <xref target="RFC7638"></xref>, the four public key
fields are included in the hash input in lexicographic order:
&quot;kty&quot;, &quot;alg&quot;, and &quot;x&quot;.</t>
</section>

<section anchor="sphincs-plus-algorithms"><name>SPHINCS-PLUS Algorithms</name>
<t>In order to reduce the complexity of the key representation and signature representations we register a unique algorithm name per pset.
This allows us to omit registering the <tt>pset</tt> term, and reduced the likelyhood that it will be misused.
These <tt>alg</tt> values are used in both key representations and signatures.</t>
<table>
<thead>
<tr>
<th>kty</th>
<th>alg</th>
<th>Paramter Set</th>
</tr>
</thead>

<tbody>
<tr>
<td>HASH</td>
<td>SPHINCS+128s</td>
<td>128s</td>
</tr>

<tr>
<td>HASH</td>
<td>SPHINCS+128f</td>
<td>128f</td>
</tr>

<tr>
<td>HASH</td>
<td>SPHINCS+192s</td>
<td>192s</td>
</tr>

<tr>
<td>HASH</td>
<td>SPHINCS+192f</td>
<td>192f</td>
</tr>

<tr>
<td>HASH</td>
<td>SPHINCS+256s</td>
<td>256s</td>
</tr>

<tr>
<td>HASH</td>
<td>SPHINCS+256f</td>
<td>256f</td>
</tr>
</tbody>
</table>
<section anchor="public-key-1"><name>Public Key</name>
<t>TODO</t>
</section>

<section anchor="private-key-1"><name>Private Key</name>
<t>TODO</t>
</section>
</section>

<section anchor="sphincs-plus-signature-representation"><name>SPHINCS-PLUS Signature Representation</name>
<t>TODO</t>
</section>
</section>

<section anchor="using-hash-with-cose"><name>Using HASH with COSE</name>
<t>The approach taken here matches the work done to support secp256k1 in JOSE and COSE in <xref target="RFC8812"></xref>.</t>
<t>The following tables map terms between JOSE and COSE for signatures.</t>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>Description</th>
<th>Recommended</th>
</tr>
</thead>

<tbody>
<tr>
<td>SPHINCS+128s</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>SPHINCS+128f</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>SPHINCS+192s</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>SPHINCS+192f</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>SPHINCS+256s</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>

<tr>
<td>SPHINCS+256f</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>
</tbody>
</table><t>The following tables map terms between JOSE and COSE for key types.</t>
<table>
<thead>
<tr>
<th>Name</th>
<th>Value</th>
<th>Description</th>
<th>Recommended</th>
</tr>
</thead>

<tbody>
<tr>
<td>HASH</td>
<td>TBD</td>
<td>TBD</td>
<td>No</td>
</tr>
</tbody>
</table></section>
</section>

<section anchor="crystals-kyber"><name>CRYSTALS-Kyber</name>
<t>TBD</t>
</section>

<section anchor="security-considerations"><name>Security Considerations</name>
<t>The following considerations SHOULD apply to all signature schemes described
in this specification, unless otherwise noted.</t>

<section anchor="validating-public-keys"><name>Validating public keys</name>
<t>All algorithms in that operate on public keys require first validating those keys.
For the sign, verify and proof schemes, the use of KeyValidate is REQUIRED.</t>
</section>

<section anchor="side-channel-attacks"><name>Side channel attacks</name>
<t>Implementations of the signing algorithm SHOULD protect the secret key from side-channel attacks.
Multiple best practices exist to protect against side-channel attacks. Any implementation
of the the CRYSTALS-Dilithium signing algorithm SHOULD utilize the following best practices
at a minimum:</t>

<ul spacing="compact">
<li>Constant timing - the implementation should ensure that constant time is utilized in operations</li>
<li>Sequence and memory access persistance - the implemention SHOULD execute the exact same
sequence of instructions (at a machine level) with the exact same memory access independent
of which polynomial is being operated on.</li>
<li>Uniform sampling - uniform sampling is the default in CRYSTALS-Dilithium to prevent information
leakage, however care should be given in implementations to preserve the property of uniform
sampling in implementation.</li>
<li>Secrecy of S1 - utmost care must be given to protection of S1 and to prevent information or
power leakage. As is the case with most proposed lattice based approaches to date, fogery and
other attacks may succeed, for example, with Dilithium through <eref target="https://eprint.iacr.org/2018/821.pdf">leakage of S1</eref>
through side channel mechanisms.</li>
</ul>
</section>

<section anchor="randomness-considerations"><name>Randomness considerations</name>
<t>It is recommended that the all nonces are from a trusted source of randomness.</t>
</section>
</section>

<section anchor="iana-considerations"><name>IANA Considerations</name>
<t>The following has NOT YET been added to the &quot;JSON Web Key Types&quot;
registry:</t>

<ul spacing="compact">
<li>Name: &quot;LWE&quot;</li>
<li>Description: LWE family post quantum signature algorithm key pairs</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 3.1 of this document (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Key Types&quot;
registry:</t>

<ul spacing="compact">
<li>Name: &quot;NTRU&quot;</li>
<li>Description: NTRU family post quantum signature algorithm key pairs</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 3.1 of this document (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Key Types&quot;
registry:</t>

<ul spacing="compact">
<li>Name: &quot;HASH&quot;</li>
<li>Description: Hash based post quantum signature algorithm key pairs</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 3.1 of this document (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Key Parameters&quot;
registry:</t>

<ul spacing="compact">
<li>Parameter Name: &quot;pset&quot;</li>
<li>Parameter Description: The parameter set of the crypto system</li>
<li>Parameter Information Class: Public</li>
<li>Used with &quot;kty&quot; Value(s): &quot;LWE&quot;, &quot;NTRU&quot;, &quot;HASH&quot;</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 2 of this document (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Key Parameters&quot;
registry:</t>

<ul spacing="compact">
<li>Parameter Name: &quot;d&quot;</li>
<li>Parameter Description: The private key</li>
<li>Parameter Information Class: Private</li>
<li>Used with &quot;kty&quot; Value(s): &quot;LWE&quot;, &quot;NTRU&quot;, &quot;HASH&quot;</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 2 of RFC 8037</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Key Parameters&quot;
registry:</t>

<ul spacing="compact">
<li>Parameter Name: &quot;x&quot;</li>
<li>Parameter Description: The public key</li>
<li>Parameter Information Class: Public</li>
<li>Used with &quot;kty&quot; Value(s): &quot;LWE&quot;, &quot;NTRU&quot;, &quot;HASH&quot;</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 2 of RFC 8037</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;CRYDI2&quot;</li>
<li>Algorithm Description: CRYDI2 signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 3.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;CRYDI3&quot;</li>
<li>Algorithm Description: CRYDI3 signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 3.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;CRYDI5&quot;</li>
<li>Algorithm Description: CRYDI5 signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 3.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;FALCON512&quot;</li>
<li>Algorithm Description: FALCON512 signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 4.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;FALCON1024&quot;</li>
<li>Algorithm Description: FALCON1024 signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 4.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;SPHINCS+128s&quot;</li>
<li>Algorithm Description: SPHINCS+128s signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 5.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;SPHINCS+128f&quot;</li>
<li>Algorithm Description: SPHINCS+128f signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 5.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;SPHINCS+192s&quot;</li>
<li>Algorithm Description: SPHINCS+192s signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 5.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;SPHINCS+192f&quot;</li>
<li>Algorithm Description: SPHINCS+192f signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 5.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;SPHINCS+256s&quot;</li>
<li>Algorithm Description: SPHINCS+256s signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 5.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
<t>The following has NOT YET been added to the &quot;JSON Web Signature and
Encryption Algorithms&quot; registry:</t>

<ul spacing="compact">
<li>Algorithm Name: &quot;SPHINCS+256f&quot;</li>
<li>Algorithm Description: SPHINCS+256f signature algorithms</li>
<li>Algorithm Usage Location(s): &quot;alg&quot;</li>
<li>JOSE Implementation Requirements: Optional</li>
<li>Change Controller: IESG</li>
<li>Specification Document(s): Section 5.1 of this document (TBD)</li>
<li>Algorithm Analysis Documents(s): (TBD)</li>
</ul>
</section>

<section anchor="appendix"><name>Appendix</name>

<ul spacing="compact">
<li>JSON Web Signature (JWS) - <eref target="https://tools.ietf.org/html/rfc7515">RFC7515</eref></li>
<li>JSON Web Encryption (JWE) - <eref target="https://tools.ietf.org/html/rfc7516">RFC7516</eref></li>
<li>JSON Web Key (JWK) - <eref target="https://tools.ietf.org/html/rfc7517">RFC7517</eref></li>
<li>JSON Web Algorithms (JWA) - <eref target="https://tools.ietf.org/html/rfc7518">RFC7518</eref></li>
<li>JSON Web Token (JWT) - <eref target="https://tools.ietf.org/html/rfc7519">RFC7519</eref></li>
<li>JSON Web Key Thumbprint - <eref target="https://tools.ietf.org/html/rfc7638">RFC7638</eref></li>
<li>JWS Unencoded Payload Option - <eref target="https://tools.ietf.org/html/rfc7797">RFC7797</eref></li>
<li>CFRG Elliptic Curve ECDH and Signatures - <eref target="https://tools.ietf.org/html/rfc8037">RFC8037</eref></li>
<li>CRYSTALS-Dilithium - <eref target="https://www.pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf">Dilithium</eref></li>
<li>SPHINCS+ - <eref target="https://sphincs.org/data/sphincs+-round3-specification.pdf">SPHINCS-PLUS</eref></li>
</ul>
<t>[DP16]: Leo Ducas and Thomas Prest. Fast fourier orthogonalization. In Sergei A. Abramov, Eugene V. Zima, and Xiao-Shan Gao, editors, Proceedings of the ACM on International Symposium on Symbolic and Algebraic Computation, ISSAC 2016, Waterloo, ON, Canada, July 19-22, 2016, pages 191-198. ACM, 2016.
[GPV08]: Craig Gentry, Chris Peikert, and Vinod Vaikuntanathan. Trapdoors for hard lattices and new cryptographic constructions. In Richard E. Ladner and Cynthia Dwork, editors, 40th ACM STOC, pages 197-206, Victoria, BC, Canada, May 17-20, 2008. ACM Press.</t>

<section anchor="test-vectors"><name>Test Vectors</name>
<t>//TODO</t>
</section>
</section>

</middle>

<back>
<references><name>Normative References</name>
<reference anchor="CRYSTALS-Dilithium" target="https://doi.org/10.13154/tches.v2018.i1.238-268">
  <front>
    <title>CRYSTALS-Dilithium: A Lattice-Based Digital Signature Scheme</title>
    <author fullname="Leo Ducas" initials="L." surname="Ducas">
      <organization>CWI</organization>
    </author>
    <author fullname="Eike Kiltz" initials="E." surname="Kiltz">
      <organization>Ruhr Universitat Bochum</organization>
    </author>
    <author fullname="Tancrede Lepoint" initials="T." surname="Lepoint">
      <organization>SRI International</organization>
    </author>
    <author fullname="Vadim Lyubashevsky" initials="V." surname="Lyubashevsky">
      <organization>IBM Research - Zurich</organization>
    </author>
    <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
      <organization>Radboud University</organization>
    </author>
    <author fullname="Gregor Seiler" initials="G." surname="Seiler">
      <organization>IBM Research - Zurich</organization>
    </author>
    <author fullname="Damien Stehle" initials="D." surname="Stehle">
      <organization>ENS de Lyon</organization>
    </author>
    <date year="2018"></date>
  </front>
</reference>
<reference anchor="Falcon" target="https://falcon-sign.info/">
  <front>
    <title>Fast-Fourier Lattice-based Compact Signatures over NTRU</title>
    <author fullname="Pierre-Alain Fouque" initials="P." surname="Fouque"></author>
    <author fullname="Jeffrey Hoffstein" initials="J." surname="Hoffstein"></author>
    <author fullname="Paul Kirchner" initials="P." surname="Kirchner"></author>
    <author fullname="Vadim Lyubashevsky" initials="V." surname="Lyubashevsky"></author>
    <author fullname="Thomas Pornin" initials="T." surname="Pornin"></author>
    <author fullname="Thomas Prest" initials="T." surname="Prest"></author>
    <author fullname="Thomas Ricosset" initials="T." surname="Ricosset"></author>
    <author fullname="Gregor Seiler" initials="G." surname="Seiler"></author>
    <author fullname="William Whyte" initials="W." surname="Whyte"></author>
    <author fullname="Zhenfei Zhang" initials="Z." surname="Zhang"></author>
    <date year="2017"></date>
  </front>
</reference>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4648.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7515.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7517.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7638.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8702.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8812.xml"/>
<reference anchor="SPHINCS-PLUS" target="https://sphincs.org">
  <front>
    <title>Sphincs+ Stateless Hash-based Signatures</title>
    <author fullname="Andreas Hulsing" initials="A." surname="Hulsing">
      <organization>Eindhoven University of Technology (NL)</organization>
    </author>
    <date year="2017"></date>
  </front>
</reference>
</references>
<references><name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml"/>
</references>

</back>

</rfc>
