Overview
PETAce
Privacy-Enhancing Technologies via Applied Cryptography Engineering (PETAce) is a framework for privacy-preserving computing. It provides strong privacy guarantee by analytzing and computing cryptographically pseudonymized data without revealing hidden sensitive information. It consists of the following parts:
The “user interface” layer provides users with high-level programming interfaces for collaborative data analysis (SecureNumpy), joint SQL query (SecureSQL), and privacy-preserving machine learning (SecureML). It also supports large-scale data computing by combining Secure Multi-party Computation and parallel processing systems (such as Spark).
The “virtual machine” layer is responsible for parsing high-level language into secure multi-party computation (MPC) operators, and performing automatic optimization and scheduling.
The “protocol” layer includes secure multi-party computation protocols, such as general-purpose two-party secure computation protocols, privacy set intersection, and privacy information retrieval, etc.
The “primitive” layer consists of standard cryptographic algorithms and protocols, differential privacy mechanisms, and abstract network interfaces, etc.

PETAce enables fast prototyping of ideas based on privacy-enhancing technologies, and we plan to integrate state-of-the-art research results into the PETAce in future releases. Its core modules are implemented in C++ and are modularized into the following repositories.
- PETAce-Solo implements primitive hashing, encryption, and randomness generation algorithms performed by one party.
- Hash functions: SHA-256, SHA3-256, and BLAKE2b
- Psuedo-random number generators based on: SHAKE_128, BLAKE2Xb, and AES_ECB_CTR.
- Sampling of bytes, 32-bit unsigned integers, and 64-bit unsigned integers from the uniform distribution
- Prime field elliptic curve group arithmetics including hash-to-curve
- Hashing tables: Cuckoo hashing and simple hashing
- Partially homomorphic encryption: the Paillier cryptosystem
- PETAce-Verse includes frequently used cryptographic subprotocols such as oblivious transfer and oblivious shuffling.
- PETAce-Duet abstracts general-purpose two-party secure computing operator protocols.
- Protocols from ABY
- Secure comparison protocols from Cheetah
- The secure random shuffling protocol from Secret-Shared Shuffle
- Protocols that convert arithmetic shares to and from ciphertexts of the Paillier cryptosystem
- PETAce-SetOps archives several protocols that perform private set operations.
- An ECDH-PSI protocol based on Elliptic-Curve Diffie-Hellman
- The KKRT-PSI protocol based on Oblivious Pseudorandom Functions (OPRF)
- A private join and compute protocol based on Circuit-PSI
- PETAce-Network provides a preliminary interface of network communication.
- Network abstract interface
- Socket network implementation