Skip to content

Prototyping and Analysis Tool for Homomorphic Encryption Schemes

License

Notifications You must be signed in to change notification settings

cferon/PAnTHErS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PAnTHErS

Prototyping and Analysis Tool for Homomorphic Encryption Schemes (PAnTHErS) is the result of the work presented in [FLL20].

[FLL20] Cyrielle Feron, Loïc Lagadec, Vianney Lapôtre. Automated exploration of homomorphic encryption scheme input parameters, Journal of Information Security and Applications, Volume 55, 2020, 102627, ISSN 2214-2126, https://doi.org/10.1016/j.jisa.2020.102627.

[TOC]

Quick Presentation

PAnTHErS is a tool written in Python, intented to evaluate Homomorphic Encryption Schemes (HE Schemes). Its goal is to provide a fast insight of execution time and memory consumption for an application using homomorphic encryption.

PAnTHErS can then help users to choose the optimal HE Scheme to use for a given application. It also helps to choose the best parameters to use for a given HE Scheme.

Getting Started

Here are the few steps required to get PAnTHErS up and running on your system.

Operating system

The install process described here have been tested on a stock 64 bits Debian Linux 9.5 system. The base system is installed using the Debian netinst installer.

Install required software

Sage

Download Sage installer from SageMath website.

At the time we write this Readme, the latest Sage version is 8.2. You may try later versions of Sage, but the final result cannot be guaranteed.

Note that PAnTHErS was originally developped using Sage 7.6.

Here we download Sage 8.2 64 bits for Debian Linux 9 sage-8.2-Debian_GNU_Linux_9-x86_64.tar.bz2 (1658.98 MB) dated from 2018-05-08 22:01.

MD5: fd83b2b63699b90c41e74e9988c705d2

For this installation process, we followed the official Sage installation guidelines.

Sage Software requirements

See Sage installation guide for more details

$> sudo apt update
$> sudo apt install binutils gcc make m4 perl tar git openssl libssl-dev

PAnTHErS interface uses Tk, the following package must be installed:

$> sudo apt install tk tk-dev

From a terminal, extract the Sage archive:

$> tar -jxvf sage-8.2-Debian_GNU_Linux_9-x86_64.tar.bz2 

On the local folder, a SageMath directory is created

$> cd SageMath

Then start the build. To accelerate the build, you can add extra build jobs by providing a -j N option to the make command. Here we start the build with two jobs :

$> make -j 2

Note: the build process is very time consuming, it can last several hours.

PAnTHErS installation

Get the code

Download PAnTHErS code on your local file system.

	$> git clone https://github.com/cferon/PAnTHErS
OR
	$> wget https://github.com/cferon/PAnTHErS/archive/master.zip
	$> unzip master.zip
	$> mv PAnTHErS-master PAnTHErS

Then create a symbolic link named panthers on your home directory. This symbolic link is required for PAnTHErS graphical interface.

	$> cd ~
	$> ln -s /path/to/PAnTHErS panthers

Starting PAnTHErS

Go to your Sage build folder and start Sage with the following command:

$> cd /path/to/SageMath
$> ./sage

From Sage prompt, go to PAnTHErS interface folder and launch the interface:

$sage: cd
$sage: cd panthers/Interface
$sage: load("interface.py")

PAnTHErS interface should pop-up.

Note: current interface is pretty wide, a screen resolution at least 1600 pixels wide is required to be able to display the graphical interface.

Troubleshooting

User is not in sudoers file

To be able to run commands as root using the sudo command, a user needs to be registered in the sudoers file.

To do this, you first need to get a root terminal prompt:

$> su

Type your root password here, then from the root prompt:

#> visudo

You get to the sudoers file editor.

Below the line:

root	ALL=(ALL) ALL

Add your user name (here the user is named "user"):

root	ALL=(ALL) ALL
user	ALL=(ALL) ALL

Save the file and quit the editor.

The user is now able to run commands as root using sudo

You want to add Tk support to your already built Sage environment

As explained in the installation guide, you first need to download the Tk package:

$> sudo apt install tk tk-dev

Then rebuild Sage's Python:

$> sage -f python2  # rebuild Python
$> make             # rebuild components of Sage depending on Python

Copyright

PAnTHErS is licensed under the CeCILL 2.1 License. See the License.txt file for more details.

© 2018 Cyrielle Feron - ENSTA Bretagne

About

Prototyping and Analysis Tool for Homomorphic Encryption Schemes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published