Skip to content

verdiverdiverdi/ISIS-small-q

Repository files navigation

In this folder

  • attack.sage: a custom attack script for the smallest q Mitaka parameters from [C:ETWY22]
  • distributionCheck.sage: functions that take in data from liftTest.sage and save and plot various figures comparing our model to experimental data
  • example.py: a simple example of how to run our main attack cost script against some parameters
  • fastTheta.py: our method for convolving theta series to determine the number of integer points in balls and boxes
  • lengthBound.py: a helper script that extracts nu from the various parameters suggested in [C:ETWY22]
  • liftTest.sage: a script that runs our attack and collects data about the lengths of projected vectors in the sieve database and of lifted vectors
  • modelBKZ.py: functions that model the profiles output by BKZ reduction on q-ary lattice bases, initially from Dilithium.
  • runParams.py: run our attack cost script against small q Falcon and Mitaka instances
  • small_qSIS.py: our main cost estimation script, can cost generic BKZ attacks that apply randomisation to remove the q vectors as well as our attack
  • zShape.sage: a script that runs experiments regarding the Z-shape of q-ary lattice bases after reduction

Note that refresh.sh simply creates a python friendly version of zShape.sage for other files to import functions from it

In data/

  • pickles of the form 1031-1024-512-1606-falcon.pkl contain the attack cost estimates as a dictionary for these parameters given by runParams.py
  • text files of the form 120-240-257-5-XXXX.txt contain either the average experimental or modelled basis profile for these parameters from zShape.sage or modelBKZ.py respectively
  • pickles of the form 257-40-XXXX.pkl contain the data extracted by distributionCheck.sage from experiments run in liftTest.sage, and one can see plots in the respective .png
  • text files of the form experimentalXXXXLift.txt and modelXXXXLift.txt are .tex friendly versions of the data 257-40-XXXX.pkl for plotting
  • the pickle lifts-257-120-240-40-[40]-10.pkl is the raw data from liftTest.sage
  • the pickle z-257-120-240-40-60-ones-heavy.pkl is the raw data from zShape.sage

NOTE: You will need the general sieve kernel installed in sagemath. This can be achieved via installing sage onto your system and then

    $ sudo apt install automake
    $ sage --pip install g6k

You should be able to

    $ sage: import g6k

without error

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published