Home

Awesome

(C) 2018 University of Bristol, Bar-Ilan University. See License.txt

This repository contains the code to benchmark ORAM in SPDZ-BMR as used for the Eurocrypt 2018 paper by Marcel Keller and Avishay Yanay.

Preface:

This implementation only allows to benchmark the data-dependent phase. The data-independent and function-independent phases are emulated insecurely. The software should be considered an academic prototype, and we will only give advice on re-running the examples below.

Requirements:

To compile:

  1. Edit CONFIG or CONFIG.mine:
  1. Run make bmr (use the flag -j for faster compilation multiple threads). Remember to run make clean first after changing CONFIG or CONFIG.mine.

Configure the parameters:

  1. Edit Program/Source/gc_oram.mpc to change size and to choose Circuit ORAM or linear scan without ORAM.
  2. Run ./compile.py -D gc_oram.

Run the protocol:

To run with more than two parties, change CFLAGS = -DN_PARTIES=<n> in CONFIG, and compile again after make clean.