<?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.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-lamps-fn-dsa-certificates-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.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-ietf-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="2026" month="May" day="20"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>FN-DSA Falcon Certificate X.509 PKIX</keyword>
    <abstract>
      <?line 129?>

<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://lamps-wg.github.io/fn-dsa-certificates/draft-ietf-lamps-fn-dsa-certificates.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-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/lamps-wg/fn-dsa-certificates"/>.</t>
    </note>
  </front>
  <middle>
    <?line 139?>

<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 598?>

<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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
xz/0fxw6Wy9eAnzsg/UCJxSE0s/pI4isKDq21hMWRyb6mPoct4YR2Qf40d+E
mIE5xDhGJbl0runmGWW4EPpiVLZCJBd+Lo9h17JiJodYflRSxbccv0qmby2B
WKywTLDE9Z21vAL1ve+LWYQbGE632y0+1WBSc0t11V9/jGqtmkKfV3wzODkY
8v3h29Hx+Dv2AdNW+sAe01bsBtQ3wcuPZXbFqdyL3G6DdwxaL9sq7KGvfGB7
I7StF20QJvPtRvxrdRF+br1q60xZq0s9m7NmeFWyR7c8D4ZvRscjzBaP+ejo
9HA0GE34pP92TKcrtHzGhh9OT84mY94/PHwNeOiI/mKM26WYDVceMPP85uzk
yKrjLDELrKO7S6U5nzAiRdr9rBLbjyeNTRiTFH8afehHE8lrWmV3q/ViByjF
X6Mgw3+NsNtfOYUXrHJPVT7tuuwXXpKtTol3Y4Gh+nrsnQuorXO7etX3vivK
ZuQPH55wPbjaSVHQ+o5JuRIiYnFSIptKy6ArKaIg6CG51ZqUsCJI1Zq8XypP
cMV4LoKnIrc1vlqF17SkB2v77qnsu6vW7TWZxkq9WdOtn2op3GOK4JpOhu6s
i/uyqrja1aPHEkTX//1/pMiXVAl+WY3gEysEtWA3fERKiXbD7ct7b67V9a+p
/7oiVu/z/bJ2WU4rYmkejg6r9+zv+LQ07uDxdwXv0dImQXvoluCT7gje2gt9
8H7gferzlKUWN/2edi8QFjs8PtDwBX4D8EKHxlYOeqzzhQ+nn61I5xlEjOqs
FXBfcexax371Q1hpfWSpekRsf5us8skrhaTxfCZG9EuhG6bh8amSXFH5kJlU
n2bSq7PLj6yVOrrDbf3ya7FO/ARA45ExBj5FEKmABawYs2mBgHYmLV8cwtBi
p91uF1gCetETvfOpygLSRyqKeJESYh12JdTU6gYiQiWMmdU8vKXTheYcwzHZ
Cj791P15SgdhId43ZJk3L+4lYziMN7Yq5+fVmv+2PqM3BJ3qGTt0rXeKNUnm
EUafczobAUKr+oI+bL4gnMHj5eYpY9qhbeHkxe5MA7YyJ2YlYRs5W37ao0o1
4vgzq7y7UnRm5BQUAbvqyKlYbyU8WTv9t478tZSoY1PaQOJgmggebODXsyjm
BzS48bpepCWLD+Pgnh9OMNhqVu5L+ef/Lxur6Kh1Oc5SUXq6pqH6qpPFbLvu
tparsBdsKu7UI3FpUvRFnH8/kULJLDrxR9DJPlj9UjLdt3cSiF9l87/V3Vsy
Yv//QFhCYnuK+4oyykIoUw5USSKYnIk5oqJaXCRZTrXwpggXs1/rtcWdah2x
clhFKbFK8Eupi8WLb9Awo6gdHrrC7XD8f76gFJH9lZVT/GZsSJ8GP5VtXa+/
/fL5q9tbOiJaFR/k5AP14ZpcXXym81HrFFuVds1C9XVa5Cc46TQBlsE0a1cT
bYnzYOfRuaMTefZRfDVtU9dF/eWLL1I1XhM2dr+wVe/9/mq69uid1zXxH27r
z3jfx7IHmGVOdVTsZk9Jqgi+3aBK/o2Ha57KAf8HPOdcyXlmAAA=

-->

</rfc>
