Hacker's guide to deep-learning side-channel attacks — screenshot of elie.net

Hacker's guide to deep-learning side-channel attacks

This walkthrough provides a practical guide on leveraging deep learning for side-channel attacks, demonstrating how to train a TensorFlow model to recover AES keys from power traces. It includes code and a dataset for hands-on experimentation.

Visit elie.net →

Questions & Answers

What is the Hacker's guide to deep-learning side-channel attacks about?
This guide is a practical code walkthrough demonstrating how to use deep learning with TensorFlow to perform side-channel attacks. It specifically shows how to recover an AES key by analyzing CPU power consumption traces from an ARM microcontroller. The guide provides end-to-end code, a dataset, and pre-trained models.
Who is this deep-learning side-channel attack guide intended for?
This guide is intended for security researchers, hardware cryptanalysts, and developers interested in understanding and implementing advanced cryptanalysis techniques. It targets individuals familiar with basic side-channel attack concepts and deep learning fundamentals.
How does deep learning for side-channel attacks differ from traditional methods?
Deep learning-based side-channel attacks offer advantages over traditional methods, such as template attacks. They can potentially handle more complex and noisy traces, learn intricate patterns automatically, and may require less expert feature engineering for effective key recovery.
When should one use the techniques described in this guide?
These techniques should be used when attempting to assess the side-channel resistance of cryptographic implementations on hardware, particularly against power analysis attacks. It is suitable for research, vulnerability discovery, and developing countermeasures for trusted hardware.
What specific hardware and software are used in the demonstration?
The demonstration uses a TinyAES implementation running on an ARM CPU (STM32F415) as the target device for side-channel analysis. The attack models are trained and used with TensorFlow, and the provided code is part of the SCAAML Python library.