<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-turner-lamps-fn-dsa-certificates-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="FN-DSA in Certificates">Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Fast-Fourier Transform over NTRU-Lattice-Based Digital Signature Algorithm (FN-DSA)</title>
    <seriesInfo name="Internet-Draft" value="draft-turner-lamps-fn-dsa-certificates-00"/>
    <author initials="J." surname="Massimo" fullname="Jake Massimo">
      <organization>AWS</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>jakemas@amazon.com</email>
      </address>
    </author>
    <author initials="P." surname="Kampanakis" fullname="Panos Kampanakis">
      <organization>AWS</organization>
      <address>
        <postal>
          <country>US</country>
        </postal>
        <email>kpanos@amazon.com</email>
      </address>
    </author>
    <author initials="S." surname="Turner" fullname="Sean Turner">
      <organization>sn3rd</organization>
      <address>
        <email>sean@sn3rd.com</email>
      </address>
    </author>
    <author initials="B. E." surname="Westerbaan" fullname="Bas Westerbaan">
      <organization>Cloudflare</organization>
      <address>
        <email>bas@cloudflare.com</email>
      </address>
    </author>
    <date year="2025" month="November" day="04"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>FN-DSA Falcon Certificate X.509 PKIX</keyword>
    <abstract>
      <?line 128?>

<t>Digital signatures are used within X.509 certificates and Certificate
Revocation Lists (CRLs), and to sign messages. This document specifies
the conventions for using, the forthcoming, FIPS 206, the Fast-Fourier
Transform over NTRU-Lattice-Based Digital Signature Algorithm (FN-DSA),
in Internet X.509 certificates and CRLs.  The conventions for the
associated signatures, subject public keys, and private key are also
described.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://seanturner.github.io/fn-dsa-certificates/draft-turner-lamps-fn-dsa-certificates.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-turner-lamps-fn-dsa-certificates/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/seanturner/fn-dsa-certificates"/>.</t>
    </note>
  </front>
  <middle>
    <?line 138?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Fast-Fourier Transform over NTRU-Lattice-Based Digital Signature
Algorithm (FN-DSA) is a quantum-resistant digital signature scheme
standardized by the US National Institute of Standards and Technology (NIST)
PQC project <xref target="NIST-PQC"/> in, the forthcoming, <xref target="FIPS206"/>. This document
specifies the use of the FN-DSA in Public Key Infrastructure X.509 (PKIX)
certificates and Certificate Revocation Lists (CRLs) at two security
levels: FN-DSA-512 and FN-DSA-1024.</t>
      <t>Prior to standardization, FN-DSA was known as Falcon.  FN-DSA and
Falcon are not compatible.</t>
      <t><xref target="FIPS206"/> defines two variants of FL-DSA: pure and pre-hash. Only
the former is specified in this document. See <xref target="opcons"/> for the
rationale. The pure variant of FN-DSA supports the typical pre-hash
flow.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="oids">
      <name>Identifiers</name>
      <t>The <tt>AlgorithmIdentifier</tt> type is defined in <xref target="RFC5912"/> as follows:</t>
      <artwork><![CDATA[
    AlgorithmIdentifier{ALGORITHM-TYPE, ALGORITHM-TYPE:AlgorithmSet} ::=
      SEQUENCE {
        algorithm   ALGORITHM-TYPE.&id({AlgorithmSet}),
        parameters  ALGORITHM-TYPE.
                      &Params({AlgorithmSet}{@algorithm}) OPTIONAL
     }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5912"/> and is compatible with
the 2021 ASN.1 syntax <xref target="X680"/>. See <xref target="RFC5280"/> for the 1988 ASN.1
syntax.</t>
      </aside>
      <t>The fields in AlgorithmIdentifier have the following meanings:</t>
      <ul spacing="normal">
        <li>
          <t><tt>algorithm</tt> identifies the cryptographic algorithm with an object
identifier (OID).</t>
        </li>
        <li>
          <t><tt>parameters</tt>, which are optional, are the associated parameters for the
algorithm identifier in the algorithm field.</t>
        </li>
      </ul>
      <t>The NIST-registered OIDs <xref target="CSOR"/> are:</t>
      <aside>
        <t>NOTE: The OIDS, once registered by NIST, will be included below.</t>
      </aside>
      <artwork><![CDATA[
id-fn-dsa-512 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
            country(16) us(840) organization(1) gov(101) csor(3)
            nistAlgorithm(4) sigAlgs(3) id-fn-dsa-512(TBD) }

id-fn-dsa-1024 OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
            country(16) us(840) organization(1) gov(101) csor(3)
            nistAlgorithm(4) sigAlgs(3) id-fn-dsa-1024(TBD) }
]]></artwork>
      <t>The contents of the <tt>parameters</tt> component for each <tt>algorithm</tt> <bcp14>MUST</bcp14> be
