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 supported are based on Centos, Fedora, or Ubuntu, or Alpine. 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.
To learn more about FHE in general, and what it can be used for, you can check out our FAQ/Content Solutions page.
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.
Corporate clients can email [email protected] to request a design thinking workshop about building FHE solutions for your business use cases at no cost for applicants accepted to our sponsor user program. For corporate support outside of our sponsor user program, IBM Security Homomorphic Encryption Services can help unlock the value of your sensitive data without decrypting it to help maintain your privacy and compliance controls. Our trusted advisors offer commercial education, expert support and testing environments to build your prototype applications.
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.
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.
If you are looking for Documentation to our APIs or more information about individual classes or methods, that can be found here
If you are looking to build and deploy your FHE image to Hyper Protect Virtual Server, please see Deploy To Hyper Protect 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 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."
https://www.surveygizmo.com/s3/5731822/Advanced-Security-And-Encryption-Survey-2020
The remainder of this README file explains how the source code and project are organized for those who might want to contribute (also read contributing guidelines) 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.
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:
- fedora:32
- centos:8
- ubuntu:20.04
- alpine:3.12
The same setup script also downloads HElib and a required dependency Number Theory Library (NTL). These are stored in <directory where you cloned the toolkit>/DEPENDENCIES
in the host machine.
The HElib and NTL distributions are built and installed globally in /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 components.