|
Intel HEXL for FPGA
Intel Homomorphic Encryption FPGA Acceleration Library, accelerating the modular arithmetic operations used in homomorphic encryption.
|
Namespaces | |
| fpga | |
Functions | |
| void | acquire_FPGA_resources () |
| Function acquire_FPGA_resources Called without any parameter, reserves the FPGA hardware resources. More... | |
| void | release_FPGA_resources () |
| Function release_FPGA_resources Called without any parameter, releases the FPGA hardware resources once we are done. More... | |
| void | set_worksize_DyadicMultiply (uint64_t ws) |
| Function set_worksize_DyadicMultiply Reserves software resources for the multiplication. More... | |
| void | DyadicMultiply (uint64_t *results, const uint64_t *operand1, const uint64_t *operand2, uint64_t n, const uint64_t *moduli, uint64_t n_moduli) |
| Function DyadicMultiply Executes ciphertext ciphertext multiplication. More... | |
| bool | DyadicMultiplyCompleted () |
| Function DyadicMultiplyCompleted Executed after ciphertext ciphertext multiplication to wrap up the task. More... | |
| void | set_worksize_NTT (uint64_t ws) |
| Function set_worksize_NTT Reserves software resources for the Number Theoretic Transform. More... | |
| void | NTT (uint64_t *operand, const uint64_t *root_of_unity_powers, const uint64_t *precon_root_of_unity_powers, uint64_t coeff_modulus, uint64_t n) |
| Function NTT Executes in place the Number Theoretic Transform. More... | |
| bool | NTTCompleted () |
| Function NTTCompleted Executed after the NTT to wrap up the computation No parameters. More... | |
| void | set_worksize_INTT (uint64_t ws) |
| Function set_worksize_INTT Reserves software resources for the inverse Number Theoretic Transform. More... | |
| void | INTT (uint64_t *operand, const uint64_t *inv_root_of_unity_powers, const uint64_t *precon_inv_root_of_unity_powers, uint64_t coeff_modulus, uint64_t inv_n, uint64_t inv_n_w, uint64_t n) |
| Function INTT Executes in place the inverse Number Theoretic Transform. More... | |
| bool | INTTCompleted () |
| Function INTTCompleted Executed after the INTT to wrap up the computation No parameters. More... | |
| void intel::hexl::acquire_FPGA_resources | ( | ) |
Function acquire_FPGA_resources Called without any parameter, reserves the FPGA hardware resources.
| void intel::hexl::DyadicMultiply | ( | uint64_t * | results, |
| const uint64_t * | operand1, | ||
| const uint64_t * | operand2, | ||
| uint64_t | n, | ||
| const uint64_t * | moduli, | ||
| uint64_t | n_moduli | ||
| ) |
Function DyadicMultiply Executes ciphertext ciphertext multiplication.
| [out] | results | stores the multiplication results |
| [in] | operand1 | stores the input ciphertext 1 |
| [in] | operand2 | stores the input ciphertext 2 |
| [in] | n | stores polynomial size |
| [in] | moduli | stores modulus size |
| [in] | n_moduli | stores the number of moduli |
| bool intel::hexl::DyadicMultiplyCompleted | ( | ) |
Function DyadicMultiplyCompleted Executed after ciphertext ciphertext multiplication to wrap up the task.
| void intel::hexl::INTT | ( | uint64_t * | operand, |
| const uint64_t * | inv_root_of_unity_powers, | ||
| const uint64_t * | precon_inv_root_of_unity_powers, | ||
| uint64_t | coeff_modulus, | ||
| uint64_t | inv_n, | ||
| uint64_t | inv_n_w, | ||
| uint64_t | n | ||
| ) |
Function INTT Executes in place the inverse Number Theoretic Transform.
| [in] | operand | input ciphertext. This is also the output result since the transform is in place. |
| [out] | operand | output ciphertext. This is also the input result since the transform is in place. |
| [in] | inv_root_of_unity_powers | vector of twiddle factors |
| [in] | precon_inv_root_of_unity_powers | vector of precomputed inverse twiddle factors |
| [in] | coeff_modulus | stores the modulus |
| [in] | inv_n | stores the normalization factor for the inverse transform. Inverse of the polynomial size ( 1/n) |
| [in] | inv_n_w | stores the normalization factor for the constant. |
| [in] | n | stores the size of the Number Theoretic Transform |
| bool intel::hexl::INTTCompleted | ( | ) |
Function INTTCompleted Executed after the INTT to wrap up the computation No parameters.
| void intel::hexl::NTT | ( | uint64_t * | operand, |
| const uint64_t * | root_of_unity_powers, | ||
| const uint64_t * | precon_root_of_unity_powers, | ||
| uint64_t | coeff_modulus, | ||
| uint64_t | n | ||
| ) |
Function NTT Executes in place the Number Theoretic Transform.
| [in] | operand | input ciphertext. This is also the output result since the transform is in place. |
| [out] | operand | output ciphertext. This is also the input result since the transform is in place. |
| [in] | root_of_unity_powers | vector of twiddle factors |
| [in] | precon_root_of_unity_powers | vector of precomputed inverse twiddle factors |
| [in] | coeff_modulus | stores the modulus |
| [in] | n | stores the size of the Number Theoretic Transform |
| bool intel::hexl::NTTCompleted | ( | ) |
Function NTTCompleted Executed after the NTT to wrap up the computation No parameters.
| void intel::hexl::release_FPGA_resources | ( | ) |
Function release_FPGA_resources Called without any parameter, releases the FPGA hardware resources once we are done.
| void intel::hexl::set_worksize_DyadicMultiply | ( | uint64_t | ws | ) |
Function set_worksize_DyadicMultiply Reserves software resources for the multiplication.
| ws | integer storing the worksize |
| void intel::hexl::set_worksize_INTT | ( | uint64_t | ws | ) |
Function set_worksize_INTT Reserves software resources for the inverse Number Theoretic Transform.
| ws | integer storing the worksize |
| void intel::hexl::set_worksize_NTT | ( | uint64_t | ws | ) |
Function set_worksize_NTT Reserves software resources for the Number Theoretic Transform.
| ws | integer storing the worksize |
1.8.5