Skip to content

Extension of ongoing research project on Arithmetic Circuit Homomorphic encryption (ACHE)

License

Notifications You must be signed in to change notification settings

kennethsoh/IE-ACHE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Integer Expressions using Arithmetic Circuit Homomorphic Encryption

License: MIT GitHub issues GitHub repo size

This is an extension of an ongoing research project on Arithmetic Circuit Homomorphic encryption (ACHE) which was implemented based on Fast Fully Homomorphic Encryption over the Torus (TFHE). This iteration focuses on integrating ASN.1 Basic Encoding Rule for the purpose of computing results of integer expressions up to 3 operands. The previous version of the project can be found here.

This project was shared at the Asia Conference on Computers and Communications (ACCC) 2020 with two papers published:

Applying Basic Encoding Rule (ITU-T X.690) on Integer Expressions using Arithmetic Circuit Homomorphic Encryption

and

Multi-Precision Integer Arithmetic Processing Using Arithmetic Circuit Homomorphic Encryption


This system is configured and tested for Ubuntu 20.04 LTS

Dependencies

  • Python3 and Pip3
$ sudo apt-get install python3 python3-pip

# Check python3 installation
$ which python3
> /usr/bin/python3
$ pip3 install asn1tools pycryptodomex
$ cd /
$ git clone --recurse-submodules --branch=master https://github.com/tfhe/tfhe.git
$ cd tfhe
$ mkdir build; cd build
$ ccmake ../src

# Press 'c' to configure, then 'g' to generate

$ make
$ make install

Installation Guide

  1. Clone this repository
$ cd /
$ git clone https://github.com/kennethsoh/IE-ACHE.git
$ cd IE-ACHE

# Provide executable permissions if needed
$ chmod u+x */*
  1. Repeat dependency installation and Step 1 minimally 4 times for 4 different machines: Client(1/2/3), Cloud, Keygen and Output.

  2. Assign IP Addresses for machines as follows:

Cloud:    192.168.0.1
Client1:  192.168.0.21
Client2:  192.168.0.22
Client3:  192.168.0.23
Keygen:   192.168.0.3
Output:   192.168.0.4
  1. Add the service files in 'Services' folder to /etc/systemd/system/. Edit the Users, WorkingDirectory and ExecStart values if necessary. Default values assume that this repository is installed at root (/) directory and root user is used.

  2. Recompile c files

$ python3 compile_c.py
> 9 files compiled
  1. Start the services on each machine
$ systemctl daemon-reload
$ systemctl enable MP MP2
$ systemctl start MP MP2
  1. Run ./process on all Client machines to generate values.txt
Output$ cd /IE-ACHE/Client{1..3}
Output$ ./process
  1. Run output_dynamic.py on Output machine
Output$ cd /IE-ACHE/Output
Output$ python3 output_dynamic.py

About

Extension of ongoing research project on Arithmetic Circuit Homomorphic encryption (ACHE)

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published