Coder Social home page Coder Social logo

ndss23's Introduction

This is the source code for NDSS’23 paper Faster Secure Comparisons with Offline Phase for Efficient Private Set Intersection by Florian Kerschbaum (University of Waterloo, Canada), Erik-Oliver Blass (Airbus, Germany), Rasoul Akhavan Mahdavi (University of Waterloo, Canada).

While development and all benchmarks have been made on standard Debian Linux, you will also be able to compile and run under Mac OS X (tested on Big Sur, using Homebrew).

Dependencies

  • Development was done with gcc in version 10 under Linux. We support Apple's clang-1300.0.29.30 for most of the code (see below). To compile, you also need OpenSSL and GMP libraries installed on your system.

  • For SGX, you need Intel's development toolkit, driver for your kernel etc. installed and working as well as the architectural enclave service manager running.

  • To precisely control bandwith between parties, we use Wondershaper. To reproduce the paper's bandwidth settings, you can use scripts 5g, 1g, 100m, 10m as found in the srcdirectory.

Preparation

  • Recursively checkout the repository including its submodules.
git clone https://github.com/BlazingFastPSI/NDSS23.git
cd NDSS23
git checkout master
git submodule update --init --recursive
  • Patch EMP-Tool to allow large data transfer
cd emp-tool
patch -p1 -s <../patch
  • Compile all EMP and SEAL submodules. We assume that you build them in place using cmake . ; make in their respective submodule directories. For emp-ot, use CMAKE_PREFIX_PATH=../emp-tool cmake . ; make
  • Enter the source directory (cd src) and compile the source with make.
    • As the exact value of $n$, the size of each party’s set, impacts several aspects of the source code, you need to edit include.h and set #include "include-20.h" to reflect your value of $\log{}n$. So, #include "include-20.h" will set $\log{}n=20$, #include "include-22.h" will set $\log{}n=22$ etc. That is, you switch between different $n$ by selecting the proper include file in include.h. We provide include files for $\log{}n$ between 20 and 26 as in the paper.

OT Offline Phase

make ot
./run_ot_offline

TTP Offline Phase

make opt-sender
./run_ttp_offline

LBC Offline Phase

cd build
CMAKE_PREFIX_PATH=../../SEAL/ cmake .. #on Mac, you do OPENSSL_ROOT_DIR=/usr/local/opt/openssl CMAKE_PREFIX_PATH=../../SEAL/ cmake ..
make
./run_psi_seal

SGX Offline Phase

cd sgx
CC=gcc-10 CXX=g++-10 make
sudo systemctl restart aesmd.service
./run_sgx_offline

(This does not work on Mac OS X.)

Online Phase

make alice
./run_psi

ndss23's People

Contributors

blazingfastpsi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.