Skip to content

This repository provides a model of convutionnal neural network or a MLP to performs side-channels attacks. It has also on new optimizer for the model and a function to run a hyperparameter optimization

License

Notifications You must be signed in to change notification settings

Axelboutie/Deep-Learning-for-Side-Channels-Attacks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Deep Learning Side Channel Attack Project

A Rust-based deep learning project for side-channel attack analysis using the Burn framework.

Project Structure

.
├── src/
│   ├── main.rs      # Main program logic and dataset loading
│   ├── data.rs      # Dataset structures and handling
│   ├── model.rs     # Neural network model definition
│   ├── training.rs  # Training pipeline implementation
│   ├── inference.rs # Inference functionality
│   └── scoop.rs     # Additional model configurations

Features

  • HDF5 dataset loading for profiling and attack traces
  • Neural network model with configurable architecture
  • Hyperparameter optimization with random search
  • Support for RMSprop optimizer with weight decay
  • Training pipeline with customizable epochs and batch size
  • GPU acceleration using WGPU backend

Requirements

  • Rust (latest stable version)
  • HDF5 library
  • GPU with WGPU support

Installation

  1. Clone the repository
  2. Install dependencies:
cargo build

Usage

Training

The model can be trained using the default configuration:

cargo run --release

Optimisation of HyperParameters

If you want to use the opti fonction, it is preferable to save the model testing in a file Since every hyperparameter is print with the dbg macro, you can keep the graphic from the burn framework and also saving the test:

cargo run --release 2> back.log

Configuration

Key parameters can be adjusted in the source code:

  • NBS: Number of samples (currently 100)
  • NBE: Number of epochs (currently 200)
  • Batch size (default: 64)
  • Learning rate and optimizer parameters

Model Architecture

The neural network model is configurable with:

  • Input size: 256 features
  • Adjustable hidden layer size
  • Support for both training and inference modes

Acknowledgments

  • Big thanks to Nathan ROUSSELOT and Karine HEYDEMANN for this opportunity to discover deep learning.
  • Thanks to Nathan ROUSSELOT for the code of SCOOP, the optimizer from his research paper.

About

This repository provides a model of convutionnal neural network or a MLP to performs side-channels attacks. It has also on new optimizer for the model and a function to run a hyperparameter optimization

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages