Datasets

For each target, we have acquired 3 datasets:

  • training dataset,
  • validation dataset,
  • test dataset.

The training and validation datasets are public, while the test dataset is used to evaluate the submissions and kept private by the organizers.

All datasets correspond to a correct usage of the SMAesH core: for each trace, the sharing of the key and of the plaintext is fresh. Moreover, we reseed the core before each trace with a fresh seed (the reseeding is not included in the trace). In the training dataset we use a fresh random key and a fresh random plaintext for each trace. The validation and test datasets are sampled identically and use a single fixed key (sampled at random) for the whole dataset, and a fresh random plaintext for each trace.

Dataset parameters

The dataset contains the power measurements collected with the evalutation setups described in Targets together with input data used at each execution of the core execution. In particular, the following fields can be found:

LabelTypeLengthDescription
tracesint16nspower traces measurement of ns time samples.
umsk_plaintextuint816unshared plaintext.
umsk_keyuint816unshared key.
msk_plaintextuint816 \( \cdot \) dplaintext sharing with d shares.
msk_keyuint816 \( \cdot \) dkey sharing with d shares.
seeduint810PRNG seed of 80 bits.

The datasets have different levels of granularity in terms of data they contain. The following table summarizes which fields are provided with each datasets for all targets:

Training / Validation (A7_d2)Training / Validation (S6_d2)Test
traces
umsk_plaintext
umsk_key
msk_plaintext
msk_key
seed

Finally, the next table summarizes the global size of each dataset (in term of amount of traces).

Dataset nameTargetRoleNumber of tracesLength of traces
SMAesH-A7_d2-vk0Artix-7 (\( d = 2 \))profiling\( 2 ^ {24} \)\( 4250 \)
SMAesH-A7_d2-fk0Artix-7 (\( d = 2 \))validation\( 2 ^ {24} \)\( 4250 \)
SMAesH-A7_d2-fk1Artix-7 (\( d = 2 \))test\( 2 ^ {24} \)\( 4250 \)
SMAesH-S6_d2-vk0Spartan-6 (\( d = 2 \))profiling\( 2 ^ {24} \)\( 4400 \)
SMAesH-S6_d2-fk0Spartan-6 (\( d = 2 \))validation\( 2 ^ {24} \)\( 4400 \)
SMAesH-S6_d2-fk1Spartan-6 (\( d = 2 \))test\( 2 ^ {24} \)\( 4400 \)

Files organization and dataset reading

The dataset for the SMAesH challenge is composed of several datasets, which are grouped by target and by security order (denoted as a target isntance). For each target instance, we provide the training and the validation dataset (respectively vk0 and fk0), and keep private the test dataset (fk1). Each dataset is described by a manifest file (denoted manifest.json) that describes the content of the dataset (including a file list and a way to check integrity) and is composed of several sub-directories (one per field stored in the dataset which is containing the fields data). The data files use the NPY format.

The dataset are expected to be read with the tool provided in dataset.py specifically implemented for this purpose. It provides top level functions that allows to load the data contained in a dataset per blocks of arbitrary size (see the definition of iter_ntraces in dataset.py and its usage in demo_submission/attack.py for more details).

The architecture convention described above will be followed when the SMAesH dataset will be extended with new target cases. The dataset organisation for the different targets are depicted by the following trees

smaesh-dataset/
+-- A7_d2/
| +-- vk0/
| | + manifest.json
| | +-- traces/
| | +-- umsk_plaintext/
| | +-- umsk_key/
| | +-- msk_plaintext/
| | +-- msk_key/
| | +-- seed/
| +-- fk0/
| | + manifest.json
| | +-- traces/
| | +-- umsk_plaintext/
| | +-- umsk_key/
| | +-- msk_plaintext/
| | +-- msk_key/
| | +-- seed/
+-- S6_d2/
| +-- vk0/
| | + manifest.json
| | +-- traces/
| | +-- umsk_plaintext/
| | +-- umsk_key/
| +-- fk0/
| | + manifest.json
| | +-- traces/
| | +-- umsk_plaintext/
| | +-- umsk_key/

See here for download instructions.

Hashes of datasets

SHA256 hashes of manifest files:

  • SMAesH-A7_d2-vk0: e067944fa0c630301c29f09cb53747bafd148af29032c87ff3a20a07e6401bc6
  • SMAesH-A7_d2-fk0: 91db2ed958c7c00e07eaec07cec8818e30c0dfd79cfcb8bac856db41f5b485b9
  • SMAesH-A7_d2-fk1: 08690d4152c2c6b979bd20cad489b5c99dafac7ad970fb60bcf91d67ea44be12
  • SMAesH-S6_d2-vk0: 6af82b2c13eec7de974f3ec25756c470910c4aeca612988bad7d5bcb39a74f7a
  • SMAesH-S6_d2-fk0: fd0469d839336f0f7fe644c97949c1dfee9eb145011213b3ef29b4e334c5753b
  • SMAesH-S6_d2-fk1: 90f2b82fc3ec788523e90ef9682864dd3682179d7b5f19f8439a583cc87eb5fe