Benchmark framework for Fully Homomorphic Encryption (FHE) libraries. Compare SEAL, OpenFHE, and HElib on BFV, BGV, and CKKS schemes with consistent parameters.
git clone --recurse-submodules https://github.com/afDursun/HelBench
cd helbench
pip install -r requirements.txt
cd external/SEAL && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build && cd ../..
cd external/OpenFHE && cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build && cd ../..
./run_all.shResults: results/raw/, results/summary/, results/figures/
- C++17, CMake 3.13+
- Python 3 (pandas, matplotlib, numpy)
- HElib: system install (
find_package(helib))
| Command | Description |
|---|---|
./run_all.sh or make all |
Full pipeline: benchmarks + analysis + figures |
make benchmark |
Run benchmarks only |
make analyze |
Statistical analysis (requires existing CSV) |
make figures |
Generate figures only |
| Path | Description |
|---|---|
common/params.json |
Single config source; edit here to change parameters |
benchmarks/{seal,openfhe,helib}/ |
Per-library benchmarks |
scripts/ |
Python: params generation, analysis, visualization |
results/raw/ |
Raw CSV outputs |
results/summary/ |
Aggregated tables |
results/figures/ |
Plots |
Edit common/params.json for degrees (N), repeats, plain modulus, etc. The C++ side uses params.h, generated from params.json when you run benchmarks.
MIT License. See LICENSE.
