-
Notifications
You must be signed in to change notification settings - Fork 197
GSOC 2023
OpenFHE is a cryptography library that provides efficient extensible implementations of the leading post-quantum Fully Homomorphic Encryption (FHE) schemes.
OpenFHE supports all major FHE schemes, including the BGV, BFV, CKKS, DM (FHEW), and CGGI (TFHE) schemes. We support several bootstrapping designs, and we have more efficient bootstrapping schemes in active development.
OpenFHE will participate in the Google Summer of Code (GSoC) 2023 event under the NumFOCUS umbrella.
Note: In the remainder of the document, we make references to "PALISADE". Palisade is the precursor to OpenFHE and although there are differences in the code, the underlying concepts and ideas are the same.
In a nutshell, FHE allows us to carry out mathematical operations on ciphertexts. This means that FHE has great potential for a variety of tasks particularly those involving sensitive data such as:
- enabling computation on private encrypted data
- private set intersection
- Genetics analysis, such as was done in Secure large-scale genome-wide association studies using homomorphic encryption
and much more.
FHE has applications in healthcare, finance, and insurance, industries that are heavily regulated but also make use of private or sensitive data.
Thank you for considering applying to OpenFHE for GSoC 2023! We welcome new contributors to the library and are eager to see what you come up with!
To be considered, you must accomplish the following (in addition to the per-project required skills):
- Install OpenFHE on your appropriate dev environment
- Successfully run some of the examples in our PKE-FHE Layer
We encourage interested participants to watch the following:
- PALISADE Webinar: Introduction to FHE to get a better understanding of what FHE is, the capabilities it provides, and why it is important in this day and age.
- PALISADE Webinar: Integer Applications and read through the OpenFHE Integer Applications, where we do an encrypted string search. This will give you an idea of how to build applications with PALISADE/OpenFHE
- PALISADE Webinar: WebAssembly and JavaScript Applications where one of the core developers behind the community WASM port presents their work.
-
Mobile Capabilities
- An Android SDK
- An iOS SDK
- HEbench OpenFHE backend
An idea that we are excited about is allowing an end-user to create necessary keys and ciphertexts on their phone. Enabling these capabilities would help expand FHE's reach into more edge devices and help with FHE adoption. To that end, one project that we are proposing is to enable iOS and android developers to use OpenFHE in their workflow.
There currently exists work by IBM that provides an iOS SDK for the HElib, but no Android SDK.
Individual SDKs for Android and iOS (we do not expect a single contributor to do both) that can be easily extended upon, and can run various simple scripts as listed in the PKE-FHE example above. Specifically, we would like to be able to run the following examples:
- simple-integers-bgvrns
- simple-integers-serial-bgvrns
- simple-real-numbers
- simple-real-numbers-serial
Additionally, we would like to see unit tests
Stretch Goals:
- wrappers to allow sending buffers of information (JSON and or binary) to and from other devices, which would allow end-users to transmit their keys and ciphertexts.
- An intermediate background in either Android or iOS development (whether through Swift or Objective C)
- Knowledge of how to expose C++ capabilities to your corresponding platform.
- A basic understanding of the OpenFHE library
- A basic understanding of fully homomorphic encryption
Long - 350 hours
Another project that we are excited about is the addition of a HEBench OpenFHE backend. From theHEBench Github github:
HEBench is an open-source flexible benchmarking framework for Homomorphic Encryption, provided by the HEBench Organization, that allows fair performance comparison among different implementations (in hardware and/or software) of a collection of homomorphic encryption workloads.
By enabling OpenFHE to be benchmarked fairly against other frameworks, you are not only helping the OpenFHE library, but the community as a whole. The work you do will enable end-users to make informed decisions when it comes to library performance.
There exists a HEBench wrapper for PALISADE, which enables the community to run fair performance benchmarking between PALISADE and other libraries. However, no such wrapper exists for OpenFHE.
We would like to add such a backend for OpenFHE. We encourage interested users to study the code for the PALISADE HEBench which will be an invaluable reference.
- A constructed backend that maintains feature parity and function signatures with the existing HEBench wrapper for PALISADE.
- Integration with the Frontend Test Harness to fully run the tests
- Intermediate C++ skills
- A basic understanding of the OpenFHE library
- A basic understanding of fully homomorphic encryption
Long - 350 hours