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.