Getting Started

PETAce-Solo

Requirements

System Toolchain
Linux Clang++ (>= 5.0) or GNU G++ (>= 5.5), CMake (>= 3.15)
Required dependency Tested version Use
OpenSSL 1.1.1 Cryptographic primitives
GMP 6.3.0 Bignumer operations for GMP-based Paillier
Optional dependency Tested version Use
GoogleTest 1.12.1 For running tests
GoogleBenchmark 1.6.1 For running benchmarks
Intel Paillier Cryptosystem Library 495beaad1f6e70741f2b5cf1279cb919fd66d894 For partially homomorphic encryption

Building PETAce-Solo

We assume that all commands presented below are executed in the root directory of PETAce-Solo.

To build PETAce-Solo library (optionally with test, benchmark, and example):

cmake -S . -B build -DSOLO_BUILD_TEST=ON -DSOLO_BUILD_BENCH=ON -DSOLO_BUILD_EXAMPLE=ON
cmake --build build

Output binaries can be found in build/lib/ and build/bin/ directories.

Compile Options Values Default Description
CMAKE_BUILD_TYPE Release/Debug Release Debug mode decreases run-time performance.
SOLO_BUILD_SHARED_LIBS ON/OFF OFF Build a shared library if set to ON.
SOLO_BUILD_BENCH ON/OFF ON Build C++ benchmark if set to ON.
SOLO_BUILD_EXAMPLE ON/OFF ON Build C++ example if set to ON.
SOLO_BUILD_TEST ON/OFF ON Build C++ test if set to ON.
SOLO_BUILD_DEPS ON/OFF ON Download and build unmet dependencies if set to ON.
SOLO_USE_IPCL ON/OFF OFF BUILD IPCL-based PHE if set to ON, GMP-based PHE if set to off

Adding Partially Homomorphic Encryption

By default, the Paillier cryptosystem is a generic implementation that uses the GMP library. For power users who seek extreme performance on supported processors, we provide the option to switch to the IPCL-based implementation. To use the IPCL-based Paillier, follow instructions of Intel Paillier Cryptosystem Library and install it to ${IPCL_INSTALL_DIR}. We recommend the commit 495beaad1f6e70741f2b5cf1279cb919fd66d894 instead of v2.0.0. Build PETAce-Solo library with extra configuration:

cmake -S . -B build -DSOLO_USE_IPCL=ON -DIPCL_DIR=${IPCL_INSTALL_DIR}/lib/cmake/ipcl-2.0.0
Last modified September 10, 2024 : petace-verse (0548b3b)