Skip to content
Attacking AES128 with Mutli-Bit DPA.
C Python Objective-C C++ Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
converter @ 6ca1e05

Power Analysis

This is a past university project of mine. For more details, see my blogpost.



Firmware running on the arduino. libraries contains a reference implementation of AES in C and a very efficient assembly implementation with C bindings added on top. AES contains a sketch that uses the C implementation while AES_AVR uses the ASM implementation and is far more efficient.

A small python module that can be used to encrypt data with the Arduino firmware.


Takes a hardcoded initial key for AES128, expands it into all the roundkeys and dumps it to a file.

Coordinates between the oscilloscope and the Arduino to encrypt data and capture the power traces.

A small python module that interfaces with the oscilloscope and exposes a tiny python library.

Perform the attack on captured data.

A short script that takes the final roundkey and returns the initial AES128 key.

You can’t perform that action at this time.