Most of this projects functionality can today be achieved with numpy & scipy. However, you may still find some features useful or more convenient. Note that this project is not actively maintained and kept here for archival purposes mostly.
libdpa is a python library for analysis tasks in differential power analysis scenarios. It assists in the initial analysis by providing simple access to typical preprocessing tasks. It supports efficient calculation of trace correlations for profiling or the actual execution of an attack. Processing steps can be combined, chainend and executed in parallel by a DPAWorkflow.
The library is the result of the master thesis: Design of a Framework for Side-Channel-Attacks on RFID-Tags which contains additional information regarding background and rationale.
- type indepency of traces (no matter whether
uint8_t
orfloat
) - workflow architecture for independent execution including trace profiling
- parallel multiprocessing
- chainable preprocessors
- visualization using matplotlib
The prerequisites for building this library are:
- a typical build environment with python
- cython (you might need v0.13)
- libfftw3 for fourier transformation (optional if setup.py is changed accordingly)
- python-sphinx for the documentation
To build the library run:
make
To install the library run:
make install
To use the library without installation:
export PYTHONPATH="$PYTHONPATH:`pwd`/`echo build/lib*`"
Please go to http://rumpeltux.github.io/libdpa/
libdpa is distributed under terms of the the GNU-GPL-3.0