absent.</t>
    </section>
    <section anchor="fn-dsa-signatures-in-pkix">
      <name>FN-DSA Signatures in PKIX</name>
      <t>FN-DSA is a lattice-based digital signature scheme based on the GPV
hash-and-sign framework <xref target="GPV08"/>, instantiated over NTRU (N-th Degree
Truncated Polynomial Ring Unit) lattices with Fast Fourier sampling
techniques <xref target="DP16"/>.  The security is based upon the hardness of the
underlying FN-DSA is the SIS (Short Integer Solution) problem over
NTRU lattices.  FN-DSA provides two parameter sets for the NIST PQC
security categories 512 and 1024.</t>
      <t>Signatures are used in a number of different ASN.1 structures. As shown
in the ASN.1 equivalent to that in <xref target="RFC5280"/> below, in an X.509
certificate, a signature is encoded with an algorithm identifier in the
<tt>signatureAlgorithm</tt> attribute and a <tt>signatureValue</tt> attribute that
contains the actual signature.</t>
      <artwork><![CDATA[
  Certificate  ::=  SIGNED{ TBSCertificate }

  SIGNED{ToBeSigned} ::= SEQUENCE {
     toBeSigned           ToBeSigned,
     algorithmIdentifier  SEQUENCE {
         algorithm        SIGNATURE-ALGORITHM.
                            &id({SignatureAlgorithms}),
         parameters       SIGNATURE-ALGORITHM.
                            &Params({SignatureAlgorithms}
                              {@algorithmIdentifier.algorithm})
                                OPTIONAL
     },
     signature BIT STRING (CONTAINING SIGNATURE-ALGORITHM.&Value(
                              {SignatureAlgorithms}
                              {@algorithmIdentifier.algorithm}))
  }
]]></artwork>
      <t>Signatures are also used in the CRL list ASN.1, the representation
below is equivalent to that in <xref target="RFC5280"/>. In an X.509 CRL, a
signature is encoded with an algorithm identifier in the
<tt>signatureAlgorithm</tt> attribute and a <tt>signatureValue</tt> attribute
that contains the actual signature.</t>
      <artwork><![CDATA[
   CertificateList  ::=  SIGNED{ TBSCertList }
]]></artwork>
      <t>The following <tt>SIGNATURE-ALGORITHM</tt> ASN.1 classes are for FN-DSA-512
