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
,cd
back 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
here
for 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