Skip to content

A Deep-Learning Technique to Locate Cryptographic Operations in Side-Channel Traces

License

Notifications You must be signed in to change notification settings

hardware-fab/DL-to-locate-COs-for-SCA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Deep-Learning Technique to Locate Cryptographic Operations in Side-Channel Traces

To run an experiment, follow the Jupyter Notebook DL_to_locate_COs.ipynb.

Organization

The repository is organized as follows:

  • /CNN: Contains modules and configuration files for the Convolutional Neural Network use for classify the start of cryptographic operations.
  • /inference_pipeline: Contains functions for classify, segment, align, and attack a side-channel trace.
  • DL_to_locate_COs: It is a Jupyter Notebook for run a demo.
.
├── CNN
│   ├── configs
│   │   ├── common
│   │   │   └── neptune_configs.yaml
│   │   └── exp
│   │       ├── data.yaml
│   │       ├── experiment.yaml
│   │       └── module.yaml
│   ├── datasets
│   │   └── co_class_dataset.py
│   ├── models
│   │   ├── custom_layers.py
│   │   ├── resnet.py
│   │   └── resnet_time_series_classifier.py
│   ├── modules
│   │   ├── co_class_datamodule.py
│   │   └── co_class_module.py
│   ├── train.py
│   └── utils
│       ├── data.py
│       ├── logging.py
│       ├── module.py
│       ├── trainer.py
│       └── utils.py
├── inference_pipeline
│   ├── alignment.py
│   ├── cpa.py
│   ├── sca
│   │   ├── preprocess.py
│   │   └── sca_utils.py
│   ├── segmentation.py
│   └── sliding_window_classification.py
└── DL_to_locate_COs.ipynb

Dataset

The dataset for the AES cryptosystem is avaible here.

The dataset is organized as follows:

  • \training: contains three subsets, i.e., train, valid, and test.
    Each subset consist into two .npy files:
    • set: it contains the side-channel traces accordingly preprocessed.
    • labels: it contains the target labels for training the CNN, labelling each data as cipher start, cipher rest, or noise.
  • \inference: contains two file as demo of the inference pipeline. One file is the side-channel trace containing an undefine number of AES encryptions. The other file is a list of plaintexts matching the AES encryptions to test a CPA attack.

Note

This work is part of [1] available online.

This repository is protected by copyright and licensed under the Apache-2.0 license file.

© 2024 hardware-fab

[1] Chiari, G., Galli, D., Lattari, F., Matteucci, M., & Zoni, D. (2024). A Deep-Learning Technique to Locate Cryptographic Operations in Side-Channel Traces. arXiv preprint arXiv:2402.19037.

About

A Deep-Learning Technique to Locate Cryptographic Operations in Side-Channel Traces

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published