DOI: 10.5281/zenodo.10229484
title: Ascon SCA software and hardware databases

description: Software and hardware side-channel analysis databases for attack on Ascon AEAD 
This repository contains datasets collected for side-channel analysis attack on Ascon AEAD.
The repository is divided into two folders, one for software side-channel analysis and one for hardware side-channel analysis:
 
- cw.zip
    - ascon_collect.ipynb : Jupyter Notebook used to collect the traces for the unprotected Ascon implementation
    -  ascon_protected_collect.ipynb : Jupyter Notebook used to collect the traces for the protected Ascon implementation
    - simpleserial-ascon : Ascon firmwares used to collect the traces
- hw.zip
    - ascon_g_protected
        - test_ascon.py : Script to test the protected Ascon implementation
        - collect_lecroy.py : Script to collect traces for unprotected Ascon implementation with Lecroy oscilloscope
        - rtl_src : RTL source files for the protected Ascon implementation
    - ascon_g_unprotected
        - test_ascon.py : Script to test the unprotected Ascon implementation
        - collect_lecroy.py : Script to collect traces for unprotected Ascon implementation with Lecroy oscilloscope
        - rtl_src : RTL source files for the unprotected Ascon implementation
- helpers.zip
    - ASCON.py : Python implementation of Ascon
    - SASEBO.py : Helper functions to communicate with the SAKURA-G board
    - lecroy3.py : Helper functions for Lecroy oscilloscope
    - ascon_helper.py : Helper functions for Ascon
    - convert_trs_to_h5.py : Script to convert Trsfile traceset to HDF5 database
 
ascon_cw_protected.h5 : Side-channel database for software protected Ascon implementation
ascon_cw_unprotected.h5 : Side-channel database for software unprotected Ascon implementation
ascon_hw_protected.h5 : Side-channel database for hardware protected Ascon implementation
ascon_hw_unprotected.h5 : Side-channel database for hardware unprotected Ascon implementation
 
ascon_cw_protected.trs : Traces for software protected Ascon implementation
ascon_cw_unprotected.trs : Traces for software unprotected Ascon implementation
ascon_hw_protected.trs : Traces for hardware protected Ascon implementation
ascon_hw_unprotected.trs : Traces for hardware unprotected Ascon implementation
 
Ascon authenticated encryption attack on a Chipwhisperer STM32F4 
The dataset was used for side-channel attack on Ascon initialization phase attack of the authenticated encryption mode on a ChipWhisperer STM32F4 target board.
The power traces are collected with the ChipWhisperer-Lite oscilloscope at a sampling rate of 4x the target clock frequency, and captures the first call of the round function of the Chi function of Ascon permutation.
The code used to collect the traces is also available in this repository, and the trace collection can be replicated with a ChipWhisperer-Lite and a STM32F4 target board.
 
Ascon authenticated encryption attack on a SAKURA-G FPGA
The hardware designs of the unprotected and protected Ascon implementations are available in the `hw` folder.
Both implementations are written in VHDL/Verilog and can be synthesized for Spartan6 (XC6SLX75) with Xilinx ISE.
Traces are collected with a Lecroy WaveRunner 610Zi oscilloscope at a sampling rate of 500 MS/s.
 
Databases description:
Database                                 | Ntraces                  | Traces (samples) | Label* (bytes)  | Metadata (bytes) 
                                                | Nf          | Nr           |                              |                         | Key | Nonce | Plaintext | Associated data | Ciphertext | Tag
ascon_cw_unprotected.h5      | 100,000 | 100,000  | 772                       | 64                    | 16   | 16       | 4             | 4                        | 4               | 16
ascon_cw_protected.h5          | 500,000 | 500,000  | 1408                     | 64                    | 32   | 32       | 16           | 16                      | 16             | 32
ascon_hw_unprotected.h5      | 100,000 | 100,000  | 6,000                    | 64                    | 16   | 16       | 4             | 4                        | 4               | 16
ascon_hw_protected.h5          | 500,000 | 500,000  | 10,000                  | 64                    | 32   | 32       | 8             | 8                        | 8               | 32
 
*Label computed with the intermediate_value leakage model described in `ascon_helper.py`