Paper 2015/294

Accelerating Somewhat Homomorphic Evaluation using FPGAs

Erdi̇̀nç Öztürk, Yarkın Doröz, Berk Sunar, and Erkay Savaş


After being introduced in 2009, the first fully homomorphic encryption (FHE) scheme has created significant excitement in academia and industry. Despite rapid advances in the last 6 years, FHE schemes are still not ready for deployment due to an efficiency bottleneck. Here we introduce a custom hardware accelerator optimized for a class of reconfigurable logic to bring LTV based somewhat homomorphic encryption (SWHE) schemes one step closer to deployment in real-life applications. The accelerator we present is connected via a fast PCIe interface to a CPU platform to provide homomorphic evaluation services to any application that needs to support blinded computations. Specifically we introduce a number theoretical transform based multiplier architecture capable of efficiently handling very large polynomials. When synthesized for the Xilinx Virtex 7 family the presented architecture can compute the product of large polynomials in under $6.25$~msec making it the fastest multiplier design of its kind currently available in the literature and is more than 102 times faster than a software implementation. Using this multiplier we can compute a relinearization operation in $526$ msec. When used as an accelerator, for instance, to evaluate the AES block cipher, we estimate a per block homomorphic evaluation performance of $442$~msec yielding performance gains of $28.5$ and $17$ times over similar CPU and GPU implementations, respectively.

Available format(s)
Publication info
Preprint. MINOR revision.
Homomorphic encryptionNTT multiplicationFPGA
Contact author(s)
sunar @ wpi edu
2015-04-01: received
Short URL
Creative Commons Attribution


      author = {Erdi̇̀nç Öztürk and Yarkın Doröz and Berk Sunar and Erkay Savaş},
      title = {Accelerating Somewhat Homomorphic Evaluation using FPGAs},
      howpublished = {Cryptology ePrint Archive, Paper 2015/294},
      year = {2015},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.