Floating point homomorphic operations on hardware

Hi, I want to implement floating point homomorphic addition or any other operations on hardware , So where to start and which topics should I cover? I search over the internet and found that ckks scheme can be useful for. Other thing is I am planning to do it on fpga so give me suggestions about to use vitis hls and vivado etc. Thanks

Anyone answer? I want to know

The most suitable FHE scheme for floating-point operations (more precisely, fixed-point operations) is the CKKS scheme. To achieve what you want, you will need to implement CKKS on an FPGA. However, if your system follows co-processing models (accelerator-CPU), you may only need to implement the CKKS homomorphic evaluation operations on the FPGA. The system setup, encoding/decoding, and encryption/decryption can be left to the CPU.

If you want to accelerate the OpenFHE implementation of CKKS with your FPGA implementation, you will need to integrate your FPGA implementation with OpenFHE through the Hardware Abstraction Layer (HAL) (see the OpenFHE main paper to learn more about HAL).

Currently, there are no publicly available works on FPGA acceleration of OpenFHE. However, if you’re interested in how to integrate a hardware acceleration library with OpenFHE, you can check out OpenFHE-HEXL, an AVX2 acceleration for OpenFHE. Perhaps, you can follow a similar approach to integrate your FPGA implementation.

Lastly, here are some additional resources describing FPGA implementations of CKKS and the tools used in the implementation (without OpenFHE integration):

  1. [2207.11872] FAB: An FPGA-based Accelerator for Bootstrappable Fully Homomorphic Encryption
  2. HEAX | Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems