NAME
sntrup - C API for the libntruprime implementation of the Streamlined NTRU Prime cryptosystem
SYNOPSIS
Using libntruprime:
#include <ntruprime.h>
Link with -lntruprime.
Key generation (for, e.g., sntrup1277):
unsigned char pk[sntrup1277_PUBLICKEYBYTES];
unsigned char sk[sntrup1277_SECRETKEYBYTES];
sntrup1277_keypair(pk,sk);
Encapsulation (for, e.g., sntrup1277):
unsigned char ct[sntrup1277_CIPHERTEXTBYTES];
unsigned char k[sntrup1277_BYTES];
const unsigned char pk[sntrup1277_PUBLICKEYBYTES];
sntrup1277_enc(ct,k,pk);
Decapsulation (for, e.g., sntrup1277):
unsigned char k[sntrup1277_BYTES];
const unsigned char ct[sntrup1277_CIPHERTEXTBYTES];
const unsigned char sk[sntrup1277_SECRETKEYBYTES];
sntrup1277_dec(k,ct,sk);
DESCRIPTION
libntruprime is an implementation of the Streamlined NTRU Prime cryptosystem. The C API for libntruprime provides the following functions:
sntrup{653,761,857,953,1013,1277}_keypair
sntrup{653,761,857,953,1013,1277}_enc
sntrup{653,761,857,953,1013,1277}_dec
All of these functions follow the SUPERCOP API for KEMs except that
- the function names are libntruprime-specific instead of
crypto_kem_*, - message lengths are
long longinstead ofunsigned long long, and - the functions return
voidinstead ofint.
The details below use sntrup1277 as an example.
KEY GENERATION
The sntrup1277_keypair function randomly generates
Alice's secret key
sk[0], sk[1], ..., sk[sntrup1277_SECRETKEYBYTES-1]
and
Alice's corresponding public key
pk[0], pk[1], ..., pk[sntrup1277_PUBLICKEYBYTES-1].
ENCAPSULATION
The sntrup1277_enc function randomly generates
a ciphertext ct[0], ct[1], ..., ct[sntrup1277_CIPHERTEXTBYTES-1]
and the corresponding session key
k[0], k[1], ..., k[sntrup1277_BYTES-1]
given Alice's public key
pk[0], pk[1], ..., pk[sntrup1277_PUBLICKEYBYTES-1].
DECAPSULATION
The sntrup1277_dec function,
given Alice's secret key
sk[0], sk[1], ..., sk[sntrup1277_SECRETKEYBYTES-1],
computes the session key
k[0], k[1], ..., k[sntrup1277_BYTES-1]
corresponding to a ciphertext
ct[0], ct[1], ..., ct[sntrup1277_CIPHERTEXTBYTES-1]
that was encapsulated to Alice.
SEE ALSO
sntrup(1), randombytes(3)
Version: This is version 2024.08.12 of the "API" web page.