├── sinkhole-core ├── tests │ └── .gitkeep ├── LICENSE ├── src │ ├── lib.rs │ ├── errors │ │ └── mod.rs │ ├── traits.rs │ └── utils.rs └── Cargo.toml ├── sinkhole-elgamal ├── LICENSE ├── README.md ├── src │ ├── lib.rs │ ├── client │ │ └── mod.rs │ └── storage │ │ └── mod.rs └── Cargo.toml ├── benchmarks ├── src │ └── lib.rs ├── results │ └── elgamal-0.0.1 │ │ ├── db_setup_group │ │ ├── Setup DB size 2_20 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ └── report │ │ │ │ └── index.html │ │ ├── Setup DB size 2_15 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ └── change │ │ │ │ └── estimates.json │ │ ├── Setup DB size 2_10 │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ └── change │ │ │ │ └── estimates.json │ │ ├── Setup DB size 2_5 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ ├── sample.json │ │ │ │ └── raw.csv │ │ │ └── change │ │ │ │ └── estimates.json │ │ └── report │ │ │ └── index.html │ │ ├── Generate key pair │ │ ├── new │ │ │ ├── tukey.json │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── sample.json │ │ │ └── raw.csv │ │ ├── base │ │ │ ├── tukey.json │ │ │ ├── benchmark.json │ │ │ ├── estimates.json │ │ │ ├── sample.json │ │ │ └── raw.csv │ │ └── change │ │ │ └── estimates.json │ │ ├── query_gen_group │ │ ├── Generate query size 2_15 │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ └── raw.csv │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── report │ │ │ │ └── index.html │ │ ├── Generate query size 2_20 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ └── raw.csv │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── estimates.json │ │ │ │ └── raw.csv │ │ │ └── report │ │ │ │ └── index.html │ │ ├── Generate query size 2_5 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ ├── Generate query size 2_10 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ └── report │ │ │ └── index.html │ │ ├── run_query_group │ │ ├── Run query size 2_15 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── change │ │ │ │ └── estimates.json │ │ ├── Run query size 2_20 │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── report │ │ │ │ └── index.html │ │ ├── Run query size 2_10 │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── change │ │ │ │ └── estimates.json │ │ ├── Run query size 2_5 │ │ │ ├── new │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ ├── base │ │ │ │ ├── tukey.json │ │ │ │ ├── sample.json │ │ │ │ ├── benchmark.json │ │ │ │ ├── raw.csv │ │ │ │ └── estimates.json │ │ │ └── change │ │ │ │ └── estimates.json │ │ └── report │ │ │ └── index.html │ │ ├── README.md │ │ └── report │ │ └── index.html └── Cargo.toml ├── Makefile ├── tests ├── src │ ├── lib.rs │ └── elgamal_tests.rs └── Cargo.toml ├── Cargo.toml ├── .gitignore ├── .github └── workflows │ ├── audit.yml │ ├── test.yml │ └── lint.yml ├── README.md └── LICENSE /sinkhole-core/tests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /sinkhole-core/LICENSE: -------------------------------------------------------------------------------- 1 | ../LICENSE -------------------------------------------------------------------------------- /sinkhole-elgamal/LICENSE: -------------------------------------------------------------------------------- 1 | ../LICENSE -------------------------------------------------------------------------------- /benchmarks/src/lib.rs: -------------------------------------------------------------------------------- 1 | // nothing to see here.. 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | lint: 2 | cargo clippy -- -D warnings 3 | cargo fmt --all -- --check 4 | -------------------------------------------------------------------------------- /tests/src/lib.rs: -------------------------------------------------------------------------------- 1 | extern crate curve25519_dalek; 2 | 3 | #[allow(unused)] 4 | mod elgamal_tests; 5 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/base/tukey.json: -------------------------------------------------------------------------------- 1 | [706188799.0,748921639.75,862875881.75,905608722.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/new/tukey.json: -------------------------------------------------------------------------------- 1 | [706188799.0,748921639.75,862875881.75,905608722.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/new/tukey.json: -------------------------------------------------------------------------------- 1 | [46047.10970592164,51829.43803860687,67248.98025910082,73031.30859178606] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/base/tukey.json: -------------------------------------------------------------------------------- 1 | [22035243.0,23289156.1875,26632924.6875,27886837.875] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/new/tukey.json: -------------------------------------------------------------------------------- 1 | [22035243.0,23289156.1875,26632924.6875,27886837.875] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/base/tukey.json: -------------------------------------------------------------------------------- 1 | [46047.10970592164,51829.43803860687,67248.98025910082,73031.30859178606] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/new/tukey.json: -------------------------------------------------------------------------------- 1 | [3798850507.0,4102303263.25,4911510613.25,5214963369.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/base/tukey.json: -------------------------------------------------------------------------------- 1 | [3070123951.75,3302303535.625,3921449092.625,4153628676.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/new/tukey.json: -------------------------------------------------------------------------------- 1 | [3070123951.75,3302303535.625,3921449092.625,4153628676.5] -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [workspace] 2 | 3 | members = [ 4 | "sinkhole-core", 5 | "sinkhole-elgamal", 6 | "tests", 7 | "benchmarks", 8 | ] 9 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/base/tukey.json: -------------------------------------------------------------------------------- 1 | [3798850507.0,4102303263.25,4911510613.25,5214963369.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/new/tukey.json: -------------------------------------------------------------------------------- 1 | [101486133446.25,108888594540.75,128628490792.75,136030951887.25] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [668702.7284332926,715048.8443753765,838638.4868876002,884984.602829684] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/base/tukey.json: -------------------------------------------------------------------------------- 1 | [101486133446.25,108888594540.75,128628490792.75,136030951887.25] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [668702.7284332926,715048.8443753765,838638.4868876002,884984.602829684] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/base/tukey.json: -------------------------------------------------------------------------------- 1 | [5185.425779253957,14162.227504887936,38100.36543991188,47077.16716554586] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/new/tukey.json: -------------------------------------------------------------------------------- 1 | [5185.425779253957,14162.227504887936,38100.36543991188,47077.16716554586] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/base/tukey.json: -------------------------------------------------------------------------------- 1 | [109463491073.25,121962905743.875,155294678198.875,167794092869.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/new/tukey.json: -------------------------------------------------------------------------------- 1 | [109463491073.25,121962905743.875,155294678198.875,167794092869.5] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [108177198.16250001,109104862.21875,111578633.03541666,112506297.09166667] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [108177198.16250001,109104862.21875,111578633.03541666,112506297.09166667] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/new/tukey.json: -------------------------------------------------------------------------------- 1 | [3349881.5654761908,3393887.782738095,3511237.6954365075,3555243.9126984123] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/base/tukey.json: -------------------------------------------------------------------------------- 1 | [4162793.805555556,4248874.871031746,4478424.378968254,4564505.444444444] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/new/tukey.json: -------------------------------------------------------------------------------- 1 | [4162793.805555556,4248874.871031746,4478424.378968254,4564505.444444444] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/base/tukey.json: -------------------------------------------------------------------------------- 1 | [3349881.5654761908,3393887.782738095,3511237.6954365075,3555243.9126984123] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/base/tukey.json: -------------------------------------------------------------------------------- 1 | [129267515.18214285,132168116.76071429,139903054.30357146,142803655.8821429] -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/new/tukey.json: -------------------------------------------------------------------------------- 1 | [129267515.18214285,132168116.76071429,139903054.30357146,142803655.8821429] -------------------------------------------------------------------------------- /sinkhole-elgamal/README.md: -------------------------------------------------------------------------------- 1 | # ElGamal implementation of sinkhole-rs 🦀 2 | 3 | Implementation of the sinhole-rs PIR protocol using ElGamal over the Ristretto 4 | curve cryptosystem. 5 | 6 | -------------------------------------------------------------------------------- /sinkhole-elgamal/src/lib.rs: -------------------------------------------------------------------------------- 1 | extern crate curve25519_dalek; 2 | extern crate elgamal_ristretto; 3 | extern crate rand_core; 4 | extern crate sinkhole_core; 5 | 6 | pub mod client; 7 | pub mod storage; 8 | -------------------------------------------------------------------------------- /sinkhole-core/src/lib.rs: -------------------------------------------------------------------------------- 1 | extern crate curve25519_dalek; 2 | extern crate elgamal_ristretto; 3 | extern crate hex; 4 | extern crate rand_core; 5 | 6 | pub mod errors; 7 | pub mod traits; 8 | pub mod utils; 9 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"Generate key pair","function_id":null,"value_str":null,"throughput":null,"full_id":"Generate key pair","directory_name":"Generate key pair","title":"Generate key pair"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"Generate key pair","function_id":null,"value_str":null,"throughput":null,"full_id":"Generate key pair","directory_name":"Generate key pair","title":"Generate key pair"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0],"times":[119381434.0,235377609.0,331491731.0,442808843.0,551022431.0,660471675.0,770099443.0,879124983.0,993852257.0,1100171642.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0],"times":[119381434.0,235377609.0,331491731.0,442808843.0,551022431.0,660471675.0,770099443.0,879124983.0,993852257.0,1100171642.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[3547002171.0,3533749917.0,3536682727.0,3543007475.0,3528563703.0,3532793254.0,4069417055.0,3676855634.0,3727942552.0,3693407467.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0],"times":[133754748.0,268364373.0,411960469.0,543462618.0,679365726.0,814337733.0,943954475.0,1113927187.0,1261881272.0,1360493419.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0],"times":[133754748.0,268364373.0,411960469.0,543462618.0,679365726.0,814337733.0,943954475.0,1113927187.0,1261881272.0,1360493419.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[4706735135.0,4618533149.0,4427752912.0,4344000025.0,4475642174.0,4576631981.0,4398423722.0,4557844130.0,4634789472.0,4328173240.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[3547002171.0,3533749917.0,3536682727.0,3543007475.0,3528563703.0,3532793254.0,4069417055.0,3676855634.0,3727942552.0,3693407467.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[4706735135.0,4618533149.0,4427752912.0,4344000025.0,4475642174.0,4576631981.0,4398423722.0,4557844130.0,4634789472.0,4328173240.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[27.0,54.0,81.0,108.0,135.0,162.0,189.0,216.0,243.0,270.0],"times":[93808597.0,186764609.0,277849199.0,374885151.0,465198804.0,562133597.0,653759408.0,746018402.0,831201180.0,927509304.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[27.0,54.0,81.0,108.0,135.0,162.0,189.0,216.0,243.0,270.0],"times":[93808597.0,186764609.0,277849199.0,374885151.0,465198804.0,562133597.0,653759408.0,746018402.0,831201180.0,927509304.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[21.0,42.0,63.0,84.0,105.0,126.0,147.0,168.0,189.0,210.0],"times":[95642465.0,183374326.0,275576629.0,365068504.0,453627523.0,554195924.0,642170083.0,721946974.0,818607518.0,928855390.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[21.0,42.0,63.0,84.0,105.0,126.0,147.0,168.0,189.0,210.0],"times":[95642465.0,183374326.0,275576629.0,365068504.0,453627523.0,554195924.0,642170083.0,721946974.0,818607518.0,928855390.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[114141505500.0,113384479995.0,114704082648.0,121099328316.0,121234747089.0,121199877526.0,121324608937.0,121163181824.0,121767998700.0,121051974597.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^5","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^5","directory_name":"db_setup_group/Setup DB size 2_5","title":"db_setup_group/Setup DB size 2^5"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^5","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^5","directory_name":"db_setup_group/Setup DB size 2_5","title":"db_setup_group/Setup DB size 2^5"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[146838581641.0,145028192370.0,142914292364.0,142438177021.0,138860425941.0,131500589176.0,135248974852.0,134371733707.0,131620259881.0,134734080537.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[114141505500.0,113384479995.0,114704082648.0,121099328316.0,121234747089.0,121199877526.0,121324608937.0,121163181824.0,121767998700.0,121051974597.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^10","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^10","directory_name":"db_setup_group/Setup DB size 2_10","title":"db_setup_group/Setup DB size 2^10"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^10","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^10","directory_name":"db_setup_group/Setup DB size 2_10","title":"db_setup_group/Setup DB size 2^10"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^15","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^15","directory_name":"db_setup_group/Setup DB size 2_15","title":"db_setup_group/Setup DB size 2^15"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^15","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^15","directory_name":"db_setup_group/Setup DB size 2_15","title":"db_setup_group/Setup DB size 2^15"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^20","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^20","directory_name":"db_setup_group/Setup DB size 2_20","title":"db_setup_group/Setup DB size 2^20"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"db_setup_group","function_id":"Setup DB size 2^20","value_str":null,"throughput":null,"full_id":"db_setup_group/Setup DB size 2^20","directory_name":"db_setup_group/Setup DB size 2_20","title":"db_setup_group/Setup DB size 2^20"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[146838581641.0,145028192370.0,142914292364.0,142438177021.0,138860425941.0,131500589176.0,135248974852.0,134371733707.0,131620259881.0,134734080537.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^5","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^5","directory_name":"run_query_group/Run query size 2_5","title":"run_query_group/Run query size 2^5"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^5","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^5","directory_name":"run_query_group/Run query size 2_5","title":"run_query_group/Run query size 2^5"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^10","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^10","directory_name":"run_query_group/Run query size 2_10","title":"run_query_group/Run query size 2^10"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^10","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^10","directory_name":"run_query_group/Run query size 2_10","title":"run_query_group/Run query size 2^10"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^15","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^15","directory_name":"run_query_group/Run query size 2_15","title":"run_query_group/Run query size 2^15"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^15","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^15","directory_name":"run_query_group/Run query size 2_15","title":"run_query_group/Run query size 2^15"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^20","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^20","directory_name":"run_query_group/Run query size 2_20","title":"run_query_group/Run query size 2^20"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"run_query_group","function_id":"Run query size 2^20","value_str":null,"throughput":null,"full_id":"run_query_group/Run query size 2^20","directory_name":"run_query_group/Run query size 2_20","title":"run_query_group/Run query size 2^20"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^5","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^5","directory_name":"query_gen_group/Generate query size 2_5","title":"query_gen_group/Generate query size 2^5"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^5","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^5","directory_name":"query_gen_group/Generate query size 2_5","title":"query_gen_group/Generate query size 2^5"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^10","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^10","directory_name":"query_gen_group/Generate query size 2_10","title":"query_gen_group/Generate query size 2^10"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^10","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^10","directory_name":"query_gen_group/Generate query size 2_10","title":"query_gen_group/Generate query size 2^10"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^15","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^15","directory_name":"query_gen_group/Generate query size 2_15","title":"query_gen_group/Generate query size 2^15"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^15","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^15","directory_name":"query_gen_group/Generate query size 2_15","title":"query_gen_group/Generate query size 2^15"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/base/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^20","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^20","directory_name":"query_gen_group/Generate query size 2_20","title":"query_gen_group/Generate query size 2^20"} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/new/benchmark.json: -------------------------------------------------------------------------------- 1 | {"group_id":"query_gen_group","function_id":"Generate query size 2^20","value_str":null,"throughput":null,"full_id":"query_gen_group/Generate query size 2^20","directory_name":"query_gen_group/Generate query size 2_20","title":"query_gen_group/Generate query size 2^20"} -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | 5 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 6 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 7 | Cargo.lock 8 | 9 | # These are backup files generated by rustfmt 10 | **/*.rs.bk 11 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.014285064219785133,"upper_bound":0.06552040918719082},"point_estimate":0.03914467366210661,"standard_error":0.01303423750110325},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.02910365372122814,"upper_bound":0.06502319712965487},"point_estimate":0.04461168892803857,"standard_error":0.009243473586050108}} -------------------------------------------------------------------------------- /tests/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "tests" 3 | version = "0.1.0" 4 | authors = ["gpestana "] 5 | edition = "2018" 6 | 7 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 8 | 9 | [dependencies] 10 | sinkhole-core = { path = "../sinkhole-core" } 11 | sinkhole-elgamal = { path = "../sinkhole-elgamal" } 12 | elgamal_ristretto = "0.2.3" 13 | rand_core = "0.5.1" 14 | curve25519-dalek = "2.0.0" 15 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.04619036208435776,"upper_bound":0.10754743062229709},"point_estimate":0.0742853316476002,"standard_error":0.01568972371570006},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.03356479892641784,"upper_bound":0.049299291834452585},"point_estimate":0.043764800653101954,"standard_error":0.004130110959443391}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":0.06149053072041494,"upper_bound":0.20982614091031357},"point_estimate":0.13385703268739957,"standard_error":0.037938925105906594},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.008186861133623324,"upper_bound":0.0621012235391495},"point_estimate":0.0190045596610946,"standard_error":0.017350875073133726}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.10534055648653351,"upper_bound":-0.03571919563710462},"point_estimate":-0.07042675376375018,"standard_error":0.01781634251910193},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.045810556301748684,"upper_bound":0.0031833602348843026},"point_estimate":-0.02173385690861307,"standard_error":0.012334701578331614}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.12517801581045385,"upper_bound":-0.0881175387923977},"point_estimate":-0.1052342221878837,"standard_error":0.00948625270782503},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.0868706287031571,"upper_bound":-0.07166800811787633},"point_estimate":-0.07741228068142836,"standard_error":0.003688971391431232}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.13091925630412027,"upper_bound":-0.08476843241054145},"point_estimate":-0.10765838876047451,"standard_error":0.011755247985180736},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.10529609248999579,"upper_bound":-0.07458976188237754},"point_estimate":-0.09374030294361824,"standard_error":0.008481509006586467}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/change/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.056643342822174224,"upper_bound":-0.006316373207487818},"point_estimate":-0.03454837888648532,"standard_error":0.013598912500715703},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":-0.06482142142972946,"upper_bound":-0.011109750328629597},"point_estimate":-0.05825564389855775,"standard_error":0.016288785263319394}} -------------------------------------------------------------------------------- /.github/workflows/audit.yml: -------------------------------------------------------------------------------- 1 | name: audit 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | push: 7 | paths: 8 | - '**/Cargo.toml' 9 | - '**/Cargo.lock' 10 | 11 | jobs: 12 | audit: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: actions/checkout@v2 16 | - name: Cache cargo bin 17 | uses: actions/cache@v1 18 | with: 19 | path: ~/.cargo/bin 20 | key: ${{ runner.os }}-cargo-audit 21 | - uses: actions-rs/audit-check@v1 22 | with: 23 | token: ${{ secrets.GITHUB_TOKEN }} 24 | -------------------------------------------------------------------------------- /sinkhole-core/src/errors/mod.rs: -------------------------------------------------------------------------------- 1 | #[derive(Debug)] 2 | pub struct StorageError { 3 | pub error: String, 4 | } 5 | 6 | impl std::fmt::Display for StorageError { 7 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 8 | write!(f, "Cause: {}", self.error) 9 | } 10 | } 11 | 12 | #[derive(Debug)] 13 | pub struct QueryError { 14 | pub error: String, 15 | } 16 | 17 | impl std::fmt::Display for QueryError { 18 | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { 19 | write!(f, "Cause: {}", self.error) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # sinkhole-rs 🦀 2 | 3 | [![test](https://github.com/hashmatter/sinkhole-rs/workflows/test/badge.svg)](https://github.com/hashmatter/sinkhole-rs/actions?query=workflow%3Atest) 4 | [![Actions Status](https://github.com/hashmatter/sinkhole-rs/workflows/audit/badge.svg)](https://github.com/hashmatter/sinkhole-rs/actions?query=workflow%3Aaudit) 5 | ![Version](https://img.shields.io/github/tag/hashmatter/sinkhole-rs.svg) 6 | ![crates.io](https://img.shields.io/crates/v/sinkhole.svg) 7 | [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) 8 | 9 | Rust implementation of sinkhole private information retrieval (PIR). 10 | 11 | 12 | -------------------------------------------------------------------------------- /sinkhole-core/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | 3 | name = "sinkhole-core" 4 | version = "0.0.1" 5 | edition = "2018" 6 | license = "MIT" 7 | authors = [ "Dean Eigenmann ", "Gonçalo Pestana " ] 8 | repository = "https://github.com/hashmatter/sinkhole-rs" 9 | description = """ 10 | The core traits and types for the `sinkhole` library. 11 | """ 12 | 13 | [badges] 14 | travis-ci = { repository = "hashmatter/sinkhole-rs" } 15 | 16 | [dependencies] 17 | curve25519-dalek = { version = "2.0.0", default-features = false, features = ["serde"] } 18 | rand_core = { version = "0.5.1", default-features = false } 19 | elgamal_ristretto = "0.2.3" 20 | hex = "0.4.2" 21 | bincode = "1" 22 | num_cpus = "1.13.0" 23 | -------------------------------------------------------------------------------- /sinkhole-elgamal/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | 3 | name = "sinkhole-elgamal" 4 | version = "0.0.1" 5 | edition = "2018" 6 | license = "MIT" 7 | authors = [ "Dean Eigenmann ", "Gonçalo Pestana " ] 8 | keywords = ["PIR", "private information retreival"] 9 | repository = "https://github.com/hashmatter/sinkhole-rs" 10 | description = """ 11 | Rust implementation of sinkhole PIR 12 | """ 13 | 14 | [badges] 15 | travis-ci = { repository = "hashmatter/sinkhole-rs" } 16 | 17 | [lib] 18 | name = "sinkhole_elgamal" 19 | path = "src/lib.rs" 20 | 21 | [dependencies] 22 | sinkhole-core = { path = "../sinkhole-core" } 23 | elgamal_ristretto = "0.2.3" 24 | curve25519-dalek = "2.0.0" 25 | rand_core = "0.5.1" 26 | bincode = "1.2.1" 27 | 28 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^10,,,,119381434.0,ns,1 3 | run_query_group,Run query size 2^10,,,,235377609.0,ns,2 4 | run_query_group,Run query size 2^10,,,,331491731.0,ns,3 5 | run_query_group,Run query size 2^10,,,,442808843.0,ns,4 6 | run_query_group,Run query size 2^10,,,,551022431.0,ns,5 7 | run_query_group,Run query size 2^10,,,,660471675.0,ns,6 8 | run_query_group,Run query size 2^10,,,,770099443.0,ns,7 9 | run_query_group,Run query size 2^10,,,,879124983.0,ns,8 10 | run_query_group,Run query size 2^10,,,,993852257.0,ns,9 11 | run_query_group,Run query size 2^10,,,,1100171642.0,ns,10 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^10,,,,119381434.0,ns,1 3 | run_query_group,Run query size 2^10,,,,235377609.0,ns,2 4 | run_query_group,Run query size 2^10,,,,331491731.0,ns,3 5 | run_query_group,Run query size 2^10,,,,442808843.0,ns,4 6 | run_query_group,Run query size 2^10,,,,551022431.0,ns,5 7 | run_query_group,Run query size 2^10,,,,660471675.0,ns,6 8 | run_query_group,Run query size 2^10,,,,770099443.0,ns,7 9 | run_query_group,Run query size 2^10,,,,879124983.0,ns,8 10 | run_query_group,Run query size 2^10,,,,993852257.0,ns,9 11 | run_query_group,Run query size 2^10,,,,1100171642.0,ns,10 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^5,,,,93808597.0,ns,27 3 | run_query_group,Run query size 2^5,,,,186764609.0,ns,54 4 | run_query_group,Run query size 2^5,,,,277849199.0,ns,81 5 | run_query_group,Run query size 2^5,,,,374885151.0,ns,108 6 | run_query_group,Run query size 2^5,,,,465198804.0,ns,135 7 | run_query_group,Run query size 2^5,,,,562133597.0,ns,162 8 | run_query_group,Run query size 2^5,,,,653759408.0,ns,189 9 | run_query_group,Run query size 2^5,,,,746018402.0,ns,216 10 | run_query_group,Run query size 2^5,,,,831201180.0,ns,243 11 | run_query_group,Run query size 2^5,,,,927509304.0,ns,270 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^5,,,,93808597.0,ns,27 3 | run_query_group,Run query size 2^5,,,,186764609.0,ns,54 4 | run_query_group,Run query size 2^5,,,,277849199.0,ns,81 5 | run_query_group,Run query size 2^5,,,,374885151.0,ns,108 6 | run_query_group,Run query size 2^5,,,,465198804.0,ns,135 7 | run_query_group,Run query size 2^5,,,,562133597.0,ns,162 8 | run_query_group,Run query size 2^5,,,,653759408.0,ns,189 9 | run_query_group,Run query size 2^5,,,,746018402.0,ns,216 10 | run_query_group,Run query size 2^5,,,,831201180.0,ns,243 11 | run_query_group,Run query size 2^5,,,,927509304.0,ns,270 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^15,,,,3547002171.0,ns,1 3 | run_query_group,Run query size 2^15,,,,3533749917.0,ns,1 4 | run_query_group,Run query size 2^15,,,,3536682727.0,ns,1 5 | run_query_group,Run query size 2^15,,,,3543007475.0,ns,1 6 | run_query_group,Run query size 2^15,,,,3528563703.0,ns,1 7 | run_query_group,Run query size 2^15,,,,3532793254.0,ns,1 8 | run_query_group,Run query size 2^15,,,,4069417055.0,ns,1 9 | run_query_group,Run query size 2^15,,,,3676855634.0,ns,1 10 | run_query_group,Run query size 2^15,,,,3727942552.0,ns,1 11 | run_query_group,Run query size 2^15,,,,3693407467.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^15,,,,3547002171.0,ns,1 3 | run_query_group,Run query size 2^15,,,,3533749917.0,ns,1 4 | run_query_group,Run query size 2^15,,,,3536682727.0,ns,1 5 | run_query_group,Run query size 2^15,,,,3543007475.0,ns,1 6 | run_query_group,Run query size 2^15,,,,3528563703.0,ns,1 7 | run_query_group,Run query size 2^15,,,,3532793254.0,ns,1 8 | run_query_group,Run query size 2^15,,,,4069417055.0,ns,1 9 | run_query_group,Run query size 2^15,,,,3676855634.0,ns,1 10 | run_query_group,Run query size 2^15,,,,3727942552.0,ns,1 11 | run_query_group,Run query size 2^15,,,,3693407467.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^20,,,,114141505500.0,ns,1 3 | run_query_group,Run query size 2^20,,,,113384479995.0,ns,1 4 | run_query_group,Run query size 2^20,,,,114704082648.0,ns,1 5 | run_query_group,Run query size 2^20,,,,121099328316.0,ns,1 6 | run_query_group,Run query size 2^20,,,,121234747089.0,ns,1 7 | run_query_group,Run query size 2^20,,,,121199877526.0,ns,1 8 | run_query_group,Run query size 2^20,,,,121324608937.0,ns,1 9 | run_query_group,Run query size 2^20,,,,121163181824.0,ns,1 10 | run_query_group,Run query size 2^20,,,,121767998700.0,ns,1 11 | run_query_group,Run query size 2^20,,,,121051974597.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | run_query_group,Run query size 2^20,,,,114141505500.0,ns,1 3 | run_query_group,Run query size 2^20,,,,113384479995.0,ns,1 4 | run_query_group,Run query size 2^20,,,,114704082648.0,ns,1 5 | run_query_group,Run query size 2^20,,,,121099328316.0,ns,1 6 | run_query_group,Run query size 2^20,,,,121234747089.0,ns,1 7 | run_query_group,Run query size 2^20,,,,121199877526.0,ns,1 8 | run_query_group,Run query size 2^20,,,,121324608937.0,ns,1 9 | run_query_group,Run query size 2^20,,,,121163181824.0,ns,1 10 | run_query_group,Run query size 2^20,,,,121767998700.0,ns,1 11 | run_query_group,Run query size 2^20,,,,121051974597.0,ns,1 12 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: test 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | check: 7 | name: Check 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | - uses: actions-rs/toolchain@v1 12 | with: 13 | profile: minimal 14 | toolchain: stable 15 | override: true 16 | - uses: actions-rs/cargo@v1 17 | with: 18 | command: check 19 | 20 | test: 21 | name: Test Suite 22 | runs-on: ubuntu-latest 23 | steps: 24 | - uses: actions/checkout@v2 25 | - uses: actions-rs/toolchain@v1 26 | with: 27 | profile: minimal 28 | toolchain: stable 29 | override: true 30 | - uses: actions-rs/cargo@v1 31 | with: 32 | command: test 33 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":25209942.075,"upper_bound":26711738.029124998},"point_estimate":25886566.545,"standard_error":385553.40802771755},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24764105.5,"upper_bound":25094462.0},"point_estimate":24971015.0,"standard_error":89789.9278166457},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":468379.2771846056,"upper_bound":749574.0066424012},"point_estimate":626671.6579243541,"standard_error":69326.58347353982},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2021179.7278807168,"upper_bound":5308039.124956209},"point_estimate":3870728.7922614925,"standard_error":854334.5421474363}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":25209942.075,"upper_bound":26711738.029124998},"point_estimate":25886566.545,"standard_error":385553.40802771755},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":24764105.5,"upper_bound":25094462.0},"point_estimate":24971015.0,"standard_error":89789.9278166457},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":468379.2771846056,"upper_bound":749574.0066424012},"point_estimate":626671.6579243541,"standard_error":69326.58347353982},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2021179.7278807168,"upper_bound":5308039.124956209},"point_estimate":3870728.7922614925,"standard_error":854334.5421474363}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^10,,,,133754748.0,ns,1 3 | query_gen_group,Generate query size 2^10,,,,268364373.0,ns,2 4 | query_gen_group,Generate query size 2^10,,,,411960469.0,ns,3 5 | query_gen_group,Generate query size 2^10,,,,543462618.0,ns,4 6 | query_gen_group,Generate query size 2^10,,,,679365726.0,ns,5 7 | query_gen_group,Generate query size 2^10,,,,814337733.0,ns,6 8 | query_gen_group,Generate query size 2^10,,,,943954475.0,ns,7 9 | query_gen_group,Generate query size 2^10,,,,1113927187.0,ns,8 10 | query_gen_group,Generate query size 2^10,,,,1261881272.0,ns,9 11 | query_gen_group,Generate query size 2^10,,,,1360493419.0,ns,10 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^10,,,,133754748.0,ns,1 3 | query_gen_group,Generate query size 2^10,,,,268364373.0,ns,2 4 | query_gen_group,Generate query size 2^10,,,,411960469.0,ns,3 5 | query_gen_group,Generate query size 2^10,,,,543462618.0,ns,4 6 | query_gen_group,Generate query size 2^10,,,,679365726.0,ns,5 7 | query_gen_group,Generate query size 2^10,,,,814337733.0,ns,6 8 | query_gen_group,Generate query size 2^10,,,,943954475.0,ns,7 9 | query_gen_group,Generate query size 2^10,,,,1113927187.0,ns,8 10 | query_gen_group,Generate query size 2^10,,,,1261881272.0,ns,9 11 | query_gen_group,Generate query size 2^10,,,,1360493419.0,ns,10 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^5,,,,95642465.0,ns,21 3 | query_gen_group,Generate query size 2^5,,,,183374326.0,ns,42 4 | query_gen_group,Generate query size 2^5,,,,275576629.0,ns,63 5 | query_gen_group,Generate query size 2^5,,,,365068504.0,ns,84 6 | query_gen_group,Generate query size 2^5,,,,453627523.0,ns,105 7 | query_gen_group,Generate query size 2^5,,,,554195924.0,ns,126 8 | query_gen_group,Generate query size 2^5,,,,642170083.0,ns,147 9 | query_gen_group,Generate query size 2^5,,,,721946974.0,ns,168 10 | query_gen_group,Generate query size 2^5,,,,818607518.0,ns,189 11 | query_gen_group,Generate query size 2^5,,,,928855390.0,ns,210 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^5,,,,95642465.0,ns,21 3 | query_gen_group,Generate query size 2^5,,,,183374326.0,ns,42 4 | query_gen_group,Generate query size 2^5,,,,275576629.0,ns,63 5 | query_gen_group,Generate query size 2^5,,,,365068504.0,ns,84 6 | query_gen_group,Generate query size 2^5,,,,453627523.0,ns,105 7 | query_gen_group,Generate query size 2^5,,,,554195924.0,ns,126 8 | query_gen_group,Generate query size 2^5,,,,642170083.0,ns,147 9 | query_gen_group,Generate query size 2^5,,,,721946974.0,ns,168 10 | query_gen_group,Generate query size 2^5,,,,818607518.0,ns,189 11 | query_gen_group,Generate query size 2^5,,,,928855390.0,ns,210 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":804997229.167,"upper_bound":815463013.5374999},"point_estimate":810044621.02,"standard_error":2679224.1767044994},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":798700193.0,"upper_bound":810492114.5},"point_estimate":803001264.5,"standard_error":3083748.9139861674},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16366323.25783968,"upper_bound":27175786.20173335},"point_estimate":20202245.27413845,"standard_error":2743419.144807017},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21501252.800359026,"upper_bound":31942099.83402133},"point_estimate":27032294.112658903,"standard_error":2661696.340273154}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":804997229.167,"upper_bound":815463013.5374999},"point_estimate":810044621.02,"standard_error":2679224.1767044994},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":798700193.0,"upper_bound":810492114.5},"point_estimate":803001264.5,"standard_error":3083748.9139861674},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16366323.25783968,"upper_bound":27175786.20173335},"point_estimate":20202245.27413845,"standard_error":2743419.144807017},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":21501252.800359026,"upper_bound":31942099.83402133},"point_estimate":27032294.112658903,"standard_error":2661696.340273154}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^15,,,,4706735135.0,ns,1 3 | query_gen_group,Generate query size 2^15,,,,4618533149.0,ns,1 4 | query_gen_group,Generate query size 2^15,,,,4427752912.0,ns,1 5 | query_gen_group,Generate query size 2^15,,,,4344000025.0,ns,1 6 | query_gen_group,Generate query size 2^15,,,,4475642174.0,ns,1 7 | query_gen_group,Generate query size 2^15,,,,4576631981.0,ns,1 8 | query_gen_group,Generate query size 2^15,,,,4398423722.0,ns,1 9 | query_gen_group,Generate query size 2^15,,,,4557844130.0,ns,1 10 | query_gen_group,Generate query size 2^15,,,,4634789472.0,ns,1 11 | query_gen_group,Generate query size 2^15,,,,4328173240.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4430116648.8,"upper_bound":4582707180.1},"point_estimate":4506852594.0,"standard_error":39145594.74543851},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4385876468.5,"upper_bound":4618533149.0},"point_estimate":4516743152.0,"standard_error":66676309.20546064},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35500309.29034352,"upper_bound":215562213.2341057},"point_estimate":162964658.89889896,"standard_error":46278330.38974523},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":82138338.36289099,"upper_bound":157112012.5275427},"point_estimate":130680977.94751649,"standard_error":19143411.134822723}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^15,,,,4706735135.0,ns,1 3 | query_gen_group,Generate query size 2^15,,,,4618533149.0,ns,1 4 | query_gen_group,Generate query size 2^15,,,,4427752912.0,ns,1 5 | query_gen_group,Generate query size 2^15,,,,4344000025.0,ns,1 6 | query_gen_group,Generate query size 2^15,,,,4475642174.0,ns,1 7 | query_gen_group,Generate query size 2^15,,,,4576631981.0,ns,1 8 | query_gen_group,Generate query size 2^15,,,,4398423722.0,ns,1 9 | query_gen_group,Generate query size 2^15,,,,4557844130.0,ns,1 10 | query_gen_group,Generate query size 2^15,,,,4634789472.0,ns,1 11 | query_gen_group,Generate query size 2^15,,,,4328173240.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4430116648.8,"upper_bound":4582707180.1},"point_estimate":4506852594.0,"standard_error":39145594.74543851},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4385876468.5,"upper_bound":4618533149.0},"point_estimate":4516743152.0,"standard_error":66676309.20546064},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":35500309.29034352,"upper_bound":215562213.2341057},"point_estimate":162964658.89889896,"standard_error":46278330.38974523},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":82138338.36289099,"upper_bound":157112012.5275427},"point_estimate":130680977.94751649,"standard_error":19143411.134822723}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3554200401.5025,"upper_bound":3749743981.8599997},"point_estimate":3638942195.5,"standard_error":50780700.63160807},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3533749917.0,"upper_bound":3702399093.0},"point_estimate":3545004823.0,"standard_error":57053601.33709684},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3592440.553021431,"upper_bound":224438405.8425218},"point_estimate":21240237.978610396,"standard_error":64104080.027487814},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50417325.27141552,"upper_bound":245762197.38189015},"point_estimate":170053398.5356347,"standard_error":59253340.83372417}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_15/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3554200401.5025,"upper_bound":3749743981.8599997},"point_estimate":3638942195.5,"standard_error":50780700.63160807},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3533749917.0,"upper_bound":3702399093.0},"point_estimate":3545004823.0,"standard_error":57053601.33709684},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3592440.553021431,"upper_bound":224438405.8425218},"point_estimate":21240237.978610396,"standard_error":64104080.027487814},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":50417325.27141552,"upper_bound":245762197.38189015},"point_estimate":170053398.5356347,"standard_error":59253340.83372417}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":135113180561.6925,"upper_bound":141744194362.2},"point_estimate":138355530749.0,"standard_error":1693211809.56146},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133177170209.0,"upper_bound":143733184695.5},"point_estimate":137054700396.5,"standard_error":3078284311.7152104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":650298849.2433876,"upper_bound":9144330345.291084},"point_estimate":8019321833.510578,"standard_error":2130736435.3529305},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3594965669.0620465,"upper_bound":6630728058.790281},"point_estimate":5629112032.104052,"standard_error":776946036.3318323}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":135113180561.6925,"upper_bound":141744194362.2},"point_estimate":138355530749.0,"standard_error":1693211809.56146},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":133177170209.0,"upper_bound":143733184695.5},"point_estimate":137054700396.5,"standard_error":3078284311.7152104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":650298849.2433876,"upper_bound":9144330345.291084},"point_estimate":8019321833.510578,"standard_error":2130736435.3529305},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3594965669.0620465,"upper_bound":6630728058.790281},"point_estimate":5629112032.104052,"standard_error":776946036.3318323}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":116912785311.13249,"upper_bound":121159876791.4},"point_estimate":119107178513.2,"standard_error":1047630664.1838477},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114704082648.0,"upper_bound":121262243231.5},"point_estimate":121131255070.0,"standard_error":1663740716.9570303},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":53051330.00265062,"upper_bound":5258219896.573636},"point_estimate":220051851.3850987,"standard_error":1484481119.6935623},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":303553023.2480403,"upper_bound":3969999200.635507},"point_estimate":3490867151.3367085,"standard_error":705305098.3877745}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":116912785311.13249,"upper_bound":121159876791.4},"point_estimate":119107178513.2,"standard_error":1047630664.1838477},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":114704082648.0,"upper_bound":121262243231.5},"point_estimate":121131255070.0,"standard_error":1663740716.9570303},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":53051330.00265062,"upper_bound":5258219896.573636},"point_estimate":220051851.3850987,"standard_error":1484481119.6935623},"slope":null,"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":303553023.2480403,"upper_bound":3969999200.635507},"point_estimate":3490867151.3367085,"standard_error":705305098.3877745}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^20,,,,146838581641.0,ns,1 3 | query_gen_group,Generate query size 2^20,,,,145028192370.0,ns,1 4 | query_gen_group,Generate query size 2^20,,,,142914292364.0,ns,1 5 | query_gen_group,Generate query size 2^20,,,,142438177021.0,ns,1 6 | query_gen_group,Generate query size 2^20,,,,138860425941.0,ns,1 7 | query_gen_group,Generate query size 2^20,,,,131500589176.0,ns,1 8 | query_gen_group,Generate query size 2^20,,,,135248974852.0,ns,1 9 | query_gen_group,Generate query size 2^20,,,,134371733707.0,ns,1 10 | query_gen_group,Generate query size 2^20,,,,131620259881.0,ns,1 11 | query_gen_group,Generate query size 2^20,,,,134734080537.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | query_gen_group,Generate query size 2^20,,,,146838581641.0,ns,1 3 | query_gen_group,Generate query size 2^20,,,,145028192370.0,ns,1 4 | query_gen_group,Generate query size 2^20,,,,142914292364.0,ns,1 5 | query_gen_group,Generate query size 2^20,,,,142438177021.0,ns,1 6 | query_gen_group,Generate query size 2^20,,,,138860425941.0,ns,1 7 | query_gen_group,Generate query size 2^20,,,,131500589176.0,ns,1 8 | query_gen_group,Generate query size 2^20,,,,135248974852.0,ns,1 9 | query_gen_group,Generate query size 2^20,,,,134371733707.0,ns,1 10 | query_gen_group,Generate query size 2^20,,,,131620259881.0,ns,1 11 | query_gen_group,Generate query size 2^20,,,,134734080537.0,ns,1 12 | -------------------------------------------------------------------------------- /benchmarks/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | 3 | name = "sinkhole-benchmarks" 4 | version = "0.0.1" 5 | edition = "2018" 6 | license = "MIT" 7 | authors = [ "Gonçalo Pestana " ] 8 | keywords = ["PIR", "private information retreival"] 9 | repository = "https://github.com/hashmatter/sinkhole-rs" 10 | description = """ 11 | Benchmarks of sinkhole PIR 12 | """ 13 | 14 | [badges] 15 | travis-ci = { repository = "hashmatter/sinkhole-rs" } 16 | 17 | [lib] 18 | name = "sinkhole_benchmarks" 19 | path = "src/lib.rs" 20 | 21 | [dependencies] 22 | sinkhole-core = { path = "../sinkhole-core" } 23 | sinkhole-elgamal = { path = "../sinkhole-elgamal" } 24 | elgamal_ristretto = "0.2.3" 25 | curve25519-dalek = "2.0.0" 26 | rand_core = "0.5.1" 27 | bincode = "1.2.1" 28 | 29 | [dev-dependencies] 30 | criterion = { version = "0.3.4", features = ["html_reports"] } 31 | 32 | [[bench]] 33 | name = "elgamal" 34 | harness = false 35 | 36 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | name: lint 2 | 3 | on: [pull_request] 4 | 5 | jobs: 6 | fmt: 7 | name: Rustfmt 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | - uses: actions-rs/toolchain@v1 12 | with: 13 | profile: minimal 14 | toolchain: stable 15 | override: true 16 | - run: rustup component add rustfmt 17 | - uses: actions-rs/cargo@v1 18 | with: 19 | command: fmt 20 | args: --all -- --check 21 | 22 | clippy: 23 | name: Clippy 24 | runs-on: ubuntu-latest 25 | steps: 26 | - uses: actions/checkout@v2 27 | - uses: actions-rs/toolchain@v1 28 | with: 29 | profile: minimal 30 | toolchain: stable 31 | override: true 32 | - run: rustup component add clippy 33 | - uses: actions-rs/cargo@v1 34 | with: 35 | command: clippy 36 | args: -- -D warnings 37 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59551.748639687,"upper_bound":61459.64662815822},"point_estimate":60449.459994607634,"standard_error":487.4991482802161},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58641.752252252256,"upper_bound":60049.02777777778},"point_estimate":59386.517467403624,"standard_error":388.17082125910747},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2246.243952163344,"upper_bound":3438.092321490306},"point_estimate":2689.8001950073462,"standard_error":312.6378410053928},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59095.553306889175,"upper_bound":61756.61762749311},"point_estimate":60297.71686008899,"standard_error":683.1331062428872},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3356.166985106272,"upper_bound":6218.035808772633},"point_estimate":4896.015017055726,"standard_error":728.3721865311522}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59551.748639687,"upper_bound":61459.64662815822},"point_estimate":60449.459994607634,"standard_error":487.4991482802161},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":58641.752252252256,"upper_bound":60049.02777777778},"point_estimate":59386.517467403624,"standard_error":388.17082125910747},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":2246.243952163344,"upper_bound":3438.092321490306},"point_estimate":2689.8001950073462,"standard_error":312.6378410053928},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":59095.553306889175,"upper_bound":61756.61762749311},"point_estimate":60297.71686008899,"standard_error":683.1331062428872},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3356.166985106272,"upper_bound":6218.035808772633},"point_estimate":4896.015017055726,"standard_error":728.3721865311522}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":778438.7018757155,"upper_bound":800509.95174356},"point_estimate":788530.7434352562,"standard_error":5642.33104662065},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":771235.75,"upper_bound":781880.9322916666},"point_estimate":777212.168647425,"standard_error":2644.2047975254104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16602.4833922857,"upper_bound":30455.14376784965},"point_estimate":23497.792675058645,"standard_error":3451.5988233546364},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":785985.7130137184,"upper_bound":812463.4643091785},"point_estimate":798058.7879355696,"standard_error":6760.0534737234775},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33328.242147712845,"upper_bound":78274.08119780528},"point_estimate":56600.23600084266,"standard_error":11701.670701024006}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":778438.7018757155,"upper_bound":800509.95174356},"point_estimate":788530.7434352562,"standard_error":5642.33104662065},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":771235.75,"upper_bound":781880.9322916666},"point_estimate":777212.168647425,"standard_error":2644.2047975254104},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":16602.4833922857,"upper_bound":30455.14376784965},"point_estimate":23497.792675058645,"standard_error":3451.5988233546364},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":785985.7130137184,"upper_bound":812463.4643091785},"point_estimate":798058.7879355696,"standard_error":6760.0534737234775},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":33328.242147712845,"upper_bound":78274.08119780528},"point_estimate":56600.23600084266,"standard_error":11701.670701024006}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":135162456.27442858,"upper_bound":137588303.41483232},"point_estimate":136306875.58162698,"standard_error":624002.3773285494},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":134850639.2857143,"upper_bound":137645120.1375},"point_estimate":135869399.85,"standard_error":640325.8337553001},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":116888.478444797,"upper_bound":3401964.8557430594},"point_estimate":1830652.9548994112,"standard_error":900722.6798995815},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":135572839.70715484,"upper_bound":138882099.38959676},"point_estimate":137257233.4025974,"standard_error":859790.0389778309},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":893343.7696023643,"upper_bound":2648821.524093511},"point_estimate":2076332.3929646146,"standard_error":442634.7087322624}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110164038.38345239,"upper_bound":114278162.8887143},"point_estimate":111890281.33900794,"standard_error":1062450.9733827705},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110017164.2,"upper_bound":114093024.08333334},"point_estimate":110316257.37777779,"standard_error":888764.1310684126},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49937.239423418476,"upper_bound":5331103.951103982},"point_estimate":445628.3452218526,"standard_error":910071.8575343759},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110051040.9527027,"upper_bound":110652558.24246168},"point_estimate":110243823.68831168,"standard_error":159287.0244939145},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":230170.15039403833,"upper_bound":4537665.054576846},"point_estimate":3533669.7494918313,"standard_error":1175859.989545354}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3440783.1241710754,"upper_bound":3462424.0097883595},"point_estimate":3451890.3741093474,"standard_error":5535.606029834012},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3435219.644444444,"upper_bound":3469960.475308642},"point_estimate":3456196.3842592593,"standard_error":8318.44326740615},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3895.967778054964,"upper_bound":30089.1689819215},"point_estimate":21294.963223790404,"standard_error":6978.999244377112},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3432373.332411597,"upper_bound":3459716.079488126},"point_estimate":3443923.843193843,"standard_error":6952.183318576936},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10514.42353480317,"upper_bound":22515.862982564406},"point_estimate":18459.38920404997,"standard_error":3022.4022130832464}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":26391.69398447688,"upper_bound":29633.466147368614},"point_estimate":27919.23349901229,"standard_error":828.3884838151378},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23563.01059679984,"upper_bound":25081.618283881315},"point_estimate":24024.301994301994,"standard_error":381.76521928758416},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":952.5362124597559,"upper_bound":3251.875977949966},"point_estimate":1632.3983362918063,"standard_error":578.8658207018248},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29800.85994430178,"upper_bound":34819.160075135755},"point_estimate":32258.14374010674,"standard_error":1276.1071342850591},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5802.3919930764205,"upper_bound":10613.98502311609},"point_estimate":8361.206342405601,"standard_error":1236.0087331983802}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":26391.69398447688,"upper_bound":29633.466147368614},"point_estimate":27919.23349901229,"standard_error":828.3884838151378},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":23563.01059679984,"upper_bound":25081.618283881315},"point_estimate":24024.301994301994,"standard_error":381.76521928758416},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":952.5362124597559,"upper_bound":3251.875977949966},"point_estimate":1632.3983362918063,"standard_error":578.8658207018248},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":29800.85994430178,"upper_bound":34819.160075135755},"point_estimate":32258.14374010674,"standard_error":1276.1071342850591},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":5802.3919930764205,"upper_bound":10613.98502311609},"point_estimate":8361.206342405601,"standard_error":1236.0087331983802}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":135162456.27442858,"upper_bound":137588303.41483232},"point_estimate":136306875.58162698,"standard_error":624002.3773285494},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":134850639.2857143,"upper_bound":137645120.1375},"point_estimate":135869399.85,"standard_error":640325.8337553001},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":116888.478444797,"upper_bound":3401964.8557430594},"point_estimate":1830652.9548994112,"standard_error":900722.6798995815},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":135572839.70715484,"upper_bound":138882099.38959676},"point_estimate":137257233.4025974,"standard_error":859790.0389778309},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":893343.7696023643,"upper_bound":2648821.524093511},"point_estimate":2076332.3929646146,"standard_error":442634.7087322624}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4341159.001043084,"upper_bound":4424443.013461451},"point_estimate":4377957.177101284,"standard_error":21589.27259072782},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4331256.708994709,"upper_bound":4398676.555555556},"point_estimate":4367279.673469387,"standard_error":17543.9604555734},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7876.616612543264,"upper_bound":89778.76294485187},"point_estimate":49758.75360549421,"standard_error":20470.95720833471},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4323834.795625278,"upper_bound":4400347.226302433},"point_estimate":4362337.181694496,"standard_error":20314.57698273026},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":25479.025901624183,"upper_bound":102859.26217844656},"point_estimate":72162.96420500467,"standard_error":23164.315602243485}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_5/new/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4341159.001043084,"upper_bound":4424443.013461451},"point_estimate":4377957.177101284,"standard_error":21589.27259072782},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4331256.708994709,"upper_bound":4398676.555555556},"point_estimate":4367279.673469387,"standard_error":17543.9604555734},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":7876.616612543264,"upper_bound":89778.76294485187},"point_estimate":49758.75360549421,"standard_error":20470.95720833471},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":4323834.795625278,"upper_bound":4400347.226302433},"point_estimate":4362337.181694496,"standard_error":20314.57698273026},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":25479.025901624183,"upper_bound":102859.26217844656},"point_estimate":72162.96420500467,"standard_error":23164.315602243485}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_10/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110164038.38345239,"upper_bound":114278162.8887143},"point_estimate":111890281.33900794,"standard_error":1062450.9733827705},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110017164.2,"upper_bound":114093024.08333334},"point_estimate":110316257.37777779,"standard_error":888764.1310684126},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":49937.239423418476,"upper_bound":5331103.951103982},"point_estimate":445628.3452218526,"standard_error":910071.8575343759},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":110051040.9527027,"upper_bound":110652558.24246168},"point_estimate":110243823.68831168,"standard_error":159287.0244939145},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":230170.15039403833,"upper_bound":4537665.054576846},"point_estimate":3533669.7494918313,"standard_error":1175859.989545354}} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_5/base/estimates.json: -------------------------------------------------------------------------------- 1 | {"mean":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3440783.1241710754,"upper_bound":3462424.0097883595},"point_estimate":3451890.3741093474,"standard_error":5535.606029834012},"median":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3435219.644444444,"upper_bound":3469960.475308642},"point_estimate":3456196.3842592593,"standard_error":8318.44326740615},"median_abs_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3895.967778054964,"upper_bound":30089.1689819215},"point_estimate":21294.963223790404,"standard_error":6978.999244377112},"slope":{"confidence_interval":{"confidence_level":0.95,"lower_bound":3432373.332411597,"upper_bound":3459716.079488126},"point_estimate":3443923.843193843,"standard_error":6952.183318576936},"std_dev":{"confidence_interval":{"confidence_level":0.95,"lower_bound":10514.42353480317,"upper_bound":22515.862982564406},"point_estimate":18459.38920404997,"standard_error":3022.4022130832464}} -------------------------------------------------------------------------------- /sinkhole-core/src/traits.rs: -------------------------------------------------------------------------------- 1 | pub mod core { 2 | extern crate curve25519_dalek; 3 | extern crate elgamal_ristretto; 4 | 5 | use crate::errors::{QueryError, StorageError}; 6 | 7 | // #TODO: may need a higher abstraction representation of a Scalar (result) 8 | // Ciphertext 9 | use curve25519_dalek::scalar::Scalar; 10 | use elgamal_ristretto::ciphertext::Ciphertext; 11 | 12 | /// A representation of the sinkhole database to query. 13 | /// 14 | /// Implementations of this trait contain the 15 | /// servers private data addition and retrieval. 16 | pub trait Storage { 17 | /// Adds content to the database. 18 | fn add(&mut self, content: Scalar, index: usize) -> Result<(), StorageError>; 19 | 20 | /// Returns the data for a given ID. 21 | fn retrieve(&self, query: Vec) -> Result; 22 | } 23 | 24 | pub trait Query { 25 | fn extract_result(&self, result: Ciphertext, k: u32) -> Result; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 hashmatter 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/README.md: -------------------------------------------------------------------------------- 1 | # Sinkhole-elgamal 0.0.1 benchmark results 2 | 3 | See all benchmark results on the [criterion benchmark report](./report/index.html). 4 | 5 | **Specs**: All benchmarks (client and server side) run on a commodity Apple 6 | machine with a 2.4 GHz Quad-Core Intel Core i5 (single core) and 16GB RAM. Note 7 | that most of operations required to generate and run the storage query are CPU 8 | bound. 9 | 10 | ## Summary for storage of size 2^20 11 | 12 | ### A. Time efficiency for storage of size 2^20 13 | 14 | - **Query generation**: 15 | [137.05s](./db_setup_group/Setup%20DB%20size%202_20/report/index.html) (median) 16 | - **DB setup**: 17 | [803.00ms](./db_setup_group/Setup%20DB%20size%202_20/report/index.html) (median) 18 | - **Run query**: 19 | [121.13s](./run_query_group/Run%20query%20size%202_5/report/index.html) (median) 20 | 21 | ### B. Bandwidth requirements for storage of size 2^20 22 | 23 | - **Query size**: 24 | The min size of a query if `2^20 * CompressedRistretto.len()`. A byte 25 | representation of a `CompressedRistretto` is 32 bytes. Thus, a compressed query 26 | of 2^20 elements is 2^20 * 32 bytes = 33MB. 27 | 28 | - **Result size**: 29 | The result is encapsulated in a ciphertext == 32 bytes 30 | 31 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0],"times":[50208341.0,50278705.0,49599223.0,50204086.0,49626272.0,50766498.0,50188924.0,50584731.0,49046853.0,49389824.0,51836562.0,50600133.0,49782669.0,49090467.0,49714429.0,50802203.0,49467446.0,49553590.0,50886797.0,50735070.0,49922209.0,51162157.0,49593530.0,50077968.0,48980416.0,49998493.0,50428345.0,48912520.0,49814616.0,50029774.0,52656640.0,50090043.0,49336635.0,50807328.0,49914087.0,50825684.0,49304954.0,49214872.0,50276864.0,50132075.0,50208142.0,50809984.0,49548174.0,50440503.0,50035101.0,57203037.0,83154296.0,60758928.0,51278780.0,54163219.0,49201507.0,48372243.0,47833238.0,48720331.0,48253480.0,49993498.0,48225665.0,86476137.0,47599776.0,48554958.0,48857296.0,48161737.0,47633556.0,47359804.0,47686423.0,48146944.0,47351553.0,47774956.0,51048006.0,48957724.0,47360915.0,48636284.0,66883009.0,55465349.0,49106122.0,49502832.0,49134825.0,49344810.0,49102856.0,85742646.0,92674199.0,56610729.0,57247728.0,52189909.0,50373713.0,50126556.0,52766389.0,49073154.0,49315074.0,49002972.0,49066677.0,48943147.0,50755198.0,49961851.0,50650268.0,49341024.0,50539233.0,51034150.0,49153294.0,50557367.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0],"times":[50208341.0,50278705.0,49599223.0,50204086.0,49626272.0,50766498.0,50188924.0,50584731.0,49046853.0,49389824.0,51836562.0,50600133.0,49782669.0,49090467.0,49714429.0,50802203.0,49467446.0,49553590.0,50886797.0,50735070.0,49922209.0,51162157.0,49593530.0,50077968.0,48980416.0,49998493.0,50428345.0,48912520.0,49814616.0,50029774.0,52656640.0,50090043.0,49336635.0,50807328.0,49914087.0,50825684.0,49304954.0,49214872.0,50276864.0,50132075.0,50208142.0,50809984.0,49548174.0,50440503.0,50035101.0,57203037.0,83154296.0,60758928.0,51278780.0,54163219.0,49201507.0,48372243.0,47833238.0,48720331.0,48253480.0,49993498.0,48225665.0,86476137.0,47599776.0,48554958.0,48857296.0,48161737.0,47633556.0,47359804.0,47686423.0,48146944.0,47351553.0,47774956.0,51048006.0,48957724.0,47360915.0,48636284.0,66883009.0,55465349.0,49106122.0,49502832.0,49134825.0,49344810.0,49102856.0,85742646.0,92674199.0,56610729.0,57247728.0,52189909.0,50373713.0,50126556.0,52766389.0,49073154.0,49315074.0,49002972.0,49066677.0,48943147.0,50755198.0,49961851.0,50650268.0,49341024.0,50539233.0,51034150.0,49153294.0,50557367.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[832738565.0,802608981.0,791685320.0,795171473.0,803086254.0,867751618.0,844645976.0,833311442.0,798700193.0,827503873.0,819696434.0,791561962.0,791331210.0,783425541.0,796328342.0,780004990.0,795813558.0,854255730.0,828253208.0,781875539.0,784639710.0,775512445.0,802412067.0,798050302.0,789776833.0,786793428.0,775171530.0,768299885.0,788201182.0,802916275.0,892425833.0,817375351.0,899743431.0,790399105.0,816624931.0,799311831.0,800644543.0,833925385.0,901738987.0,800633048.0,794710125.0,813196212.0,795696882.0,835127374.0,813583125.0,789372475.0,814009417.0,772911929.0,808419446.0,808868183.0,810428399.0,812002810.0,780570232.0,830777296.0,844304826.0,793405530.0,870521409.0,803923586.0,856920873.0,797940034.0,811865075.0,817158994.0,825260194.0,777677119.0,830030677.0,818623921.0,813815518.0,789554816.0,793844661.0,816530969.0,785092871.0,816404852.0,791737650.0,800233565.0,813278278.0,805454191.0,804587793.0,850666076.0,779359349.0,848931228.0,809119154.0,821482862.0,824772527.0,870731620.0,810093528.0,826472066.0,818410830.0,802541390.0,777306659.0,787590752.0,801052043.0,785946831.0,797108013.0,806930377.0,788343478.0,792315263.0,792918263.0,794834750.0,784694007.0,830653418.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Flat","iters":[1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0],"times":[832738565.0,802608981.0,791685320.0,795171473.0,803086254.0,867751618.0,844645976.0,833311442.0,798700193.0,827503873.0,819696434.0,791561962.0,791331210.0,783425541.0,796328342.0,780004990.0,795813558.0,854255730.0,828253208.0,781875539.0,784639710.0,775512445.0,802412067.0,798050302.0,789776833.0,786793428.0,775171530.0,768299885.0,788201182.0,802916275.0,892425833.0,817375351.0,899743431.0,790399105.0,816624931.0,799311831.0,800644543.0,833925385.0,901738987.0,800633048.0,794710125.0,813196212.0,795696882.0,835127374.0,813583125.0,789372475.0,814009417.0,772911929.0,808419446.0,808868183.0,810428399.0,812002810.0,780570232.0,830777296.0,844304826.0,793405530.0,870521409.0,803923586.0,856920873.0,797940034.0,811865075.0,817158994.0,825260194.0,777677119.0,830030677.0,818623921.0,813815518.0,789554816.0,793844661.0,816530969.0,785092871.0,816404852.0,791737650.0,800233565.0,813278278.0,805454191.0,804587793.0,850666076.0,779359349.0,848931228.0,809119154.0,821482862.0,824772527.0,870731620.0,810093528.0,826472066.0,818410830.0,802541390.0,777306659.0,787590752.0,801052043.0,785946831.0,797108013.0,806930377.0,788343478.0,792315263.0,792918263.0,794834750.0,784694007.0,830653418.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1451579.0,3086224.0,4417600.0,6405670.0,7668012.0,8953170.0,10469986.0,12102334.0,13457706.0,14731720.0,16322055.0,18825419.0,19053539.0,21594601.0,22873248.0,24575891.0,25495202.0,28083583.0,29614205.0,30488836.0,32041824.0,33933605.0,34808538.0,37644438.0,37949578.0,43754140.0,41117047.0,44512614.0,45776058.0,46810952.0,47517244.0,51524276.0,52233940.0,53429386.0,52242675.0,53329472.0,55647567.0,56328672.0,59274447.0,60399820.0,63347039.0,64337055.0,66070975.0,70077713.0,78887984.0,104154146.0,73141737.0,75441946.0,75289941.0,80962489.0,82668148.0,93874686.0,84200632.0,89925544.0,91213724.0,97432971.0,88600665.0,91429296.0,90667949.0,95886835.0,94547495.0,99488545.0,95923731.0,98249442.0,98896752.0,103246789.0,100019363.0,104211167.0,106993369.0,104330948.0,107858356.0,107627425.0,108871897.0,138740293.0,152584691.0,142181032.0,129216591.0,122514084.0,122774705.0,124986820.0,128071871.0,127188472.0,132249184.0,130701605.0,136341473.0,134699099.0,135891093.0,135483010.0,140906218.0,144544002.0,142367911.0,144142494.0,144563947.0,146141203.0,147424606.0,150121139.0,152652118.0,158848364.0,175987331.0,154273067.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[2.0,4.0,6.0,8.0,10.0,12.0,14.0,16.0,18.0,20.0,22.0,24.0,26.0,28.0,30.0,32.0,34.0,36.0,38.0,40.0,42.0,44.0,46.0,48.0,50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0,76.0,78.0,80.0,82.0,84.0,86.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,104.0,106.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,124.0,126.0,128.0,130.0,132.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,152.0,154.0,156.0,158.0,160.0,162.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,180.0,182.0,184.0,186.0,188.0,190.0,192.0,194.0,196.0,198.0,200.0],"times":[1451579.0,3086224.0,4417600.0,6405670.0,7668012.0,8953170.0,10469986.0,12102334.0,13457706.0,14731720.0,16322055.0,18825419.0,19053539.0,21594601.0,22873248.0,24575891.0,25495202.0,28083583.0,29614205.0,30488836.0,32041824.0,33933605.0,34808538.0,37644438.0,37949578.0,43754140.0,41117047.0,44512614.0,45776058.0,46810952.0,47517244.0,51524276.0,52233940.0,53429386.0,52242675.0,53329472.0,55647567.0,56328672.0,59274447.0,60399820.0,63347039.0,64337055.0,66070975.0,70077713.0,78887984.0,104154146.0,73141737.0,75441946.0,75289941.0,80962489.0,82668148.0,93874686.0,84200632.0,89925544.0,91213724.0,97432971.0,88600665.0,91429296.0,90667949.0,95886835.0,94547495.0,99488545.0,95923731.0,98249442.0,98896752.0,103246789.0,100019363.0,104211167.0,106993369.0,104330948.0,107858356.0,107627425.0,108871897.0,138740293.0,152584691.0,142181032.0,129216591.0,122514084.0,122774705.0,124986820.0,128071871.0,127188472.0,132249184.0,130701605.0,136341473.0,134699099.0,135891093.0,135483010.0,140906218.0,144544002.0,142367911.0,144142494.0,144563947.0,146141203.0,147424606.0,150121139.0,152652118.0,158848364.0,175987331.0,154273067.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[18.0,36.0,54.0,72.0,90.0,108.0,126.0,144.0,162.0,180.0,198.0,216.0,234.0,252.0,270.0,288.0,306.0,324.0,342.0,360.0,378.0,396.0,414.0,432.0,450.0,468.0,486.0,504.0,522.0,540.0,558.0,576.0,594.0,612.0,630.0,648.0,666.0,684.0,702.0,720.0,738.0,756.0,774.0,792.0,810.0,828.0,846.0,864.0,882.0,900.0,918.0,936.0,954.0,972.0,990.0,1008.0,1026.0,1044.0,1062.0,1080.0,1098.0,1116.0,1134.0,1152.0,1170.0,1188.0,1206.0,1224.0,1242.0,1260.0,1278.0,1296.0,1314.0,1332.0,1350.0,1368.0,1386.0,1404.0,1422.0,1440.0,1458.0,1476.0,1494.0,1512.0,1530.0,1548.0,1566.0,1584.0,1602.0,1620.0,1638.0,1656.0,1674.0,1692.0,1710.0,1728.0,1746.0,1764.0,1782.0,1800.0],"times":[1455375.0,2161765.0,3160584.0,4153288.0,5292135.0,6559428.0,7627870.0,8519711.0,9480893.0,13398297.0,12097154.0,14178640.0,15359875.0,15609299.0,16118352.0,15599574.0,21292904.0,19326234.0,22008950.0,20858998.0,21217451.0,22276192.0,23115765.0,24344463.0,25893850.0,28760324.0,27487357.0,30167286.0,36839186.0,33428821.0,32164957.0,34191386.0,33412691.0,35252825.0,37681107.0,37252713.0,37383418.0,41010488.0,40445592.0,43816829.0,44937576.0,47045663.0,47667418.0,46106434.0,47959268.0,49384033.0,51569802.0,52524639.0,52402257.0,54950492.0,55192005.0,57026139.0,56261348.0,61930001.0,59935116.0,60132526.0,62519711.0,58815281.0,57788078.0,60905882.0,67636285.0,65709931.0,71122860.0,70854401.0,64773709.0,68748803.0,69874697.0,97767313.0,76850545.0,76765194.0,86632574.0,82432328.0,75366867.0,78110814.0,78094741.0,77662663.0,78045719.0,77966779.0,94090688.0,83502122.0,83682685.0,84627494.0,88185560.0,86828899.0,86921707.0,91110827.0,94851267.0,98697393.0,99649633.0,130233456.0,109322780.0,94305703.0,94816360.0,98678588.0,100796164.0,111827217.0,100746973.0,101841279.0,106480394.0,105038948.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[18.0,36.0,54.0,72.0,90.0,108.0,126.0,144.0,162.0,180.0,198.0,216.0,234.0,252.0,270.0,288.0,306.0,324.0,342.0,360.0,378.0,396.0,414.0,432.0,450.0,468.0,486.0,504.0,522.0,540.0,558.0,576.0,594.0,612.0,630.0,648.0,666.0,684.0,702.0,720.0,738.0,756.0,774.0,792.0,810.0,828.0,846.0,864.0,882.0,900.0,918.0,936.0,954.0,972.0,990.0,1008.0,1026.0,1044.0,1062.0,1080.0,1098.0,1116.0,1134.0,1152.0,1170.0,1188.0,1206.0,1224.0,1242.0,1260.0,1278.0,1296.0,1314.0,1332.0,1350.0,1368.0,1386.0,1404.0,1422.0,1440.0,1458.0,1476.0,1494.0,1512.0,1530.0,1548.0,1566.0,1584.0,1602.0,1620.0,1638.0,1656.0,1674.0,1692.0,1710.0,1728.0,1746.0,1764.0,1782.0,1800.0],"times":[1455375.0,2161765.0,3160584.0,4153288.0,5292135.0,6559428.0,7627870.0,8519711.0,9480893.0,13398297.0,12097154.0,14178640.0,15359875.0,15609299.0,16118352.0,15599574.0,21292904.0,19326234.0,22008950.0,20858998.0,21217451.0,22276192.0,23115765.0,24344463.0,25893850.0,28760324.0,27487357.0,30167286.0,36839186.0,33428821.0,32164957.0,34191386.0,33412691.0,35252825.0,37681107.0,37252713.0,37383418.0,41010488.0,40445592.0,43816829.0,44937576.0,47045663.0,47667418.0,46106434.0,47959268.0,49384033.0,51569802.0,52524639.0,52402257.0,54950492.0,55192005.0,57026139.0,56261348.0,61930001.0,59935116.0,60132526.0,62519711.0,58815281.0,57788078.0,60905882.0,67636285.0,65709931.0,71122860.0,70854401.0,64773709.0,68748803.0,69874697.0,97767313.0,76850545.0,76765194.0,86632574.0,82432328.0,75366867.0,78110814.0,78094741.0,77662663.0,78045719.0,77966779.0,94090688.0,83502122.0,83682685.0,84627494.0,88185560.0,86828899.0,86921707.0,91110827.0,94851267.0,98697393.0,99649633.0,130233456.0,109322780.0,94305703.0,94816360.0,98678588.0,100796164.0,111827217.0,100746973.0,101841279.0,106480394.0,105038948.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/base/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[43.0,86.0,129.0,172.0,215.0,258.0,301.0,344.0,387.0,430.0,473.0,516.0,559.0,602.0,645.0,688.0,731.0,774.0,817.0,860.0,903.0,946.0,989.0,1032.0,1075.0,1118.0,1161.0,1204.0,1247.0,1290.0,1333.0,1376.0,1419.0,1462.0,1505.0,1548.0,1591.0,1634.0,1677.0,1720.0,1763.0,1806.0,1849.0,1892.0,1935.0,1978.0,2021.0,2064.0,2107.0,2150.0,2193.0,2236.0,2279.0,2322.0,2365.0,2408.0,2451.0,2494.0,2537.0,2580.0,2623.0,2666.0,2709.0,2752.0,2795.0,2838.0,2881.0,2924.0,2967.0,3010.0,3053.0,3096.0,3139.0,3182.0,3225.0,3268.0,3311.0,3354.0,3397.0,3440.0,3483.0,3526.0,3569.0,3612.0,3655.0,3698.0,3741.0,3784.0,3827.0,3870.0,3913.0,3956.0,3999.0,4042.0,4085.0,4128.0,4171.0,4214.0,4257.0,4300.0],"times":[1067527.0,2017324.0,2980309.0,3900185.0,4792089.0,6791474.0,6551104.0,7712546.0,8949089.0,11107739.0,10890765.0,11710039.0,12955836.0,13930258.0,15072521.0,15554879.0,16584851.0,17656117.0,19816930.0,20056627.0,20499949.0,22207786.0,23269907.0,23436293.0,25119926.0,26516537.0,27318998.0,28375649.0,31276778.0,29768947.0,30840590.0,31708398.0,32874931.0,33801290.0,34474331.0,38415791.0,38628102.0,38085551.0,39465513.0,40828820.0,41709934.0,43715443.0,43106070.0,46131311.0,44722170.0,46239681.0,46361733.0,48713651.0,49440821.0,51505439.0,52384820.0,56133111.0,55399582.0,55840180.0,57173861.0,55439283.0,56596664.0,57499168.0,58666886.0,61780566.0,74120646.0,87352097.0,92049417.0,76236626.0,72781838.0,73211371.0,85438299.0,128016960.0,148153573.0,85294942.0,70246741.0,73042753.0,157211512.0,96698345.0,106761406.0,196527421.0,94729747.0,80496980.0,139759434.0,235145100.0,157942820.0,145833937.0,131891205.0,99213215.0,108816666.0,101149736.0,108936452.0,110248475.0,124768247.0,116133622.0,116913180.0,111097029.0,137580183.0,174241227.0,110382664.0,106768342.0,135165705.0,193470907.0,179481936.0,149667041.0]} -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/new/sample.json: -------------------------------------------------------------------------------- 1 | {"sampling_mode":"Linear","iters":[43.0,86.0,129.0,172.0,215.0,258.0,301.0,344.0,387.0,430.0,473.0,516.0,559.0,602.0,645.0,688.0,731.0,774.0,817.0,860.0,903.0,946.0,989.0,1032.0,1075.0,1118.0,1161.0,1204.0,1247.0,1290.0,1333.0,1376.0,1419.0,1462.0,1505.0,1548.0,1591.0,1634.0,1677.0,1720.0,1763.0,1806.0,1849.0,1892.0,1935.0,1978.0,2021.0,2064.0,2107.0,2150.0,2193.0,2236.0,2279.0,2322.0,2365.0,2408.0,2451.0,2494.0,2537.0,2580.0,2623.0,2666.0,2709.0,2752.0,2795.0,2838.0,2881.0,2924.0,2967.0,3010.0,3053.0,3096.0,3139.0,3182.0,3225.0,3268.0,3311.0,3354.0,3397.0,3440.0,3483.0,3526.0,3569.0,3612.0,3655.0,3698.0,3741.0,3784.0,3827.0,3870.0,3913.0,3956.0,3999.0,4042.0,4085.0,4128.0,4171.0,4214.0,4257.0,4300.0],"times":[1067527.0,2017324.0,2980309.0,3900185.0,4792089.0,6791474.0,6551104.0,7712546.0,8949089.0,11107739.0,10890765.0,11710039.0,12955836.0,13930258.0,15072521.0,15554879.0,16584851.0,17656117.0,19816930.0,20056627.0,20499949.0,22207786.0,23269907.0,23436293.0,25119926.0,26516537.0,27318998.0,28375649.0,31276778.0,29768947.0,30840590.0,31708398.0,32874931.0,33801290.0,34474331.0,38415791.0,38628102.0,38085551.0,39465513.0,40828820.0,41709934.0,43715443.0,43106070.0,46131311.0,44722170.0,46239681.0,46361733.0,48713651.0,49440821.0,51505439.0,52384820.0,56133111.0,55399582.0,55840180.0,57173861.0,55439283.0,56596664.0,57499168.0,58666886.0,61780566.0,74120646.0,87352097.0,92049417.0,76236626.0,72781838.0,73211371.0,85438299.0,128016960.0,148153573.0,85294942.0,70246741.0,73042753.0,157211512.0,96698345.0,106761406.0,196527421.0,94729747.0,80496980.0,139759434.0,235145100.0,157942820.0,145833937.0,131891205.0,99213215.0,108816666.0,101149736.0,108936452.0,110248475.0,124768247.0,116133622.0,116913180.0,111097029.0,137580183.0,174241227.0,110382664.0,106768342.0,135165705.0,193470907.0,179481936.0,149667041.0]} -------------------------------------------------------------------------------- /tests/src/elgamal_tests.rs: -------------------------------------------------------------------------------- 1 | mod tests { 2 | 3 | use sinkhole_core::traits::core::Query as query_trait; 4 | use sinkhole_core::traits::core::Storage as storage_trait; 5 | use sinkhole_elgamal::client::Query; 6 | use sinkhole_elgamal::storage::Storage; 7 | 8 | use curve25519_dalek::scalar::Scalar; 9 | use elgamal_ristretto::private::SecretKey; 10 | use elgamal_ristretto::public::PublicKey; 11 | use rand_core::OsRng; 12 | 13 | fn generate_key_pair() -> (PublicKey, SecretKey) { 14 | let sk = SecretKey::new(&mut OsRng); 15 | let pk = PublicKey::from(&sk); 16 | (pk, sk) 17 | } 18 | 19 | #[test] 20 | fn elgamal_e2e() { 21 | const K: u32 = 10; 22 | let size_storage: u32 = 2u32.pow(K); 23 | let query_index = 100; // content position to retrieve from the storage 24 | 25 | // storage setup 26 | let (_, storage_sk) = generate_key_pair(); 27 | let mut csprng = OsRng; 28 | let mut content: Vec = (1..size_storage + 1) 29 | .map(|_| Scalar::random(&mut csprng)) 30 | .collect(); 31 | 32 | content[query_index] = Scalar::from(420u32); 33 | 34 | let storage = Storage::new(storage_sk, content.clone()); 35 | 36 | // client setup 37 | let (_, client_sk) = generate_key_pair(); 38 | let query = Query::new(client_sk, size_storage as usize, query_index); 39 | 40 | assert!(!query.is_err()); 41 | let query = query.unwrap(); 42 | 43 | // client queries storage 44 | let encrypted_result = storage.retrieve(query.clone().encrypted); 45 | assert!(!encrypted_result.is_err()); 46 | 47 | let encrypted_result = encrypted_result.unwrap(); 48 | let result = query.extract_result(encrypted_result, 32); 49 | 50 | assert!(!result.is_err()); 51 | let result = result.unwrap(); 52 | 53 | assert_eq!(result, content[query_index]); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /sinkhole-elgamal/src/client/mod.rs: -------------------------------------------------------------------------------- 1 | #![allow(dead_code)] 2 | 3 | use sinkhole_core::errors::QueryError; 4 | 5 | use curve25519_dalek::constants::RISTRETTO_BASEPOINT_TABLE; 6 | use curve25519_dalek::scalar::Scalar; 7 | use elgamal_ristretto::ciphertext::Ciphertext; 8 | use elgamal_ristretto::private::SecretKey; 9 | use elgamal_ristretto::public::PublicKey; 10 | 11 | #[derive(Debug, Clone)] 12 | pub struct Query { 13 | pub encrypted: Vec, 14 | private_key: SecretKey, 15 | size: usize, 16 | } 17 | 18 | impl Query { 19 | pub fn new(sk: SecretKey, size: usize, index: usize) -> Result { 20 | if index > size - 1 { 21 | return Err(QueryError { 22 | error: "Index of query should not be larger than the size of the query".to_owned(), 23 | }); 24 | } 25 | 26 | let pk = PublicKey::from(&sk); 27 | let mut decrypted_query = vec![Scalar::zero(); size - 1]; 28 | decrypted_query.insert(index, Scalar::one()); 29 | 30 | let encrypted_query: Vec = decrypted_query 31 | .into_iter() 32 | .map(|x| pk.encrypt(&(&x * &RISTRETTO_BASEPOINT_TABLE))) 33 | .collect(); 34 | 35 | Ok(Query { 36 | private_key: sk, 37 | size, 38 | encrypted: encrypted_query, 39 | }) 40 | } 41 | } 42 | 43 | impl sinkhole_core::traits::core::Query for Query { 44 | fn extract_result(&self, result: Ciphertext, k: u32) -> Result { 45 | let point_result = self.private_key.decrypt(&result); 46 | recover_scalar(point_result, k) 47 | } 48 | } 49 | 50 | fn recover_scalar( 51 | point: curve25519_dalek::ristretto::RistrettoPoint, 52 | k: u32, 53 | ) -> Result { 54 | for i in 0..2u64.pow(k) { 55 | if &Scalar::from(i as u64) * &RISTRETTO_BASEPOINT_TABLE == point { 56 | return Ok(Scalar::from(i as u64)); 57 | } 58 | } 59 | Err(QueryError { 60 | error: format!["Scalar is not within the [0..2^{}] range", k], 61 | }) 62 | } 63 | -------------------------------------------------------------------------------- /sinkhole-core/src/utils.rs: -------------------------------------------------------------------------------- 1 | use curve25519_dalek::{ristretto::RistrettoPoint, traits::Identity}; 2 | use elgamal_ristretto::ciphertext::Ciphertext; 3 | use elgamal_ristretto::public::PublicKey; 4 | 5 | pub fn num_parallel_tasks() -> usize { 6 | match std::env::var("N_PARALLEL_TASKS") { 7 | Ok(val) => match val.parse::() { 8 | Ok(v) => v, 9 | Err(_) => num_cpus::get(), 10 | }, 11 | Err(_) => num_cpus::get(), 12 | } 13 | } 14 | 15 | pub fn calculate_vector_boundaries(v: &[Ciphertext], n_shares: usize) -> Vec { 16 | let mut sep_shares: Vec = vec![]; 17 | let size_shares = v.len() / n_shares; 18 | 19 | let mut i = 0; 20 | loop { 21 | sep_shares.push(i); 22 | i += size_shares; 23 | 24 | if i >= v.len() { 25 | break; 26 | } 27 | } 28 | sep_shares 29 | } 30 | 31 | pub fn zero_ciphertext_from_pk(pk: PublicKey) -> Ciphertext { 32 | Ciphertext { 33 | pk, 34 | points: (RistrettoPoint::identity(), RistrettoPoint::identity()), 35 | } 36 | } 37 | 38 | #[cfg(test)] 39 | mod tests { 40 | use super::*; 41 | use curve25519_dalek::ristretto::RistrettoPoint; 42 | use elgamal_ristretto::private::SecretKey; 43 | 44 | #[test] 45 | fn test_parallel_tasks_set() { 46 | std::env::set_var("N_PARALLEL_TASKS", 3.to_string()); 47 | assert_eq!(num_parallel_tasks(), 3); 48 | } 49 | 50 | #[test] 51 | fn test_parallel_tasks_not_set() { 52 | assert!(num_parallel_tasks() > 0); 53 | } 54 | 55 | #[test] 56 | fn test_boundaries() { 57 | let v = vec![ 58 | new_ciphertext(), 59 | new_ciphertext(), 60 | new_ciphertext(), 61 | new_ciphertext(), 62 | new_ciphertext(), 63 | new_ciphertext(), 64 | new_ciphertext(), 65 | new_ciphertext(), 66 | new_ciphertext(), 67 | new_ciphertext(), 68 | ]; 69 | 70 | assert_eq!(calculate_vector_boundaries(&v, 2), vec![0, 5]); 71 | assert_eq!(calculate_vector_boundaries(&v, 3), vec![0, 3, 6, 9]); 72 | assert_eq!(calculate_vector_boundaries(&v, 5), vec![0, 2, 4, 6, 8]); 73 | } 74 | 75 | fn new_ciphertext() -> Ciphertext { 76 | use rand_core::OsRng; 77 | 78 | let mut csprng = OsRng; 79 | let sk = SecretKey::new(&mut csprng); 80 | let pk = PublicKey::from(&sk); 81 | 82 | Ciphertext { 83 | pk, 84 | points: ( 85 | RistrettoPoint::random(&mut csprng), 86 | RistrettoPoint::random(&mut csprng), 87 | ), 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Index - Criterion.rs 7 | 60 | 61 | 62 | 63 |
64 |

