Main Page

From certFHE Community KB
Jump to navigation Jump to search

This community wiki is curated by members of the Research and Development group at certSIGN. We hope that it will grow with time, as various topics concerning homomorphic encryption are discussed in our research seminars. Our primary goal is to create a resource with useful theoretical for the researchers in our group. Any new members or students that are interested in these topics can get up to speed with our activity.

Theoretical aspects

As anticipated in the title, the constantly updating content in the pages listed below has an emphasis on the theoretical part of various encryption schemes. We tried to include intuitive explanations for some of the technical FHE constructions.

Homomorphic encryption Defining and describing homomorphic encryption.

FHE Theory and examples

FHE over the Integers. A presentation of the scheme proposed by Dijk, Gentry, Halevi, Vaikuntanathan

Efficient FHE from (Standard) LWE. A presentation of the scheme BV11. The concept of ``key switching" is first introduced there.

BGV. A presentation of the scheme and of the HElib library.

Fully Homomorphic Encryption without Modulus Switching Presentation of the scheme proposed by Brakerski. The BFV scheme is build on ideas presented here.

BFV. A presentation of the scheme and of the SEAL library.

GSW. Homomorphic Encryption from LWE - a presentation of the scheme proposed by Gentry, Sahai and Waters in 2013.

GSW - Bootstrapping. Ideas from the paper "Faster Bootstrapping with Polynomial Error" by Alperin-Sheriff and Peikert. A different version of GSW with tighter error bounds

certSGN Presentation of our symmetric, bounded FHE scheme

certSGN application: Privacy Preserving Morphological Operations for Digital Images. Presentation of the article written by Lupascu, Plesca and Togan.

Bridges between encryption schemes.

certBridge @TODO: Description of the bridge.

Some FHE libraries

Libraries implement the underlying cryptographic operations of a FHE scheme. These usually provide key generation, encryption, decryption, homomorphic addition and multiplication interfaces. The libraries listed below include dozens of additional functionalities for ciphertext maintenance and manipulation.

The list below is not an exhaustive one. It only includes the libraries in which members of our research group have studied and/or have experience with.

HELib - GitHub page https://github.com/homenc/HElib

SEAL - GitHub page https://github.com/microsoft/SEAL

HEAAN - GitHub page https://github.com/snucrypto/HEAAN

Concrete - GitHub page https://github.com/zama-ai/concrete

certFHE - GitHub page https://github.com/certfhe

It is important to understand that while these libraries ease the process of writing FHE-based applications, this writing process requires significant knowledge and understanding of the underlying scheme, as the libraries are relatively low-level.

Moreover, one should keep in mind that ".. standard programming paradigms rely on some form of data-dependent execution branching such as the if/else statements and loops.

FHE computations, on the other hand, are by definition data independent, or they would violate the privacy guarantees. Therefore, FHE computations are frequently conceptualized as circuits, i.e., gates (or operations) connected by wires, where follows the same steps, no matter what values the input has." [1]

FHE compilers

Compilers are tools that provide a high-level abstraction to develop FHE-based applications, with the aim that developers will not have to deal directly with homomorphic operations on ciphertexts (which are very specific to a library).

These tools generally manage key setup, encryption, decryption, and ciphertexts maintenance operations in the background. Being relatively new, the term FHE-compiler is used loosely. Some of these compilers function more like interpreters or libraries.

  1. A. Viand, P. Jattke, A. Hithnawi. SoK: Fully Homomorphic Encryption Compilers, https://arxiv.org/abs/2101.07078 .