New! The DPA contest v2 (2009-2010) is online. Click here to go to the website of the new edition.
Available Power Traces Tables
Tables Description
The power consumption traces available for the DPA contest, are stored in a public PostgreSQL database. These traces are regrouped by acquisition campaign, where each campaign is stored in a distinct table. The tables entries contain the following fields:
- index: a unique identifier for a trace.
- message: the clear message ciphered during the measurement.
- key: the key used to cipher the message (the one your algorithm has to guess, so you can check if it worked successfully).
- cryptogram: the result of the clear message's DES encipherment.
- date: the date and time at which the measure has been done.
- filename: the original filename used to store the trace.
- filecontent: the properly trace data stored in an Agilent `.bin' format, a parser of which is provided in the reference implementation. Agilent distributes a documentation for the format and an example C programme that turns the `.bin' into a `.csv'.
Some tables of the database are accessible by a PostgreSQL client, or by your application using the PostgreSQL libpq library with the following informations:
- hostname: dpa.enst.fr
- username: guest
- password: guest
- database: production_traces
- tablename: <See Below>
The publicly available tables are described below. They correspond to the three leakage curves discussed at FDTC'08, in slides 21-24 of this presentation.
| Table name | secmatv1_2006_04_0809 | secmatv3_20070924_des | secmatv3_20071219_des |
|---|---|---|---|
| Traces count | 81,089 | 81,569 | 67,753 |
| Description | Power consumption traces of the unprotected DES crypto-processor on the SecmatV1 SoC in ASIC. The measures have been done during a temporal window containing the 16 nominal DES rounds. These measurements have to be used for the contest. |
Power consumption traces of the unprotected DES crypto-processor in the SecmatV3 SoC in ASIC. The measures have been done during a temporal window containing the 16 nominal DES rounds. |
Power consumption traces of the unprotected DES crypto-processor on the SecmatV3 SoC in FPGA (Altera Stratix). The measures have been done during a temporal window containing the 16 nominal DES rounds. |
| Average trace | ![]() |
![]() |
![]() |
| Differential trace for the first round transition of register LR | ![]() |
![]() |
![]() |
Sample Sessions
If you wish to interactively browse the database, you can use either a graphical or a command line client. We provide with two sample sessions using the psql command line client and the pgAdminIII graphical client.1. With a Command Line Client, such as psql
$ psql -d production_traces -X -h dpa.enst.fr -U guest -W Password for user guest:type guest and ENTER. You are now connected to the database server:
Welcome to psql 8.1.11, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
production_traces=>
Standard SQL requests or PostgreSQL commands can be typed at the production_traces=> prompt.
For instance, we can ask for a description of the contest table secmatv1_2006_04_0809 with the command \d:
production_traces=> \d secmatv1_2006_04_0809 Table "public.secmatv1_2006_04_0809" Column | Type -------------+----------------------------- index | integer message | text key | text cryptogram | text date | timestamp without time zone filename | text filecontent | byteaAs mentioned earlier, the first fields are meta-information about the power trace, that is saved as a byte-array in the field filecontent. The key is the same for all traces. For instance, use this command to get an idea of the table contents:
production_traces=> SELECT message, key, cryptogram FROM secmatv1_2006_04_0809 LIMIT 10;
message | key | cryptogram
------------------+------------------+------------------
993fa9b70fe852af | 6a65786a65786a65 | 09b1a3ea6377adf2
fa47bdb0bfdc2b0c | 6a65786a65786a65 | 76c16d20850c7974
70b83523085fe820 | 6a65786a65786a65 | 1a773b33170f3582
f4a4b2857512d2bc | 6a65786a65786a65 | 738804230a32c097
c7e2937ffa2f95b9 | 6a65786a65786a65 | ed099fc280a6dd34
f5e89f0539aef5dd | 6a65786a65786a65 | 387b259bdf0865a6
d9de929ccfc611ca | 6a65786a65786a65 | 8f83a74846adcefb
a8d6965214bec693 | 6a65786a65786a65 | 9f7ce7bfdf7f1821
51817914ca2625fb | 6a65786a65786a65 | dfd40e213d02effd
1a197b7755282185 | 6a65786a65786a65 | 946b0d029779efff
(10 rows)
2. With a Graphical Client, such as pgAdminIII
The same operations are illustrated with the GUI-based client pgAdminIII under Windows:- Login:

- Getting the description of the contest table:

- Requesting data from the contest table:

3. Dumping the Contest Database in a Directory
To retrieve the table as as many files as the contest table entries, use a script such as export_table.py.
To download directly the zip'ed campaigns of measurement, use those links (warning: each file is about one gigabyte large):
- secmatv1_2006_04_0809.zip (4 Gbytes, in 4 parts: part0, part1, part2, part3)
- secmatv3_20070924_des.zip (1 Gbyte, in 1 part)
- secmatv3_20071219_des.zip (6 Gbytes, in 6 parts: part0, part1, part2, part3, part4, part5)
![Average SecMatV1[ASIC] power traces](img/secmatv1ASIC_avg.png)
![Average SecMatV3[ASIC] power traces](img/secmatv3ASIC_avg.png)
![Average SecMatV3[FPGA] power traces](img/secmatv3FPGA_avg.png)
![Differential trace for SecMatV1[ASIC] power traceAverage](img/secmatv1ASIC_leak.png)
![Differential trace for SecMatV3[ASIC] power traceAverage](img/secmatv3ASIC_leak.png)
![Differential trace for SecMatV3[FPGA] power traceAverage](img/secmatv3FPGA_leak.png)