Criterion.rs Benchmark Index

65 | See individual benchmark pages below for more details. 66 | 93 |
94 | 99 | 100 | -------------------------------------------------------------------------------- /sinkhole-elgamal/src/storage/mod.rs: -------------------------------------------------------------------------------- 1 | #![allow(dead_code)] 2 | use sinkhole_core::errors::StorageError; 3 | use sinkhole_core::utils::{ 4 | calculate_vector_boundaries, num_parallel_tasks, zero_ciphertext_from_pk, 5 | }; 6 | 7 | use rand_core::OsRng; 8 | use std::sync::{Arc, Mutex}; 9 | use std::thread; 10 | 11 | use curve25519_dalek::scalar::Scalar; 12 | use elgamal_ristretto::ciphertext::Ciphertext; 13 | use elgamal_ristretto::private::SecretKey; 14 | use elgamal_ristretto::public::PublicKey; 15 | 16 | #[derive(Debug, Clone)] 17 | pub struct Storage { 18 | secret_key: SecretKey, 19 | size: usize, 20 | store: Vec, 21 | } 22 | 23 | impl Storage { 24 | pub fn new(sk: SecretKey, store: Vec) -> Self { 25 | Storage { 26 | secret_key: sk, 27 | size: store.len(), 28 | store, 29 | } 30 | } 31 | 32 | pub fn new_empty(sk: SecretKey, size: usize) -> Self { 33 | let mut csprng = OsRng; 34 | let empty_store: Vec = (1..size).map(|_| Scalar::random(&mut csprng)).collect(); 35 | 36 | Storage { 37 | secret_key: sk, 38 | size, 39 | store: empty_store, 40 | } 41 | } 42 | } 43 | 44 | impl sinkhole_core::traits::core::Storage for Storage { 45 | fn add(&mut self, content: Scalar, index: usize) -> Result<(), StorageError> { 46 | if index > self.size - 1 { 47 | return Err(StorageError { 48 | error: "Index should not be larger than the size of the storage".to_string(), 49 | }); 50 | } 51 | 52 | let mut store = self.store.clone(); 53 | store[index] = content; // TODO: how to deal with collisions? 54 | self.store = store; 55 | 56 | Ok(()) 57 | } 58 | 59 | // Runs encrypted query against the database state 60 | fn retrieve(&self, query: Vec) -> Result { 61 | let size = query.len(); 62 | let user_pk = query[0].pk; 63 | let mut thread_handles = vec![]; 64 | 65 | if query.len() != self.size { 66 | return Err(StorageError { 67 | error: "Query vector should have the same size as the storage".to_string(), 68 | }); 69 | } 70 | 71 | // calculates index boundaries to distribute computation in different threads 72 | let thread_segment_limits = calculate_vector_boundaries(&query, num_parallel_tasks()); 73 | let size_segment = size / thread_segment_limits.len(); 74 | 75 | let ciphertext_result = Arc::new(Mutex::new(zero_ciphertext_from_pk(user_pk))); 76 | let shared_query = Arc::new(Mutex::new(query)); 77 | let shared_store = Arc::new(Mutex::new(self.store.clone())); // TODO: remove this clone 78 | 79 | for segment_i in thread_segment_limits { 80 | for i in 0..size_segment { 81 | let ciphertext_result = Arc::clone(&ciphertext_result); 82 | let shared_query = Arc::clone(&shared_query); 83 | let shared_store = Arc::clone(&shared_store); 84 | 85 | let handle = thread::spawn(move || { 86 | let mut sum = ciphertext_result.lock().unwrap(); 87 | let query = shared_query.lock().unwrap(); // TODO: remove unwrap 88 | let store = shared_store.lock().unwrap(); // TODO: remove unwrap 89 | 90 | *sum = *sum + (query[segment_i + i] * store[segment_i + i]); 91 | }); 92 | 93 | thread_handles.push(handle); 94 | } 95 | } 96 | 97 | for handle in thread_handles { 98 | handle.join().unwrap(); // TODO: remove unwrap 99 | } 100 | 101 | let result = *ciphertext_result.lock().unwrap(); // TODO: remove unwrap 102 | Ok(result) 103 | } 104 | } 105 | 106 | /// Generates ElGamal asymmetric key pair for the ristretto curve 107 | fn generate_key_pair() -> (SecretKey, PublicKey) { 108 | let sk = SecretKey::new(&mut OsRng); 109 | let pk = PublicKey::from(&sk); 110 | (sk, pk) 111 | } 112 | 113 | #[cfg(test)] 114 | mod tests { 115 | use super::*; 116 | 117 | extern crate bincode; 118 | extern crate rand_core; 119 | 120 | #[test] 121 | fn test_constructor() { 122 | let size = 4; 123 | let (sk, _) = generate_key_pair(); 124 | let server = Storage::new_empty(sk, size); 125 | 126 | assert!(server.size == size); 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | Generate key pair,,,,,1455375.0,ns,18 3 | Generate key pair,,,,,2161765.0,ns,36 4 | Generate key pair,,,,,3160584.0,ns,54 5 | Generate key pair,,,,,4153288.0,ns,72 6 | Generate key pair,,,,,5292135.0,ns,90 7 | Generate key pair,,,,,6559428.0,ns,108 8 | Generate key pair,,,,,7627870.0,ns,126 9 | Generate key pair,,,,,8519711.0,ns,144 10 | Generate key pair,,,,,9480893.0,ns,162 11 | Generate key pair,,,,,13398297.0,ns,180 12 | Generate key pair,,,,,12097154.0,ns,198 13 | Generate key pair,,,,,14178640.0,ns,216 14 | Generate key pair,,,,,15359875.0,ns,234 15 | Generate key pair,,,,,15609299.0,ns,252 16 | Generate key pair,,,,,16118352.0,ns,270 17 | Generate key pair,,,,,15599574.0,ns,288 18 | Generate key pair,,,,,21292904.0,ns,306 19 | Generate key pair,,,,,19326234.0,ns,324 20 | Generate key pair,,,,,22008950.0,ns,342 21 | Generate key pair,,,,,20858998.0,ns,360 22 | Generate key pair,,,,,21217451.0,ns,378 23 | Generate key pair,,,,,22276192.0,ns,396 24 | Generate key pair,,,,,23115765.0,ns,414 25 | Generate key pair,,,,,24344463.0,ns,432 26 | Generate key pair,,,,,25893850.0,ns,450 27 | Generate key pair,,,,,28760324.0,ns,468 28 | Generate key pair,,,,,27487357.0,ns,486 29 | Generate key pair,,,,,30167286.0,ns,504 30 | Generate key pair,,,,,36839186.0,ns,522 31 | Generate key pair,,,,,33428821.0,ns,540 32 | Generate key pair,,,,,32164957.0,ns,558 33 | Generate key pair,,,,,34191386.0,ns,576 34 | Generate key pair,,,,,33412691.0,ns,594 35 | Generate key pair,,,,,35252825.0,ns,612 36 | Generate key pair,,,,,37681107.0,ns,630 37 | Generate key pair,,,,,37252713.0,ns,648 38 | Generate key pair,,,,,37383418.0,ns,666 39 | Generate key pair,,,,,41010488.0,ns,684 40 | Generate key pair,,,,,40445592.0,ns,702 41 | Generate key pair,,,,,43816829.0,ns,720 42 | Generate key pair,,,,,44937576.0,ns,738 43 | Generate key pair,,,,,47045663.0,ns,756 44 | Generate key pair,,,,,47667418.0,ns,774 45 | Generate key pair,,,,,46106434.0,ns,792 46 | Generate key pair,,,,,47959268.0,ns,810 47 | Generate key pair,,,,,49384033.0,ns,828 48 | Generate key pair,,,,,51569802.0,ns,846 49 | Generate key pair,,,,,52524639.0,ns,864 50 | Generate key pair,,,,,52402257.0,ns,882 51 | Generate key pair,,,,,54950492.0,ns,900 52 | Generate key pair,,,,,55192005.0,ns,918 53 | Generate key pair,,,,,57026139.0,ns,936 54 | Generate key pair,,,,,56261348.0,ns,954 55 | Generate key pair,,,,,61930001.0,ns,972 56 | Generate key pair,,,,,59935116.0,ns,990 57 | Generate key pair,,,,,60132526.0,ns,1008 58 | Generate key pair,,,,,62519711.0,ns,1026 59 | Generate key pair,,,,,58815281.0,ns,1044 60 | Generate key pair,,,,,57788078.0,ns,1062 61 | Generate key pair,,,,,60905882.0,ns,1080 62 | Generate key pair,,,,,67636285.0,ns,1098 63 | Generate key pair,,,,,65709931.0,ns,1116 64 | Generate key pair,,,,,71122860.0,ns,1134 65 | Generate key pair,,,,,70854401.0,ns,1152 66 | Generate key pair,,,,,64773709.0,ns,1170 67 | Generate key pair,,,,,68748803.0,ns,1188 68 | Generate key pair,,,,,69874697.0,ns,1206 69 | Generate key pair,,,,,97767313.0,ns,1224 70 | Generate key pair,,,,,76850545.0,ns,1242 71 | Generate key pair,,,,,76765194.0,ns,1260 72 | Generate key pair,,,,,86632574.0,ns,1278 73 | Generate key pair,,,,,82432328.0,ns,1296 74 | Generate key pair,,,,,75366867.0,ns,1314 75 | Generate key pair,,,,,78110814.0,ns,1332 76 | Generate key pair,,,,,78094741.0,ns,1350 77 | Generate key pair,,,,,77662663.0,ns,1368 78 | Generate key pair,,,,,78045719.0,ns,1386 79 | Generate key pair,,,,,77966779.0,ns,1404 80 | Generate key pair,,,,,94090688.0,ns,1422 81 | Generate key pair,,,,,83502122.0,ns,1440 82 | Generate key pair,,,,,83682685.0,ns,1458 83 | Generate key pair,,,,,84627494.0,ns,1476 84 | Generate key pair,,,,,88185560.0,ns,1494 85 | Generate key pair,,,,,86828899.0,ns,1512 86 | Generate key pair,,,,,86921707.0,ns,1530 87 | Generate key pair,,,,,91110827.0,ns,1548 88 | Generate key pair,,,,,94851267.0,ns,1566 89 | Generate key pair,,,,,98697393.0,ns,1584 90 | Generate key pair,,,,,99649633.0,ns,1602 91 | Generate key pair,,,,,130233456.0,ns,1620 92 | Generate key pair,,,,,109322780.0,ns,1638 93 | Generate key pair,,,,,94305703.0,ns,1656 94 | Generate key pair,,,,,94816360.0,ns,1674 95 | Generate key pair,,,,,98678588.0,ns,1692 96 | Generate key pair,,,,,100796164.0,ns,1710 97 | Generate key pair,,,,,111827217.0,ns,1728 98 | Generate key pair,,,,,100746973.0,ns,1746 99 | Generate key pair,,,,,101841279.0,ns,1764 100 | Generate key pair,,,,,106480394.0,ns,1782 101 | Generate key pair,,,,,105038948.0,ns,1800 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/Generate key pair/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | Generate key pair,,,,,1455375.0,ns,18 3 | Generate key pair,,,,,2161765.0,ns,36 4 | Generate key pair,,,,,3160584.0,ns,54 5 | Generate key pair,,,,,4153288.0,ns,72 6 | Generate key pair,,,,,5292135.0,ns,90 7 | Generate key pair,,,,,6559428.0,ns,108 8 | Generate key pair,,,,,7627870.0,ns,126 9 | Generate key pair,,,,,8519711.0,ns,144 10 | Generate key pair,,,,,9480893.0,ns,162 11 | Generate key pair,,,,,13398297.0,ns,180 12 | Generate key pair,,,,,12097154.0,ns,198 13 | Generate key pair,,,,,14178640.0,ns,216 14 | Generate key pair,,,,,15359875.0,ns,234 15 | Generate key pair,,,,,15609299.0,ns,252 16 | Generate key pair,,,,,16118352.0,ns,270 17 | Generate key pair,,,,,15599574.0,ns,288 18 | Generate key pair,,,,,21292904.0,ns,306 19 | Generate key pair,,,,,19326234.0,ns,324 20 | Generate key pair,,,,,22008950.0,ns,342 21 | Generate key pair,,,,,20858998.0,ns,360 22 | Generate key pair,,,,,21217451.0,ns,378 23 | Generate key pair,,,,,22276192.0,ns,396 24 | Generate key pair,,,,,23115765.0,ns,414 25 | Generate key pair,,,,,24344463.0,ns,432 26 | Generate key pair,,,,,25893850.0,ns,450 27 | Generate key pair,,,,,28760324.0,ns,468 28 | Generate key pair,,,,,27487357.0,ns,486 29 | Generate key pair,,,,,30167286.0,ns,504 30 | Generate key pair,,,,,36839186.0,ns,522 31 | Generate key pair,,,,,33428821.0,ns,540 32 | Generate key pair,,,,,32164957.0,ns,558 33 | Generate key pair,,,,,34191386.0,ns,576 34 | Generate key pair,,,,,33412691.0,ns,594 35 | Generate key pair,,,,,35252825.0,ns,612 36 | Generate key pair,,,,,37681107.0,ns,630 37 | Generate key pair,,,,,37252713.0,ns,648 38 | Generate key pair,,,,,37383418.0,ns,666 39 | Generate key pair,,,,,41010488.0,ns,684 40 | Generate key pair,,,,,40445592.0,ns,702 41 | Generate key pair,,,,,43816829.0,ns,720 42 | Generate key pair,,,,,44937576.0,ns,738 43 | Generate key pair,,,,,47045663.0,ns,756 44 | Generate key pair,,,,,47667418.0,ns,774 45 | Generate key pair,,,,,46106434.0,ns,792 46 | Generate key pair,,,,,47959268.0,ns,810 47 | Generate key pair,,,,,49384033.0,ns,828 48 | Generate key pair,,,,,51569802.0,ns,846 49 | Generate key pair,,,,,52524639.0,ns,864 50 | Generate key pair,,,,,52402257.0,ns,882 51 | Generate key pair,,,,,54950492.0,ns,900 52 | Generate key pair,,,,,55192005.0,ns,918 53 | Generate key pair,,,,,57026139.0,ns,936 54 | Generate key pair,,,,,56261348.0,ns,954 55 | Generate key pair,,,,,61930001.0,ns,972 56 | Generate key pair,,,,,59935116.0,ns,990 57 | Generate key pair,,,,,60132526.0,ns,1008 58 | Generate key pair,,,,,62519711.0,ns,1026 59 | Generate key pair,,,,,58815281.0,ns,1044 60 | Generate key pair,,,,,57788078.0,ns,1062 61 | Generate key pair,,,,,60905882.0,ns,1080 62 | Generate key pair,,,,,67636285.0,ns,1098 63 | Generate key pair,,,,,65709931.0,ns,1116 64 | Generate key pair,,,,,71122860.0,ns,1134 65 | Generate key pair,,,,,70854401.0,ns,1152 66 | Generate key pair,,,,,64773709.0,ns,1170 67 | Generate key pair,,,,,68748803.0,ns,1188 68 | Generate key pair,,,,,69874697.0,ns,1206 69 | Generate key pair,,,,,97767313.0,ns,1224 70 | Generate key pair,,,,,76850545.0,ns,1242 71 | Generate key pair,,,,,76765194.0,ns,1260 72 | Generate key pair,,,,,86632574.0,ns,1278 73 | Generate key pair,,,,,82432328.0,ns,1296 74 | Generate key pair,,,,,75366867.0,ns,1314 75 | Generate key pair,,,,,78110814.0,ns,1332 76 | Generate key pair,,,,,78094741.0,ns,1350 77 | Generate key pair,,,,,77662663.0,ns,1368 78 | Generate key pair,,,,,78045719.0,ns,1386 79 | Generate key pair,,,,,77966779.0,ns,1404 80 | Generate key pair,,,,,94090688.0,ns,1422 81 | Generate key pair,,,,,83502122.0,ns,1440 82 | Generate key pair,,,,,83682685.0,ns,1458 83 | Generate key pair,,,,,84627494.0,ns,1476 84 | Generate key pair,,,,,88185560.0,ns,1494 85 | Generate key pair,,,,,86828899.0,ns,1512 86 | Generate key pair,,,,,86921707.0,ns,1530 87 | Generate key pair,,,,,91110827.0,ns,1548 88 | Generate key pair,,,,,94851267.0,ns,1566 89 | Generate key pair,,,,,98697393.0,ns,1584 90 | Generate key pair,,,,,99649633.0,ns,1602 91 | Generate key pair,,,,,130233456.0,ns,1620 92 | Generate key pair,,,,,109322780.0,ns,1638 93 | Generate key pair,,,,,94305703.0,ns,1656 94 | Generate key pair,,,,,94816360.0,ns,1674 95 | Generate key pair,,,,,98678588.0,ns,1692 96 | Generate key pair,,,,,100796164.0,ns,1710 97 | Generate key pair,,,,,111827217.0,ns,1728 98 | Generate key pair,,,,,100746973.0,ns,1746 99 | Generate key pair,,,,,101841279.0,ns,1764 100 | Generate key pair,,,,,106480394.0,ns,1782 101 | Generate key pair,,,,,105038948.0,ns,1800 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^15,,,,50208341.0,ns,2 3 | db_setup_group,Setup DB size 2^15,,,,50278705.0,ns,2 4 | db_setup_group,Setup DB size 2^15,,,,49599223.0,ns,2 5 | db_setup_group,Setup DB size 2^15,,,,50204086.0,ns,2 6 | db_setup_group,Setup DB size 2^15,,,,49626272.0,ns,2 7 | db_setup_group,Setup DB size 2^15,,,,50766498.0,ns,2 8 | db_setup_group,Setup DB size 2^15,,,,50188924.0,ns,2 9 | db_setup_group,Setup DB size 2^15,,,,50584731.0,ns,2 10 | db_setup_group,Setup DB size 2^15,,,,49046853.0,ns,2 11 | db_setup_group,Setup DB size 2^15,,,,49389824.0,ns,2 12 | db_setup_group,Setup DB size 2^15,,,,51836562.0,ns,2 13 | db_setup_group,Setup DB size 2^15,,,,50600133.0,ns,2 14 | db_setup_group,Setup DB size 2^15,,,,49782669.0,ns,2 15 | db_setup_group,Setup DB size 2^15,,,,49090467.0,ns,2 16 | db_setup_group,Setup DB size 2^15,,,,49714429.0,ns,2 17 | db_setup_group,Setup DB size 2^15,,,,50802203.0,ns,2 18 | db_setup_group,Setup DB size 2^15,,,,49467446.0,ns,2 19 | db_setup_group,Setup DB size 2^15,,,,49553590.0,ns,2 20 | db_setup_group,Setup DB size 2^15,,,,50886797.0,ns,2 21 | db_setup_group,Setup DB size 2^15,,,,50735070.0,ns,2 22 | db_setup_group,Setup DB size 2^15,,,,49922209.0,ns,2 23 | db_setup_group,Setup DB size 2^15,,,,51162157.0,ns,2 24 | db_setup_group,Setup DB size 2^15,,,,49593530.0,ns,2 25 | db_setup_group,Setup DB size 2^15,,,,50077968.0,ns,2 26 | db_setup_group,Setup DB size 2^15,,,,48980416.0,ns,2 27 | db_setup_group,Setup DB size 2^15,,,,49998493.0,ns,2 28 | db_setup_group,Setup DB size 2^15,,,,50428345.0,ns,2 29 | db_setup_group,Setup DB size 2^15,,,,48912520.0,ns,2 30 | db_setup_group,Setup DB size 2^15,,,,49814616.0,ns,2 31 | db_setup_group,Setup DB size 2^15,,,,50029774.0,ns,2 32 | db_setup_group,Setup DB size 2^15,,,,52656640.0,ns,2 33 | db_setup_group,Setup DB size 2^15,,,,50090043.0,ns,2 34 | db_setup_group,Setup DB size 2^15,,,,49336635.0,ns,2 35 | db_setup_group,Setup DB size 2^15,,,,50807328.0,ns,2 36 | db_setup_group,Setup DB size 2^15,,,,49914087.0,ns,2 37 | db_setup_group,Setup DB size 2^15,,,,50825684.0,ns,2 38 | db_setup_group,Setup DB size 2^15,,,,49304954.0,ns,2 39 | db_setup_group,Setup DB size 2^15,,,,49214872.0,ns,2 40 | db_setup_group,Setup DB size 2^15,,,,50276864.0,ns,2 41 | db_setup_group,Setup DB size 2^15,,,,50132075.0,ns,2 42 | db_setup_group,Setup DB size 2^15,,,,50208142.0,ns,2 43 | db_setup_group,Setup DB size 2^15,,,,50809984.0,ns,2 44 | db_setup_group,Setup DB size 2^15,,,,49548174.0,ns,2 45 | db_setup_group,Setup DB size 2^15,,,,50440503.0,ns,2 46 | db_setup_group,Setup DB size 2^15,,,,50035101.0,ns,2 47 | db_setup_group,Setup DB size 2^15,,,,57203037.0,ns,2 48 | db_setup_group,Setup DB size 2^15,,,,83154296.0,ns,2 49 | db_setup_group,Setup DB size 2^15,,,,60758928.0,ns,2 50 | db_setup_group,Setup DB size 2^15,,,,51278780.0,ns,2 51 | db_setup_group,Setup DB size 2^15,,,,54163219.0,ns,2 52 | db_setup_group,Setup DB size 2^15,,,,49201507.0,ns,2 53 | db_setup_group,Setup DB size 2^15,,,,48372243.0,ns,2 54 | db_setup_group,Setup DB size 2^15,,,,47833238.0,ns,2 55 | db_setup_group,Setup DB size 2^15,,,,48720331.0,ns,2 56 | db_setup_group,Setup DB size 2^15,,,,48253480.0,ns,2 57 | db_setup_group,Setup DB size 2^15,,,,49993498.0,ns,2 58 | db_setup_group,Setup DB size 2^15,,,,48225665.0,ns,2 59 | db_setup_group,Setup DB size 2^15,,,,86476137.0,ns,2 60 | db_setup_group,Setup DB size 2^15,,,,47599776.0,ns,2 61 | db_setup_group,Setup DB size 2^15,,,,48554958.0,ns,2 62 | db_setup_group,Setup DB size 2^15,,,,48857296.0,ns,2 63 | db_setup_group,Setup DB size 2^15,,,,48161737.0,ns,2 64 | db_setup_group,Setup DB size 2^15,,,,47633556.0,ns,2 65 | db_setup_group,Setup DB size 2^15,,,,47359804.0,ns,2 66 | db_setup_group,Setup DB size 2^15,,,,47686423.0,ns,2 67 | db_setup_group,Setup DB size 2^15,,,,48146944.0,ns,2 68 | db_setup_group,Setup DB size 2^15,,,,47351553.0,ns,2 69 | db_setup_group,Setup DB size 2^15,,,,47774956.0,ns,2 70 | db_setup_group,Setup DB size 2^15,,,,51048006.0,ns,2 71 | db_setup_group,Setup DB size 2^15,,,,48957724.0,ns,2 72 | db_setup_group,Setup DB size 2^15,,,,47360915.0,ns,2 73 | db_setup_group,Setup DB size 2^15,,,,48636284.0,ns,2 74 | db_setup_group,Setup DB size 2^15,,,,66883009.0,ns,2 75 | db_setup_group,Setup DB size 2^15,,,,55465349.0,ns,2 76 | db_setup_group,Setup DB size 2^15,,,,49106122.0,ns,2 77 | db_setup_group,Setup DB size 2^15,,,,49502832.0,ns,2 78 | db_setup_group,Setup DB size 2^15,,,,49134825.0,ns,2 79 | db_setup_group,Setup DB size 2^15,,,,49344810.0,ns,2 80 | db_setup_group,Setup DB size 2^15,,,,49102856.0,ns,2 81 | db_setup_group,Setup DB size 2^15,,,,85742646.0,ns,2 82 | db_setup_group,Setup DB size 2^15,,,,92674199.0,ns,2 83 | db_setup_group,Setup DB size 2^15,,,,56610729.0,ns,2 84 | db_setup_group,Setup DB size 2^15,,,,57247728.0,ns,2 85 | db_setup_group,Setup DB size 2^15,,,,52189909.0,ns,2 86 | db_setup_group,Setup DB size 2^15,,,,50373713.0,ns,2 87 | db_setup_group,Setup DB size 2^15,,,,50126556.0,ns,2 88 | db_setup_group,Setup DB size 2^15,,,,52766389.0,ns,2 89 | db_setup_group,Setup DB size 2^15,,,,49073154.0,ns,2 90 | db_setup_group,Setup DB size 2^15,,,,49315074.0,ns,2 91 | db_setup_group,Setup DB size 2^15,,,,49002972.0,ns,2 92 | db_setup_group,Setup DB size 2^15,,,,49066677.0,ns,2 93 | db_setup_group,Setup DB size 2^15,,,,48943147.0,ns,2 94 | db_setup_group,Setup DB size 2^15,,,,50755198.0,ns,2 95 | db_setup_group,Setup DB size 2^15,,,,49961851.0,ns,2 96 | db_setup_group,Setup DB size 2^15,,,,50650268.0,ns,2 97 | db_setup_group,Setup DB size 2^15,,,,49341024.0,ns,2 98 | db_setup_group,Setup DB size 2^15,,,,50539233.0,ns,2 99 | db_setup_group,Setup DB size 2^15,,,,51034150.0,ns,2 100 | db_setup_group,Setup DB size 2^15,,,,49153294.0,ns,2 101 | db_setup_group,Setup DB size 2^15,,,,50557367.0,ns,2 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_15/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^15,,,,50208341.0,ns,2 3 | db_setup_group,Setup DB size 2^15,,,,50278705.0,ns,2 4 | db_setup_group,Setup DB size 2^15,,,,49599223.0,ns,2 5 | db_setup_group,Setup DB size 2^15,,,,50204086.0,ns,2 6 | db_setup_group,Setup DB size 2^15,,,,49626272.0,ns,2 7 | db_setup_group,Setup DB size 2^15,,,,50766498.0,ns,2 8 | db_setup_group,Setup DB size 2^15,,,,50188924.0,ns,2 9 | db_setup_group,Setup DB size 2^15,,,,50584731.0,ns,2 10 | db_setup_group,Setup DB size 2^15,,,,49046853.0,ns,2 11 | db_setup_group,Setup DB size 2^15,,,,49389824.0,ns,2 12 | db_setup_group,Setup DB size 2^15,,,,51836562.0,ns,2 13 | db_setup_group,Setup DB size 2^15,,,,50600133.0,ns,2 14 | db_setup_group,Setup DB size 2^15,,,,49782669.0,ns,2 15 | db_setup_group,Setup DB size 2^15,,,,49090467.0,ns,2 16 | db_setup_group,Setup DB size 2^15,,,,49714429.0,ns,2 17 | db_setup_group,Setup DB size 2^15,,,,50802203.0,ns,2 18 | db_setup_group,Setup DB size 2^15,,,,49467446.0,ns,2 19 | db_setup_group,Setup DB size 2^15,,,,49553590.0,ns,2 20 | db_setup_group,Setup DB size 2^15,,,,50886797.0,ns,2 21 | db_setup_group,Setup DB size 2^15,,,,50735070.0,ns,2 22 | db_setup_group,Setup DB size 2^15,,,,49922209.0,ns,2 23 | db_setup_group,Setup DB size 2^15,,,,51162157.0,ns,2 24 | db_setup_group,Setup DB size 2^15,,,,49593530.0,ns,2 25 | db_setup_group,Setup DB size 2^15,,,,50077968.0,ns,2 26 | db_setup_group,Setup DB size 2^15,,,,48980416.0,ns,2 27 | db_setup_group,Setup DB size 2^15,,,,49998493.0,ns,2 28 | db_setup_group,Setup DB size 2^15,,,,50428345.0,ns,2 29 | db_setup_group,Setup DB size 2^15,,,,48912520.0,ns,2 30 | db_setup_group,Setup DB size 2^15,,,,49814616.0,ns,2 31 | db_setup_group,Setup DB size 2^15,,,,50029774.0,ns,2 32 | db_setup_group,Setup DB size 2^15,,,,52656640.0,ns,2 33 | db_setup_group,Setup DB size 2^15,,,,50090043.0,ns,2 34 | db_setup_group,Setup DB size 2^15,,,,49336635.0,ns,2 35 | db_setup_group,Setup DB size 2^15,,,,50807328.0,ns,2 36 | db_setup_group,Setup DB size 2^15,,,,49914087.0,ns,2 37 | db_setup_group,Setup DB size 2^15,,,,50825684.0,ns,2 38 | db_setup_group,Setup DB size 2^15,,,,49304954.0,ns,2 39 | db_setup_group,Setup DB size 2^15,,,,49214872.0,ns,2 40 | db_setup_group,Setup DB size 2^15,,,,50276864.0,ns,2 41 | db_setup_group,Setup DB size 2^15,,,,50132075.0,ns,2 42 | db_setup_group,Setup DB size 2^15,,,,50208142.0,ns,2 43 | db_setup_group,Setup DB size 2^15,,,,50809984.0,ns,2 44 | db_setup_group,Setup DB size 2^15,,,,49548174.0,ns,2 45 | db_setup_group,Setup DB size 2^15,,,,50440503.0,ns,2 46 | db_setup_group,Setup DB size 2^15,,,,50035101.0,ns,2 47 | db_setup_group,Setup DB size 2^15,,,,57203037.0,ns,2 48 | db_setup_group,Setup DB size 2^15,,,,83154296.0,ns,2 49 | db_setup_group,Setup DB size 2^15,,,,60758928.0,ns,2 50 | db_setup_group,Setup DB size 2^15,,,,51278780.0,ns,2 51 | db_setup_group,Setup DB size 2^15,,,,54163219.0,ns,2 52 | db_setup_group,Setup DB size 2^15,,,,49201507.0,ns,2 53 | db_setup_group,Setup DB size 2^15,,,,48372243.0,ns,2 54 | db_setup_group,Setup DB size 2^15,,,,47833238.0,ns,2 55 | db_setup_group,Setup DB size 2^15,,,,48720331.0,ns,2 56 | db_setup_group,Setup DB size 2^15,,,,48253480.0,ns,2 57 | db_setup_group,Setup DB size 2^15,,,,49993498.0,ns,2 58 | db_setup_group,Setup DB size 2^15,,,,48225665.0,ns,2 59 | db_setup_group,Setup DB size 2^15,,,,86476137.0,ns,2 60 | db_setup_group,Setup DB size 2^15,,,,47599776.0,ns,2 61 | db_setup_group,Setup DB size 2^15,,,,48554958.0,ns,2 62 | db_setup_group,Setup DB size 2^15,,,,48857296.0,ns,2 63 | db_setup_group,Setup DB size 2^15,,,,48161737.0,ns,2 64 | db_setup_group,Setup DB size 2^15,,,,47633556.0,ns,2 65 | db_setup_group,Setup DB size 2^15,,,,47359804.0,ns,2 66 | db_setup_group,Setup DB size 2^15,,,,47686423.0,ns,2 67 | db_setup_group,Setup DB size 2^15,,,,48146944.0,ns,2 68 | db_setup_group,Setup DB size 2^15,,,,47351553.0,ns,2 69 | db_setup_group,Setup DB size 2^15,,,,47774956.0,ns,2 70 | db_setup_group,Setup DB size 2^15,,,,51048006.0,ns,2 71 | db_setup_group,Setup DB size 2^15,,,,48957724.0,ns,2 72 | db_setup_group,Setup DB size 2^15,,,,47360915.0,ns,2 73 | db_setup_group,Setup DB size 2^15,,,,48636284.0,ns,2 74 | db_setup_group,Setup DB size 2^15,,,,66883009.0,ns,2 75 | db_setup_group,Setup DB size 2^15,,,,55465349.0,ns,2 76 | db_setup_group,Setup DB size 2^15,,,,49106122.0,ns,2 77 | db_setup_group,Setup DB size 2^15,,,,49502832.0,ns,2 78 | db_setup_group,Setup DB size 2^15,,,,49134825.0,ns,2 79 | db_setup_group,Setup DB size 2^15,,,,49344810.0,ns,2 80 | db_setup_group,Setup DB size 2^15,,,,49102856.0,ns,2 81 | db_setup_group,Setup DB size 2^15,,,,85742646.0,ns,2 82 | db_setup_group,Setup DB size 2^15,,,,92674199.0,ns,2 83 | db_setup_group,Setup DB size 2^15,,,,56610729.0,ns,2 84 | db_setup_group,Setup DB size 2^15,,,,57247728.0,ns,2 85 | db_setup_group,Setup DB size 2^15,,,,52189909.0,ns,2 86 | db_setup_group,Setup DB size 2^15,,,,50373713.0,ns,2 87 | db_setup_group,Setup DB size 2^15,,,,50126556.0,ns,2 88 | db_setup_group,Setup DB size 2^15,,,,52766389.0,ns,2 89 | db_setup_group,Setup DB size 2^15,,,,49073154.0,ns,2 90 | db_setup_group,Setup DB size 2^15,,,,49315074.0,ns,2 91 | db_setup_group,Setup DB size 2^15,,,,49002972.0,ns,2 92 | db_setup_group,Setup DB size 2^15,,,,49066677.0,ns,2 93 | db_setup_group,Setup DB size 2^15,,,,48943147.0,ns,2 94 | db_setup_group,Setup DB size 2^15,,,,50755198.0,ns,2 95 | db_setup_group,Setup DB size 2^15,,,,49961851.0,ns,2 96 | db_setup_group,Setup DB size 2^15,,,,50650268.0,ns,2 97 | db_setup_group,Setup DB size 2^15,,,,49341024.0,ns,2 98 | db_setup_group,Setup DB size 2^15,,,,50539233.0,ns,2 99 | db_setup_group,Setup DB size 2^15,,,,51034150.0,ns,2 100 | db_setup_group,Setup DB size 2^15,,,,49153294.0,ns,2 101 | db_setup_group,Setup DB size 2^15,,,,50557367.0,ns,2 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^20,,,,832738565.0,ns,1 3 | db_setup_group,Setup DB size 2^20,,,,802608981.0,ns,1 4 | db_setup_group,Setup DB size 2^20,,,,791685320.0,ns,1 5 | db_setup_group,Setup DB size 2^20,,,,795171473.0,ns,1 6 | db_setup_group,Setup DB size 2^20,,,,803086254.0,ns,1 7 | db_setup_group,Setup DB size 2^20,,,,867751618.0,ns,1 8 | db_setup_group,Setup DB size 2^20,,,,844645976.0,ns,1 9 | db_setup_group,Setup DB size 2^20,,,,833311442.0,ns,1 10 | db_setup_group,Setup DB size 2^20,,,,798700193.0,ns,1 11 | db_setup_group,Setup DB size 2^20,,,,827503873.0,ns,1 12 | db_setup_group,Setup DB size 2^20,,,,819696434.0,ns,1 13 | db_setup_group,Setup DB size 2^20,,,,791561962.0,ns,1 14 | db_setup_group,Setup DB size 2^20,,,,791331210.0,ns,1 15 | db_setup_group,Setup DB size 2^20,,,,783425541.0,ns,1 16 | db_setup_group,Setup DB size 2^20,,,,796328342.0,ns,1 17 | db_setup_group,Setup DB size 2^20,,,,780004990.0,ns,1 18 | db_setup_group,Setup DB size 2^20,,,,795813558.0,ns,1 19 | db_setup_group,Setup DB size 2^20,,,,854255730.0,ns,1 20 | db_setup_group,Setup DB size 2^20,,,,828253208.0,ns,1 21 | db_setup_group,Setup DB size 2^20,,,,781875539.0,ns,1 22 | db_setup_group,Setup DB size 2^20,,,,784639710.0,ns,1 23 | db_setup_group,Setup DB size 2^20,,,,775512445.0,ns,1 24 | db_setup_group,Setup DB size 2^20,,,,802412067.0,ns,1 25 | db_setup_group,Setup DB size 2^20,,,,798050302.0,ns,1 26 | db_setup_group,Setup DB size 2^20,,,,789776833.0,ns,1 27 | db_setup_group,Setup DB size 2^20,,,,786793428.0,ns,1 28 | db_setup_group,Setup DB size 2^20,,,,775171530.0,ns,1 29 | db_setup_group,Setup DB size 2^20,,,,768299885.0,ns,1 30 | db_setup_group,Setup DB size 2^20,,,,788201182.0,ns,1 31 | db_setup_group,Setup DB size 2^20,,,,802916275.0,ns,1 32 | db_setup_group,Setup DB size 2^20,,,,892425833.0,ns,1 33 | db_setup_group,Setup DB size 2^20,,,,817375351.0,ns,1 34 | db_setup_group,Setup DB size 2^20,,,,899743431.0,ns,1 35 | db_setup_group,Setup DB size 2^20,,,,790399105.0,ns,1 36 | db_setup_group,Setup DB size 2^20,,,,816624931.0,ns,1 37 | db_setup_group,Setup DB size 2^20,,,,799311831.0,ns,1 38 | db_setup_group,Setup DB size 2^20,,,,800644543.0,ns,1 39 | db_setup_group,Setup DB size 2^20,,,,833925385.0,ns,1 40 | db_setup_group,Setup DB size 2^20,,,,901738987.0,ns,1 41 | db_setup_group,Setup DB size 2^20,,,,800633048.0,ns,1 42 | db_setup_group,Setup DB size 2^20,,,,794710125.0,ns,1 43 | db_setup_group,Setup DB size 2^20,,,,813196212.0,ns,1 44 | db_setup_group,Setup DB size 2^20,,,,795696882.0,ns,1 45 | db_setup_group,Setup DB size 2^20,,,,835127374.0,ns,1 46 | db_setup_group,Setup DB size 2^20,,,,813583125.0,ns,1 47 | db_setup_group,Setup DB size 2^20,,,,789372475.0,ns,1 48 | db_setup_group,Setup DB size 2^20,,,,814009417.0,ns,1 49 | db_setup_group,Setup DB size 2^20,,,,772911929.0,ns,1 50 | db_setup_group,Setup DB size 2^20,,,,808419446.0,ns,1 51 | db_setup_group,Setup DB size 2^20,,,,808868183.0,ns,1 52 | db_setup_group,Setup DB size 2^20,,,,810428399.0,ns,1 53 | db_setup_group,Setup DB size 2^20,,,,812002810.0,ns,1 54 | db_setup_group,Setup DB size 2^20,,,,780570232.0,ns,1 55 | db_setup_group,Setup DB size 2^20,,,,830777296.0,ns,1 56 | db_setup_group,Setup DB size 2^20,,,,844304826.0,ns,1 57 | db_setup_group,Setup DB size 2^20,,,,793405530.0,ns,1 58 | db_setup_group,Setup DB size 2^20,,,,870521409.0,ns,1 59 | db_setup_group,Setup DB size 2^20,,,,803923586.0,ns,1 60 | db_setup_group,Setup DB size 2^20,,,,856920873.0,ns,1 61 | db_setup_group,Setup DB size 2^20,,,,797940034.0,ns,1 62 | db_setup_group,Setup DB size 2^20,,,,811865075.0,ns,1 63 | db_setup_group,Setup DB size 2^20,,,,817158994.0,ns,1 64 | db_setup_group,Setup DB size 2^20,,,,825260194.0,ns,1 65 | db_setup_group,Setup DB size 2^20,,,,777677119.0,ns,1 66 | db_setup_group,Setup DB size 2^20,,,,830030677.0,ns,1 67 | db_setup_group,Setup DB size 2^20,,,,818623921.0,ns,1 68 | db_setup_group,Setup DB size 2^20,,,,813815518.0,ns,1 69 | db_setup_group,Setup DB size 2^20,,,,789554816.0,ns,1 70 | db_setup_group,Setup DB size 2^20,,,,793844661.0,ns,1 71 | db_setup_group,Setup DB size 2^20,,,,816530969.0,ns,1 72 | db_setup_group,Setup DB size 2^20,,,,785092871.0,ns,1 73 | db_setup_group,Setup DB size 2^20,,,,816404852.0,ns,1 74 | db_setup_group,Setup DB size 2^20,,,,791737650.0,ns,1 75 | db_setup_group,Setup DB size 2^20,,,,800233565.0,ns,1 76 | db_setup_group,Setup DB size 2^20,,,,813278278.0,ns,1 77 | db_setup_group,Setup DB size 2^20,,,,805454191.0,ns,1 78 | db_setup_group,Setup DB size 2^20,,,,804587793.0,ns,1 79 | db_setup_group,Setup DB size 2^20,,,,850666076.0,ns,1 80 | db_setup_group,Setup DB size 2^20,,,,779359349.0,ns,1 81 | db_setup_group,Setup DB size 2^20,,,,848931228.0,ns,1 82 | db_setup_group,Setup DB size 2^20,,,,809119154.0,ns,1 83 | db_setup_group,Setup DB size 2^20,,,,821482862.0,ns,1 84 | db_setup_group,Setup DB size 2^20,,,,824772527.0,ns,1 85 | db_setup_group,Setup DB size 2^20,,,,870731620.0,ns,1 86 | db_setup_group,Setup DB size 2^20,,,,810093528.0,ns,1 87 | db_setup_group,Setup DB size 2^20,,,,826472066.0,ns,1 88 | db_setup_group,Setup DB size 2^20,,,,818410830.0,ns,1 89 | db_setup_group,Setup DB size 2^20,,,,802541390.0,ns,1 90 | db_setup_group,Setup DB size 2^20,,,,777306659.0,ns,1 91 | db_setup_group,Setup DB size 2^20,,,,787590752.0,ns,1 92 | db_setup_group,Setup DB size 2^20,,,,801052043.0,ns,1 93 | db_setup_group,Setup DB size 2^20,,,,785946831.0,ns,1 94 | db_setup_group,Setup DB size 2^20,,,,797108013.0,ns,1 95 | db_setup_group,Setup DB size 2^20,,,,806930377.0,ns,1 96 | db_setup_group,Setup DB size 2^20,,,,788343478.0,ns,1 97 | db_setup_group,Setup DB size 2^20,,,,792315263.0,ns,1 98 | db_setup_group,Setup DB size 2^20,,,,792918263.0,ns,1 99 | db_setup_group,Setup DB size 2^20,,,,794834750.0,ns,1 100 | db_setup_group,Setup DB size 2^20,,,,784694007.0,ns,1 101 | db_setup_group,Setup DB size 2^20,,,,830653418.0,ns,1 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^20,,,,832738565.0,ns,1 3 | db_setup_group,Setup DB size 2^20,,,,802608981.0,ns,1 4 | db_setup_group,Setup DB size 2^20,,,,791685320.0,ns,1 5 | db_setup_group,Setup DB size 2^20,,,,795171473.0,ns,1 6 | db_setup_group,Setup DB size 2^20,,,,803086254.0,ns,1 7 | db_setup_group,Setup DB size 2^20,,,,867751618.0,ns,1 8 | db_setup_group,Setup DB size 2^20,,,,844645976.0,ns,1 9 | db_setup_group,Setup DB size 2^20,,,,833311442.0,ns,1 10 | db_setup_group,Setup DB size 2^20,,,,798700193.0,ns,1 11 | db_setup_group,Setup DB size 2^20,,,,827503873.0,ns,1 12 | db_setup_group,Setup DB size 2^20,,,,819696434.0,ns,1 13 | db_setup_group,Setup DB size 2^20,,,,791561962.0,ns,1 14 | db_setup_group,Setup DB size 2^20,,,,791331210.0,ns,1 15 | db_setup_group,Setup DB size 2^20,,,,783425541.0,ns,1 16 | db_setup_group,Setup DB size 2^20,,,,796328342.0,ns,1 17 | db_setup_group,Setup DB size 2^20,,,,780004990.0,ns,1 18 | db_setup_group,Setup DB size 2^20,,,,795813558.0,ns,1 19 | db_setup_group,Setup DB size 2^20,,,,854255730.0,ns,1 20 | db_setup_group,Setup DB size 2^20,,,,828253208.0,ns,1 21 | db_setup_group,Setup DB size 2^20,,,,781875539.0,ns,1 22 | db_setup_group,Setup DB size 2^20,,,,784639710.0,ns,1 23 | db_setup_group,Setup DB size 2^20,,,,775512445.0,ns,1 24 | db_setup_group,Setup DB size 2^20,,,,802412067.0,ns,1 25 | db_setup_group,Setup DB size 2^20,,,,798050302.0,ns,1 26 | db_setup_group,Setup DB size 2^20,,,,789776833.0,ns,1 27 | db_setup_group,Setup DB size 2^20,,,,786793428.0,ns,1 28 | db_setup_group,Setup DB size 2^20,,,,775171530.0,ns,1 29 | db_setup_group,Setup DB size 2^20,,,,768299885.0,ns,1 30 | db_setup_group,Setup DB size 2^20,,,,788201182.0,ns,1 31 | db_setup_group,Setup DB size 2^20,,,,802916275.0,ns,1 32 | db_setup_group,Setup DB size 2^20,,,,892425833.0,ns,1 33 | db_setup_group,Setup DB size 2^20,,,,817375351.0,ns,1 34 | db_setup_group,Setup DB size 2^20,,,,899743431.0,ns,1 35 | db_setup_group,Setup DB size 2^20,,,,790399105.0,ns,1 36 | db_setup_group,Setup DB size 2^20,,,,816624931.0,ns,1 37 | db_setup_group,Setup DB size 2^20,,,,799311831.0,ns,1 38 | db_setup_group,Setup DB size 2^20,,,,800644543.0,ns,1 39 | db_setup_group,Setup DB size 2^20,,,,833925385.0,ns,1 40 | db_setup_group,Setup DB size 2^20,,,,901738987.0,ns,1 41 | db_setup_group,Setup DB size 2^20,,,,800633048.0,ns,1 42 | db_setup_group,Setup DB size 2^20,,,,794710125.0,ns,1 43 | db_setup_group,Setup DB size 2^20,,,,813196212.0,ns,1 44 | db_setup_group,Setup DB size 2^20,,,,795696882.0,ns,1 45 | db_setup_group,Setup DB size 2^20,,,,835127374.0,ns,1 46 | db_setup_group,Setup DB size 2^20,,,,813583125.0,ns,1 47 | db_setup_group,Setup DB size 2^20,,,,789372475.0,ns,1 48 | db_setup_group,Setup DB size 2^20,,,,814009417.0,ns,1 49 | db_setup_group,Setup DB size 2^20,,,,772911929.0,ns,1 50 | db_setup_group,Setup DB size 2^20,,,,808419446.0,ns,1 51 | db_setup_group,Setup DB size 2^20,,,,808868183.0,ns,1 52 | db_setup_group,Setup DB size 2^20,,,,810428399.0,ns,1 53 | db_setup_group,Setup DB size 2^20,,,,812002810.0,ns,1 54 | db_setup_group,Setup DB size 2^20,,,,780570232.0,ns,1 55 | db_setup_group,Setup DB size 2^20,,,,830777296.0,ns,1 56 | db_setup_group,Setup DB size 2^20,,,,844304826.0,ns,1 57 | db_setup_group,Setup DB size 2^20,,,,793405530.0,ns,1 58 | db_setup_group,Setup DB size 2^20,,,,870521409.0,ns,1 59 | db_setup_group,Setup DB size 2^20,,,,803923586.0,ns,1 60 | db_setup_group,Setup DB size 2^20,,,,856920873.0,ns,1 61 | db_setup_group,Setup DB size 2^20,,,,797940034.0,ns,1 62 | db_setup_group,Setup DB size 2^20,,,,811865075.0,ns,1 63 | db_setup_group,Setup DB size 2^20,,,,817158994.0,ns,1 64 | db_setup_group,Setup DB size 2^20,,,,825260194.0,ns,1 65 | db_setup_group,Setup DB size 2^20,,,,777677119.0,ns,1 66 | db_setup_group,Setup DB size 2^20,,,,830030677.0,ns,1 67 | db_setup_group,Setup DB size 2^20,,,,818623921.0,ns,1 68 | db_setup_group,Setup DB size 2^20,,,,813815518.0,ns,1 69 | db_setup_group,Setup DB size 2^20,,,,789554816.0,ns,1 70 | db_setup_group,Setup DB size 2^20,,,,793844661.0,ns,1 71 | db_setup_group,Setup DB size 2^20,,,,816530969.0,ns,1 72 | db_setup_group,Setup DB size 2^20,,,,785092871.0,ns,1 73 | db_setup_group,Setup DB size 2^20,,,,816404852.0,ns,1 74 | db_setup_group,Setup DB size 2^20,,,,791737650.0,ns,1 75 | db_setup_group,Setup DB size 2^20,,,,800233565.0,ns,1 76 | db_setup_group,Setup DB size 2^20,,,,813278278.0,ns,1 77 | db_setup_group,Setup DB size 2^20,,,,805454191.0,ns,1 78 | db_setup_group,Setup DB size 2^20,,,,804587793.0,ns,1 79 | db_setup_group,Setup DB size 2^20,,,,850666076.0,ns,1 80 | db_setup_group,Setup DB size 2^20,,,,779359349.0,ns,1 81 | db_setup_group,Setup DB size 2^20,,,,848931228.0,ns,1 82 | db_setup_group,Setup DB size 2^20,,,,809119154.0,ns,1 83 | db_setup_group,Setup DB size 2^20,,,,821482862.0,ns,1 84 | db_setup_group,Setup DB size 2^20,,,,824772527.0,ns,1 85 | db_setup_group,Setup DB size 2^20,,,,870731620.0,ns,1 86 | db_setup_group,Setup DB size 2^20,,,,810093528.0,ns,1 87 | db_setup_group,Setup DB size 2^20,,,,826472066.0,ns,1 88 | db_setup_group,Setup DB size 2^20,,,,818410830.0,ns,1 89 | db_setup_group,Setup DB size 2^20,,,,802541390.0,ns,1 90 | db_setup_group,Setup DB size 2^20,,,,777306659.0,ns,1 91 | db_setup_group,Setup DB size 2^20,,,,787590752.0,ns,1 92 | db_setup_group,Setup DB size 2^20,,,,801052043.0,ns,1 93 | db_setup_group,Setup DB size 2^20,,,,785946831.0,ns,1 94 | db_setup_group,Setup DB size 2^20,,,,797108013.0,ns,1 95 | db_setup_group,Setup DB size 2^20,,,,806930377.0,ns,1 96 | db_setup_group,Setup DB size 2^20,,,,788343478.0,ns,1 97 | db_setup_group,Setup DB size 2^20,,,,792315263.0,ns,1 98 | db_setup_group,Setup DB size 2^20,,,,792918263.0,ns,1 99 | db_setup_group,Setup DB size 2^20,,,,794834750.0,ns,1 100 | db_setup_group,Setup DB size 2^20,,,,784694007.0,ns,1 101 | db_setup_group,Setup DB size 2^20,,,,830653418.0,ns,1 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^10,,,,1451579.0,ns,2 3 | db_setup_group,Setup DB size 2^10,,,,3086224.0,ns,4 4 | db_setup_group,Setup DB size 2^10,,,,4417600.0,ns,6 5 | db_setup_group,Setup DB size 2^10,,,,6405670.0,ns,8 6 | db_setup_group,Setup DB size 2^10,,,,7668012.0,ns,10 7 | db_setup_group,Setup DB size 2^10,,,,8953170.0,ns,12 8 | db_setup_group,Setup DB size 2^10,,,,10469986.0,ns,14 9 | db_setup_group,Setup DB size 2^10,,,,12102334.0,ns,16 10 | db_setup_group,Setup DB size 2^10,,,,13457706.0,ns,18 11 | db_setup_group,Setup DB size 2^10,,,,14731720.0,ns,20 12 | db_setup_group,Setup DB size 2^10,,,,16322055.0,ns,22 13 | db_setup_group,Setup DB size 2^10,,,,18825419.0,ns,24 14 | db_setup_group,Setup DB size 2^10,,,,19053539.0,ns,26 15 | db_setup_group,Setup DB size 2^10,,,,21594601.0,ns,28 16 | db_setup_group,Setup DB size 2^10,,,,22873248.0,ns,30 17 | db_setup_group,Setup DB size 2^10,,,,24575891.0,ns,32 18 | db_setup_group,Setup DB size 2^10,,,,25495202.0,ns,34 19 | db_setup_group,Setup DB size 2^10,,,,28083583.0,ns,36 20 | db_setup_group,Setup DB size 2^10,,,,29614205.0,ns,38 21 | db_setup_group,Setup DB size 2^10,,,,30488836.0,ns,40 22 | db_setup_group,Setup DB size 2^10,,,,32041824.0,ns,42 23 | db_setup_group,Setup DB size 2^10,,,,33933605.0,ns,44 24 | db_setup_group,Setup DB size 2^10,,,,34808538.0,ns,46 25 | db_setup_group,Setup DB size 2^10,,,,37644438.0,ns,48 26 | db_setup_group,Setup DB size 2^10,,,,37949578.0,ns,50 27 | db_setup_group,Setup DB size 2^10,,,,43754140.0,ns,52 28 | db_setup_group,Setup DB size 2^10,,,,41117047.0,ns,54 29 | db_setup_group,Setup DB size 2^10,,,,44512614.0,ns,56 30 | db_setup_group,Setup DB size 2^10,,,,45776058.0,ns,58 31 | db_setup_group,Setup DB size 2^10,,,,46810952.0,ns,60 32 | db_setup_group,Setup DB size 2^10,,,,47517244.0,ns,62 33 | db_setup_group,Setup DB size 2^10,,,,51524276.0,ns,64 34 | db_setup_group,Setup DB size 2^10,,,,52233940.0,ns,66 35 | db_setup_group,Setup DB size 2^10,,,,53429386.0,ns,68 36 | db_setup_group,Setup DB size 2^10,,,,52242675.0,ns,70 37 | db_setup_group,Setup DB size 2^10,,,,53329472.0,ns,72 38 | db_setup_group,Setup DB size 2^10,,,,55647567.0,ns,74 39 | db_setup_group,Setup DB size 2^10,,,,56328672.0,ns,76 40 | db_setup_group,Setup DB size 2^10,,,,59274447.0,ns,78 41 | db_setup_group,Setup DB size 2^10,,,,60399820.0,ns,80 42 | db_setup_group,Setup DB size 2^10,,,,63347039.0,ns,82 43 | db_setup_group,Setup DB size 2^10,,,,64337055.0,ns,84 44 | db_setup_group,Setup DB size 2^10,,,,66070975.0,ns,86 45 | db_setup_group,Setup DB size 2^10,,,,70077713.0,ns,88 46 | db_setup_group,Setup DB size 2^10,,,,78887984.0,ns,90 47 | db_setup_group,Setup DB size 2^10,,,,104154146.0,ns,92 48 | db_setup_group,Setup DB size 2^10,,,,73141737.0,ns,94 49 | db_setup_group,Setup DB size 2^10,,,,75441946.0,ns,96 50 | db_setup_group,Setup DB size 2^10,,,,75289941.0,ns,98 51 | db_setup_group,Setup DB size 2^10,,,,80962489.0,ns,100 52 | db_setup_group,Setup DB size 2^10,,,,82668148.0,ns,102 53 | db_setup_group,Setup DB size 2^10,,,,93874686.0,ns,104 54 | db_setup_group,Setup DB size 2^10,,,,84200632.0,ns,106 55 | db_setup_group,Setup DB size 2^10,,,,89925544.0,ns,108 56 | db_setup_group,Setup DB size 2^10,,,,91213724.0,ns,110 57 | db_setup_group,Setup DB size 2^10,,,,97432971.0,ns,112 58 | db_setup_group,Setup DB size 2^10,,,,88600665.0,ns,114 59 | db_setup_group,Setup DB size 2^10,,,,91429296.0,ns,116 60 | db_setup_group,Setup DB size 2^10,,,,90667949.0,ns,118 61 | db_setup_group,Setup DB size 2^10,,,,95886835.0,ns,120 62 | db_setup_group,Setup DB size 2^10,,,,94547495.0,ns,122 63 | db_setup_group,Setup DB size 2^10,,,,99488545.0,ns,124 64 | db_setup_group,Setup DB size 2^10,,,,95923731.0,ns,126 65 | db_setup_group,Setup DB size 2^10,,,,98249442.0,ns,128 66 | db_setup_group,Setup DB size 2^10,,,,98896752.0,ns,130 67 | db_setup_group,Setup DB size 2^10,,,,103246789.0,ns,132 68 | db_setup_group,Setup DB size 2^10,,,,100019363.0,ns,134 69 | db_setup_group,Setup DB size 2^10,,,,104211167.0,ns,136 70 | db_setup_group,Setup DB size 2^10,,,,106993369.0,ns,138 71 | db_setup_group,Setup DB size 2^10,,,,104330948.0,ns,140 72 | db_setup_group,Setup DB size 2^10,,,,107858356.0,ns,142 73 | db_setup_group,Setup DB size 2^10,,,,107627425.0,ns,144 74 | db_setup_group,Setup DB size 2^10,,,,108871897.0,ns,146 75 | db_setup_group,Setup DB size 2^10,,,,138740293.0,ns,148 76 | db_setup_group,Setup DB size 2^10,,,,152584691.0,ns,150 77 | db_setup_group,Setup DB size 2^10,,,,142181032.0,ns,152 78 | db_setup_group,Setup DB size 2^10,,,,129216591.0,ns,154 79 | db_setup_group,Setup DB size 2^10,,,,122514084.0,ns,156 80 | db_setup_group,Setup DB size 2^10,,,,122774705.0,ns,158 81 | db_setup_group,Setup DB size 2^10,,,,124986820.0,ns,160 82 | db_setup_group,Setup DB size 2^10,,,,128071871.0,ns,162 83 | db_setup_group,Setup DB size 2^10,,,,127188472.0,ns,164 84 | db_setup_group,Setup DB size 2^10,,,,132249184.0,ns,166 85 | db_setup_group,Setup DB size 2^10,,,,130701605.0,ns,168 86 | db_setup_group,Setup DB size 2^10,,,,136341473.0,ns,170 87 | db_setup_group,Setup DB size 2^10,,,,134699099.0,ns,172 88 | db_setup_group,Setup DB size 2^10,,,,135891093.0,ns,174 89 | db_setup_group,Setup DB size 2^10,,,,135483010.0,ns,176 90 | db_setup_group,Setup DB size 2^10,,,,140906218.0,ns,178 91 | db_setup_group,Setup DB size 2^10,,,,144544002.0,ns,180 92 | db_setup_group,Setup DB size 2^10,,,,142367911.0,ns,182 93 | db_setup_group,Setup DB size 2^10,,,,144142494.0,ns,184 94 | db_setup_group,Setup DB size 2^10,,,,144563947.0,ns,186 95 | db_setup_group,Setup DB size 2^10,,,,146141203.0,ns,188 96 | db_setup_group,Setup DB size 2^10,,,,147424606.0,ns,190 97 | db_setup_group,Setup DB size 2^10,,,,150121139.0,ns,192 98 | db_setup_group,Setup DB size 2^10,,,,152652118.0,ns,194 99 | db_setup_group,Setup DB size 2^10,,,,158848364.0,ns,196 100 | db_setup_group,Setup DB size 2^10,,,,175987331.0,ns,198 101 | db_setup_group,Setup DB size 2^10,,,,154273067.0,ns,200 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_10/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^10,,,,1451579.0,ns,2 3 | db_setup_group,Setup DB size 2^10,,,,3086224.0,ns,4 4 | db_setup_group,Setup DB size 2^10,,,,4417600.0,ns,6 5 | db_setup_group,Setup DB size 2^10,,,,6405670.0,ns,8 6 | db_setup_group,Setup DB size 2^10,,,,7668012.0,ns,10 7 | db_setup_group,Setup DB size 2^10,,,,8953170.0,ns,12 8 | db_setup_group,Setup DB size 2^10,,,,10469986.0,ns,14 9 | db_setup_group,Setup DB size 2^10,,,,12102334.0,ns,16 10 | db_setup_group,Setup DB size 2^10,,,,13457706.0,ns,18 11 | db_setup_group,Setup DB size 2^10,,,,14731720.0,ns,20 12 | db_setup_group,Setup DB size 2^10,,,,16322055.0,ns,22 13 | db_setup_group,Setup DB size 2^10,,,,18825419.0,ns,24 14 | db_setup_group,Setup DB size 2^10,,,,19053539.0,ns,26 15 | db_setup_group,Setup DB size 2^10,,,,21594601.0,ns,28 16 | db_setup_group,Setup DB size 2^10,,,,22873248.0,ns,30 17 | db_setup_group,Setup DB size 2^10,,,,24575891.0,ns,32 18 | db_setup_group,Setup DB size 2^10,,,,25495202.0,ns,34 19 | db_setup_group,Setup DB size 2^10,,,,28083583.0,ns,36 20 | db_setup_group,Setup DB size 2^10,,,,29614205.0,ns,38 21 | db_setup_group,Setup DB size 2^10,,,,30488836.0,ns,40 22 | db_setup_group,Setup DB size 2^10,,,,32041824.0,ns,42 23 | db_setup_group,Setup DB size 2^10,,,,33933605.0,ns,44 24 | db_setup_group,Setup DB size 2^10,,,,34808538.0,ns,46 25 | db_setup_group,Setup DB size 2^10,,,,37644438.0,ns,48 26 | db_setup_group,Setup DB size 2^10,,,,37949578.0,ns,50 27 | db_setup_group,Setup DB size 2^10,,,,43754140.0,ns,52 28 | db_setup_group,Setup DB size 2^10,,,,41117047.0,ns,54 29 | db_setup_group,Setup DB size 2^10,,,,44512614.0,ns,56 30 | db_setup_group,Setup DB size 2^10,,,,45776058.0,ns,58 31 | db_setup_group,Setup DB size 2^10,,,,46810952.0,ns,60 32 | db_setup_group,Setup DB size 2^10,,,,47517244.0,ns,62 33 | db_setup_group,Setup DB size 2^10,,,,51524276.0,ns,64 34 | db_setup_group,Setup DB size 2^10,,,,52233940.0,ns,66 35 | db_setup_group,Setup DB size 2^10,,,,53429386.0,ns,68 36 | db_setup_group,Setup DB size 2^10,,,,52242675.0,ns,70 37 | db_setup_group,Setup DB size 2^10,,,,53329472.0,ns,72 38 | db_setup_group,Setup DB size 2^10,,,,55647567.0,ns,74 39 | db_setup_group,Setup DB size 2^10,,,,56328672.0,ns,76 40 | db_setup_group,Setup DB size 2^10,,,,59274447.0,ns,78 41 | db_setup_group,Setup DB size 2^10,,,,60399820.0,ns,80 42 | db_setup_group,Setup DB size 2^10,,,,63347039.0,ns,82 43 | db_setup_group,Setup DB size 2^10,,,,64337055.0,ns,84 44 | db_setup_group,Setup DB size 2^10,,,,66070975.0,ns,86 45 | db_setup_group,Setup DB size 2^10,,,,70077713.0,ns,88 46 | db_setup_group,Setup DB size 2^10,,,,78887984.0,ns,90 47 | db_setup_group,Setup DB size 2^10,,,,104154146.0,ns,92 48 | db_setup_group,Setup DB size 2^10,,,,73141737.0,ns,94 49 | db_setup_group,Setup DB size 2^10,,,,75441946.0,ns,96 50 | db_setup_group,Setup DB size 2^10,,,,75289941.0,ns,98 51 | db_setup_group,Setup DB size 2^10,,,,80962489.0,ns,100 52 | db_setup_group,Setup DB size 2^10,,,,82668148.0,ns,102 53 | db_setup_group,Setup DB size 2^10,,,,93874686.0,ns,104 54 | db_setup_group,Setup DB size 2^10,,,,84200632.0,ns,106 55 | db_setup_group,Setup DB size 2^10,,,,89925544.0,ns,108 56 | db_setup_group,Setup DB size 2^10,,,,91213724.0,ns,110 57 | db_setup_group,Setup DB size 2^10,,,,97432971.0,ns,112 58 | db_setup_group,Setup DB size 2^10,,,,88600665.0,ns,114 59 | db_setup_group,Setup DB size 2^10,,,,91429296.0,ns,116 60 | db_setup_group,Setup DB size 2^10,,,,90667949.0,ns,118 61 | db_setup_group,Setup DB size 2^10,,,,95886835.0,ns,120 62 | db_setup_group,Setup DB size 2^10,,,,94547495.0,ns,122 63 | db_setup_group,Setup DB size 2^10,,,,99488545.0,ns,124 64 | db_setup_group,Setup DB size 2^10,,,,95923731.0,ns,126 65 | db_setup_group,Setup DB size 2^10,,,,98249442.0,ns,128 66 | db_setup_group,Setup DB size 2^10,,,,98896752.0,ns,130 67 | db_setup_group,Setup DB size 2^10,,,,103246789.0,ns,132 68 | db_setup_group,Setup DB size 2^10,,,,100019363.0,ns,134 69 | db_setup_group,Setup DB size 2^10,,,,104211167.0,ns,136 70 | db_setup_group,Setup DB size 2^10,,,,106993369.0,ns,138 71 | db_setup_group,Setup DB size 2^10,,,,104330948.0,ns,140 72 | db_setup_group,Setup DB size 2^10,,,,107858356.0,ns,142 73 | db_setup_group,Setup DB size 2^10,,,,107627425.0,ns,144 74 | db_setup_group,Setup DB size 2^10,,,,108871897.0,ns,146 75 | db_setup_group,Setup DB size 2^10,,,,138740293.0,ns,148 76 | db_setup_group,Setup DB size 2^10,,,,152584691.0,ns,150 77 | db_setup_group,Setup DB size 2^10,,,,142181032.0,ns,152 78 | db_setup_group,Setup DB size 2^10,,,,129216591.0,ns,154 79 | db_setup_group,Setup DB size 2^10,,,,122514084.0,ns,156 80 | db_setup_group,Setup DB size 2^10,,,,122774705.0,ns,158 81 | db_setup_group,Setup DB size 2^10,,,,124986820.0,ns,160 82 | db_setup_group,Setup DB size 2^10,,,,128071871.0,ns,162 83 | db_setup_group,Setup DB size 2^10,,,,127188472.0,ns,164 84 | db_setup_group,Setup DB size 2^10,,,,132249184.0,ns,166 85 | db_setup_group,Setup DB size 2^10,,,,130701605.0,ns,168 86 | db_setup_group,Setup DB size 2^10,,,,136341473.0,ns,170 87 | db_setup_group,Setup DB size 2^10,,,,134699099.0,ns,172 88 | db_setup_group,Setup DB size 2^10,,,,135891093.0,ns,174 89 | db_setup_group,Setup DB size 2^10,,,,135483010.0,ns,176 90 | db_setup_group,Setup DB size 2^10,,,,140906218.0,ns,178 91 | db_setup_group,Setup DB size 2^10,,,,144544002.0,ns,180 92 | db_setup_group,Setup DB size 2^10,,,,142367911.0,ns,182 93 | db_setup_group,Setup DB size 2^10,,,,144142494.0,ns,184 94 | db_setup_group,Setup DB size 2^10,,,,144563947.0,ns,186 95 | db_setup_group,Setup DB size 2^10,,,,146141203.0,ns,188 96 | db_setup_group,Setup DB size 2^10,,,,147424606.0,ns,190 97 | db_setup_group,Setup DB size 2^10,,,,150121139.0,ns,192 98 | db_setup_group,Setup DB size 2^10,,,,152652118.0,ns,194 99 | db_setup_group,Setup DB size 2^10,,,,158848364.0,ns,196 100 | db_setup_group,Setup DB size 2^10,,,,175987331.0,ns,198 101 | db_setup_group,Setup DB size 2^10,,,,154273067.0,ns,200 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/base/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^5,,,,1067527.0,ns,43 3 | db_setup_group,Setup DB size 2^5,,,,2017324.0,ns,86 4 | db_setup_group,Setup DB size 2^5,,,,2980309.0,ns,129 5 | db_setup_group,Setup DB size 2^5,,,,3900185.0,ns,172 6 | db_setup_group,Setup DB size 2^5,,,,4792089.0,ns,215 7 | db_setup_group,Setup DB size 2^5,,,,6791474.0,ns,258 8 | db_setup_group,Setup DB size 2^5,,,,6551104.0,ns,301 9 | db_setup_group,Setup DB size 2^5,,,,7712546.0,ns,344 10 | db_setup_group,Setup DB size 2^5,,,,8949089.0,ns,387 11 | db_setup_group,Setup DB size 2^5,,,,11107739.0,ns,430 12 | db_setup_group,Setup DB size 2^5,,,,10890765.0,ns,473 13 | db_setup_group,Setup DB size 2^5,,,,11710039.0,ns,516 14 | db_setup_group,Setup DB size 2^5,,,,12955836.0,ns,559 15 | db_setup_group,Setup DB size 2^5,,,,13930258.0,ns,602 16 | db_setup_group,Setup DB size 2^5,,,,15072521.0,ns,645 17 | db_setup_group,Setup DB size 2^5,,,,15554879.0,ns,688 18 | db_setup_group,Setup DB size 2^5,,,,16584851.0,ns,731 19 | db_setup_group,Setup DB size 2^5,,,,17656117.0,ns,774 20 | db_setup_group,Setup DB size 2^5,,,,19816930.0,ns,817 21 | db_setup_group,Setup DB size 2^5,,,,20056627.0,ns,860 22 | db_setup_group,Setup DB size 2^5,,,,20499949.0,ns,903 23 | db_setup_group,Setup DB size 2^5,,,,22207786.0,ns,946 24 | db_setup_group,Setup DB size 2^5,,,,23269907.0,ns,989 25 | db_setup_group,Setup DB size 2^5,,,,23436293.0,ns,1032 26 | db_setup_group,Setup DB size 2^5,,,,25119926.0,ns,1075 27 | db_setup_group,Setup DB size 2^5,,,,26516537.0,ns,1118 28 | db_setup_group,Setup DB size 2^5,,,,27318998.0,ns,1161 29 | db_setup_group,Setup DB size 2^5,,,,28375649.0,ns,1204 30 | db_setup_group,Setup DB size 2^5,,,,31276778.0,ns,1247 31 | db_setup_group,Setup DB size 2^5,,,,29768947.0,ns,1290 32 | db_setup_group,Setup DB size 2^5,,,,30840590.0,ns,1333 33 | db_setup_group,Setup DB size 2^5,,,,31708398.0,ns,1376 34 | db_setup_group,Setup DB size 2^5,,,,32874931.0,ns,1419 35 | db_setup_group,Setup DB size 2^5,,,,33801290.0,ns,1462 36 | db_setup_group,Setup DB size 2^5,,,,34474331.0,ns,1505 37 | db_setup_group,Setup DB size 2^5,,,,38415791.0,ns,1548 38 | db_setup_group,Setup DB size 2^5,,,,38628102.0,ns,1591 39 | db_setup_group,Setup DB size 2^5,,,,38085551.0,ns,1634 40 | db_setup_group,Setup DB size 2^5,,,,39465513.0,ns,1677 41 | db_setup_group,Setup DB size 2^5,,,,40828820.0,ns,1720 42 | db_setup_group,Setup DB size 2^5,,,,41709934.0,ns,1763 43 | db_setup_group,Setup DB size 2^5,,,,43715443.0,ns,1806 44 | db_setup_group,Setup DB size 2^5,,,,43106070.0,ns,1849 45 | db_setup_group,Setup DB size 2^5,,,,46131311.0,ns,1892 46 | db_setup_group,Setup DB size 2^5,,,,44722170.0,ns,1935 47 | db_setup_group,Setup DB size 2^5,,,,46239681.0,ns,1978 48 | db_setup_group,Setup DB size 2^5,,,,46361733.0,ns,2021 49 | db_setup_group,Setup DB size 2^5,,,,48713651.0,ns,2064 50 | db_setup_group,Setup DB size 2^5,,,,49440821.0,ns,2107 51 | db_setup_group,Setup DB size 2^5,,,,51505439.0,ns,2150 52 | db_setup_group,Setup DB size 2^5,,,,52384820.0,ns,2193 53 | db_setup_group,Setup DB size 2^5,,,,56133111.0,ns,2236 54 | db_setup_group,Setup DB size 2^5,,,,55399582.0,ns,2279 55 | db_setup_group,Setup DB size 2^5,,,,55840180.0,ns,2322 56 | db_setup_group,Setup DB size 2^5,,,,57173861.0,ns,2365 57 | db_setup_group,Setup DB size 2^5,,,,55439283.0,ns,2408 58 | db_setup_group,Setup DB size 2^5,,,,56596664.0,ns,2451 59 | db_setup_group,Setup DB size 2^5,,,,57499168.0,ns,2494 60 | db_setup_group,Setup DB size 2^5,,,,58666886.0,ns,2537 61 | db_setup_group,Setup DB size 2^5,,,,61780566.0,ns,2580 62 | db_setup_group,Setup DB size 2^5,,,,74120646.0,ns,2623 63 | db_setup_group,Setup DB size 2^5,,,,87352097.0,ns,2666 64 | db_setup_group,Setup DB size 2^5,,,,92049417.0,ns,2709 65 | db_setup_group,Setup DB size 2^5,,,,76236626.0,ns,2752 66 | db_setup_group,Setup DB size 2^5,,,,72781838.0,ns,2795 67 | db_setup_group,Setup DB size 2^5,,,,73211371.0,ns,2838 68 | db_setup_group,Setup DB size 2^5,,,,85438299.0,ns,2881 69 | db_setup_group,Setup DB size 2^5,,,,128016960.0,ns,2924 70 | db_setup_group,Setup DB size 2^5,,,,148153573.0,ns,2967 71 | db_setup_group,Setup DB size 2^5,,,,85294942.0,ns,3010 72 | db_setup_group,Setup DB size 2^5,,,,70246741.0,ns,3053 73 | db_setup_group,Setup DB size 2^5,,,,73042753.0,ns,3096 74 | db_setup_group,Setup DB size 2^5,,,,157211512.0,ns,3139 75 | db_setup_group,Setup DB size 2^5,,,,96698345.0,ns,3182 76 | db_setup_group,Setup DB size 2^5,,,,106761406.0,ns,3225 77 | db_setup_group,Setup DB size 2^5,,,,196527421.0,ns,3268 78 | db_setup_group,Setup DB size 2^5,,,,94729747.0,ns,3311 79 | db_setup_group,Setup DB size 2^5,,,,80496980.0,ns,3354 80 | db_setup_group,Setup DB size 2^5,,,,139759434.0,ns,3397 81 | db_setup_group,Setup DB size 2^5,,,,235145100.0,ns,3440 82 | db_setup_group,Setup DB size 2^5,,,,157942820.0,ns,3483 83 | db_setup_group,Setup DB size 2^5,,,,145833937.0,ns,3526 84 | db_setup_group,Setup DB size 2^5,,,,131891205.0,ns,3569 85 | db_setup_group,Setup DB size 2^5,,,,99213215.0,ns,3612 86 | db_setup_group,Setup DB size 2^5,,,,108816666.0,ns,3655 87 | db_setup_group,Setup DB size 2^5,,,,101149736.0,ns,3698 88 | db_setup_group,Setup DB size 2^5,,,,108936452.0,ns,3741 89 | db_setup_group,Setup DB size 2^5,,,,110248475.0,ns,3784 90 | db_setup_group,Setup DB size 2^5,,,,124768247.0,ns,3827 91 | db_setup_group,Setup DB size 2^5,,,,116133622.0,ns,3870 92 | db_setup_group,Setup DB size 2^5,,,,116913180.0,ns,3913 93 | db_setup_group,Setup DB size 2^5,,,,111097029.0,ns,3956 94 | db_setup_group,Setup DB size 2^5,,,,137580183.0,ns,3999 95 | db_setup_group,Setup DB size 2^5,,,,174241227.0,ns,4042 96 | db_setup_group,Setup DB size 2^5,,,,110382664.0,ns,4085 97 | db_setup_group,Setup DB size 2^5,,,,106768342.0,ns,4128 98 | db_setup_group,Setup DB size 2^5,,,,135165705.0,ns,4171 99 | db_setup_group,Setup DB size 2^5,,,,193470907.0,ns,4214 100 | db_setup_group,Setup DB size 2^5,,,,179481936.0,ns,4257 101 | db_setup_group,Setup DB size 2^5,,,,149667041.0,ns,4300 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_5/new/raw.csv: -------------------------------------------------------------------------------- 1 | group,function,value,throughput_num,throughput_type,sample_measured_value,unit,iteration_count 2 | db_setup_group,Setup DB size 2^5,,,,1067527.0,ns,43 3 | db_setup_group,Setup DB size 2^5,,,,2017324.0,ns,86 4 | db_setup_group,Setup DB size 2^5,,,,2980309.0,ns,129 5 | db_setup_group,Setup DB size 2^5,,,,3900185.0,ns,172 6 | db_setup_group,Setup DB size 2^5,,,,4792089.0,ns,215 7 | db_setup_group,Setup DB size 2^5,,,,6791474.0,ns,258 8 | db_setup_group,Setup DB size 2^5,,,,6551104.0,ns,301 9 | db_setup_group,Setup DB size 2^5,,,,7712546.0,ns,344 10 | db_setup_group,Setup DB size 2^5,,,,8949089.0,ns,387 11 | db_setup_group,Setup DB size 2^5,,,,11107739.0,ns,430 12 | db_setup_group,Setup DB size 2^5,,,,10890765.0,ns,473 13 | db_setup_group,Setup DB size 2^5,,,,11710039.0,ns,516 14 | db_setup_group,Setup DB size 2^5,,,,12955836.0,ns,559 15 | db_setup_group,Setup DB size 2^5,,,,13930258.0,ns,602 16 | db_setup_group,Setup DB size 2^5,,,,15072521.0,ns,645 17 | db_setup_group,Setup DB size 2^5,,,,15554879.0,ns,688 18 | db_setup_group,Setup DB size 2^5,,,,16584851.0,ns,731 19 | db_setup_group,Setup DB size 2^5,,,,17656117.0,ns,774 20 | db_setup_group,Setup DB size 2^5,,,,19816930.0,ns,817 21 | db_setup_group,Setup DB size 2^5,,,,20056627.0,ns,860 22 | db_setup_group,Setup DB size 2^5,,,,20499949.0,ns,903 23 | db_setup_group,Setup DB size 2^5,,,,22207786.0,ns,946 24 | db_setup_group,Setup DB size 2^5,,,,23269907.0,ns,989 25 | db_setup_group,Setup DB size 2^5,,,,23436293.0,ns,1032 26 | db_setup_group,Setup DB size 2^5,,,,25119926.0,ns,1075 27 | db_setup_group,Setup DB size 2^5,,,,26516537.0,ns,1118 28 | db_setup_group,Setup DB size 2^5,,,,27318998.0,ns,1161 29 | db_setup_group,Setup DB size 2^5,,,,28375649.0,ns,1204 30 | db_setup_group,Setup DB size 2^5,,,,31276778.0,ns,1247 31 | db_setup_group,Setup DB size 2^5,,,,29768947.0,ns,1290 32 | db_setup_group,Setup DB size 2^5,,,,30840590.0,ns,1333 33 | db_setup_group,Setup DB size 2^5,,,,31708398.0,ns,1376 34 | db_setup_group,Setup DB size 2^5,,,,32874931.0,ns,1419 35 | db_setup_group,Setup DB size 2^5,,,,33801290.0,ns,1462 36 | db_setup_group,Setup DB size 2^5,,,,34474331.0,ns,1505 37 | db_setup_group,Setup DB size 2^5,,,,38415791.0,ns,1548 38 | db_setup_group,Setup DB size 2^5,,,,38628102.0,ns,1591 39 | db_setup_group,Setup DB size 2^5,,,,38085551.0,ns,1634 40 | db_setup_group,Setup DB size 2^5,,,,39465513.0,ns,1677 41 | db_setup_group,Setup DB size 2^5,,,,40828820.0,ns,1720 42 | db_setup_group,Setup DB size 2^5,,,,41709934.0,ns,1763 43 | db_setup_group,Setup DB size 2^5,,,,43715443.0,ns,1806 44 | db_setup_group,Setup DB size 2^5,,,,43106070.0,ns,1849 45 | db_setup_group,Setup DB size 2^5,,,,46131311.0,ns,1892 46 | db_setup_group,Setup DB size 2^5,,,,44722170.0,ns,1935 47 | db_setup_group,Setup DB size 2^5,,,,46239681.0,ns,1978 48 | db_setup_group,Setup DB size 2^5,,,,46361733.0,ns,2021 49 | db_setup_group,Setup DB size 2^5,,,,48713651.0,ns,2064 50 | db_setup_group,Setup DB size 2^5,,,,49440821.0,ns,2107 51 | db_setup_group,Setup DB size 2^5,,,,51505439.0,ns,2150 52 | db_setup_group,Setup DB size 2^5,,,,52384820.0,ns,2193 53 | db_setup_group,Setup DB size 2^5,,,,56133111.0,ns,2236 54 | db_setup_group,Setup DB size 2^5,,,,55399582.0,ns,2279 55 | db_setup_group,Setup DB size 2^5,,,,55840180.0,ns,2322 56 | db_setup_group,Setup DB size 2^5,,,,57173861.0,ns,2365 57 | db_setup_group,Setup DB size 2^5,,,,55439283.0,ns,2408 58 | db_setup_group,Setup DB size 2^5,,,,56596664.0,ns,2451 59 | db_setup_group,Setup DB size 2^5,,,,57499168.0,ns,2494 60 | db_setup_group,Setup DB size 2^5,,,,58666886.0,ns,2537 61 | db_setup_group,Setup DB size 2^5,,,,61780566.0,ns,2580 62 | db_setup_group,Setup DB size 2^5,,,,74120646.0,ns,2623 63 | db_setup_group,Setup DB size 2^5,,,,87352097.0,ns,2666 64 | db_setup_group,Setup DB size 2^5,,,,92049417.0,ns,2709 65 | db_setup_group,Setup DB size 2^5,,,,76236626.0,ns,2752 66 | db_setup_group,Setup DB size 2^5,,,,72781838.0,ns,2795 67 | db_setup_group,Setup DB size 2^5,,,,73211371.0,ns,2838 68 | db_setup_group,Setup DB size 2^5,,,,85438299.0,ns,2881 69 | db_setup_group,Setup DB size 2^5,,,,128016960.0,ns,2924 70 | db_setup_group,Setup DB size 2^5,,,,148153573.0,ns,2967 71 | db_setup_group,Setup DB size 2^5,,,,85294942.0,ns,3010 72 | db_setup_group,Setup DB size 2^5,,,,70246741.0,ns,3053 73 | db_setup_group,Setup DB size 2^5,,,,73042753.0,ns,3096 74 | db_setup_group,Setup DB size 2^5,,,,157211512.0,ns,3139 75 | db_setup_group,Setup DB size 2^5,,,,96698345.0,ns,3182 76 | db_setup_group,Setup DB size 2^5,,,,106761406.0,ns,3225 77 | db_setup_group,Setup DB size 2^5,,,,196527421.0,ns,3268 78 | db_setup_group,Setup DB size 2^5,,,,94729747.0,ns,3311 79 | db_setup_group,Setup DB size 2^5,,,,80496980.0,ns,3354 80 | db_setup_group,Setup DB size 2^5,,,,139759434.0,ns,3397 81 | db_setup_group,Setup DB size 2^5,,,,235145100.0,ns,3440 82 | db_setup_group,Setup DB size 2^5,,,,157942820.0,ns,3483 83 | db_setup_group,Setup DB size 2^5,,,,145833937.0,ns,3526 84 | db_setup_group,Setup DB size 2^5,,,,131891205.0,ns,3569 85 | db_setup_group,Setup DB size 2^5,,,,99213215.0,ns,3612 86 | db_setup_group,Setup DB size 2^5,,,,108816666.0,ns,3655 87 | db_setup_group,Setup DB size 2^5,,,,101149736.0,ns,3698 88 | db_setup_group,Setup DB size 2^5,,,,108936452.0,ns,3741 89 | db_setup_group,Setup DB size 2^5,,,,110248475.0,ns,3784 90 | db_setup_group,Setup DB size 2^5,,,,124768247.0,ns,3827 91 | db_setup_group,Setup DB size 2^5,,,,116133622.0,ns,3870 92 | db_setup_group,Setup DB size 2^5,,,,116913180.0,ns,3913 93 | db_setup_group,Setup DB size 2^5,,,,111097029.0,ns,3956 94 | db_setup_group,Setup DB size 2^5,,,,137580183.0,ns,3999 95 | db_setup_group,Setup DB size 2^5,,,,174241227.0,ns,4042 96 | db_setup_group,Setup DB size 2^5,,,,110382664.0,ns,4085 97 | db_setup_group,Setup DB size 2^5,,,,106768342.0,ns,4128 98 | db_setup_group,Setup DB size 2^5,,,,135165705.0,ns,4171 99 | db_setup_group,Setup DB size 2^5,,,,193470907.0,ns,4214 100 | db_setup_group,Setup DB size 2^5,,,,179481936.0,ns,4257 101 | db_setup_group,Setup DB size 2^5,,,,149667041.0,ns,4300 102 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | db_setup_group Summary - Criterion.rs 7 | 50 | 51 | 52 | 53 |
54 |

