<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.14 (Ruby 3.3.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-josefsson-cfrg-sntrup-considerations-00" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="sntrup Security Considerations">Streamlined NTRU Prime Security Considerations</title>

    <author fullname="Simon Josefsson" role="editor">
      <organization></organization>
      <address>
        <email>simon@josefsson.org</email>
      </address>
    </author>

    <date year="2026" month="June" day="22"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 48?>

<t>This document contains considerations for use of the Streamlined NTRU
Prime Post-Quantum Key Encapsulation Method (KEM).  The document is
intended as introduction and guidance to encourage adoption of
Streamlined NTRU Prime in IETF standards-track protocols.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-josefsson-cfrg-sntrup-considerations/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/jas/ietf-ntruprime"/>.</t>
    </note>


  </front>

  <middle>


<?line 55?>

<section anchor="introduction"><name>Introduction</name>

<t>This document reviews information available for protocol designers and
implementors considering usage of Streamlined NTRU Prime (<spanx style="verb">sntrup</spanx>), a
post-quantum public-key cryptosystem.</t>

<t>Among currently supported lattice-based KEMs, <spanx style="verb">sntrup</spanx> is the most
stable option. All of the <spanx style="verb">sntrup</spanx> details stabilized in an April 2019
publication. Any QROM IND-CCA2 attack against the KEM tightly implies an
attack against the one-wayness of an underlying lattice function. The
underlying lattice function was published in May 2016. <spanx style="verb">sntrup</spanx> has
never needed a security patch.</t>

<t><eref target="https://libntruprime.cr.yp.to">https://libntruprime.cr.yp.to</eref> <xref target="libntruprime-website"></xref> summarizes further features of <spanx style="verb">sntrup</spanx>
and provides open-source production-quality <spanx style="verb">sntrup</spanx> software with a
very simple stateless API. The library includes various positive tests,
negative tests, and constant-time tests, along with source-level timing
defenses described in <eref target="https://cr.yp.to/papers/cryptoint-20250424.pdf">https://cr.yp.to/papers/cryptoint-20250424.pdf</eref>.
The library is available as a package in Debian and in Debian-derived
distributions such as Ubuntu.</t>

<t>Streamlined NTRU Prime is specified and deployed for the Secure Shell
(SSH) protocol, see <xref target="RFC9941"></xref>.
<eref target="https://ssh-comparison.quendi.de/comparison/kex.html">https://ssh-comparison.quendi.de/comparison/kex.html</eref>
indicates that every major SSH implementation supports
<spanx style="verb">sntrup761x25519-sha512@openssh.com</spanx>. Rollout of
<spanx style="verb">sntrup761x25519-sha512@openssh.com</spanx> already began in 2022, making
<spanx style="verb">sntrup</spanx> the post-quantum KEM most likely to interoperate with deployed
SSH peers as of 2026. (Note that it is generally recommended for SSH
implementations to support multiple options.)
<eref target="https://ianix.com/pqcrypto/pqcrypto-deployment.html">https://ianix.com/pqcrypto/pqcrypto-deployment.html</eref>
includes further examples of <spanx style="verb">sntrup</spanx> deployment.</t>

</section>
<section anchor="sources"><name>Sources</name>

<t>The NTRU Prime team site is <eref target="https://ntruprime.cr.yp.to">https://ntruprime.cr.yp.to</eref> <xref target="NTRUPrime-website"></xref>.</t>

<t><eref target="https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf">https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf</eref> <xref target="NTRUPrime-spec"></xref>
includes the authoritative definition of <spanx style="verb">sntrup</spanx>, a design rationale,
and a security analysis.
<eref target="https://ntruprime.cr.yp.to/ntruprime-20200930.sage">https://ntruprime.cr.yp.to/ntruprime-20200930.sage</eref> <xref target="NTRUPrime-sage"></xref>
is the reference implementation in Sage (Python plus math libraries)
of <spanx style="verb">sntrup</spanx>.</t>

<t><eref target="https://ntruprime.cr.yp.to/nist/ntruprime-20190330.pdf">https://ntruprime.cr.yp.to/nist/ntruprime-20190330.pdf</eref>
is the earlier April 2019 publication of the complete <spanx style="verb">sntrup</spanx> KEM.
<eref target="https://ntruprime.cr.yp.to/ntruprime-20160511.pdf">https://ntruprime.cr.yp.to/ntruprime-20160511.pdf</eref>
is the May 2016 publication of the underlying lattice function, which is
designed to be one-way.</t>

<t>(The May 2016 specification also includes a complete KEM
<spanx style="verb">sntrup4591761</spanx>. The April 2019 <spanx style="verb">sntrup</spanx> has different details of
hashing and encoding to handle all <spanx style="verb">sntrup</spanx> sizes, such as <spanx style="verb">sntrup761</spanx>
and <spanx style="verb">sntrup1277</spanx>, in a unified way. This document does not cover the
earlier <spanx style="verb">sntrup4591761</spanx> design.)</t>

<t><eref target="https://cr.yp.to/papers/latticeproofs-20190719.pdf">https://cr.yp.to/papers/latticeproofs-20190719.pdf</eref>
reviews the literature showing that any QROM IND-CCA2 attack against
<spanx style="verb">sntrup</spanx> tightly implies a one-wayness attack against the underlying
lattice problem.</t>

</section>
<section anchor="functionality"><name>Functionality</name>

<section anchor="api-overview"><name>API overview</name>

<t><spanx style="verb">sntrup</spanx> is a family of key-encapsulation mechanisms (KEMs). Each
parameter set specifies one KEM in the family. Each KEM provides three
operations: keygen produces a public key and private key; enc produces a
session key and ciphertext given a public key; dec produces a session
key given a ciphertext and a private key.</t>

<t>Session keys are 32 bytes. Applications typically use session keys as
keys for an authenticated cipher to encrypt and authenticate user data,
or as message-authentication keys if messages are public.</t>

</section>
<section anchor="parameter-sizes"><name>Parameter sizes</name>

<t>The NTRU Prime documentation selects six parameter sizes for support.
The following numbers are extracted from
<eref target="https://bench.cr.yp.to/results-kem.html">https://bench.cr.yp.to/results-kem.html</eref>:</t>

<texttable>
      <ttcol align='left'>System</ttcol>
      <ttcol align='right'>ciphertext bytes</ttcol>
      <ttcol align='right'>public-key bytes</ttcol>
      <ttcol align='right'>private-key bytes</ttcol>
      <c><spanx style="verb">sntrup653</spanx></c>
      <c>897</c>
      <c>994</c>
      <c>1518</c>
      <c><spanx style="verb">sntrup761</spanx></c>
      <c>1039</c>
      <c>1158</c>
      <c>1763</c>
      <c><spanx style="verb">sntrup857</spanx></c>
      <c>1184</c>
      <c>1322</c>
      <c>1999</c>
      <c><spanx style="verb">sntrup953</spanx></c>
      <c>1349</c>
      <c>1505</c>
      <c>2254</c>
      <c><spanx style="verb">sntrup1013</spanx></c>
      <c>1455</c>
      <c>1623</c>
      <c>2417</c>
      <c><spanx style="verb">sntrup1277</spanx></c>
      <c>1847</c>
      <c>2067</c>
      <c>3059</c>
</texttable>

<t>In libntruprime, a unified code generator produces software for all of
the supported sizes. It is recommended to reduce risks from advances in
lattice attacks by choosing the largest supported size that fits into
the application. For most applications, this means <spanx style="verb">sntrup1277</spanx>.</t>

<t>Comparison to alternatives: The graph in
<eref target="https://ntruprime.cr.yp.to/latticerisks-20211031.pdf#page.42">https://ntruprime.cr.yp.to/latticerisks-20211031.pdf#page.42</eref>
compares sizes and claimed security levels of several lattice options
from 2021. The sizes are overall similar, but the details show that
the smallest sizes within those options are sometimes <spanx style="verb">sntrup</spanx> and
sometimes alternatives, depending on the target security level.
Post-2021 NTRU variants such as <eref target="https://eprint.iacr.org/2023/1298">https://eprint.iacr.org/2023/1298</eref> and
<eref target="https://eprint.iacr.org/2025/1520">https://eprint.iacr.org/2025/1520</eref> provide smaller sizes. Some of the
available options are limited to a few parameter sets because of
internal cryptosystem constraints.</t>

</section>
<section anchor="parameter-options"><name>Parameter options</name>

<t>NTRU Prime includes not just <spanx style="verb">sntrup</spanx> but also <spanx style="verb">ntrulpr</spanx> (NTRU LPRime),
an alternative that shares most lines of code with <spanx style="verb">sntrup</spanx>. However,
this document focuses on <spanx style="verb">sntrup</spanx> and recommends choosing <spanx style="verb">sntrup</spanx>
rather than <spanx style="verb">ntrulpr</spanx>.</t>

<t>(<eref target="https://ntruprime.cr.yp.to/latticerisks-20211031.pdf#subsection.1.5.8">https://ntruprime.cr.yp.to/latticerisks-20211031.pdf#subsection.1.5.8</eref>
explains one disadvantage of the LPR approach to small lattice-based
systems: all known theorems for those cryptosystems allow QROM IND-CCA2
security of the KEMs to be many bits weaker than one-wayness of the
underlying lattice functions.)</t>

<t>The <spanx style="verb">sntrup</spanx> caller uses keygen, enc, and dec on byte-string objects for
the public key, private key, and ciphertext. Each parameter set
specifies the lengths of these byte strings. Internal details of these
objects are included in the <spanx style="verb">sntrup</spanx> specification and are not exposed
to the caller. Callers do not choose their own encodings.</t>

</section>
</section>
<section anchor="security"><name>Security</name>

<section anchor="cryptosystem-security-goals-and-basis-for-confidence"><name>Cryptosystem security goals and basis for confidence</name>

<t><eref target="https://ntruprime.cr.yp.to">https://ntruprime.cr.yp.to</eref> says that "Streamlined NTRU Prime is a
small lattice-based KEM aiming for the standard goal of IND-CCA2
security."</t>

<t>The main argument for confidence in lattice-based cryptosystems is that
there are many papers studying the cost of lattice attacks. However, the
NTRU Prime documentation questions this confidence. The documentation
describes risks of lattice-based cryptosystems. The documentation also
describes ways that <spanx style="verb">sntrup</spanx> reduces these risks.
<eref target="https://cr.yp.to/talks/2019.08.24/slides-djb-20190824-ntruprime-4x3.pdf">https://cr.yp.to/talks/2019.08.24/slides-djb-20190824-ntruprime-4x3.pdf</eref>
summarizes the <spanx style="verb">sntrup</spanx> design approach as follows:</t>

<t><list style="symbols">
  <t>Within lattice systems: Focus on structured lattice systems for
"applications that want something much smaller" than unstructured
lattices.</t>
  <t>Within structured lattice systems: "<strong>Eliminate unnecessarily
complicated security review:</strong> eliminate decryption failures,
eliminate cyclotomics, etc."</t>
  <t>Within that constraint: "Optimize size vs. security against known
attacks".</t>
</list></t>

<t><eref target="https://ntruprime.cr.yp.to">https://ntruprime.cr.yp.to</eref> says that lattice-based cryptography "has
an extremely complicated attack picture with many different attack
tools, many losses of security, and many security claims that turned out
to be wrong ... Streamlined NTRU Prime is systematically designed to
minimize the complexity of a thorough security review ... The success of
the proactive Streamlined NTRU Prime design strategy is illustrated by
subsequently published decryption-failure attacks violating the security
claims of LAC and Round5."</t>

<t>Eliminating "decryption failures" is one of the features included in the
first description of NTRU Prime
(<eref target="https://blog.cr.yp.to/20140213-ideal.html">https://blog.cr.yp.to/20140213-ideal.html</eref>),
before decryption failures were used for attacks in
<eref target="https://eprint.iacr.org/2019/1308">https://eprint.iacr.org/2019/1308</eref>,
<eref target="https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/official-comments/Round5-official-comment.pdf">https://csrc.nist.gov/CSRC/media/Projects/Post-Quantum-Cryptography/documents/round-1/official-comments/Round5-official-comment.pdf</eref>,
etc. Eliminating "cyclotomics" is another feature of the 2014 description
of NTRU Prime, before
<eref target="https://arxiv.org/abs/1503.03107">https://arxiv.org/abs/1503.03107</eref>
and
<eref target="https://eprint.iacr.org/2016/957">https://eprint.iacr.org/2016/957</eref>
broke Gentry's original STOC 2009 lattice-based FHE system for cyclotomics.
<eref target="https://ntruprime.cr.yp.to/latticerisks-20211031.pdf">https://ntruprime.cr.yp.to/latticerisks-20211031.pdf</eref>
is a newer survey of security risks in lattice-based cryptosystems.</t>

</section>
<section anchor="quantitative-security-levels"><name>Quantitative security levels</name>

<t>There are many bits of uncertainty regarding the costs of specific
lattice attacks. For example, the final Kyber documentation
<eref target="https://web.archive.org/web/20230310174959/https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf">https://web.archive.org/web/20230310174959/https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf</eref>
estimated "2^151^ gates" to break Kyber-512 but said that "this number
could be affected by a factor of up to 2^16^ in either direction"
because of "known unknowns".</t>

<t>Furthermore, <eref target="https://ntruprime.cr.yp.to/nist/ntruprime-20171130.pdf">https://ntruprime.cr.yp.to/nist/ntruprime-20171130.pdf</eref>
says that "the best attack algorithms known today are much better than
the best attack algorithms known a few years ago, so it is unreasonable
to expect that the algorithms have stabilized".</t>

<t><eref target="https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf#page.103">https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf#page.103</eref>
reports security estimates for the selected NTRU Prime parameters.
The same document emphasizes that "advances in attacks could reduce
costs below the actual costs of known attacks (which in turn could be
above or below current <em>estimates</em> of the costs of known attacks)".</t>

<t>Newer speedups include <eref target="https://eprint.iacr.org/2025/1910">https://eprint.iacr.org/2025/1910</eref> and
<eref target="https://eprint.iacr.org/2026/279">https://eprint.iacr.org/2026/279</eref>. The costs of lattice attacks remain
uncertain and unstable. This motivates taking the largest supported
parameters that fit into the application.</t>

</section>
<section anchor="implementation-security"><name>Implementation security</name>

<t><eref target="https://cr.yp.to/papers/pqcomplexity-20240419.pdf">https://cr.yp.to/papers/pqcomplexity-20240419.pdf</eref>
analyzes the complexity of reference implementations of Kyber, NTRU-HPS,
NTRU-HRSS, and NTRU Prime, after uniform streamlining of the
implementations. For example, it finds 497 lines for <spanx style="verb">kyber512</spanx>, 472
lines for <spanx style="verb">kyber1024</spanx>, 578 lines for a merge of <spanx style="verb">kyber512</spanx> and
<spanx style="verb">kyber1024</spanx>, 478 lines for <spanx style="verb">sntrup761</spanx>, 478 lines for <spanx style="verb">sntrup1277</spanx>, 484
lines for a merge of <spanx style="verb">sntrup761</spanx> and <spanx style="verb">sntrup1277</spanx>, 385 lines for
<spanx style="verb">ntruhrss701</spanx>, 381 lines for <spanx style="verb">ntruhps4096821</spanx>, and 452 lines for a
merge of <spanx style="verb">ntruhrss701</spanx> and <spanx style="verb">ntruhps4096821</spanx>.</t>

<t><eref target="https://blog.cr.yp.to/20240102-hybrid.html">https://blog.cr.yp.to/20240102-hybrid.html</eref> reports 156 lines for
X25519 with the same streamlining. Lattice software is larger and more
likely to contain bugs: lattice software is usually newer than ECC
software, and the community has less experience with the types of bugs
to expect. (Formal verification can convincingly eliminate bugs, but
post-quantum software is currently only partially verified.) ECC+PQ
double encryption reduces the impact of PQ bugs and of other PQ security
problems.</t>

<t><eref target="https://libntruprime.cr.yp.to/security.html">https://libntruprime.cr.yp.to/security.html</eref>
includes descriptions of specific implementation security issues
relevant to NTRU Prime: "For example, there are some CPUs, especially
embedded CPUs, where integer multiplication takes variable time. Most
software for public-key cryptography relies on integer multiplication,
although there are exceptions such as code-based cryptography."</t>

<t>Cryptographic software is presumably breakable if the computer's RNG is
weak, if other parts of the computer leak RNG data or other internal
cryptosystem data, if attackers can access physical sensors such as
electromagnetic sensors close to the computer, or if attackers have
enough control over the computer to create faults in computations.
Commonly discussed mitigations include recomputations to address
physical faults, "masking" and "hiding" to reduce physical leakage of
secret data, zeroing secrets after the secrets are used, combining
multiple RNGs, centralizing RNGs for auditability, fixing security
problems elsewhere in the computer, and isolating sensitive computations
on separate devices.</t>

</section>
<section anchor="error-free-apis"><name>Error-free APIs</name>

<t>libntruprime provides error-free APIs for keygen, enc, and dec.</t>

<t>Most KEMs, including <spanx style="verb">sntrup</spanx>, build dec internally on top of a simpler
decryption mechanism. For "implicit rejection" KEMs, including <spanx style="verb">sntrup</spanx>,
ciphertexts rejected by the internal decryption mechanism produce
pseudorandom KEM session keys, not KEM errors.</t>

<t>For some KEMs, the internal decryption mechanism occasionally rejects
valid ciphertexts. The sender and receiver then occasionally end up with
different session keys, normally triggering failures in higher-level
protocols even when there are no KEM API errors. A KEM that reports a
very small probability of these "decryption failures" might still be
vulnerable to "failure boosting" attacks that search for valid
ciphertexts that are more likely to fail and that deduce secret keys
from the pattern of failures. For <spanx style="verb">sntrup</spanx>, the internal decryption
algorithm is guaranteed to work for all valid ciphertexts; this is a
theorem with a short proof in
<eref target="https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf#subsection.2.2">https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf#subsection.2.2</eref>.</t>

</section>
</section>
<section anchor="hybrid-usage"><name>Hybrid usage</name>

<t>Streamlined NTRU Prime may be used in conservative constructs together
with other KEMs in a hybrid mode, see Chempat <xref target="I-D.josefsson-chempat"></xref>
for one way to combine Streamlined NTRU Prime with other key agreement
methods, such as X25519.</t>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The editor would like to thank various NTRU Prime Team members for
contributions to this document.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA actions.</t>

</section>


  </middle>

  <back>


    <references title='Normative References' anchor="sec-normative-references">

<reference anchor="NTRUPrime-spec" target="https://ntruprime.cr.yp.to/nist/ntruprime-20201007.pdf">
  <front>
    <title>NTRU Prime: round 3</title>
    <author >
      <organization>NTRU Prime Team</organization>
    </author>
    <date year="2020" month="October"/>
  </front>
</reference>


    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC9941">
  <front>
    <title>Secure Shell (SSH) Key Exchange Method Using Hybrid Streamlined NTRU Prime sntrup761 and X25519 with SHA-512: sntrup761x25519-sha512</title>
    <author fullname="M. Friedl" initials="M." surname="Friedl"/>
    <author fullname="J. Mojzis" initials="J." surname="Mojzis"/>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="April" year="2026"/>
    <abstract>
      <t>This document describes a widely deployed hybrid key exchange method in the Secure Shell (SSH) protocol that is based on Streamlined NTRU Prime sntrup761 and X25519 with SHA-512.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9941"/>
  <seriesInfo name="DOI" value="10.17487/RFC9941"/>
</reference>

<reference anchor="I-D.josefsson-chempat">
   <front>
      <title>Chempat: Generic Instantiated PQ/T Hybrid Key Encapsulation Mechanisms</title>
      <author fullname="Simon Josefsson" initials="S." surname="Josefsson">
         </author>
      <date day="20" month="October" year="2025"/>
      <abstract>
	 <t>   This document specify Chempat as a generic family of instantiated
   Post-Quantum/Traditional (PQ/T) Hybrid Key Exchange Methods (KEMs).
   The goal is to provide a generic combiner construct that can be
   analysed separately for security assurance, and to offer concrete
   instantiated algorithms for integration into protocol and
   implementations.  Identified instances are provided based on some
   combinations of traditional Diffie-Hellman key agreement using curves
   P-256, P-384, X25519, X448, brainpoolP256, brainpoolP384 and
   brainpoolP512 combined with post quantum methods ML-KEM-768, ML-KEM-
   1024, Streamlined NTRU Prime sntrup761, Classic McEliece and
   FrodoKEM.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-josefsson-chempat-04"/>
   
</reference>

<reference anchor="NTRUPrime-sage" target="https://ntruprime.cr.yp.to/ntruprime-20200930.sage">
  <front>
    <title>NTRU Prime Sage script</title>
    <author >
      <organization>NTRU Prime Team</organization>
    </author>
    <date year="2020" month="September"/>
  </front>
</reference>
<reference anchor="NTRUPrime-website" target="https://ntruprime.cr.yp.to/">
  <front>
    <title>NTRU Prime Website</title>
    <author >
      <organization>NTRU Prime Team</organization>
    </author>
    <date year="2022" month="October"/>
  </front>
</reference>
<reference anchor="libntruprime-website" target="https://libntruprime.cr.yp.to/">
  <front>
    <title>libntruprime Website</title>
    <author >
      <organization>Daniel J. Bernstein</organization>
    </author>
    <date year="2022" month="October"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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
AA==

-->

</rfc>

