Crate qfall_tools

Crate qfall_tools 

Source
Expand description

qFALL is a prototyping library for lattice-based cryptography. qFALL-tools collects common sub-modules and features used by lattice-based constructions to simplify and accelerate the development of such. Among these are:

The qFALL project contains two more crates called qFALL-math and qFALL-schemes to support prototyping.

§Quick Example

use qfall_tools::utils::{common_moduli::new_anticyclic, common_encodings::encode_value_in_polynomialringzq};
use qfall_math::integer::Z;

// Create X^256 + 1 mod 3329
let poly_mod = new_anticyclic(256, 3329).unwrap();
// Generate integer from string
let message = Z::from_utf8("Hello!");
// Turn string into encoding q/2 and 0 for each 1 and 0 bit respectively
let mu_q_half = encode_value_in_polynomialringzq(message, 2, &poly_mod).unwrap();

Modules§

compression
Contains commonly used compression techniques in lattice-based cryptography.
primitive
Contains primitives that are useful for cryptographic constructions, but are solely targeted to be used in other constructions.
sample
Contains anything that should be easily samplable for lattice-based cryptography, which is more complex than sampling from a distribution.
utils
This module contains commonly functions in lattice-based cryptography.