db_setup_group

55 |

Violin Plot

56 | 57 | Violin Plot 58 | 59 |

This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded 60 | region indicates the probability that a measurement of the given function/parameter would take a particular 61 | length of time.

62 |
63 | 64 |

db_setup_group/Setup DB size 2^10

65 |
66 | 67 | 68 | 69 | 75 | 81 | 82 | 83 |
70 | 71 | PDF of Slope 73 | 74 | 76 | 77 | Regression 79 | 80 |
84 |
85 |
86 | 87 |

db_setup_group/Setup DB size 2^15

88 |
89 | 90 | 91 | 92 | 98 | 104 | 105 | 106 |
93 | 94 | PDF of Slope 96 | 97 | 99 | 100 | Iteration Times 102 | 103 |
107 |
108 |
109 | 110 |

db_setup_group/Setup DB size 2^20

111 |
112 | 113 | 114 | 115 | 121 | 127 | 128 | 129 |
116 | 117 | PDF of Slope 119 | 120 | 122 | 123 | Iteration Times 125 | 126 |
130 |
131 |
132 | 133 |

db_setup_group/Setup DB size 2^5

134 |
135 | 136 | 137 | 138 | 144 | 150 | 151 | 152 |
139 | 140 | PDF of Slope 142 | 143 | 145 | 146 | Regression 148 | 149 |
153 |
154 |
155 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | run_query_group Summary - Criterion.rs 7 | 50 | 51 | 52 | 53 |
54 |

