Difference between revisions of "Main Page"

From certFHE Community KB
Jump to navigation Jump to search
 
(63 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<strong>MediaWiki has been installed.</strong>
+
This community wiki is curated by members of the [https://www.certsign.ro/en/about-us/research-and-innovation/ Research and Development] group at [https://certsign.ro/?changeLang=eng certSIGN]. If you would like to get in touch with our research group, you can contact us at <b>certfhe -at- certsign - dot - ro</b>. 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.
  
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.
+
== Theoretical aspects ==
  
[[FhePlayground]] Schemes in 2020.
+
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.
  
== Getting started ==
+
[[Homomorphic encryption]] Defining and describing homomorphic encryption.
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]
+
 
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]
+
[[FHE]] Theory and examples
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
+
 
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]
+
[[FHE over the Integers]]. A presentation of the scheme proposed by Dijk, Gentry, Halevi, Vaikuntanathan
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]
+
 
 +
[[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.
 +
 
 +
[https://github.com/homenc/HElib HELib] - GitHub page https://github.com/homenc/HElib
 +
 
 +
[https://www.microsoft.com/en-us/research/project/microsoft-seal/ SEAL] - GitHub page https://github.com/microsoft/SEAL
 +
 
 +
[https://github.com/snucrypto/HEAAN HEAAN] - GitHub page https://github.com/snucrypto/HEAAN
 +
 
 +
[https://concrete.zama.ai Concrete] - GitHub page https://github.com/zama-ai/concrete
 +
 
 +
[https://certfhe.gitbook.io/certfhe/ 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 <b>if/else </b> 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." <ref>A. Viand, P. Jattke, A. Hithnawi. SoK: Fully Homomorphic Encryption Compilers, https://arxiv.org/abs/2101.07078 .</ref>
 +
 
 +
== 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.

Latest revision as of 14:48, 5 April 2021

This community wiki is curated by members of the Research and Development group at certSIGN. If you would like to get in touch with our research group, you can contact us at certfhe -at- certsign - dot - ro. 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 .