This repository contains:
- All the data that are used to plot the figures and generate the tables in the accompanying paper.
- A script
code/unif_scores.pythat determines the experimental score distribution for uniform targets. - A file
code/dual_utils.c, written in C, that is used incode/unif_scores.pyto perform a quick Walsh--Hadamard Transform. - A Makefile
code/Makefilethat is used to compile thecode/dual_utils.cinto a shared library that can be used by the Python filecode/unif_scores.py. Runmakein the directorycodeto buildcode/dual_utils.so. - A script
code/bdd_scores.pythat determines the experimental score distribution for a BDD target with a given GH-factor. - A script
code/mod_switch.pythat determines the score distribution for the correct guess (s_enum, s_fft) in case of modulus switching as described in MATZOV. - A script
code/volumetric_contr.pythat determines the Contradictory Regime, i.e. the data in Figure 2. - A script
code/unif_scores_find_floor.pythat determines the point(s) where the "floor" phenomenon starts to kick in, based on the data filesdata/unif_scores_n*.csv. - A script
code/guess_time.pythat calculates the entropy and the expected number of enumerations in the MATZOV attack (Appendix A.4).
- Preferably, a UNIX machine. On windows, you may perhaps have to change
dual_utils.sotodual_utils.dllor so. - C compiler, preferably
gcc - Python3
- G6K which can be installed by running
pip install g6k.