run_query_group

55 |

Violin Plot

56 | 57 | Violin Plot 58 | 59 |

This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded 60 | region indicates the probability that a measurement of the given function/parameter would take a particular 61 | length of time.

62 |
63 | 64 |

run_query_group/Run query size 2^10

65 |
66 | 67 | 68 | 69 | 75 | 81 | 82 | 83 |
70 | 71 | PDF of Slope 73 | 74 | 76 | 77 | Regression 79 | 80 |
84 |
85 |
86 | 87 |

run_query_group/Run query size 2^15

88 |
89 | 90 | 91 | 92 | 98 | 104 | 105 | 106 |
93 | 94 | PDF of Slope 96 | 97 | 99 | 100 | Iteration Times 102 | 103 |
107 |
108 |
109 | 110 |

run_query_group/Run query size 2^20

111 |
112 | 113 | 114 | 115 | 121 | 127 | 128 | 129 |
116 | 117 | PDF of Slope 119 | 120 | 122 | 123 | Iteration Times 125 | 126 |
130 |
131 |
132 | 133 |

run_query_group/Run query size 2^5

134 |
135 | 136 | 137 | 138 | 144 | 150 | 151 | 152 |
139 | 140 | PDF of Slope 142 | 143 | 145 | 146 | Regression 148 | 149 |
153 |
154 |
155 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | query_gen_group Summary - Criterion.rs 7 | 50 | 51 | 52 | 53 |
54 |

