Examples
This section provides examples of existing file formats for traces of side-channel leakage, including pointers to source code and reference implementations.
Existing File Formats
File Format | Links | Traditionally Used In SCA | Open Source |
---|---|---|---|
Numpy (.npy) | [Link] | Yes | Yes |
TRS | [Link] | Yes | Yes |
SQLite | [Link] | Somewhat | Yes |
HDF5 | [Link] | Yes | Yes |
Zarr | [Link] | Somewhat | Yes |
Avro | [Link] | No | Yes |
Apache ORC | [Link] | No | Yes |
Parquet | [Link] | No | Yes |
JSON | [Link] | No | Yes |
Frameworks Utilizing File Formats
Framework | Underlying File Format | Relavant Links |
---|---|---|
SCARR | Zarr | [Link] |
SCARED | HDF5 | [Link] |
LASCAR | HDF5 | [Link] |
Chip Whisperer | Numpy | [Link] |
SCAPEgoat | Numpy/JSON | [Link] |
SCALib | Numpy | [Link] |
Sedpack/SCAAML | Varying with JSON wrapper | [Link] |
RamDPA | Custom RamDPA format | [Link] |
Daredevil | Unclear | [Link] |
Concrete Example from ChipWhisperer Documentation
This section aims to provide an example of how the criteria defined in the previous section can be applied to identify aspects to consider when selecting a file format for a dataset. “Trace files in the ChipWhisperer software are defined through a configuration file, with the suffix .cfg. Any trace added to the ChipWhisperer project will have a configuration file - this file does not store data, but tells the software where it is stored and what format it is stored in. While ChipWhisperer has a "native" file format, you can also interface to existing files” [8].
This part demonstrates a potential for improvement in terms of reproducibility, flexibility, extensibility, and support. It is worth mentioning that each trace is a Numpy array.