GithubHelp home page GithubHelp logo

doytsujin / fhe-toolkit-linux Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ibm/fhe-toolkit-linux

0.0 1.0 0.0 35.03 MB

IBM Fully Homomorphic Encryption Toolkit For Linux. This toolkit is a Linux based Docker container that demonstrates computing on encrypted data without decrypting it! The toolkit ships with two demos including a fully encrypted Machine Learning inference with a Neural Network and a Privacy-Preserving key-value search.

License: MIT License

Shell 12.40% CMake 0.88% CSS 3.78% JavaScript 17.07% HTML 1.09% C++ 64.31% C 0.47%

fhe-toolkit-linux's Introduction


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.

Supported Configurations

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.

Feedback Survey

"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."

https://www.surveygizmo.com/s3/5731822/Advanced-Security-And-Encryption-Survey-2020

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:

  • fedora:32
  • centos:8
  • ubuntu:20.04

The same setup script also downloads HElib and 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.

fhe-toolkit-linux's People

Contributors

faberga avatar dowem avatar stevemar avatar imgbot[bot] avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.