This is a prototype implementation of the order-revealing encryption (ORE) schemes described in the following papers:
- Practical Order-Revealing Encryption with Limited Leakage (ore.h)
- Order-Revealing Encryption: New Constructions, Applications, and Lower Bounds (ore_blk.h)
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/
Make sure you have the following installed:
Currently, our system requires a processor that supports the AES-NI instruction set.
git clone --recursive https://github.com/kevinlewi/fastore.git
cd fastore
make
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
To run the benchmarks, use the commands:
./tests/time_ore
./tests/time_ore_blk
See flags.h
for additional configuration changes that are possible.