International Association for Cryptologic Research

International Association
for Cryptologic Research

EUROCRYPT 2024

SLAP: Succinct Lattice-Based Polynomial Commitments from Standard Assumptions


README

SLAP

This artifact contains a script for estimating proof sizes for SLAP.

Requirements

pip install -r requirements.txt

Usage

The script exposes two functions: find_parameters_random and find_parameters_bruteforce. The first function uses random search to find the best parameters, while the second function uses grid search.

Both functions take the following parameters:
1. secparam: The desired security level (in bits).
2. interactive: If True, compute sizes for the interactive version of SLAP, if False for the non-interactive (compiled with the FS transform)
3. logQ: Only used if interactive is False. The base-2 logarithm of the number of queries the adversary can perform to the ROM.
4. d: The degree of the polynomial committed to.
5. k: The folding factor.
6. l: The number of rounds the protocol is run for.
7. opt_mode: Either Aggressive or Conservative. Determines how the BKZ blocksize is set
8. reduction_mode: Either Proven or Heuristic. Determines whether the reduction loss is taken into account.

find_parameters_random takes an additional parameter iters which specify how many parameters sets will be sampled.

The intended usage is the following. Fix the above parameters.
Then call find_parameters_random, editing the script consider a wide range of parameters. This should give you a list of candidate parameters, and build intuition on the right parameter ranges to consider. Once honed in into a range, use find_parameters_bruteforce to select the best parameter set in that range.