Getting Started

Prepare your development environment, quick start and basic tutorials of PETAce.

PETAce

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
Eigen 3.4.0 Matrix and vector templates
Microsoft SEAL 4.1.0 Fully homomorphic encryption
Google Logging 0.4.0 Logging
JSON for Modern C++(JSON) 3.10.1 PSI parameter configuration
PETAce-Solo 0.3.0 Cryptography primitives
PETAce-Network 0.3.0 Network communication protocols
PETAce-Verse 0.3.0 Primitive cryptographic protocols
PETAce-SetOps 0.3.0 Set operations MPC protocol
PETAce-Verse 0.3.0 MPC protocol
Optional dependency Tested version Use
Intel Paillier Cryptosystem Library (IPCL) 495beaad1f6e70741f2b5cf1279cb919fd66d894 Paillier Encryption
gRPC 1.62.1 Network communication

Building PETAce

The commands presented below should be executed in the root directory of PETAce.

First, build JSON for Modern C++ (JSON) using the following scripts. Assume that JSON is cloned into the directory ${JSON}.

cmake -B ${JSON}/build -S ${JSON}
cmake --build ${JSON}/build -j

Then, build PETAce library:

cmake -S . -B build -Dnlohmann_json_DIR=${JSON}/build -DPETACE_BUILD_PYTHON=ON
cmake --build build
cd build
make wheel

Output binaries can be found in build/python/wheel/ directory.

Compile Options Values Default Description
CMAKE_BUILD_TYPE Release/Debug Release Debug mode decreases run-time performance.

For more compilation options, such as enabling IPCL and network agents, please refer to PETAce-Solo and PETAce-Network.

For instructions on how to run examples of PETAce, please refer to the instructions in the example directory.

Last modified September 10, 2024 : petace-verse (0548b3b)