PSI-STATS is a 2-party aggregate statistics protocol for PSI, this is currelty a work in progress.
You can find an example of a protocol run in proto/proto_test.go
.
As of now the protocol runs successfully on small testsets, generalizing and optimizing the protocol to larger sets is in progress.
cmd/
: Implements a lightweight sandbox for executing the protocol.data/
: Synthetic datasets for benchmarks and tests.docs/
: Project and Protocol docs.internal/
: Implementation internals.pkg/
: Implementation packages with an external API.crypto/
: Provides an easy to mis-use interface to the cryptographic building blocks.net/
: Provides a 2-Party communication channel using Websockets and HTTP/2.proto/
: Provides an API to protocol definition and constants.
scripts/
: Useful scripts for generating synthetic datasets for testing and simulations.tests/
: Integration tests.
We define protocol parameters in pseudocode and describe core algorithms and building blocks.
a[i],b[i] # identifiers
t[i] # statistic associated with identifier i.
A.X = [a[i]] # party A holds set X
B.Y = [b[i],t[i]] # party B holds set Y
Y_ = [b[i]]
E = (Enc,Dec) # agreed upon instance of Paillier
h = (Sha256) # sha256 hash function
G # group of large order