query_gen_group

55 |

Violin Plot

56 | 57 | Violin Plot 58 | 59 |

This chart shows the relationship between function/parameter and iteration time. The thickness of the shaded 60 | region indicates the probability that a measurement of the given function/parameter would take a particular 61 | length of time.

62 |
63 | 64 |

query_gen_group/Generate query size 2^10

65 |
66 | 67 | 68 | 69 | 75 | 81 | 82 | 83 |
70 | 71 | PDF of Slope 73 | 74 | 76 | 77 | Regression 79 | 80 |
84 |
85 |
86 | 87 |

query_gen_group/Generate query size 2^15

88 |
89 | 90 | 91 | 92 | 98 | 104 | 105 | 106 |
93 | 94 | PDF of Slope 96 | 97 | 99 | 100 | Iteration Times 102 | 103 |
107 |
108 |
109 | 110 |

query_gen_group/Generate query size 2^20

111 |
112 | 113 | 114 | 115 | 121 | 127 | 128 | 129 |
116 | 117 | PDF of Slope 119 | 120 | 122 | 123 | Iteration Times 125 | 126 |
130 |
131 |
132 | 133 |

query_gen_group/Generate query size 2^5

134 |
135 | 136 | 137 | 138 | 144 | 150 | 151 | 152 |
139 | 140 | PDF of Slope 142 | 143 | 145 | 146 | Regression 148 | 149 |
153 |
154 |
155 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/db_setup_group/Setup DB size 2_20/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | db_setup_group/Setup DB size 2^20 - Criterion.rs 7 | 82 | 83 | 84 | 85 |
86 |

