Crate ntrumls

Source
Expand description

This crate implements the NTRUMLS library in Rust. It is an interface to the reference NTRUMLS implementation. NTRUMLS is a modular latice signature based in NTRU, which avoids the security issues of NTRUSign. More on NTRUMLS here.

NTRU is a faster encryption / decryption scheme, that uses latice based encryption to provide quantum proof security. More on NTRUEncrypt here.

To use this library, you need to include this in your crate:

extern crate ntrumls;

§Examples

To generate the keys that will be used during encryption / decryption, you have to use the generate_keys() function. These keys must not be used in NTRUEncrypt nor in other encryption schemes, since they are specifically generated for this purpose. Example:

use ntrumls::params::{ParamSet, XXX_20151024_743};

let params = XXX_20151024_743;
let (private_key, public_key) = ntrumls::generate_keys(&params).unwrap();

let mut message = b"Hello from NTRUMLS!";

let signature = ntrumls::sign(&private_key, &public_key, message).unwrap();
assert!(ntrumls::verify(&signature, &public_key, message));

Modules§

params
NTRUMLS parameter module

Structs§

PrivateKey
NTRUMLS private key
PublicKey
NTRUMLS public key

Functions§

generate_keys
Generates a public and private key pair
sign
Signs a message
verify
Verifies a signed message