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]
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.
Here are the few steps required to get PAnTHErS up and running on your 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.
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.
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.
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
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.
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
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
PAnTHErS is licensed under the CeCILL 2.1 License. See the License.txt file for more details.
© 2018 Cyrielle Feron - ENSTA Bretagne