db_setup_group/Setup DB size 2^20

87 |
88 |
89 | 90 | 91 | 92 | 97 | 102 | 103 | 104 |
93 | 94 | PDF of Slope 95 | 96 | 98 | 99 | Iteration Times 100 | 101 |
105 |
106 |
107 |
108 |

Additional Statistics:

109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |
Lower boundEstimateUpper bound
0.00563920.00583660.0056103
Mean805.00 ms810.04 ms815.46 ms
Std. Dev.21.501 ms27.032 ms31.942 ms
Median798.70 ms803.00 ms810.49 ms
MAD16.366 ms20.202 ms27.176 ms
151 |
152 |
153 |

Additional Plots:

154 | 172 |
173 |
174 |
175 |

Understanding this report:

176 |

The plot on the left displays the average time per iteration for this benchmark. The shaded region 177 | shows the estimated probability of an iteration taking a certain amount of time, while the line 178 | shows the mean. Click on the plot for a larger view showing the outliers.

179 |

The plot on the right shows the average time per iteration for the samples. Each point 180 | represents one sample.

181 |

See the 182 | documentation for more details on the additional statistics.

183 |
184 |
185 |
186 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/run_query_group/Run query size 2_20/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | run_query_group/Run query size 2^20 - Criterion.rs 7 | 82 | 83 | 84 | 85 |
86 |

