Hound is a tool for locating cryptographic primitives in desynchronized side-channel traces using deep learning. This repository contains the code and resources needed to run experiments and demos.
To run an experiment, open the Jupyter Notebook Hound.ipynb
.
The repository is organized as follows:
/CNN
: Contains modules and configuration files for the Convolutional Neural Network used for classifying the start of cryptographic primitives./inference_pipeline
: Contains functions for classifying, segmenting, and aligning cryptographic primitives in a side-channel trace.Hound.ipynb
: A Jupyter Notebook for running a demo.
.
├── CNN
│ ├── configs
│ │ ├── common
│ │ │ └── neptune_configs.yaml
│ │ └── exp
│ │ ├── data.yaml
│ │ ├── experiment.yaml
│ │ └── module.yaml
│ ├── datasets
│ │ └── cp_class_dataset.py
│ ├── models
│ │ ├── custom_layers.py
│ │ ├── resnet.py
│ │ └── resnet_time_series_classifier.py
│ ├── modules
│ │ ├── cp_class_datamodule.py
│ │ └── cp_class_module.py
│ ├── train.py
│ └── utils
│ ├── data.py
│ ├── logging.py
│ ├── module.py
│ ├── trainer.py
│ └── utils.py
├── inference_pipeline
│ ├── alignment.py
│ ├── debug.py
│ ├── screening.py
│ └── sliding_window_classification.py
└── Hound.ipynb
The dataset for the AES cryptosystem is available here on Zenodo.
The dataset is organized as follows:
/training
: Contains three subsets:train
,valid
, andtest
. Each subset consists of two.npy
files:_set
: Contains the preprocessed side-channel traces._labels
: Contains the target labels for training the CNN, labeling each data asCP start
,CP spare
, ornoise
.
/inference
: Contains files for two demos: consecutive AES executions and AES executions interleaved with noisy applications. Each demo consists of two.npy
files:aes_
: Contains the side-channel traces to input into Hound.gt_
: Contains the ground truth for checking the correctness of Hound segmentation.
This work is part of [1], available online.
This repository is protected by copyright and licensed under the Apache-2.0 license.
© 2024 hardware-fab
[1] Galli, D., Chiari, G., and Zoni, D. (2024). Hound: Locating Cryptographic Primitives in Desynchronized Side-Channel Traces Using Deep-Learning. Accepted for presentation at the 42nd IEEE International Conference on Computer Design (ICCD). arXiv preprint arXiv:2408.06296.