IBM Fully Homomorphic Encryption Toolkit for Linux
The IBM Fully Homomorphic Encryption (FHE) Toolkit for Linux is packaged as Docker containers that make it easier to get started and experimenting with the Fully Homomorphic Encryption technology.
This repository contains all the scripts required to install and run the pre-packaged toolkits as a docker container. The toolkits comprise the IBM Homomorphic Encryption Library - HElib, an Integrated Development Environment (IDE) and the corresponding workspace containing the ready-to-run example code in a variety of supported toolkit editions. The editions suported are based on Centos, Fedora, or Ubuntu. Each toolkit edition provides access to the built in IDE via a web browser on your host. For the more adventurous users, instructions to build and package the toolkit locally are also provided.
If you are instead looking for the IBM Fully Homomorphic Encryption Tookit for macOS/iOS that provide a native toolkit for Apple developers, it can be found here.
At this time, the toolkits support many Docker capable hosts such as most modern Linux distributions, macOS, Windows 10 Subsystem for Linux and z/OS Container Extensions. Other host operating systems with recent Docker software may work as well, but are untested. On x86-64 based systems we support all three operating system editions of the toolkit. For the s390x architecture, the toolkit presently supports the Ubuntu and Fedora Editions. We hope to offer other s390x operating system options for the toolkits soon.
Running the Toolkit
If you want to dive right in and get started installing a pre-built container available from Docker Hub and using the pre-configured IDE Workspace, please see the Getting Started Document.
Building the Toolkit
If you want to build and deploy the toolkit from scratch and perhaps customize the container to your needs, please see the Getting Started Advanced Document.
"IBM invites you to participate in our Advanced Security and Encryption Survey. This survey is designed to gather insights around the security challenges you or your organization face and better understand our users and how to serve you better. We will only use your feedback to improve the FHE Toolkit experience and inform future IBM security-focused products and services. IBM will not share your response data with any third parties. We look forward to your valuable feedback to improve the IBM Fully Homomorphic Encryption Toolkit for macOS, iOS, and Linux."
About this distribution
The remainder of this README file explains how the source code and project are organized for those who might want to contribute to, or modify, the toolkit.
This toolkit installs the IDE and extensions required to compile, build and run the included HElib based examples and any application you choose to write to exploit the homomorphic encryption technology. The end result is a containerized environment complete with the source code editor, making it easy for you to develop applications using HElib.
To preserve user privacy, automatic telemetry and data collection by the IDE have been disabled in this distribution.
Docker is required to build the containerized toolkit. If you are new to Docker, we recommend starting with Docker Desktop.
Source Code Overview
This repository contains a set of Dockerfiles, scripts, and IDE configuration files to run the IBM FHE Toolkit for Linux. The toolkit runs in a Linux docker container and uses the IDE as a workspace and development environment accessible through a browser in your host system.
The toolkit is built from one of the following parent images depending on the platform specified to the setup script:
The same setup script also downloads HElib and and a required dependency Number Theory
Library (NTL). These are stored in
you cloned the toolkit>/DEPENDENCIES in the host
The HElib and NTL distributions are built and installed globally
/usr/local as a shared library in the toolkit
docker container making them available to include in your program.
HElib and NTL also depend on the GNU Multiple Precision
Arithmetic Library (GMP), which is pre-installed when building
the docker container.
The demo application source code is copied from
HElib/examples into a workspace directory
/opt/IBM/FHE-Workspace. The HElib source distribution
can be found in
/opt/IBM/FHE-distro/HElib. Both may be
accessed through the IDE workspace running in the toolkit
container, accessed through the web browser on your desktop. Always
use the workspace when trying to work with any of these