run_query_group/Run query size 2^20

87 |
88 |
89 | 90 | 91 | 92 | 97 | 102 | 103 | 104 |
93 | 94 | PDF of Slope 95 | 96 | 98 | 99 | Iteration Times 100 | 101 |
105 |
106 |
107 |
108 |

Additional Statistics:

109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |
Lower boundEstimateUpper bound
0.02340330.03333610.0243084
Mean116.91 s119.11 s121.16 s
Std. Dev.303.55 ms3.4909 s3.9700 s
Median114.70 s121.13 s121.26 s
MAD53.051 ms220.05 ms5.2582 s
151 |
152 |
153 |

Additional Plots:

154 | 172 |
173 |
174 |
175 |

Understanding this report:

176 |

The plot on the left displays the average time per iteration for this benchmark. The shaded region 177 | shows the estimated probability of an iteration taking a certain amount of time, while the line 178 | shows the mean. Click on the plot for a larger view showing the outliers.

179 |

The plot on the right shows the average time per iteration for the samples. Each point 180 | represents one sample.

181 |

See the 182 | documentation for more details on the additional statistics.

183 |
184 |
185 |
186 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_20/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | query_gen_group/Generate query size 2^20 - Criterion.rs 7 | 82 | 83 | 84 | 85 |
86 |

query_gen_group/Generate query size 2^20

87 |
88 |
89 | 90 | 91 | 92 | 97 | 102 | 103 | 104 |
93 | 94 | PDF of Slope 95 | 96 | 98 | 99 | Iteration Times 100 | 101 |
105 |
106 |
107 |
108 |

Additional Statistics:

109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |
Lower boundEstimateUpper bound
0.03250890.04396590.0317454
Mean135.11 s138.36 s141.74 s
Std. Dev.3.5950 s5.6291 s6.6307 s
Median133.18 s137.05 s143.73 s
MAD650.30 ms8.0193 s9.1443 s
151 |
152 |
153 |

Additional Plots:

154 | 172 |
173 |
174 |
175 |

Understanding this report:

176 |

The plot on the left displays the average time per iteration for this benchmark. The shaded region 177 | shows the estimated probability of an iteration taking a certain amount of time, while the line 178 | shows the mean. Click on the plot for a larger view showing the outliers.

179 |

The plot on the right shows the average time per iteration for the samples. Each point 180 | represents one sample.

181 |

See the 182 | documentation for more details on the additional statistics.

183 |
184 |
185 |
186 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /benchmarks/results/elgamal-0.0.1/query_gen_group/Generate query size 2_15/report/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | query_gen_group/Generate query size 2^15 - Criterion.rs 7 | 82 | 83 | 84 | 85 |
86 |

query_gen_group/Generate query size 2^15

87 |
88 |
89 | 90 | 91 | 92 | 97 | 102 | 103 | 104 |
93 | 94 | PDF of Slope 95 | 96 | 98 | 99 | Iteration Times 100 | 101 |
105 |
106 |
107 |
108 |

Additional Statistics:

109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 |
Lower boundEstimateUpper bound
0.13057370.17199450.1312958
Mean4.4301 s4.5069 s4.5827 s
Std. Dev.82.138 ms130.68 ms157.11 ms
Median4.3859 s4.5167 s4.6185 s
MAD35.500 ms162.96 ms215.56 ms
151 |
152 |
153 |

Additional Plots:

154 | 172 |
173 |
174 |
175 |

Understanding this report:

176 |

The plot on the left displays the average time per iteration for this benchmark. The shaded region 177 | shows the estimated probability of an iteration taking a certain amount of time, while the line 178 | shows the mean. Click on the plot for a larger view showing the outliers.

179 |

The plot on the right shows the average time per iteration for the samples. Each point 180 | represents one sample.

181 |

See the 182 | documentation for more details on the additional statistics.

183 |
184 |
185 |
186 | 191 | 192 | 193 | --------------------------------------------------------------------------------