Skip to content
An Implementation of Order-Revealing Encryption
C Makefile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore initial commit Mar 14, 2016
LICENSE initial commit Mar 14, 2016
Makefile implementation of new block ORE scheme Oct 18, 2016
README.md update README Oct 18, 2016
aes.h provide option for instantiating PRF with AES Oct 17, 2016
crypto.c implementation of new block ORE scheme Oct 18, 2016
crypto.h implementation of new block ORE scheme Oct 18, 2016
errors.h implementation of new block ORE scheme Oct 18, 2016
flags.h
ore.c
ore.h implementation of new block ORE scheme Oct 18, 2016
ore_blk.c fix typo in comments Oct 18, 2016
ore_blk.h fix typo in comments Oct 18, 2016
test_ore.c rename parameter, more comments Oct 17, 2016
test_ore_blk.c fix small bug in test code Oct 18, 2016
time_ore.c
time_ore_blk.c implementation of new block ORE scheme Oct 18, 2016

README.md

FastORE

This is a prototype implementation of the order-revealing encryption (ORE) schemes described in the following papers:

This implementation is a research prototype and serves primarily as a proof of concept and benchmarking tool for our cryptographic primitives. The code has not been carefully analyzed for potential security flaws, and is not intended for use in production-level code.

Authors:

  • David J. Wu, Stanford University
  • Kevin Lewi, Stanford University

Contact David for questions about the code: dwu4@cs.stanford.edu

Project Website: https://crypto.stanford.edu/ore/

Prerequisites

Make sure you have the following installed:

Currently, our system requires a processor that supports the AES-NI instruction set.

Installation

git clone --recursive https://github.com/kevinlewi/fastore.git
cd fastore
make

Running Tests

To test the basic ORE scheme (described in the first paper), use the following command:

./tests/test_ore

To test the "block ORE" scheme (described in the second paper), use the following command:

./tests/test_ore_blk

Running Benchmarks

To run the benchmarks, use the commands:

./tests/time_ore
./tests/time_ore_blk

Additional Configuration

See flags.h for additional configuration changes that are possible.

You can’t perform that action at this time.