This repository contains the benchmarking code and experimental artifacts for the paper:
Practical Post-Quantum Secure Publicly Verifiable Secret Sharing and Applications
Our schemes rely on the Lattice-IBE library, which requires the NTL and GMP libraries to be installed.
On macOS, you can install NTL via Homebrew:
brew install ntlMake sure GMP is also installed (e.g., brew install gmp).
In the following files:
rust-bindings-lattice-ibe/Lattice-IBE/Makefilerust-bindings-lattice-ibe/build.rs
update the include paths for ntl and gmp according to your system installation.
After these adjustments, you should be able to build the Lattice-IBE library successfully.
Adjust n and t as required in test_share_basic in the following files:
pqppvss/prot_pvss_hash_ibe.rspqppvss/prot_pvss_pedcom_ibe.rs
Then to run the benchmarks:
cd pqppvss
cargo test --release --package pqppvss --lib -- prot_pvss_hash_ibe::tests::test_share_basic --exact --show-outputcd pqppvss
cargo test --release --package pqppvss --lib -- prot_pvss_pedcom_ibe::tests::test_share_basic --exact --show-outputTo run the polling benchmarks:
cd private-polling/rust/private_polling/
cargo bench -- --nocapture- All benchmarks are run in release mode to ensure optimized performance results.
- Please ensure your Rust toolchain is up to date (
rustup update). - Results may vary depending on your hardware and system configuration.