Skip to content

z6shang/OSSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An Implementation of OSSE

This is repository contains the prototype implementation of OSSE. The files in this repository refer to the scheme as DP-SSE (Differentially Private SSE) since this was its original name.

This implementation is a research poc built for micro benchmarking purpose, and is not intended to be used in production-level code as it has not been carefully verified for potential performance issues or security flaws.

Authors: Zhiwei Shang, Simon Oya, Andreas Peter, Florian Kerschbaum.

Paper: Obfuscated Access and Search Patterns in Searchable Encryption, 28th Network and Distributed System Security Symposium (NDSS), 2021.

Contact Zhiwei for questions about the code: z6shang@uwaterloo.ca.

Prerequisites

Make sure you have the following installed.

Installation

    git clone --recursive https://github.com/z6shang/dp_sse.git
    cd fhipe/charm
    git checkout master && git pull
    cd ..
    # It should be noted that you might need to modify the original Makefile in the following way if you are using conda environments
    # Modify 
    # $(CHARM): FORCE
    #    cd charm && ./configure.sh  --install=. && make
    # Into
    # $(CHARM): FORCE
    #	 cd charm && ./configure.sh  --python=your/path/to/python --install=. && make
    sudo make install

Running the benchmarking

Make sure that you are in the dir dp_sse/code.

	python3 dp_sse_bench.py

Modules

This library ships with the following modules:

  • DPSSE: In dp_sse/code/dp_sse.py, implements differential private SSE.
  • DPSSE for benchmarking simulation In dp_sse/code/dp_sse_bench.py, implements/simulates the dpsse in benchmarking.
  • Datasets: In dp_sse/db/*.json, there are the preprocessed dataset used to build dpsse and dpsse benchmarking.

Submodules

We rely on the following two submodules:

  1. FHIPE for ipe support. (Note that it is not required in benchmarking.)
    1. FLINT for the C backend
    2. Charm for the pairings implementation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages