| rfc9021xml2.original.xml | rfc9021.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <!-- This template is for creating an Internet Draft using xml2rfc, | ||||
| which is available here: http://xml.resource.org. --> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | ||||
| <!-- One method to get references from the online citation libraries. | ||||
| There has to be one entity for each item to be referenced. | ||||
| An alternate method (rfc include) is described in the references. --> | ||||
| <!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| .2119.xml"> | ||||
| <!ENTITY RFC8174 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8174.xml"> | ||||
| <!ENTITY RFC8152 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .8152.xml"> | ||||
| <!ENTITY RFC4086 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC | ||||
| .4086.xml"> | ||||
| ]> | ||||
| <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?> | ||||
| <!-- used by XSLT processors --> | ||||
| <!-- For a complete list and description of processing instructions (PIs), | ||||
| please see http://xml.resource.org/authoring/README.html. --> | ||||
| <!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds | ||||
| might want to use. | ||||
| (Here they are set differently than their defaults in xml2rfc v1.32) --> | ||||
| <?rfc strict="yes" ?> | ||||
| <!-- give errors regarding ID-nits and DTD validation --> | ||||
| <!-- control the table of contents (ToC) --> | ||||
| <?rfc toc="yes"?> | ||||
| <!-- generate a ToC --> | ||||
| <?rfc tocdepth="4"?> | ||||
| <!-- the number of levels of subsections in ToC. default: 3 --> | ||||
| <!-- control references --> | ||||
| <?rfc symrefs="yes"?> | ||||
| <!-- use symbolic references tags, i.e, [RFC2119] instead of [1] --> | ||||
| <?rfc sortrefs="yes" ?> | ||||
| <!-- sort the reference entries alphabetically --> | ||||
| <!-- control vertical white space | ||||
| (using these PIs as follows is recommended by the RFC Editor) --> | ||||
| <?rfc compact="yes" ?> | ||||
| <!-- do not start each main section on a new page --> | ||||
| <?rfc subcompact="no" ?> | ||||
| <!-- keep one blank line between list items --> | ||||
| <!-- end of list of popular I-D processing instructions --> | ||||
| <rfc category="info" docName="draft-atkins-suit-cose-walnutdsa-07" ipr="trust200 | ||||
| 902"> | ||||
| <!-- category values: std, bcp, info, exp, and historic | ||||
| ipr values: full3667, noModification3667, noDerivatives3667 | ||||
| you can add the attributes updates="NNNN" and obsoletes="NNNN" | ||||
| they will automatically be output with "(if approved)" --> | ||||
| <!-- ***** FRONT MATTER ***** --> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-atkins-suit-cose- | |||
| walnutdsa-07" number="9021" ipr="trust200902" obsoletes="" updates="" submission | ||||
| Type="independent" category="info" | ||||
| xml:lang="en" tocInclude="true" tocDepth="4" symRefs="true" sortRefs="true" vers | ||||
| ion="3"> | ||||
| <front> | <front> | |||
| <!-- The abbreviated title is used in the page header - it is only necessary | ||||
| if the | ||||
| full title is longer than 39 characters --> | ||||
| <title abbrev="WalnutDSA COSE Sigs">Use of the Walnut Digital Signature Algo rithm with CBOR Object Signing and Encryption (COSE) </title> | <title abbrev="WalnutDSA COSE Sigs">Use of the Walnut Digital Signature Algo rithm with CBOR Object Signing and Encryption (COSE) </title> | |||
| <seriesInfo name="RFC" value="9021"/> | ||||
| <!-- add 'role="editor"' below for the editors if appropriate --> | <author fullname="Derek Atkins" initials="D" surname="Atkins"> | |||
| <!-- Another author who claims to be an editor --> | ||||
| <author fullname="Derek Atkins" initials="D.A." surname="Atkins"> | ||||
| <organization>Veridify Security</organization> | <organization>Veridify Security</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>100 Beard Sawmill Rd, Suite 350</street> | <street>100 Beard Sawmill Rd, Suite 350</street> | |||
| <!-- Reorder these if your country does things differently --> | ||||
| <city>Shelton</city> | <city>Shelton</city> | |||
| <region>CT</region> | <region>CT</region> | |||
| <code>06484</code> | <code>06484</code> | |||
| <country>US</country> | <country>United States of America</country> | |||
| </postal> | </postal> | |||
| <phone>+1 617 623 3745</phone> | <phone>+1 617 623 3745</phone> | |||
| <email>datkins@veridify.com</email> | <email>datkins@veridify.com</email> | |||
| <!-- uri and facsimile elements may also be added --> | ||||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="May" year="2021"/> | ||||
| <date month="January" year="2021" /> | ||||
| <!-- If the month and year are both specified and are the current ones, xml2 | ||||
| rfc will fill | ||||
| in the current day for you. If only the current year is specified, xml2 | ||||
| rfc will fill | ||||
| in the current day and month for you. If the year is not the current one | ||||
| , it is | ||||
| necessary to specify at least a month (xml2rfc assumes day="1" if not sp | ||||
| ecified for the | ||||
| purpose of calculating the expiry date). With drafts it is normally suf | ||||
| ficient to | ||||
| specify just the year. --> | ||||
| <!-- Meta-data Declarations --> | ||||
| <area>Security</area> | <area>Security</area> | |||
| <workgroup>Internet Engineering Task Force</workgroup> | <workgroup>Internet Engineering Task Force</workgroup> | |||
| <!-- WG name at the upperleft corner of the doc, | ||||
| IETF is fine for individual submissions. | ||||
| If this element is not present, the default is "Network Working Group", | ||||
| which is used by the RFC Editor as a nod to the history of the IETF. -- | ||||
| > | ||||
| <keyword>COSE</keyword> | <keyword>COSE</keyword> | |||
| <keyword>WalnutDSA</keyword> | <keyword>WalnutDSA</keyword> | |||
| <!-- Keywords will be incorporated into HTML output | ||||
| files in a meta tag but they have no effect on text or nroff | ||||
| output. If you submit your draft to the RFC Editor, the | ||||
| keywords will be used for the search engine. --> | ||||
| <abstract> | <abstract> | |||
| <t>This document specifies the conventions for using the Walnut | <t>This document specifies the conventions for using the Walnut Digital | |||
| Digital Signature Algorithm (WalnutDSA) for digital signatures | Signature Algorithm (WalnutDSA) for digital signatures with the CBOR | |||
| with the CBOR Object Signing and Encryption (COSE) syntax. | Object Signing and Encryption (COSE) syntax. WalnutDSA is a | |||
| WalnutDSA is a lightweight, quantum-resistant signature scheme | lightweight, quantum-resistant signature scheme based on Group Theoretic | |||
| based on Group Theoretic Cryptography <!-- (see <xref target="WALNUTDSA" / | Cryptography with implementation and computational efficiency of | |||
| > | signature verification in constrained environments, even on 8- and | |||
| and <xref target="WALNUTSPEC" />) --> with implementation and | 16-bit platforms.</t> | |||
| computational efficiency of signature verification in constrained | ||||
| environments, even on 8- and 16-bit platforms.</t> | ||||
| <t>The goal of this publication is to document a way to use the | <t>The goal of this publication is to document a way to use the | |||
| lightweight, quantum-resistant WalnutDSA signature algorithm in | lightweight, quantum-resistant WalnutDSA signature algorithm in | |||
| COSE in a way that would allow multiple developers to build | COSE in a way that would allow multiple developers to build | |||
| compatible implementations. As of this publication, the | compatible implementations. As of this publication, the | |||
| security properties of WalnutDSA have not been evaluated by the | security properties of WalnutDSA have not been evaluated by the | |||
| IETF and its use has not been endorsed by the IETF. | IETF and its use has not been endorsed by the IETF. | |||
| </t> | </t> | |||
| <t>WalnutDSA and the Walnut Digital Signature Algorithm are | ||||
| <t>WalnutDSA(TM) and Walnut Digital Signature Algorithm(TM) are | trademarks of Veridify Security Inc.</t> | |||
| trademarks of Veridify Security Inc..</t> | ||||
| </abstract> | </abstract> | |||
| </front> | ||||
| </front> | ||||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="default"> | |||
| <t>This document specifies the conventions for using the Walnut | <name>Introduction</name> | |||
| Digital Signature Algorithm (WalnutDSA) <xref target="WALNUTDSA" | <t>This document specifies the conventions for using the Walnut Digital | |||
| /> for digital signatures with the CBOR Object Signing and | Signature Algorithm (WalnutDSA) <xref target="WALNUTDSA" | |||
| Encryption (COSE) <xref target="RFC8152" /> syntax. WalnutDSA | format="default"/> for digital signatures with the CBOR Object Signing | |||
| is a Group-Theoretic <xref target="GTC" /> signature scheme | and Encryption (COSE) syntax <xref target="RFC8152" format="default"/>. | |||
| where signature validation is both computationally- and | WalnutDSA is a Group Theoretic signature scheme <xref target="GTC" format= | |||
| space-efficient, even on very small processors. Unlike many | "default"/> where signature validation is both computationally and | |||
| hash-based signatures, there is no state required and no limit | space efficient, even on very small processors. Unlike many hash-based | |||
| on the number of signatures that can be made. WalnutDSA private | signatures, there is no state required and no limit on the number of | |||
| and public keys are relatively small; however, the signatures | signatures that can be made. WalnutDSA private and public keys are | |||
| are larger than RSA and ECC, but still smaller than most all | relatively small; however, the signatures are larger than RSA and | |||
| other quantum-resistant schemes (including all hash-based | Elliptic Curve Cryptography (ECC), but still smaller than most all other | |||
| schemes).</t> | quantum-resistant schemes (including all hash-based schemes).</t> | |||
| <t>COSE provides a lightweight method to encode structured data. | <t>COSE provides a lightweight method to encode structured data. | |||
| WalnutDSA is a lightweight, quantum-resistant digital | WalnutDSA is a lightweight, quantum-resistant digital | |||
| signature algorithm. The goal of this specification is to | signature algorithm. The goal of this specification is to | |||
| document a method to leverage WalnutDSA in COSE in a way that | document a method to leverage WalnutDSA in COSE in a way that | |||
| would allow multiple developers to build compatible | would allow multiple developers to build compatible | |||
| implementations.</t> | implementations.</t> | |||
| <t>As with all cryptosystems, the initial versions of WalnutDSA | <t>As with all cryptosystems, the initial versions of WalnutDSA | |||
| underwent significant cryptanalysis, and in some cases, | underwent significant cryptanalysis, and, in some cases, identified | |||
| identified potential issues. For more discussion on this topic, | potential issues. For more discussion on this topic, a summary of all | |||
| a summary of all published cryptanalysis can be found in Section | published cryptanalysis can be found in <xref | |||
| 5.2. Validated issues were addressed by reparameterization in | target="meth_sec"/>. Validated issues were addressed by | |||
| updated versions of WalnutDSA. Although the IETF has neither | reparameterization in updated versions of WalnutDSA. Although the IETF | |||
| evaluated the security properties of WalnutDSA nor has the IETF | has neither evaluated the security properties of WalnutDSA nor endorsed | |||
| endorsed WalnutDSA as of this publication, this document | WalnutDSA as of this publication, this document provides a method to use | |||
| provides a method to use WalnutDSA in conjunction with IETF | WalnutDSA in conjunction with IETF protocols. As always, users of any | |||
| protocols. As always, users of any security algorithm are | security algorithm are advised to research the security properties of | |||
| advised to research the security properties of the algorithm and | the algorithm and make their own judgment about the risks involved.</t> | |||
| make their own judgment about the risks involved.</t> | <section numbered="true" toc="default"> | |||
| <name>Motivation</name> | ||||
| <section title="Motivation"> | <t>Recent advances in cryptanalysis <xref target="BH2013" | |||
| <t>Recent advances in cryptanalysis <xref target="BH2013" /> | format="default"/> and progress in the development of quantum | |||
| and progress in the development of quantum computers <xref | computers <xref target="NAS2019" format="default"/> pose a threat to | |||
| target="NAS2019" /> pose a threat to widely deployed digital | widely deployed digital signature algorithms. As a result, there is a | |||
| signature algorithms. As a result, there is a need to prepare | need to prepare for a day that cryptosystems such as RSA and DSA, | |||
| for a day that cryptosystems such as RSA and DSA that depend | which depend on discrete logarithm and factoring, cannot be depended | |||
| on discrete logarithm and factoring cannot be depended upon.</t> | upon.</t> | |||
| <t>If large-scale quantum computers are ever built, these computers | ||||
| <t>If large-scale quantum computers are ever built, these | will be able to break many of the public key cryptosystems currently | |||
| computers will be able to break many of the public-key | in use. A post-quantum cryptosystem <xref target="PQC" | |||
| cryptosystems currently in use. A post-quantum cryptosystem | format="default"/> is a system that is secure against quantum | |||
| <xref target="PQC" /> is a system that is secure against | computers that have more than a trivial number of quantum bits | |||
| quantum computers that have more than a trivial number of | (qubits). It is open to conjecture when it will be feasible to build | |||
| quantum bits (qubits). It is open to conjecture when it will | such computers; however, RSA, DSA, the Elliptic Curve Digital | |||
| be feasible to build such computers; however, RSA, DSA, ECDSA, | Signature Algorithm (ECDSA), and the Edwards-Curve Digital Signature | |||
| and EdDSA are all vulnerable if large-scale quantum computers | Algorithm (EdDSA) are all vulnerable if large-scale quantum computers | |||
| come to pass.</t> | come to pass.</t> | |||
| <t>WalnutDSA does not depend on the difficulty of discrete | <t>WalnutDSA does not depend on the difficulty of discrete | |||
| logarithm or factoring. As a result this algorithm is | logarithms or factoring. As a result, this algorithm is | |||
| considered to be resistant to post-quantum attacks.</t> | considered to be resistant to post-quantum attacks.</t> | |||
| <t>Today, RSA and ECDSA are often used to digitally sign | ||||
| <t>Today, RSA and ECDSA are often used to digitally sign | ||||
| software updates. Unfortunately, implementations of RSA and | software updates. Unfortunately, implementations of RSA and | |||
| ECDSA can be relatively large, and verification can take a | ECDSA can be relatively large, and verification can take a | |||
| significant amount of time on some very small processors. | significant amount of time on some very small processors. | |||
| Therefore, we desire a digital signature scheme that verifies | Therefore, we desire a digital signature scheme that verifies | |||
| faster with less code. Moreover, in preparation for a day | faster with less code. Moreover, in preparation for a day | |||
| when RSA, DSA, and ECDSA cannot be depended upon, a digital | when RSA, DSA, and ECDSA cannot be depended upon, a digital | |||
| signature algorithm is needed that will remain secure even if | signature algorithm is needed that will remain secure even if | |||
| there are significant cryptoanalytic advances or a large-scale | there are significant cryptanalytic advances or a large-scale | |||
| quantum computer is invented. WalnutDSA, specified in <xref | quantum computer is invented. WalnutDSA, specified in <xref target="WALN | |||
| target="WALNUTSPEC" />, is a quantum-resistant algorithm | UTSPEC" format="default"/>, is a quantum-resistant algorithm | |||
| that addresses these requirements.</t> | that addresses these requirements.</t> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <section title="Trademark Notice"> | <name>Trademark Notice</name> | |||
| <t>WalnutDSA(TM) and Walnut Digital Signature Algorithm(TM) are | <t>WalnutDSA and the Walnut Digital Signature Algorithm are | |||
| trademarks of Veridify Security Inc..</t> | trademarks of Veridify Security Inc.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>Terminology</name> | ||||
| <t> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
| IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
| be interpreted as | ||||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
| when, and only when, they appear in all capitals, as shown here. | ||||
| </t> | ||||
| <section title="Terminology"> | ||||
| <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> | |||
| <section anchor="alg_overview" numbered="true" toc="default"> | ||||
| <section title="WalnutDSA Algorithm Overview" anchor="alg_overview"> | <name>WalnutDSA Algorithm Overview</name> | |||
| <t>This specification makes use of WalnutDSA signatures as | <t>This specification makes use of WalnutDSA signatures as | |||
| described in <xref target="WALNUTDSA" /> and more concretely | described in <xref target="WALNUTDSA" format="default"/> and more concrete | |||
| specified in <xref target="WALNUTSPEC" />. WalnutDSA is a | ly | |||
| Group-Theoretic cryptographic signature scheme that leverages | specified in <xref target="WALNUTSPEC" format="default"/>. WalnutDSA is a | |||
| Group Theoretic cryptographic signature scheme that leverages | ||||
| infinite group theory as the basis of its security and maps that | infinite group theory as the basis of its security and maps that | |||
| to a one-way evaluation of a series of matrices over small | to a one-way evaluation of a series of matrices over small | |||
| finite fields with permuted multiplicants based on the group | finite fields with permuted multiplicants based on the group | |||
| input. WalnutDSA leverages the SHA2-256 and SHA2-512 one-way | input. WalnutDSA leverages the SHA2-256 and SHA2-512 one-way | |||
| hash algorithms <xref target="SHA2" /> in a hash-then-sign | hash algorithms <xref target="SHA2" format="default"/> in a hash-then-sign | |||
| process.</t> | process.</t> | |||
| <t>WalnutDSA is based on a one-way function, E-multiplication, | ||||
| <t>WalnutDSA is based on a one-way function, E-Multiplication, | ||||
| which is an action on the infinite group. A single | which is an action on the infinite group. A single | |||
| E-Multiplication step takes as input a matrix and permutation, a | E-multiplication step takes as input a matrix and permutation, a | |||
| generator in the group, and a set of T-values (entries in the | generator in the group, and a set of T-values (entries in the | |||
| finite field) and outputs a new matrix and permutation. To | finite field) and outputs a new matrix and permutation. To | |||
| process a long string of generators (like a WalnutDSA | process a long string of generators (like a WalnutDSA | |||
| signature), E-Multiplication is iterated over each generator. | signature), E-multiplication is iterated over each generator. | |||
| Due to its structure, E-Multiplication is extremely easy to | Due to its structure, E-multiplication is extremely easy to | |||
| implement.</t> | implement.</t> | |||
| <t>In addition to being quantum-resistant, the two main benefits | <t>In addition to being quantum resistant, the two main benefits | |||
| of using WalnutDSA are that the verification implementation is | of using WalnutDSA are that the verification implementation is | |||
| very small and WalnutDSA signature verification is extremely | very small and WalnutDSA signature verification is extremely | |||
| fast, even on very small processors (including 16- and even | fast, even on very small processors (including 16- and even | |||
| 8-bit MCUs). This lends it well to use in constrained and/or | 8-bit microcontrollers). This lends it well to use in constrained and/or | |||
| time-sensitive environments.</t> | time-sensitive environments.</t> | |||
| <t>WalnutDSA has several parameters required to process a signature. | ||||
| <t>WalnutDSA has several parameters required to process a | The main parameters are N and q. The parameter N defines the size of | |||
| signature. The main parameters are N and q. The parameter N | the group by defining the number of strands in use and implies working | |||
| defines the size of the group by defining the number of strands in use, | in an NxN matrix. The parameter q defines the number of elements in the | |||
| and implies working in an NxN | finite field. Signature verification also requires a set of T-values, | |||
| matrix. The parameter q defines the number of elements in the finite fiel | which is an ordered list of N entries in the finite field F_q.</t> | |||
| d. | ||||
| Signature verification also requires a set of | ||||
| T-values, which is an ordered list of N entries in the finite | ||||
| field F_q.</t> | ||||
| <t>A WalnutDSA signature is just a string of generators in the | <t>A WalnutDSA signature is just a string of generators in the | |||
| infinite group, packed into a byte string.</t> | infinite group, packed into a byte string.</t> | |||
| </section> | </section> | |||
| <section anchor="alg_ids" numbered="true" toc="default"> | ||||
| <section title="WalnutDSA Algorithm Identifiers" anchor="alg_ids"> | <name>WalnutDSA Algorithm Identifiers</name> | |||
| <t>The CBOR Object Signing and Encryption (COSE) <xref | <t>The CBOR Object Signing and Encryption (COSE) syntax <xref target="RFC8 | |||
| target="RFC8152" /> supports two signature algorithm schemes. | 152" format="default"/> supports two signature algorithm schemes. | |||
| This specification makes use of the signature with appendix | This specification makes use of the signature with appendix scheme for | |||
| scheme for WalnutDSA signatures.</t> | WalnutDSA signatures.</t> | |||
| <t>The signature value is a large byte string. The byte string is | <t>The signature value is a large byte string. The byte string is | |||
| designed for easy parsing, and it includes a length (number of | designed for easy parsing, and it includes a length (number of | |||
| generators) and type codes that indirectly provide all of the | generators) and type codes that indirectly provide all of the | |||
| information that is needed to parse the byte string during | information that is needed to parse the byte string during | |||
| signature validation.</t> | signature validation.</t> | |||
| <t>When using a COSE key for this algorithm, the following checks are | <t>When using a COSE key for this algorithm, the following checks are | |||
| made:</t> | made:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>The "kty" field <bcp14>MUST</bcp14> be present, and it | |||
| <t>The 'kty' field MUST be present, and it MUST be 'WalnutDSA'.</t> | <bcp14>MUST</bcp14> be "WalnutDSA".</li> | |||
| <t>If the 'alg' field is present, and it MUST be 'WalnutDSA'.</t> | <li>If the "alg" field is present, it <bcp14>MUST</bcp14> be "WalnutDSA" | |||
| <t>If the 'key_ops' field is present, it MUST include 'sign' when | .</li> | |||
| creating a WalnutDSA signature.</t> | <li>If the "key_ops" field is present, it <bcp14>MUST</bcp14> include "s | |||
| <t>If the 'key_ops' field is present, it MUST include 'verify' | ign" when | |||
| when verifying a WalnutDSA signature.</t> | creating a WalnutDSA signature.</li> | |||
| <t>If the 'kid' field is present, it MAY be used to identify the | <li>If the "key_ops" field is present, it <bcp14>MUST</bcp14> include "v | |||
| WalnutDSA Key.</t> | erify" | |||
| </list></t> | when verifying a WalnutDSA signature.</li> | |||
| <li>If the "kid" field is present, it <bcp14>MAY</bcp14> be used to iden | ||||
| tify the | ||||
| WalnutDSA Key.</li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="sec_consider" numbered="true" toc="default"> | ||||
| <section title="Security Considerations" anchor="sec_consider"> | <name>Security Considerations</name> | |||
| <section title="Implementation Security Considerations"> | <section numbered="true" toc="default"> | |||
| <t>Implementations MUST protect the private keys. Use of a hardware | <name>Implementation Security Considerations</name> | |||
| <t>Implementations <bcp14>MUST</bcp14> protect the private keys. Use of | ||||
| a hardware | ||||
| security module (HSM) is one way to protect the private keys. | security module (HSM) is one way to protect the private keys. | |||
| Compromise of the private keys may result in the ability to forge | Compromising the private keys may result in the ability to forge | |||
| signatures. As a result, when a private key | signatures. As a result, when a private key | |||
| is stored on non-volatile media or stored in a virtual machine | is stored on non-volatile media or stored in a virtual machine | |||
| environment, care must be taken to preserve confidentiality and | environment, care must be taken to preserve confidentiality and | |||
| integrity.</t> | integrity.</t> | |||
| <t>The generation of private keys relies on random numbers. The use of | ||||
| <t>The generation of private keys relies on random numbers. The use of | inadequate pseudorandom number generators (PRNGs) to generate these | |||
| inadequate pseudo-random number generators (PRNGs) to generate these | ||||
| values can result in little or no security. An attacker may find it | values can result in little or no security. An attacker may find it | |||
| much easier to reproduce the PRNG environment that produced the keys, | much easier to reproduce the PRNG environment that produced the keys, | |||
| searching the resulting small set of possibilities, rather than brute | searching the resulting small set of possibilities, rather than brute | |||
| force searching the whole key space. The generation of quality | force searching the whole key space. The generation of quality | |||
| random numbers is difficult, and <xref target="RFC4086" /> | random numbers is difficult, and <xref target="RFC4086" format="default"/ > | |||
| offers important guidance in this area.</t> | offers important guidance in this area.</t> | |||
| <t>The generation of WalnutDSA signatures also depends on random | ||||
| <t>The generation of WalnutDSA signatures also depends on random | numbers. While the consequences of an inadequate PRNG to generate | |||
| numbers. While the consequences of an inadequate pseudo-random | these values are much less severe than the generation of private keys, | |||
| number generator (PRNG) to generate these values is much less severe | the guidance in <xref target="RFC4086" format="default"/> remains | |||
| than the generation of private keys, the guidance in <xref target="RFC408 | important.</t> | |||
| 6" /> | ||||
| remains important.</t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default" anchor="meth_sec"> | ||||
| <section title="Method Security Considerations"> | <name>Method Security Considerations</name> | |||
| <t>The Walnut Digital Signature Algorithm has undergone | <t>The Walnut Digital Signature Algorithm has undergone | |||
| significant cryptanalysis since it was first introduced, and | significant cryptanalysis since it was first introduced, and | |||
| several weaknesses were found in early versions of the method, | several weaknesses were found in early versions of the method, | |||
| resulting in the description of several attacks with exponential | resulting in the description of several attacks with exponential | |||
| computational complexity. | computational complexity. | |||
| A full writeup of all the analysis can be found in | A full writeup of all the analysis can be found in | |||
| <xref target="WalnutDSAAnalysis" />. In summary, | <xref target="WalnutDSAAnalysis" format="default"/>. In summary, | |||
| the original suggested parameters (N=8, q=32) were too small, leading to | the original suggested parameters (N=8, q=32) were too small, leading to | |||
| many of these exponential-growth attacks being practical. However, curre nt | many of these exponential-growth attacks being practical. However, curre nt | |||
| parameters render these attacks impractical. The following | parameters render these attacks impractical. The following | |||
| paragraphs summarize the analysis and how the current | paragraphs summarize the analysis and how the current | |||
| parameters defeat all the previous attacks.</t> | parameters defeat all the previous attacks.</t> | |||
| <t>First, the team of Hart et al found a universal forgery | <t>First, the team of Hart et al. found a universal forgery attack | |||
| attack based on a group factoring problem that runs in | based on a group-factoring problem that runs in O(q<sup>(N-1)/2</sup>) | |||
| O(q^((N-1)/2)) with a memory complexity of log_2(q) N^2 | with a memory complexity of log_2(q) N<sup>2</sup> | |||
| q^((N-1)/2). With parameters N=10 and q=M31 (the Mersenne prime 2^31 - 1 | q<sup>(N-1)/2</sup>. With parameters N=10 and q=M31 (the Mersenne | |||
| ), the | prime 2<sup>31</sup> - 1), the runtime is 2<sup>139</sup> and memory | |||
| runtime is 2^139 and memory complexity is 2^151. W. Beullens | complexity is 2<sup>151</sup>. W. Beullens found a modification | |||
| found a modification of this attack but its runtime is even | of this attack but its runtime is even longer.</t> | |||
| longer.</t> | <t>Next, Beullens and Blackburn found several issues with the | |||
| original method and parameters. First, they used a Pollard-Rho | ||||
| <t>Next, Beullens and Blackburn found several issues with the | ||||
| original method and parameters. First they used a Pollard-Rho | ||||
| attack and discovered the original public key space was too | attack and discovered the original public key space was too | |||
| small. Specifically they require that q^(N(N-1)-1) > | small. Specifically, they require that q<sup>N(N-1)-1</sup> > | |||
| 2^(2*Security Level). One can clearly see that N=10, q=M31 | 2<sup>2*Security Level</sup>. One can clearly see that (N=10, q=M31) | |||
| provides 128-bit security and N=10, q=M61 provides 256-bit | provides 128-bit security and (N=10, q=M61) provides 256-bit | |||
| security.</t> | security.</t> | |||
| <t>Beullens and Blackburn also found two issues with the | ||||
| <t>Beullens and Blackburn also found two issues with the | ||||
| original message encoder of WalnutDSA. First, the original | original message encoder of WalnutDSA. First, the original | |||
| encoder was non-injective, which reduced the available | encoder was non-injective, which reduced the available | |||
| signature space. This was repaired in an update. Second, | signature space. This was repaired in an update. Second, | |||
| they pointed out that the dimension of the vector space | they pointed out that the dimension of the vector space | |||
| generated by the encoder was too small. Specifically, they | generated by the encoder was too small. Specifically, they | |||
| require that q^dimension > 2^(2*Security Level). With N=10, | require that q<sup>dimension</sup> > 2<sup>(2*Security Level)</sup>. | |||
| the current encoder produces a dimension of 66 which clearly | With N=10, | |||
| the current encoder produces a dimension of 66, which clearly | ||||
| provides sufficient security with q=M31 or q=M61.</t> | provides sufficient security with q=M31 or q=M61.</t> | |||
| <t>The final issue discovered by Beullens and Blackburn was a process | ||||
| <t>The final issue discovered by Beullens and Blackburn was a | to theoretically "reverse" E-multiplication. First, their process | |||
| process to theoretically "reverse" E-Multiplication. First, their | requires knowing the initial matrix and permutation (which are known | |||
| process requires knowing the initial matrix and permutation | for WalnutDSA). But more importantly, their process runs at | |||
| (which is known for WalnutDSA). But more importantly, their | O(q<sup>((N-1)/2)</sup>), which for (N=10, q=M31) is greater than | |||
| process runs at O(q^((N-1)/2)) which, for N=10, q=M31 is | 2<sup>128</sup>.</t> | |||
| greater than 2^128.</t> | <t>A team at Steven's Institute leveraged a length-shortening | |||
| <t>A team at Steven's Institute leveraged a length-shortening | ||||
| attack that enabled them to remove the cloaking elements and | attack that enabled them to remove the cloaking elements and | |||
| then solve a conjugacy search problem to derive the private | then solve a conjugacy search problem to derive the private | |||
| keys. Their attack requires both knowledge of the permutation | keys. Their attack requires both knowledge of the permutation | |||
| being cloaked and also that the cloaking elements themselves | being cloaked and also that the cloaking elements themselves | |||
| are conjugates. By adding additional concealed cloaking | are conjugates. By adding additional concealed cloaking | |||
| elements the attack requires an N! search for each cloaking | elements, the attack requires an N! search for each cloaking | |||
| element. By inserting k concealed cloaking elements, this | element. By inserting k concealed cloaking elements, this | |||
| requires the attacker to perform (N!)^k work. This allows | requires the attacker to perform (N!)<sup>k</sup> work. This allows | |||
| k to be set to meet the desired security level.</t> | k to be set to meet the desired security level.</t> | |||
| <t>Finally, Merz and Petit discovered that using a Garside | ||||
| <t>Finally, Merz and Petit discovered that using a Garside | ||||
| Normal Form of a WalnutDSA signature enabled them to find | Normal Form of a WalnutDSA signature enabled them to find | |||
| commonalities with the Garside Normal Form of the encoded | commonalities with the Garside Normal Form of the encoded | |||
| message. Using those commonalities they were able to splice | message. Using those commonalities, they were able to splice | |||
| into a signature and create forgeries. Increasing the number | into a signature and create forgeries. Increasing the number | |||
| of cloaking elements, specifically within the encoded message, | of cloaking elements, specifically within the encoded message, | |||
| sufficiently obscures the commonalities and blocks this | sufficiently obscures the commonalities and blocks this | |||
| attack.</t> | attack.</t> | |||
| <t>In summary, most of these attacks are exponential in run | <t>In summary, most of these attacks are exponential in runtime and it | |||
| time and can be shown that current parameters put the runtime | can be shown that current parameters put the runtime beyond the | |||
| beyond the desired security level. The final two attacks are | desired security level. The final two attacks are also sufficiently | |||
| also sufficiently blocked to the desired security level.</t> | blocked to the desired security level.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <!-- Possibly a 'Contributors' section ... --> | <section anchor="IANA" numbered="true" toc="default"> | |||
| <name>IANA Considerations</name> | ||||
| <section anchor="IANA" title="IANA Considerations"> | <t>IANA has added entries for WalnutDSA signatures in the | |||
| <t>IANA is requested to add entries for WalnutDSA signatures in the | ||||
| "COSE Algorithms" registry and WalnutDSA public keys in the "COSE | "COSE Algorithms" registry and WalnutDSA public keys in the "COSE | |||
| Key Types" and "COSE Key Type Parameters" registries.</t> | Key Types" and "COSE Key Type Parameters" registries.</t> | |||
| <section numbered="true" toc="default"> | ||||
| <name>COSE Algorithms Registry Entry</name> | ||||
| <t>The following new entry has been registered in the "COSE Algorithms" | ||||
| registry:</t> | ||||
| <section title="COSE Algorithms Registry Entry"> | <dl> | |||
| <t>The new entry in the "COSE Algorithms" registry has the following | <dt>Name: | |||
| columns:</t> | </dt> | |||
| <t><list> | <dd>WalnutDSA | |||
| <t>Name: WalnutDSA</t> | </dd> | |||
| <t>Value: TBD1 (Value between -65536 to -257 or 256-65535 to be assig | ||||
| ned by IANA)</t> | <dt>Value: | |||
| <t>Description: WalnutDSA signature</t> | </dt> | |||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | <dd>-260 | |||
| <t>Recommended: No</t> | </dd> | |||
| </list></t> | ||||
| </section> | <dt>Description: | |||
| </dt> | ||||
| <dd>WalnutDSA signature | ||||
| </dd> | ||||
| <dt>Reference: | ||||
| </dt> | ||||
| <dd>RFC 9021 | ||||
| </dd> | ||||
| <dt>Recommended: | ||||
| </dt> | ||||
| <dd>No | ||||
| </dd> | ||||
| </dl> | ||||
| <section title="COSE Key Types Registry Entry"> | ||||
| <t>The new entry in the "COSE Key Types" registry has the following | ||||
| columns:</t> | ||||
| <t><list> | ||||
| <t>Name: WalnutDSA</t> | ||||
| <t>Value: TBD2 (Value to be assigned by IANA)</t> | ||||
| <t>Description: WalnutDSA public key</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>COSE Key Types Registry Entry</name> | ||||
| <t>The following new entry has been registered in the "COSE Key Types" r | ||||
| egistry:</t> | ||||
| <section title="COSE Key Type Parameter Registry Entries"> | <dl> | |||
| <t>The following sections detail the additions to the "COSE Key Type Para | <dt>Name: | |||
| meters" registry.</t> | </dt> | |||
| <dd>WalnutDSA | ||||
| </dd> | ||||
| <section title="WalnutDSA Parameter: N"> | <dt>Value: | |||
| <t>The new entry N in the "COSE Key Type Parameters" registry | </dt> | |||
| has the following columns:</t> | <dd>6 | |||
| <t><list> | </dd> | |||
| <t>Key Type: TBD2 (Value assigned by IANA above)</t> | ||||
| <t>Name: N</t> | ||||
| <t>Label: TBD (Value to be assigned by IANA)</t> | ||||
| <t>CBOR Type: uint</t> | ||||
| <t>Description: Group and Matrix (NxN) size</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="WalnutDSA Parameter: q"> | <dt>Description: | |||
| <t>The new entry q in the "COSE Key Type Parameters" registry | </dt> | |||
| has the following columns:</t> | <dd>WalnutDSA public key | |||
| <t><list> | </dd> | |||
| <t>Key Type: TBD2 (Value assigned by IANA above)</t> | ||||
| <t>Name: q</t> | ||||
| <t>Label: TBD (Value to be assigned by IANA)</t> | ||||
| <t>CBOR Type: uint</t> | ||||
| <t>Description: Finite field F_q</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="WalnutDSA Parameter: t-values"> | <dt>Reference: | |||
| <t>The new entry t-values in the "COSE Key Type Parameters" registry | </dt> | |||
| has the following columns:</t> | <dd>RFC 9021 | |||
| <t><list> | ||||
| <t>Key Type: TBD2 (Value assigned by IANA above)</t> | ||||
| <t>Name: t-values</t> | ||||
| <t>Label: TBD (Value to be assigned by IANA)</t> | ||||
| <t>CBOR Type: array (of uint)</t> | ||||
| <t>Description: List of T-values, enties in F_q</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="WalnutDSA Parameter: matrix 1"> | </dd> | |||
| <t>The new entry matrix 1 in the "COSE Key Type Parameters" registry | ||||
| has the following columns:</t> | ||||
| <t><list> | ||||
| <t>Key Type: TBD2 (Value assigned by IANA above)</t> | ||||
| <t>Name: matrix 1</t> | ||||
| <t>Label: TBD (Value to be assigned by IANA)</t> | ||||
| <t>CBOR Type: array (of array of uint)</t> | ||||
| <t>Description: NxN Matrix of enties in F_q in column-major form</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="WalnutDSA Parameter: permutation 1"> | </dl> | |||
| <t>The new entry permutation 1 in the "COSE Key Type Parameters" regist | ||||
| ry | ||||
| has the following columns:</t> | ||||
| <t><list> | ||||
| <t>Key Type: TBD2 (Value assigned by IANA above)</t> | ||||
| <t>Name: permutation 1</t> | ||||
| <t>Label: TBD (Value to be assigned by IANA)</t> | ||||
| <t>CBOR Type: array (of uint)</t> | ||||
| <t>Description: Permutation associated with matrix 1</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | ||||
| <section title="WalnutDSA Parameter: matrix 2"> | ||||
| <t>The new entry matrix 2 in the "COSE Key Type Parameters" registry | ||||
| has the following columns:</t> | ||||
| <t><list> | ||||
| <t>Key Type: TBD2 (Value assigned by IANA above)</t> | ||||
| <t>Name: matrix 2</t> | ||||
| <t>Label: TBD (Value to be assigned by IANA)</t> | ||||
| <t>CBOR Type: array (of array of uint)</t> | ||||
| <t>Description: NxN Matrix of enties in F_q in column-major form</t> | ||||
| <t>Reference: This document (Number to be assigned by RFC Editor)</t> | ||||
| </list></t> | ||||
| </section> | ||||
| </section> | </section> | |||
| <section numbered="true" toc="default"> | ||||
| <name>COSE Key Type Parameters Registry Entries</name> | ||||
| <t>The following sections detail the additions to the "COSE Key Type Par | ||||
| ameters" registry.</t> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>WalnutDSA Parameter: N</name> | ||||
| <t>The new entry, N, has been registered in the "COSE Key Type Paramet | ||||
| ers" registry | ||||
| as follows:</t> | ||||
| </section> | <dl> | |||
| </middle> | <dt>Key Type: | |||
| </dt> | ||||
| <dd>6 | ||||
| </dd> | ||||
| <!-- *****BACK MATTER ***** --> | <dt>Name: | |||
| </dt> | ||||
| <dd>N | ||||
| </dd> | ||||
| <back> | <dt>Label: | |||
| <references title="Normative References"> | </dt> | |||
| <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC. | <dd>-1 | |||
| 2119.xml"?--> | </dd> | |||
| &RFC2119; | ||||
| &RFC8174; | <dt>CBOR Type: | |||
| </dt> | ||||
| <dd>uint | ||||
| </dd> | ||||
| &RFC8152; | <dt>Description: | |||
| </dt> | ||||
| <dd>Group and Matrix (NxN) size | ||||
| </dd> | ||||
| <reference anchor="SHA2"> | <dt>Reference: | |||
| <front> | </dt> | |||
| <title>FIPS Publication 180-3: Secure Hash Standard</title> | <dd>RFC 9021 | |||
| <author initials="" surname="" fullname=""> | </dd> | |||
| <organization>National Institute of Standards and Technology (NIST)< | ||||
| /organization> | ||||
| </author> | ||||
| <date month="October" year="2008" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="WALNUTDSA" target="https://doi.org/10.1080/23799927.202 | </dl> | |||
| 0.1831613"> | ||||
| <front> | ||||
| <title>WalnutDSA(TM): A group-theoretic digital signature algorithm</t | ||||
| itle> | ||||
| <author initials="I.A." surname="Anshel" fullname="Iris Anshel"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="D.A." surname="Atkins" fullname="Derek Atkins"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="D.G." surname="Goldfeld" fullname="Dorian Goldfeld"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="P.G." surname="Gunnells" fullname="Paul E Gunnells"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="November" year="2020" /> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| <references title="Informative References"> | </section> | |||
| <!-- Here we use entities that we defined at the beginning. --> | <section numbered="true" toc="default"> | |||
| <!-- A reference written by by an organization not a person. --> | <name>WalnutDSA Parameter: q</name> | |||
| <reference anchor="WALNUTSPEC" target="https://csrc.nist.gov/projects/post | <t>The new entry, q, has been registered in the "COSE Key Type Paramet | |||
| -quantum-cryptography/round-1-submissions"> | ers" registry | |||
| <front> | as follows:</t> | |||
| <title>The Walnut Digital Signature Algorithm Specification</title> | ||||
| <author initials="I.A." surname="Anshel" fullname="Iris Anshel"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="D.A." surname="Atkins" fullname="Derek Atkins"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="D.G." surname="Goldfeld" fullname="Dorian Goldfeld"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="P.G." surname="Gunnells" fullname="Paul E Gunnells"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="November" year="2018" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="GTC" target="https://www.crcpress.com/Group-Theoretic-C | <dl> | |||
| ryptography/Vasco-Steinwandt/p/book/9781584888369"> | ||||
| <front> | ||||
| <title>Group Theoretic Cryptography</title> | ||||
| <author initials="M.I.G.V." surname="Vasco" fullname="Maria Isabel Gon | ||||
| zalez Vasco"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="R.S." surname="Steinwandt" fullname="Rainer Steinwan | ||||
| dt"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="April" year="2015" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="WalnutDSAAnalysis" target="https://eprint.iacr.org/2019 | <dt>Key Type: | |||
| /472"> | </dt> | |||
| <front> | <dd>6 | |||
| <title>Defeating the Hart et al, Beullens-Blackburn, Kotov-Menshov-Ush | </dd> | |||
| akov, and Merz-Petit Attacks on WalnutDSA(TM)</title> | ||||
| <author initials="I.A." surname="Anshel" fullname="Iris Anshel"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="D.A." surname="Atkins" fullname="Derek Atkins"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="D.G." surname="Goldfeld" fullname="Dorian Goldfeld"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="P.G." surname="Gunnells" fullname="Paul E Gunnells"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="May" year="2019" /> | ||||
| </front> | ||||
| </reference> | ||||
| &RFC4086; | <dt>Name: | |||
| </dt> | ||||
| <dd>q | ||||
| </dd> | ||||
| <reference anchor="BH2013" target="https://media.blackhat.com/us-13/us-13- | <dt>Label: | |||
| Stamos-The-Factoring-Dead.pdf"> | </dt> | |||
| <front> | <dd>-2 | |||
| <title>The Factoring Dead: Preparing for the Cryptopocalypse</title> | </dd> | |||
| <author initials="T.P." surname="Ptacek" fullname=""> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="J.R." surname="Ritter" fullname=""> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="J.S." surname="Samuel" fullname=""> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials="A.S." surname="Stamos" fullname=""> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="August" year="2013" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="NAS2019" target="http://dx.doi.org/10.17226/25196"> | <dt>CBOR Type: | |||
| <front> | </dt> | |||
| <title>Quantum Computing: Progress and Prospects</title> | <dd>uint | |||
| <author > | </dd> | |||
| <organization>National Academies of Sciences, Engineering, and Medic | ||||
| ine</organization> | ||||
| </author> | ||||
| <date year="2019" /> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="PQC" target="http://www.pqcrypto.org/www.springer.com/c | <dt>Description: | |||
| da/content/document/cda_downloaddocument/9783540887010-c1.pdf"> | </dt> | |||
| <front> | <dd>Finite field F_q | |||
| <title>Introduction to post-quantum cryptography</title> | </dd> | |||
| <author initials="D.B." surname="Bernstein"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month="" year="2009" /> | ||||
| </front> | ||||
| </reference> | ||||
| <!-- | <dt>Reference: | |||
| <reference anchor="S1997" target="http://dx.doi.org/10.1137/S0097539795293 | </dt> | |||
| 172"> | <dd>RFC 9021 | |||
| <front> | </dd> | |||
| <title>Polynomial-time algorithms for prime factorization and discrete | ||||
| logarithms on a quantum computer</title> | ||||
| <author initials="P.S." surname="Shor" fullname="Peter Shor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <date year="1997" /> | ||||
| </front> | ||||
| <seriesInfo name="SIAM Journal on Computing 26(5)," value="1484-26"/> | ||||
| </reference> | ||||
| --> | ||||
| </references> | </dl> | |||
| <section anchor="Acknowledgments" title="Acknowledgments"> | </section> | |||
| <t>A big thank you to Russ Housley for his input on the concepts and text | <section numbered="true" toc="default"> | |||
| of this document.</t> | <name>WalnutDSA Parameter: t-values</name> | |||
| <t>The new entry, t-values, has been registered in the "COSE Key Type | ||||
| Parameters" registry | ||||
| as follows:</t> | ||||
| <dl> | ||||
| <dt>Key Type: | ||||
| </dt> | ||||
| <dd>6 | ||||
| </dd> | ||||
| <dt>Name: | ||||
| </dt> | ||||
| <dd>t-values | ||||
| </dd> | ||||
| <dt>Label: | ||||
| </dt> | ||||
| <dd>-3 | ||||
| </dd> | ||||
| <dt>CBOR Type: | ||||
| </dt> | ||||
| <dd>array (of uint) | ||||
| </dd> | ||||
| <dt>Description: | ||||
| </dt> | ||||
| <dd>List of T-values, entries in F_q | ||||
| </dd> | ||||
| <dt>Reference: | ||||
| </dt> | ||||
| <dd>RFC 9021 | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>WalnutDSA Parameter: matrix 1</name> | ||||
| <t>The new entry, matrix 1, has been registered in the "COSE Key Type | ||||
| Parameters" registry | ||||
| as follows:</t> | ||||
| <dl> | ||||
| <dt>Key Type: | ||||
| </dt> | ||||
| <dd>6 | ||||
| </dd> | ||||
| <dt>Name: | ||||
| </dt> | ||||
| <dd>matrix 1 | ||||
| </dd> | ||||
| <dt>Label: | ||||
| </dt> | ||||
| <dd>-4 | ||||
| </dd> | ||||
| <dt>CBOR Type: | ||||
| </dt> | ||||
| <dd>array (of array of uint) | ||||
| </dd> | ||||
| <dt>Description: | ||||
| </dt> | ||||
| <dd>NxN Matrix of entries in F_q in column-major form | ||||
| </dd> | ||||
| <dt>Reference: | ||||
| </dt> | ||||
| <dd>RFC 9021 | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>WalnutDSA Parameter: permutation 1</name> | ||||
| <t>The new entry, permutation 1, has been registered in the "COSE Key | ||||
| Type Parameters" registry | ||||
| as follows:</t> | ||||
| <dl> | ||||
| <dt>Key Type: | ||||
| </dt> | ||||
| <dd>6 | ||||
| </dd> | ||||
| <dt>Name: | ||||
| </dt> | ||||
| <dd>permutation 1 | ||||
| </dd> | ||||
| <dt>Label: | ||||
| </dt> | ||||
| <dd>-5 | ||||
| </dd> | ||||
| <dt>CBOR Type: | ||||
| </dt> | ||||
| <dd>array (of uint) | ||||
| </dd> | ||||
| <dt>Description: | ||||
| </dt> | ||||
| <dd>Permutation associated with matrix 1 | ||||
| </dd> | ||||
| <dt>Reference: | ||||
| </dt> | ||||
| <dd>RFC 9021 | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| <section numbered="true" toc="default"> | ||||
| <name>WalnutDSA Parameter: matrix 2</name> | ||||
| <t>The new entry, matrix 2, has been registered in the "COSE Key Type | ||||
| Parameters" registry | ||||
| as follows:</t> | ||||
| <dl> | ||||
| <dt>Key Type: | ||||
| </dt> | ||||
| <dd>6 | ||||
| </dd> | ||||
| <dt>Name: | ||||
| </dt> | ||||
| <dd>matrix 2 | ||||
| </dd> | ||||
| <dt>Label: | ||||
| </dt> | ||||
| <dd>-6 | ||||
| </dd> | ||||
| <dt>CBOR Type: | ||||
| </dt> | ||||
| <dd>array (of array of uint) | ||||
| </dd> | ||||
| <dt>Description: | ||||
| </dt> | ||||
| <dd>NxN Matrix of entries in F_q in column-major form | ||||
| </dd> | ||||
| <dt>Reference: | ||||
| </dt> | ||||
| <dd>RFC 9021 | ||||
| </dd> | ||||
| </dl> | ||||
| </section> | ||||
| </section> | ||||
| </section> | </section> | |||
| </middle> | ||||
| <!-- | <back> | |||
| <section anchor="app-additional" title="Additional Stuff"> | <references> | |||
| <t>This becomes an Appendix.</t> | <name>References</name> | |||
| </section> | <references> | |||
| --> | <name>Normative References</name> | |||
| <!-- Change Log | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
| FC.2119.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8174.xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.8152.xml"/> | ||||
| v00 2019-03-20 DA Initial version | <reference anchor="SHA2"> | |||
| <front> | ||||
| <title>Secure Hash Standard (SHS)</title> | ||||
| <author initials="" surname="" fullname=""> | ||||
| <organization>National Institute of Standards and Technology (NIST | ||||
| )</organization> | ||||
| </author> | ||||
| <date month="August" year="2015"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.6028/NIST.FIPS.180-4"/> | ||||
| </reference> | ||||
| v01 2019-11-04 DA Convert to Informational | <reference anchor="WALNUTDSA"> | |||
| Edits to be more in line with the Hash-Sig draft | <front> | |||
| <title>WalnutDSA(TM): A group theoretic digital signature algorithm< | ||||
| /title> | ||||
| <author initials="I" surname="Anshel" fullname="Iris Anshel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Atkins" fullname="Derek Atkins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Goldfeld" fullname="Dorian Goldfeld"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Gunnells" fullname="Paul E. Gunnells"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="November" year="2020"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.1080/23799927.2020.1831613"/> | ||||
| </reference> | ||||
| v02 2019-12-20 DA Incorporated suggestions from reviews (ISE, etc) | </references> | |||
| <references> | ||||
| <name>Informative References</name> | ||||
| v03 2020-06-15 DA Refresh document | <reference anchor="WALNUTSPEC" target="https://csrc.nist.gov/projects/post | |||
| -quantum-cryptography/round-1-submissions"> | ||||
| <front> | ||||
| <title>The Walnut Digital Signature Algorithm Specification</title> | ||||
| <author initials="I" surname="Anshel" fullname="Iris Anshel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Atkins" fullname="Derek Atkins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Goldfeld" fullname="Dorian Goldfeld"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Gunnells" fullname="Paul Gunnells"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="November" year="2018"/> | ||||
| </front> | ||||
| <refcontent>Post-Quantum Cryptography</refcontent> | ||||
| </reference> | ||||
| v04 2020-07-08 DA Suggested changes from Adrian | <reference anchor="GTC" target="https://www.crcpress.com/Group-Theoretic | |||
| -Cryptography/Vasco-Steinwandt/p/book/9781584888369"> | ||||
| <front> | ||||
| <title>Group Theoretic Cryptography</title> | ||||
| <author initials="M" surname="Vasco" fullname="Maria Isabel Gonzalez | ||||
| Vasco"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="R" surname="Steinwandt" fullname="Rainer Steinwand | ||||
| t"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="April" year="2015"/> | ||||
| </front> | ||||
| <seriesInfo name="ISBN" value="9781584888369"/> | ||||
| </reference> | ||||
| v05 2020-11-05 DA More suggestions from Adrian and fixing references | <reference anchor="WalnutDSAAnalysis" target="https://eprint.iacr.org/20 | |||
| 19/472"> | ||||
| <front> | ||||
| <title>Defeating the Hart et al, Beullens-Blackburn, Kotov-Menshov-U | ||||
| shakov, and Merz-Petit Attacks on WalnutDSA(TM)</title> | ||||
| <author initials="I" surname="Anshel" fullname="Iris Anshel"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Atkins" fullname="Derek Atkins"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="D" surname="Goldfeld" fullname="Dorian Goldfeld"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="P" surname="Gunnells" fullname="Paul E Gunnells"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="May" year="2019"/> | ||||
| </front> | ||||
| </reference> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
| FC.4086.xml"/> | ||||
| <reference anchor="BH2013" target="https://www.slideshare.net/astamos/bh | ||||
| -slides"> | ||||
| <front> | ||||
| <title>The Factoring Dead: Preparing for the Cryptopocalypse</title> | ||||
| <author initials="T" surname="Ptacek" fullname="Thomas Ptacek"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J" surname="Ritter" fullname="Tom Ritter, "> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="J" surname="Samuel" fullname="Javed Samue"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="A" surname="Stamos" fullname="Alex Stamos"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="August" year="2013"/> | ||||
| </front> | ||||
| </reference> | ||||
| <reference anchor="NAS2019"> | ||||
| <front> | ||||
| <title>Quantum Computing: Progress and Prospects</title> | ||||
| <author> | ||||
| <organization>National Academies of Sciences, Engineering, and Med | ||||
| icine</organization> | ||||
| </author> | ||||
| <date year="2019"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.17226/25196"/> | ||||
| </reference> | ||||
| <reference anchor="PQC"> | ||||
| <front> | ||||
| <title>Introduction to post-quantum cryptography</title> | ||||
| <author initials="D" surname="Bernstein" fullname="Daniel J. Bernste | ||||
| in"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date year="2009"/> | ||||
| </front> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-540-88702-7"/> | ||||
| </reference> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="Acknowledgments" numbered="false" toc="default"> | ||||
| <name>Acknowledgments</name> | ||||
| <t>A big thank you to <contact fullname="Russ Housley"/> for his input | ||||
| on the concepts and text of this document.</t> | ||||
| </section> | ||||
| v06 2021-01-26 DA Changes from IESG | ||||
| --> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 99 change blocks. | ||||
| 536 lines changed or deleted | 625 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||