Run simulation

This is a simulation website for the "Comparative Evaluation of Order-Preserving and Order-Revealing Schemes and Protocols" project. See the whitepaper and the source code.

Inputs

Legend

All simulations are public. Do not supply sensitive data.

Use this form to schedule a simulation. Simulations are placed in a queue and are executed in-order, although the queue is usually empty. Simulation result page will be available immediately and will show its current state and results when available. Results will be persisted at least for 86400 seconds.

Click "Run default example" to schedule a trivial simulation, or use the fields in the form to customize it.

Seed value is used to seed the PRG for the whole simulation. Same inputs with the same seed will always produce the same result.

You should also choose the Protocol. No encryption and OPE / ORE schemes will be used in a B+ tree, other protocols are custom. We refer to the paper for protocol descriptions.

Dataset is a list of indices, where index is an integer (that is, an integer per line). For example, 4. Queryset is a list of from-to pairs, where both components are integers and the first is no greater than the second. The format is a number, followed by coma, followed by a number. For example, 4, 6.

Cache size and cache policy define virtual cache capacity and behavior. Requests fulfilled by the cache do not count as I/Os.

I/O performance heavily depends on the page size and the number of elements per I/O page. Default values will be assigned such that elements (ciphertexts) and B+ tree nodes fit in a page, assuming page size of 8192 bits. For ORAM, client's B+ tree branching factor is 256. An element is specific to protocol: a node for B+ tree and POPE, symmetric encryption cipher for Kerschbaum and SSE schemes or block of ORAM.

Data and query set sizes are restricted to 1000 and 100 elements respectively. Inputs beyond these limits will not be read. Please, use our docker images (see the docs) to run arbitrary-sized simulations.