Dataset for the paper "PUF for the Commons: Enhancing Embedded Security on the OS Level"

Citation Author(s):
HAW Hamburg
Thomas C.
HAW Hamburg
TU Dresden
Submitted by:
Peter Kietzmann
Last updated:
Tue, 08/01/2023 - 16:08
Research Article Link:
0 ratings - Please login to submit your rating.


This dataset is supplementary material for our paper "PUF for the Commons: Enhancing Embedded Security on the OS Level".

Security is essential for the Internet of Things (IoT). Cryptographic operations for authentication and encryption commonly rely on random input of high entropy and secure, tamper-resistant identities, which are difficult to obtain on constrained embedded devices. In this paper, we design and analyze a generic integration of physically unclonable functions (PUFs) into the IoT operating system RIOT that supports about 250 platforms. Our approach leverages uninitialized SRAM to act as the digital fingerprint for heterogeneous devices. We ground our design on an extensive study of PUF performance in the wild, which involves SRAM measurements on more than 700 IoT nodes that aged naturally in the real-world. We quantify static SRAM bias, as well as the aging effects of devices and incorporate the results in our system. This work closes a previously identified gap of missing statistically significant sample sizes for testing the unpredictability of PUFs. Our experiments on COTS devices of 64 kB SRAM indicate that secure random seeds derived from the SRAM PUF provide 256 Bits-, and device unique keys provide more than 128 Bits of security. In a practical security assessment we show that SRAM PUFs resist moderate attack scenarios, which greatly improves the security of low-end IoT devices.


This repository provides raw output data of our experiments, preprocessed dataframes that were generated from the raw output, and scripts that reproduce the plots of our paper. In order to reproduce this data, we refer the reader to the GitHub repository (referenced above) which contains code and documentation to reproduce experimental results of the paper.

The archive is structured as follows. consists of four subfolders:

  • raw_data contains four sub archives that contain the raw node output logs
    • cointains a single SRAM readout from 708 devices.
    • contains multiple SRAM readouts from 5 sample devices.
    • contains multiple seeds constructions from 5 sample devices.
    • contains multiple key reconstructions from 3 sample devices, with varying code offset lengths and repetitions.
  • prep_data contains multiple python pickle files that hold preprocessed dataframes, used for plotting
  • scripts contains multiple python scripts that reproduce the paper plots, utilizing the pickle files in 'prep_data'.
    • can be used to execute all plot scripts
  • plots is the folder where the plots from the previous steps are being stored in pdf format
Funding Agency: 
Grant Number: