libntruprime
libntruprime: Intro

libntruprime is a microlibrary for the Streamlined NTRU Prime cryptosystem. Streamlined NTRU Prime (sntrup) is a lattice-based cryptosystem with the following features:

libntruprime has a very simple stateless API based on the SUPERCOP API, with wire-format inputs and outputs, providing functions that directly match the KEM operations provided by the sntrup specification, such as functions

sntrup1277_keypair
sntrup1277_enc
sntrup1277_dec

for the sntrup1277 KEM.

Internally, libntruprime includes implementations designed to work portably across CPUs, and implementations designed for higher performance on Intel/AMD CPUs with AVX2 instructions. libntruprime includes automatic run-time selection of implementations.

libntruprime is intended to be called by larger multi-function libraries (such as traditional cryptographic libraries), including libraries in other languages via FFI. The idea is that libntruprime takes responsibility for the details of sntrup computation, including optimization, timing-attack protection, and (in ongoing work) verification, freeing up the calling libraries to concentrate on application-specific needs such as protocol integration. Applications can also call libntruprime directly.


Version: This is version 2024.08.25 of the "Intro" web page.