and FN-DSA-1024:</t>
      <artwork><![CDATA[
  sa-fn-dsa-512 SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-fn-dsa-512
    PARAMS ARE absent
    PUBLIC-KEYS { pk-fn-dsa-512 }
    SMIME-CAPS { IDENTIFIED BY id-fn-dsa-512 }
    }

  sa-fn-dsa-1024 SIGNATURE-ALGORITHM ::= {
    IDENTIFIER id-fn-dsa-1024
    PARAMS ARE absent
    PUBLIC-KEYS { pk-fn-dsa-1024 }
    SMIME-CAPS { IDENTIFIED BY id-fn-dsa-1024 }
    }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5912"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>.</t>
      </aside>
      <t>The identifiers defined in <xref target="oids"/> can be used as the
<tt>AlgorithmIdentifier</tt> in the <tt>signatureAlgorithm</tt> field in the sequence
<tt>Certificate</tt>/<tt>CertificateList</tt> and the <tt>signature</tt> field in the sequence
<tt>TBSCertificate</tt>/<tt>TBSCertList</tt> in certificates and CRLs, respectively,
<xref target="RFC5280"/>. The <tt>parameters</tt> of these signature algorithms <bcp14>MUST</bcp14> be
absent, as explained in <xref target="oids"/>. That is, the <tt>AlgorithmIdentifier</tt>
        <bcp14>SHALL</bcp14> be a <tt>SEQUENCE</tt> of one component, the OID id-fn-dsa-*, where *
is 512 or 1024 -- see <xref target="oids"/>.</t>
      <aside>
        <t>TODO: Insert reference for context string (assuming there is one).</t>
      </aside>
      <t>The <tt>signatureValue</tt> field contains the corresponding FN-DSA signature
computed upon the ASN.1 DER-encoded <tt>TBSCertificate</tt>/<tt>TBSCertList</tt>
        <xref target="RFC5280"/>.  The optional context string (ctx) parameter
as defined in Section X of <xref target="FIPS206"/> is left to its default value:
the empty string.</t>
      <t>Conforming Certification Authority (CA) implementations <bcp14>MUST</bcp14> specify
the algorithms explicitly by using the OIDs specified in <xref target="oids"/> when
encoding FN-DSA signatures in certificates and CRLs. Conforming client
implementations that process certificates and CRLs using FN-DSA <bcp14>MUST</bcp14>
recognize the corresponding OIDs. Encoding rules for FN-DSA signature
values are specified in <xref target="oids"/>.</t>
    </section>
    <section anchor="FN-DSA-PublicKey">
      <name>FN-DSA Public Keys in PKIX</name>
      <t>In the X.509 certificate, the <tt>subjectPublicKeyInfo</tt> field has the
<tt>SubjectPublicKeyInfo</tt> type, which has the following ASN.1 syntax:</t>
      <artwork><![CDATA[
  SubjectPublicKeyInfo {PUBLIC-KEY: IOSet} ::= SEQUENCE {
      algorithm        AlgorithmIdentifier {PUBLIC-KEY, {IOSet}},
      subjectPublicKey BIT STRING
  }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5912"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>. See <xref target="RFC5280"/> for the 1988 ASN.1 syntax.</t>
      </aside>
      <t>The fields in <tt>SubjectPublicKeyInfo</tt> have the following meaning:</t>
      <ul spacing="normal">
        <li>
          <t><tt>algorithm</tt> is the algorithm identifier and parameters for the
public key (see above).</t>
        </li>
        <li>
          <t><tt>subjectPublicKey</tt> contains the public key.</t>
        </li>
      </ul>
      <aside>
        <t>TODO: Include reference to FIPS's section.</t>
      </aside>
      <t>Section XX of <xref target="FIPS206"/> defines the raw byte string
encoding of an FN-DSA public key. When used in a <tt>SubjectPublicKeyInfo</tt>
type, the <tt>subjectPublicKey BIT STRING</tt> contains this raw byte string
encoding of the public key. When an FN-DSA public key appears outside
of a <tt>SubjectPublicKeyInfo</tt> type in an environment that uses ASN.1
encoding, it could be encoded as an <tt>OCTET STRING</tt> by using the
<tt>FN-DSA-512-PublicKey</tt> and <tt>FN-DSA-1024-PublicKey</tt> types corresponding
to the correct key size defined below.</t>
      <t>The <tt>PUBLIC-KEY</tt> ASN.1 types for FN-DSA are defined here:</t>
      <aside>
        <t>TODO: Include key sizes below.</t>
      </aside>
      <artwork><![CDATA[
  pk-fn-dsa-512 PUBLIC-KEY ::= {
    IDENTIFIER id-fn-dsa-512
    -- KEY no ASN.1 wrapping --
    CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
    -- PRIVATE-KEY no ASN.1 wrapping; YYYY octets --
  }

  pk-fn-dsa-87 PUBLIC-KEY ::= {
    IDENTIFIER id-fn-dsa-1024
    -- KEY no ASN.1 wrapping --
    CERT-KEY-USAGE
      { digitalSignature, nonRepudiation, keyCertSign, cRLSign }
    -- PRIVATE-KEY no ASN.1 wrapping; YYYY octets --
  }

  FN-DSA-512-PublicKey ::= OCTET STRING (SIZE (897))

  FN-DSA-1024-PublicKey ::= OCTET STRING (SIZE (1793))

  FN-DSA-PrivateKey ::= OCTET STRING (SIZE (32))
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5912"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>.</t>
      </aside>
      <t><xref target="RFC5958"/> specifies the Asymmetric Key Package's <tt>OneAsymmetricKey</tt>
type for encoding asymmetric keypairs. When an FN-DSA private key or
keypair is encoded as a <tt>OneAsymmetricKey</tt>, it follows the description
in <xref target="priv-key"/>.</t>
      <t>When the FN-DSA private key appears outside of an Asymmetric Key Package
in an environment that uses ASN.1 encoding, it can be encoded using
<tt>FN-DSA-PrivateKey</tt>.</t>
      <t><xref target="examples"/> contains example FN-DSA public keys encoded using the
textual encoding defined in <xref target="RFC7468"/>.</t>
    </section>
    <section anchor="key-usage-bits">
      <name>Key Usage Bits</name>
      <t>The intended application for the key is indicated in the <tt>keyUsage</tt>
certificate extension; see <xref section="4.2.1.3" sectionFormat="of" target="RFC5280"/>. If the
<tt>keyUsage</tt> extension is present in a certificate that includes <tt>id-fn-dsa-*</tt>
(where * is 512 or 1024 -- see <xref target="oids"/>) in the <tt>SubjectPublicKeyInfo</tt>,
then the subject public key can only be used for verifying digital
signatures on certificates or CRLs, or those used in an entity authentication
service, a data origin authentication service, an integrity service, and/or
a non-repudiation service that protects against the signing entity falsely
denying some action. This means that the <tt>keyUsage</tt> extension <bcp14>MUST</bcp14> have at
least one of the following bits set:</t>
      <ul spacing="normal">
        <li>
          <t><tt>digitalSignature</tt></t>
        </li>
        <li>
          <t><tt>nonRepudiation</tt></t>
        </li>
        <li>
          <t><tt>keyCertSign</tt></t>
        </li>
        <li>
          <t><tt>cRLSign</tt></t>
        </li>
      </ul>
      <t>FN-DSA subject public keys cannot be used to establish keys or encrypt data, so the
<tt>keyUsage</tt> extension <bcp14>MUST NOT</bcp14> have any of following bits set:</t>
      <ul spacing="normal">
        <li>
          <t><tt>keyEncipherment</tt></t>
        </li>
        <li>
          <t><tt>dataEncipherment</tt></t>
        </li>
        <li>
          <t><tt>keyAgreement</tt></t>
        </li>
        <li>
          <t><tt>encipherOnly</tt></t>
        </li>
        <li>
          <t><tt>decipherOnly</tt></t>
        </li>
      </ul>
      <t>Requirements about the <tt>keyUsage</tt> extension bits defined in <xref target="RFC5280"/>
still apply.</t>
    </section>
    <section anchor="priv-key">
      <name>Private Key Format</name>
      <aside>
        <t>NOTE: Hope the following is true!</t>
      </aside>
      <t><xref target="FIPS206"/> specifies an FN-DSA private key as a 32-octet seed (ξ)
(GREEK SMALL LETTER XI, U+03BE).</t>
      <t>"Asymmetric Key Packages" <xref target="RFC5958"/> specifies how to encode a private
key in a structure that both identifies what algorithm the private key
is for and allows for the public key and additional attributes about the
key to be included as well. For illustration, the ASN.1 structure
<tt>OneAsymmetricKey</tt> is replicated below.</t>
      <artwork><![CDATA[
  OneAsymmetricKey ::= SEQUENCE {
    version                  Version,
    privateKeyAlgorithm      SEQUENCE {
    algorithm                PUBLIC-KEY.&id({PublicKeySet}),
    parameters               PUBLIC-KEY.&Params({PublicKeySet}
                               {@privateKeyAlgorithm.algorithm})
                                  OPTIONAL}
    privateKey               OCTET STRING (CONTAINING
                               PUBLIC-KEY.&PrivateKey({PublicKeySet}
                                 {@privateKeyAlgorithm.algorithm})),
    attributes           [0] Attributes OPTIONAL,
    ...,
    [[2: publicKey       [1] BIT STRING (CONTAINING
                               PUBLIC-KEY.&Params({PublicKeySet}
                                 {@privateKeyAlgorithm.algorithm})
                                 OPTIONAL ]],
    ...
  }
]]></artwork>
      <aside>
        <t>NOTE: The above syntax is from <xref target="RFC5958"/> and is compatible with the
  2021 ASN.1 syntax <xref target="X680"/>.</t>
      </aside>
      <t>For FN-DSA private keys, the <tt>privateKey</tt> field in <tt>OneAsymmetricKey</tt>
contains raw octet string encoding of the 32-octet seed.</t>
      <t><xref target="examples"/> contains example FN-DSA private keys encoded using the
textual encoding defined in <xref target="RFC7468"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>For the ASN.1 module in <xref target="asn1"/>, IANA [is requested/has assigned]
the following object identifier (OID) in the "SMI Security for PKIX
Module Identifier" registry (1.3.6.1.5.5.7.0):</t>
      <table anchor="iana-reg">
        <name>Object Identifier Assignments</name>
        <thead>
          <tr>
            <th align="left">Decimal</th>
            <th align="left">Description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD</td>
            <td align="left">id-mod-x509-fn-dsa-2026</td>
            <td align="left">This RFC</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="opcons">
      <name>Operational Considerations</name>
      <section anchor="sec-disallow-hash">
        <name>Rationale for Disallowing HashFN-DSA</name>
        <aside>
          <t>TODO: Get section reference for HashFN-DSA.</t>
        </aside>
        <t>The HashFN-DSA mode defined in Section X.X of <xref target="FIPS206"/> <bcp14>MUST NOT</bcp14> be
used; in other words, public keys identified by
<tt>id-hash-fn-dsa-512-with-sha512</tt> and <tt>id-hash-fn-dsa-1024-with-sha512</tt>
          <bcp14>MUST NOT</bcp14> be in X.509 certificates used for
CRLs, OCSP, certificate issuance, and related PKIX protocols. This
restriction is primarily to increase interoperability.</t>
        <t>FN-DSA and HashFN-DSA are incompatible algorithms that require
different <tt>Verify()</tt> routines. This introduces the complexity of
informing the verifier whether to use <tt>FN-DSA.Verify()</tt> or
<tt>HashFN-DSA.Verify()</tt>. Additionally, since
the same OIDs are used to identify the FN-DSA
public keys and FN-DSA signature algorithms, an implementation would
need to commit a given public key to be either of type <tt>FN-DSA</tt> or
<tt>HashFN-DSA</tt> at the time of certificate creation. This is anticipated
to cause operational issues in contexts where the operator does not
know whether the key will need to produce pure or pre-hashed signatures
at key-generation time.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <aside>
        <t>TODO: Most copied from RFC 9881. Dropped the bit about Gaussian sampling.
  Also, FN-DSA is only going to support randomized sigs, I figured we
  could use the text about why they didn't pick deterministic to
  introduce floating-point issues.</t>
      </aside>
      <t>The Security Considerations section of <xref target="RFC5280"/> applies to this
specification as well.</t>
      <aside>
        <t>TODO: Verify EUF-CMA. Get #s for chosen messages</t>
      </aside>
      <t>The FN-DSA signature scheme is unforgeable under chosen message
attacks (EUF-CMA). For the purpose of estimating security strength, it has
been assumed that the attacker has access to signatures for no more
than 2^{XX} chosen messages.</t>
      <aside>
        <t>TODO: Get section reference.</t>
      </aside>
      <t>FN-DSA depends on high quality random numbers that are suitable for
use in cryptography.  The use of inadequate pseudo-random number
generators (PRNGs) to generate such values can significantly undermine
various security properties. For instance, using an inadequate PRNG
for key generation, might allow an attacker to efficiently recover
the private key by trying a small set of possibilities, rather than
brute force search the whole keyspace.  The generation of random
numbers of a sufficient level of quality for use in cryptography
is difficult; see Section X.X.X of <xref target="FIPS206"/> for some additional
information.</t>
      <t>In the design of FN-DSA, care has been taken to make side-channel
resilience easier to achieve. Implementations must still take great care
not to leak information via various side channels. While deliberate
design decisions such as these can help to deliver a greater ease
of secure implementation - particularly against side-channel
attacks - it does not necessarily provide resistance to more
powerful attacks such as differential power analysis. Some amount
of side-channel leakage has been demonstrated in parts of the
signing algorithm (specifically the bit-unpacking function), from
which a demonstration of key recovery has been made over a large
sample of signatures. Masking countermeasures exist for
FN-DSA, but come with a performance overhead.</t>
      <aside>
        <t>TODO: Expand the following to also talk about floating point
  implementation challenges.</t>
      </aside>
      <t>FN-DSA only offers randomized signing. Deterministic signing could
be dangerous as mistakes in floating-point implementation could cause
different signatures for same hash.</t>
      <aside>
        <t>TODO: Get reference.</t>
      </aside>
      <t>A security property also associated with digital
signatures is non-repudiation. Non-repudiation refers to the
assurance that the owner of a signature key pair that was
capable of generating an existing signature corresponding to
certain data cannot convincingly deny having signed the data,
unless its private key was compromised.
The digital signature scheme FN-DSA possess three security
properties beyond unforgeability, that are associated with
non-repudiation. These are exclusive ownership, message-bound
signatures, and non-resignability. These properties are based
tightly on the assumed collision resistance of the hash
function used (in this case SHAKE-256). A full discussion
of these properties in FN-DSA can be found at XXXX.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="FIPS206" target="https://www.nist.gov/news-events/news/2024/08/nist-releases-first-3-finalized-post-quantum-encryption-standards">
          <front>
            <title>Fast Fourier Transform over NTRU-Lattice-Based Digital Signature Algorithm</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="X680" target="https://www.itu.int/rec/T-REC-X.680">
          <front>
            <title>Information Technology -- Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.680"/>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <reference anchor="X690" target="https://www.itu.int/rec/T-REC-X.690">
          <front>
            <title>Information Technology -- ASN.1: ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
          <seriesInfo name="ITU-T Recommendation" value="X.690"/>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
        <reference anchor="CSOR" target="https://csrc.nist.gov/projects/computer-security-objects-register/algorithm-registration">
          <front>
            <title>Computer Security Objects Register</title>
            <author initials="" surname="NIST" fullname="National Institute of Standards and Technology">
              <organization/>
            </author>
            <date year="2024" month="August" day="20"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5958">
          <front>
            <title>Asymmetric Key Packages</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>This document defines the syntax for private-key information and a content type for it. Private-key information includes a private key for a specified public-key algorithm and a set of attributes. The Cryptographic Message Syntax (CMS), as defined in RFC 5652, can be used to digitally sign, digest, authenticate, or encrypt the asymmetric key format content type. This document obsoletes RFC 5208. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5958"/>
          <seriesInfo name="DOI" value="10.17487/RFC5958"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="NIST-PQC" target="https://csrc.nist.gov/Projects/post-quantum-cryptography">
          <front>
            <title>Post-Quantum Cryptography Project</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2016" month="December" day="20"/>
          </front>
        </reference>
        <reference anchor="GPV08" target="https://doi.org/10.1145/1374376.1374407">
          <front>
            <title>Trapdoors for Hard Lattices and New Cryptographic Constructions</title>
            <author initials="C." surname="Gentry" fullname="Craig Gentry">
              <organization/>
            </author>
            <author initials="C." surname="Peikert" fullname="Chris Peikert">
              <organization/>
            </author>
            <author initials="V." surname="Vaikuntanathan" fullname="Vinod Vaikuntanathan">
              <organization/>
            </author>
            <date year="2008"/>
          </front>
          <seriesInfo name="Proceedings of the 40th Annual ACM Symposium on Theory of Computing (STOC '08), pp. 197–206" value=""/>
        </reference>
        <reference anchor="DP16" target="https://doi.org/10.1145/2930889.2930923">
          <front>
            <title>Fast Fourier Orthogonalization</title>
            <author initials="L." surname="Ducas" fullname="Léo Ducas">
              <organization/>
            </author>
            <author initials="T." surname="Prest" fullname="Thomas Prest">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
          <seriesInfo name="Proceedings of the 2016 ACM International Symposium on Symbolic and Algebraic Computation (ISSAC '16), pp. 191–198" value=""/>
        </reference>
        <reference anchor="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
        <reference anchor="RFC3647">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework</title>
            <author fullname="S. Chokhani" initials="S." surname="Chokhani"/>
            <author fullname="W. Ford" initials="W." surname="Ford"/>
            <author fullname="R. Sabett" initials="R." surname="Sabett"/>
            <author fullname="C. Merrill" initials="C." surname="Merrill"/>
            <author fullname="S. Wu" initials="S." surname="Wu"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document presents a framework to assist the writers of certificate policies or certification practice statements for participants within public key infrastructures, such as certification authorities, policy authorities, and communities of interest that wish to rely on certificates. In particular, the framework provides a comprehensive list of topics that potentially (at the writer's discretion) need to be covered in a certificate policy or a certification practice statement. This document supersedes RFC 2527.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3647"/>
          <seriesInfo name="DOI" value="10.17487/RFC3647"/>
        </reference>
      </references>
    </references>
    <?line 597?>

<section anchor="asn1">
      <name>ASN.1 Module</name>
      <t>This appendix includes the ASN.1 module <xref target="X680"/> for the FN-DSA.  Note that
as per <xref target="RFC5280"/>, certificates use the Distinguished Encoding Rules; see
<xref target="X690"/>. This module imports objects from <xref target="RFC5912"/>.</t>
      <sourcecode markers="true"><![CDATA[
X509-FN-DSA-2026
{ iso(1) identified-organization(3) dod(6)
  internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
  id-mod-x509-fn-dsa-2026(TBD1) }

DEFINITIONS IMPLICIT TAGS ::= BEGIN

EXPORTS ALL;

IMPORTS

 PUBLIC-KEY, SIGNATURE-ALGORITHM
   FROM AlgorithmInformation-2009  -- [RFC 5912]
     { iso(1) identified-organization(3) dod(6) internet(1)
       security(5) mechanisms(5) pkix(7) id-mod(0)
       id-mod-algorithmInformation-02(58) } ;

--
-- FN-DSA Identifiers
--

nistAlgorithms OBJECT IDENTIFIER ::= { joint-iso-itu-t(2)
  country(16) us(840) organization(1) gov(101) csor(3)
  nistAlgorithms(4) }

sigAlgs OBJECT IDENTIFIER ::= { nistAlgorithms 3 }

id-fn-dsa-512 OBJECT IDENTIFIER ::= { sigAlgs XX }

id-fn-dsa-1024 OBJECT IDENTIFIER ::= { sigAlgs XX }

--
-- Public Key Algorithms
--

PublicKeys PUBLIC-KEY ::= {
  -- This expands PublicKeys from [RFC 5912]
  pk-fn-dsa-512 |
  pk-fn-dsa-1024,
  ...
}

--
-- FN-DSA Public Keys
--

pk-fn-dsa-512 PUBLIC-KEY ::= {
  IDENTIFIER id-fn-dsa-512
  -- KEY no ASN.1 wrapping; XXXX octets --
  PARAMS ARE absent
  CERT-KEY-USAGE { digitalSignature, nonRepudiation,
                   keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping; YYYY octets --
  }

pk-fn-dsa-1024 PUBLIC-KEY ::= {
  IDENTIFIER id-fn-dsa-1024
  -- KEY no ASN.1 wrapping; XXXX octets --
  PARAMS ARE absent
  CERT-KEY-USAGE { digitalSignature, nonRepudiation,
                   keyCertSign, cRLSign }
  -- PRIVATE-KEY no ASN.1 wrapping; YYYY octets --
  }

FN-DSA-512-PublicKey ::= OCTET STRING (SIZE (897))

FN-DSA-1024-PublicKey ::= OCTET STRING (SIZE (1793))

FN-DSA-PrivateKey ::= OCTET STRING (SIZE (32))

--
-- Signature Algorithms
--

SignatureAlgorithms SIGNATURE-ALGORITHM ::= {
  -- This expands SignatureAlgorithms from [RFC 5912]
  sa-fn-dsa-512 |
  sa-fn-dsa-1024,
  ... }

--
-- ML-DSA Signature Algorithm Identifiers
--

sa-fn-dsa-512 SIGNATURE-ALGORITHM ::= {
  IDENTIFIER id-fn-dsa-512
  PARAMS ARE absent
  PUBLIC-KEYS { pk-fn-dsa-512 }
  SMIME-CAPS { IDENTIFIED BY id-fn-dsa-512 }
  }

sa-fn-dsa-1024 SIGNATURE-ALGORITHM ::= {
  IDENTIFIER id-fn-dsa-1024
  PARAMS ARE absent
  PUBLIC-KEYS { pk-fn-dsa-1024 }
  SMIME-CAPS { IDENTIFIED BY id-fn-dsa-1024 }
  }

END
]]></sourcecode>
    </section>
    <section anchor="security-strengths">
      <name>Security Strengths</name>
      <aside>
        <t>TODO</t>
      </aside>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>This appendix contains examples of FN-DSA private keys, public keys,
certificates, and inconsistent seed and expanded private keys.</t>
      <section anchor="example-private">
        <name>Example Private Keys</name>
        <t>The following examples show FN-DSA private keys in different formats,
all derived from the same seed <tt>000102...1e1f</tt>. For each security level,
we show the seed-only format (using a context-specific <tt>[0]</tt> primitive
tag with an implicit encoding of <tt>OCTET STRING</tt>), the <tt>expanded</tt> format,
and <tt>both</tt> formats together.</t>
        <t>NOTE: All examples use the same seed value, showing how the same seed
produces different expanded private keys for each security level.</t>
        <section anchor="fn-dsa-512-private-key-examples">
          <name>FN-DSA-512 Private Key Examples</name>
          <t>Each of the examples includes the textual encoding <xref target="RFC7468"/> followed by
the so-called "pretty print"; the private keys are the same.</t>
          <aside>
            <t>TODO</t>
          </aside>
        </section>
        <section anchor="fn-dsa-1024-private-key-examples">
          <name>FN-DSA-1024 Private Key Examples</name>
          <t>Each of the examples includes the textual encoding <xref target="RFC7468"/> followed by
the so-called "pretty print"; the private keys are the same.</t>
          <aside>
            <t>TODO</t>
          </aside>
        </section>
      </section>
      <section anchor="example-public">
        <name>Example Public Keys</name>
        <t>The following is the FN-DSA-512 public key corresponding to the private
key in the previous section. The textual encoding <xref target="RFC7468"/> is
followed by the so-called "pretty print"; the public keys are the same.</t>
        <aside>
          <t>TODO</t>
        </aside>
        <t>The following is the FN-DSA-1024 public key corresponding to the private
key in the previous section.  The textual encoding <xref target="RFC7468"/> is
followed by the so-called "pretty print"; the public keys are the same.</t>
        <aside>
          <t>TODO</t>
        </aside>
      </section>
      <section anchor="example-certificates">
        <name>Example Certificates</name>
        <aside>
          <t>NOTE: The example certificates in this section have key usage bits set to
<tt>digitalSignature</tt>, <tt>keyCertSign</tt>, and <tt>cRLSign</tt> to lessen the number of
examples, i.e., brevity. Certificate Policies (CPs) <xref target="RFC3647"/>
for production CAs should consider whether this combination is
appropriate.</t>
        </aside>
        <t>The following is a self-signed certificate for the FN-DSA-512 public key in the
previous section. The textual encoding <xref target="RFC7468"/> is followed by the
so-called "pretty print"; the certificates are the same.</t>
        <aside>
          <t>TODO</t>
        </aside>
        <t>The following is a self-signed certificate for the FN-DSA-1024 public key in the
previous section. The textual encoding <xref target="RFC7468"/> is followed by the
so-called "pretty print"; the certificates are the same.</t>
        <aside>
          <t>TODO</t>
        </aside>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <aside>
        <t>TODO</t>
      </aside>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
