Transactions on Cryptographic Hardware and Embedded Systems, Volume 2024
A Tale of Snakes and Horses: Amplifying Correlation Power Analysis on Quadratic Maps
README
Artifact
This artifact contains the source code and the data to reproduce the results as presented in "A Tale of Snakes and Horses: Amplifying Correlation Power Analysis on Quadratic Maps" at TCHES 2024, Issue 1.
1. Structure
The source code is written in C
to exploit power traces to perform the Correlation Power Analysis (CPA) attack and the combined CPA, or Snake attack, as described in the paper for the S-box of Xoodoo and Keccak-p. Additional Python
scripts are provided to generate the signal reference values.
2. Hardware Power Traces Source Code
The source code to exploit the power traces is in the folder ./src/
.
Each program can be compiled with gcc
as
gcc -o keccak-snake keccak-snake.c sort.c -Wall -march=native -O3 -lm -fopenmp
gcc -o keccak-cpa keccak-cpa.c sort.c -Wall -march=native -O3 -lm -fopenmp
gcc -o xoodoo-snake xoodoo-snake.c sort.c -Wall -march=native -O3 -lm -fopenmp
gcc -o xoodoo-cpa xoodoo-cpa.c sort.c -Wall -march=native -O3 -lm -fopenmp
We tested this under Arch linux using gcc 12.2.0
, where it compiles without error messages.
The following files have been taken from a publicly available implementation of djbsort:
- sort.c
- int32_minmax_x86.c
- int32_sort.h
3. Additional Resources
Two additional scripts are provided in the folder ./python/
:
- Sref.py
computes the signal reference values according to Definition 8;
- Sref_reduced.py
computes the reduced signal reference values according to Definition 10.
The scripts were tested with Python 3.10.6
.
The command lines are:
- Sref.py [-h] n m
with the S-box length n in {3, 5}
and the number of targeted bits m in {1, n}
(to replace n
by its integer value),
- Sref_reduced.py [-h] n
with the S-box length n in {3, 5}
.
4. Contact and Support
Please contact Georg Land (mail@georg.land) or Anna Guinet (email@annagui.net) if you have any questions or comments.
5. Licensing
Please see LICENSE for further license instructions.