Currently, this project is still in the development phase.
The goal of this project is to test the FHE (Fully Homomorphic Encryption) libraries.
![fhetest_structure](https://private-user-images.githubusercontent.com/70590609/324225842-7522e057-0c28-447c-8cde-beaa9fd28276.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNDk0NTgsIm5iZiI6MTczOTM0OTE1OCwicGF0aCI6Ii83MDU5MDYwOS8zMjQyMjU4NDItNzUyMmUwNTctMGMyOC00NDdjLThjZGUtYmVhYTlmZDI4Mjc2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEyVDA4MzIzOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZiYWJmM2M0YTU2MWEzNTAyNTgyM2VjYTQzOGYxM2U1YjM0ZmI5MmM5MGFkY2E0NmIzNjFmMzY2ZDJiN2RkZWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.wZpPrq4rik6vtw_uV0CLc90H3LqqbqBjR9enoCHP_Es)
created by @hyerinshelly.
Our tool is written in Scala3, so you need to install the Scala3 compiler and build tools. You can find the installation instructions here.
$ git clone https://github.com/Maokami/fhetest.git
Insert the following commands to ~/.bashrc (or ~/.zshrc):
export FHETEST_HOME="<path to the fhetest directory>"
export PATH="$FHETEST_HOME/bin:$PATH"
This tool uses the T2-FHE-Compiler-and-Benchmarks with some modifications. So you need to install the submodules.
$ cd $FHETEST_HOME && git submodule update --init
You can install the FHE libraries(SEAL, OpenFHE) by running the build.sh
script in the T2 directory.
$ cd $FHETEST_HOME/src/main/java/T2-FHE-Compiler-and-Benchmarks/
$ chmod +x .circleci/build_libs.sh
$ .circleci/build_libs.sh
Because the T2 project requires some dependencies, you should install them first.
$ apt install cmake make build-essential g++ clang autoconf javacc patchelf openjdk-8-jdk maven m4 tar lzip libfftw3-dev
Now, you can build the project by sbt.
# build the T2 project and the fhetest project
$ sbt buildT2 && sbt assembly
If you want to know more about the commands, you can run the following command:
$ fhetest help
# Usage: fhetest <command> [options]
# Commands:
# ...