Skip to content

Latest commit

 

History

History
58 lines (48 loc) · 2.21 KB

README.md

File metadata and controls

58 lines (48 loc) · 2.21 KB

A Comparison of Graph-Inference Side-Channel Attacks Against SKINNY

This repository contains the source code for the experiments in the paper A Comparison of Graph-Inference Side-Channel Attacks Against SKINNY to be presented at CASCADE 2025.

The project consist of several Python scripts meant to be run separately from the main directory. The necessary libraries are listed in requirements.txt and can be installed by running pip install -r requirements.txt, preferably in a virtual environment.

Attacks on Synthetic Traces

To compute the experiments corresponding to Fig. 4 and 5 in the paper, you can run the script:

> python src/fgi-sim/SASCA.py

This will populate the results folder with several .hdf5 files. Each of these files contains the success rates and key ranks for each experiment.

The file names are structured as follows:

SASCA<_44><-start><-end>-[number of experiments]-[depth range in rounds]-[trace count range]-[iterations range]-[std]-[seed].h5

where the items marked in <> are optional flags and the items marked with [] are dependent on experiment parameters. So, for example, the file:

SASCA_44-start-end-500-2_2-1_20-60_60-1-12345.h5

contains the experiments using 44 S-boxes of leakage, a graph consisting of two rounds, from 1 to 20 traces, 60 iterations, a noise level of 1, and the seed 12345.

For attacking the larger tweak key variant of SKINNY, SKINNY-128-384, relating to Fig. 3, the script is:

> python src/fgi-sim/SASCA-384.py

Attacks on Real Traces

For the attacks on real traces, the traces must first be downloaded from Zenodo,https://doi.org/10.5281/zenodo.14640175, and added to a folder traces in the base directory.

Then run

> python src/fgi-real/generate_profiles.py
> python src/fgi-real/generate_scores.py

to precompute Gaussian templates from the profiling traces and scores for all intermediates in the attack traces.

Lastly, the experiments relating to Fig. 6 can be run with:

> python src/fgi-real/SASCA_real.py

Self Acquisition of Traces

To acquire new traces, follow the instructions in https://github.com/Simula-UiB/CGI-DPA and use the convert function in convert.py to convert the traces to the updated .hdf5 format.