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 long
instead ofunsigned long long
, and - the functions return
void
instead 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.