Intel HE Acceleration Library for FPGAs
Intel Homomorphic Encryption Acceleration Library for FPGAs, accelerating the modular arithmetic operations used in homomorphic encryption on Intel FPGAs.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Functions | Variables
ntt.cpp File Reference
#include "ntt.hpp"
#include <cstring>
#include <iostream>
#include <memory>
#include <random>
#include <utility>

Namespaces

 hetest
 
 hetest::utils
 

Functions

uint64_t hetest::utils::InverseUIntMod (uint64_t input, uint64_t modulus)
 
uint64_t hetest::utils::BarrettReduce64 (uint64_t input, uint64_t modulus, uint64_t q_barr)
 
uint64_t hetest::utils::MultiplyUIntMod (uint64_t x, uint64_t y, uint64_t modulus)
 
uint64_t hetest::utils::MultiplyMod (uint64_t x, uint64_t y, uint64_t y_precon, uint64_t modulus)
 
uint64_t hetest::utils::AddUIntMod (uint64_t x, uint64_t y, uint64_t modulus)
 
uint64_t hetest::utils::SubUIntMod (uint64_t x, uint64_t y, uint64_t modulus)
 
uint64_t hetest::utils::PowMod (uint64_t base, uint64_t exp, uint64_t modulus)
 
bool hetest::utils::IsPrimitiveRoot (uint64_t root, uint64_t degree, uint64_t modulus)
 
uint64_t hetest::utils::GeneratePrimitiveRoot (uint64_t degree, uint64_t modulus)
 
uint64_t hetest::utils::MinimalPrimitiveRoot (uint64_t degree, uint64_t modulus)
 
uint64_t hetest::utils::ReverseBitsUInt (uint64_t x, uint64_t bit_width)
 
bool hetest::utils::IsPrime (uint64_t n)
 
std::vector< uint64_t > hetest::utils::GeneratePrimes (size_t num_primes, size_t bit_size, size_t ntt_size)
 
void hetest::utils::ForwardTransformToBitReverse64 (uint64_t *operand, uint64_t n, uint64_t modulus, const uint64_t *root_of_unity_powers, const uint64_t *precon_root_of_unity_powers, uint64_t input_mod_factor, uint64_t output_mod_factor)
 
void hetest::utils::ReferenceForwardTransformToBitReverse (uint64_t *operand, uint64_t n, uint64_t modulus, const uint64_t *root_of_unity_powers)
 Reference NTT which is written for clarity rather than performance. More...
 
void hetest::utils::InverseTransformFromBitReverse64 (uint64_t *operand, uint64_t n, uint64_t modulus, const uint64_t *inv_root_of_unity_powers, const uint64_t *precon_inv_root_of_unity_powers, uint64_t input_mod_factor, uint64_t output_mod_factor)
 
bool hetest::utils::CheckNTTArguments (uint64_t degree, uint64_t modulus)
 

Variables

AllocatorStrategyPtr hetest::utils::mallocStrategy