Mozzarella Benchmarking Code
This repository contains the code developed for the benchmarking experiments in our paper:
"Moz
Code
The code is based on the secure computation framework swanky by Galois, more specifically, on a fork of swanky by Mathias Hall-Andersen.1 The implementation of our VOLE protocol for ocelot/src/ot/mozzarella
. The benchmarking code for the QuarkSilver zero-knowledge protocol is located in ocelot/src/quarksilver
.
Compile
We have tested the code with Rust v1.58.1. It requires an x86 processor with AESNI and SSE2 instruction set extensions. To compile the benchmarks, run cargo build --release
. Then the benchmark programs can be found under target/release/mozzarella_bench
and target/release/qs_mult_bench
.
Running the Benchmarks
The benchmark binaries have a builtin --help
which documents the available option.
Example: VOLE Extension Benchmark
Sender / Prover Command
./target/release/mozzarella_bench \
--party prover \
--listen \
--host ::1 \
--threads=4 \
--repetitions=10 \
--json \
--ring=r144 \
--base-vole-size=553600 \
--num-noise-coordinates=2186 \
--extension-size=10557972
Receiver / Verifier Command
./target/release/mozzarella_bench \
--party verifier \
--host ::1 \
--threads=4 \
--repetitions=10 \
--json \
--ring=r144 \
--base-vole-size=553600 \
--num-noise-coordinates=2186 \
--extension-size=10557972