How anssi-fr/ascad works
ASCAD is a side-channel-analysis benchmark and companion toolkit. The main workflow takes raw trace data and parameters to generate a labeled HDF5 database, trains a neural model on its profiling traces, then evaluates predictions on attack traces by ranking candidate AES key bytes. Documented campaign variants cover fixed- and variable-key ATMEGA traces and variable-key STM32 traces; multilabel generation and model evaluation are additional capabilities. The graph reflects the README and shown source excerpts; unsampled campaign-specific implementation details are not inferred.
Main entry points: ASCAD_test_models.py Evaluation runner · ASCAD_train_models.py Training runner · ASCAD_generate.py ASCAD generator · ATMEGA_AES_v1 ATMEGA campaigns
Components 17
Trace preparation
- ASCAD generator
ASCAD_generate.py - Trace labeling
ASCAD_generate.py - ASCAD HDF5
Model training
- Training runner
ASCAD_train_models.py - ASCAD loader
ASCAD_train_models.py - Neural architectures
ASCAD_train_models.py - Model fitting
ASCAD_train_models.py - Trained model
Attack evaluation
- Evaluation runner
ASCAD_test_models.py - Attack data loader
ASCAD_test_models.py - Model predictions
ASCAD_test_models.py - Key-byte ranking
ASCAD_test_models.py - Rank plot
ASCAD_test_models.py
Campaign datasets
- ATMEGA campaigns
ATMEGA_AES_v1 - STM32 campaign
STM32_AES_v2
Other components
- Analyst
- Raw trace HDF5
Connections 20
- Analyst → ASCAD generator: runs with parameters
Readme.md - Raw trace HDF5 → ASCAD generator: provides traces
Readme.md - ASCAD generator → Trace labeling: extracts and labels
ASCAD_generate.py - Trace labeling → ASCAD HDF5: writes profiling and attack sets
ASCAD_generate.py - ATMEGA campaigns → Raw trace HDF5: campaign data
Readme.md - STM32 campaign → Raw trace HDF5: campaign data
Readme.md - Analyst → Training runner: runs with parameters
Readme.md - ASCAD HDF5 → ASCAD loader: loads profiling traces
ASCAD_train_models.py - Training runner → ASCAD loader: loads data
ASCAD_train_models.py - Training runner → Neural architectures: selects architecture
ASCAD_train_models.py - Training runner → Model fitting: starts fitting
ASCAD_train_models.py - Model fitting → Trained model: saves model
ASCAD_train_models.py - Analyst → Evaluation runner: runs with parameters
Readme.md - Evaluation runner → Trained model: loads model
ASCAD_test_models.py - Evaluation runner → Attack data loader: loads attack data
ASCAD_test_models.py - ASCAD HDF5 → Attack data loader: provides attack traces
ASCAD_test_models.py - Evaluation runner → Model predictions: predicts traces
ASCAD_test_models.py - Evaluation runner → Key-byte ranking: computes key ranks
ASCAD_test_models.py - Model predictions → Key-byte ranking: supplies probabilities
ASCAD_test_models.py - Key-byte ranking → Rank plot: plots rank curve
ASCAD_test_models.py