Skip to main content

Crate vaea_ntt

Crate vaea_ntt 

Source
Expand description

§VaeaNTT — High-Performance Number Theoretic Transforms

NTT engine for lattice-based cryptography, optimized for ARM NEON (aarch64) with portable scalar fallback.

§Quick Start

use vaea_ntt::ntt32::Ntt32Context;

// Any NTT-friendly prime < 2^28
let ctx = Ntt32Context::new(256, 8_380_417);

let mut data = vec![42u32; 256];
ctx.forward(&mut data);
ctx.inverse(&mut data);
assert!(data.iter().all(|&x| x == 42));

§Post-Quantum Presets

use vaea_ntt::pq::{PqScheme, PqNtt};

// ML-DSA-65 (FIPS 204) — digital signatures, NIST Level 3
let ntt = PqNtt::new(PqScheme::MlDsa65);

§Modules

ModuleUse case
pqPost-quantum presets for ML-DSA (FIPS 204)
ntt3228-bit primes (< 2²⁸), ARM NEON vectorized
ntt6460–62 bit primes for FHE (SEAL/OpenFHE compatible)
polyPolynomials over Z_q[X]/(X^N+1) with 64-bit coefficients
rnsMulti-prime CRT (Residue Number System)

§Features

FeatureDefaultDescription
stdonEnables std::error::Error impl on NttError
randoffRandom polynomial generation
ffioffC/C++/JS bindings via Diplomat

§no_std

This crate is no_std compatible (requires alloc). Disable default features to use without std.

Modules§

ntt32
ntt32 — 28-bit NTT Pipeline
ntt64
64-bit NTT Pipeline
poly
Polynomial over Z_q[X]/(X^N + 1)
pq
Post-Quantum Cryptography Presets
rns
Residue Number System (RNS) — Multi-Moduli Decomposition

Enums§

NttError
Errors returned by NTT context construction.