This is the implementation of our CCS 2021 paper: Compact and Malicious Private Set Intersection for Small Sets[ePrint].
git clone --recursive git@github.com:osu-crypto/MiniPSI.git
$ cd MiniPSI
$ bash buildAll.get
If you have any problem, see below.
C++ compiler with C++14 support. There are several library dependencies including Boost, Miracl, NTL with GMP, and libOTe. For libOTe, it requires CPU supporting PCLMUL, AES-NI, and SSE4.1. Optional: nasm for improved SHA1 performance. Our code has been tested on both Windows (Microsoft Visual Studio) and Linux. To install the required libraries:
- For building boost, miracl and libOTe, please follow the more instructions at
libOTe. A quick try for linux:cd libOTe/cryptoTools/thirdparty/linux/,bash all.get,cdback tolibOTe,cmake .and thenmake -j - For NTL with GMP and gf2x,
cd ./thirdparty/linux, and runall.get. Then, you can runcmake .in SpOT-PSI folder, and thenmake -j - See
herefor full setup script
NOTE: if you meet problem with NTL, try to do the following and read Building and using NTL with GMP. If you see an error message cmd.exe not found, try to install https://www.nasm.us/
After cloning project from git,
- build cryptoTools, libOTe, libsodium, libPSI projects in order.
- add argument for frontend project (for example: -t)
- run frontend project
- make (requirements:
CMake,Make,g++or similar) - for test: ./bin/frontend.exe -t
-t: unit test which computes PSI of 2 paries, each with set size 2^8 in semi-honest setting
-n:log of receiver's set size (e.g. n=8 => setsize =2^8)
-m: log of sender's set size (e.g. n=8 => setsize =2^8)
-r: evaluating DH-based PSI
-e: evaluating JL10-based PSI
-i: evaluating our poly-based PSI
./bin/frontend.exe -t
DH-based PSI
./bin/frontend.exe -r 0 -n 10 & ./bin/frontend.exe -r 1 -n 10
JL10-based PSI
./bin/frontend.exe -e 0 -n 10 & ./bin/frontend.exe -e 1 -n 10
our protocol (Poly-based PSI)
./bin/frontend.exe -i 0 -n 10 & ./bin/frontend.exe -i 1 -n 10
For any questions on building or running the library, please contact Ni Trieu at trieun at oregonstate dot edu