DPA contests home





Traces Tables


Hall of Fame

Frequently Asked Questions


This documentation is the HTML version of the README.txt file you can find in the reference implementation of the subversion repository.

Side-Channel Traces to Use

Some side channel traces have been stored on the PostGreSQL server dpa.enst.fr at the TELECOM-ParisTech university. They are organised by acquisition campaigns stored in distinct database tables. Each campaign/table contains side-channel traces measured by our acquisition platform on the same crypto-processor, the same day, using the same key. Each trace is associated with some meta-information, like the clear text, the key and the cryptogram.

You can access to these traces using a PostGreSQL client on your computer with username "guest" and password "guest", or directly with your program. The list of the tables that can be used for this contest with their description is maintained up-to-date on the DPA contest web site: http://www.dpacontest.org/tables.php.

Provided Implementation

We provide with a reference implementation written in python interpreted language, which implements a differential power analysis based on the partitioning algorithm published by Paul Kocher. The application needs an internet connection in order to access to the side-channel traces. The code can be reused by participants to submit new algorithms, and thereby participate to the contest.

The automatic documentation generated by pydoc is available here.

Reference Implementation Performance

The reference implementation needs 2766 power consumption traces to break the key of the default campaign "secmatv1_2006_04_0809" after having been stabilized for 100 iterations on the good key.

Needed Hardware

The reference implementation takes 4 hours and a half (resp. about one night) on an Intel Xeon at 3.00 GHz (resp. Intel Core2 Duo at 1.66 GHz) using only one core to break the key.

The application will use about 500 MB for itself (depending of the traces length). Make sure the computer running the application has enough memory. If your computer begins to swap (i.e. exchange RAM for the hard drive), the computation might never end.

Needed Softwares

In order to run the provided application, you need to install the following softwares:

Tested Configurations

The application has been fully tested on the following configurations:

Windows Specific Configuration

On windows, the bin directory of the PostgreSQL installation directory has to be added to the windows path environment variable, in order to make its DLL accessible from python.

Launching the Application

To launch the application just execute the main.py script:
$ python main.py