This is an implementation of 'Patching and Extending the WWL+ Circuit Bootstrapping Method to FFT Domains'.
We implement:
- tests for
- GLWE keyswitching by the split FFT (
glwe_keyswitch) - automorphism-based LWE to GLWE conversion (
lwe_to_glweandlwe_to_glwe_with_dim_switch) - LWE keyswitching by GLWE dimension switching (
lwe_ks_by_glwe_ds) - AES reference implementation and TFHE evaluation (
aes_refandaes_eval) - sampling errors (
sample_lwe_to_glwe_err,sample_ggsw_conv_err,sample_cbs_err,sample_aes_eval_err)
- GLWE keyswitching by the split FFT (
- benchmarks for
- LWE to GLWE conversion methods (
bench_lwe_to_glwe) - improved WoP-PBS (
bench_cbs) - AES evaluation (
bench_aes)
- LWE to GLWE conversion methods (
- error analysis for
- improved WoP-PBS
- AES evaluation (by our improved WoP-PBS)
- AES evaluation (by the original WWL+ method)
- tests:
cargo test --release --test 'test_name' - bench:
cargo bench --bench 'benchmark_name'- Current sample size is set to 1000. It can be changed by modifying
config = Criterion::default().sample_size(1000);
- Current sample size is set to 1000. It can be changed by modifying
- error analysis:
sage err_analysis.sage