Skip to content
iquah1 edited this page Mar 7, 2023 · 1 revision

GSOC 2023

About OpenFHE

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.

What is FHE and why is it useful?

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:

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.

Getting started

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!

Hands On

To be considered, you must accomplish the following (in addition to the per-project required skills):

Video Lectures

We encourage interested participants to watch the following:

Projects

Mobile Capabilities

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.

Expected Outcome

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.

Required Skills

  1. An intermediate background in either Android or iOS development (whether through Swift or Objective C)
  2. Knowledge of how to expose C++ capabilities to your corresponding platform.

Nice-to-haves

  1. A basic understanding of the OpenFHE library
  2. A basic understanding of fully homomorphic encryption

Expected Size of Project

Long - 350 hours

Potential Mentors


HEBench

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.

Description

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.

Expected Outcome

  • 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

Required Skills

  1. Intermediate C++ skills

Nice-to-haves

  1. A basic understanding of the OpenFHE library
  2. A basic understanding of fully homomorphic encryption

Expected Size of Project

Long - 350 hours

Potential Mentors