A Rust-based deep learning project for side-channel attack analysis using the Burn framework.
.
├── 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
- 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
- Rust (latest stable version)
- HDF5 library
- GPU with WGPU support
- Clone the repository
- Install dependencies:
cargo build
The model can be trained using the default configuration:
cargo run --release
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
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
The neural network model is configurable with:
- Input size: 256 features
- Adjustable hidden layer size
- Support for both training and inference modes
- 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.