Getting Started

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

PETAce

Requirements

SystemToolchain
LinuxClang++ (>= 5.0) or GNU G++ (>= 5.5), CMake (>= 3.15)
Required dependencyTested versionUse
OpenSSL1.1.1Cryptographic primitives
GMP6.3.0Bignumer operations for GMP-based Paillier
Eigen3.4.0Matrix and vector templates
Microsoft SEAL4.1.0Fully homomorphic encryption
Google Logging0.4.0Logging
JSON for Modern C++(JSON)3.10.1PSI parameter configuration
PETAce-Solo0.4.0Cryptography primitives
PETAce-Network0.4.0Network communication protocols
PETAce-Verse0.4.0Primitive cryptographic protocols
PETAce-SetOps0.4.0Set operations MPC protocol
PETAce-Verse0.4.0MPC protocol
Optional dependencyTested versionUse
Intel Paillier Cryptosystem Library (IPCL)495beaad1f6e70741f2b5cf1279cb919fd66d894Paillier Encryption
gRPC1.62.1Network communication
CryptoDataEngine0.1.0Big data parallel support

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 OptionsValuesDefaultDescription
CMAKE_BUILD_TYPERelease/DebugReleaseDebug 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.