intel / hexl

Intel:registered: Homomorphic Encryption Acceleration Library accelerates modular arithmetic operations used in homomorphic encryption
https://intel.github.io/hexl
Apache License 2.0
216 stars 49 forks source link

Add HEXL-FPGA compatibility for DyadicMultiply and KeySwitch #109

Closed ymeng-git closed 2 years ago

ymeng-git commented 2 years ago

Added an internal implementation for DyadicMultiply and KeySwitch and a CMake option HEXL_FPGA_COMPATIBILITY and compiler flag to disable the normal DyadicMultiply and KeySwitch and only leave the internal one available. This makes HEXL compatible with HEXL-FPGA. With this both libraries can use HEXL's header but HEXL-FPGA can override DyadicMultiply and KeySwitch with its own implementation while leaving the internal implementation as a fallback if the user desires to use the CPU implementation.

Renamed all instances of CKKS in all functions and file names.

Added a new root_of_unity_powers_ptr option to KeySwitch. This option will be used in HEXL-FPGA.

Addressed the review comments

Signed-off-by: Yan Meng yan.meng@intel.com