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).
-
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
-
Python API provides Python APIs such as SecureNumpy, SecureML, SecureSQL, and SetOps.