Intel HEXL: Accelerating Homomorphic Encryption with Intel AVX512-IFMA52. (arXiv:2103.16400v2 [cs.CR] UPDATED)

Modern implementations of homomorphic encryption (HE) rely heavily on
polynomial arithmetic over a finite field. This is particularly true of the
CKKS, BFV, and BGV HE schemes. Two of the biggest performance bottlenecks in HE
primitives and applications are polynomial modular multiplication and the
forward and inverse number-theoretic transform (NTT). Here, we introduce Intel
Homomorphic Encryption Acceleration Library (Intel HEXL), a C++ library which
provides optimized implementations of polynomial arithmetic for Intel
processors. Intel HEXL takes advantage of the recent Intel Advanced Vector
Extensions 512 (Intel AVX512) instruction set to provide state-of-the-art
implementations of the NTT and modular multiplication. On the forward and
inverse NTT, Intel HEXL provides up to 7.2x and 6.7x speedup, respectively,
over a native C++ implementation. Intel HEXL also provides up to 6.0x speedup
on the element-wise vector-vector modular multiplication, and 1.7x speedup on
the element-wise vector-scalar modular multiplication. Intel HEXL is available
open-source at https://github.com/intel/hexl under the Apache 2.0 license.