I. Introduction
Nowadays, Non-Volatile Memories (NVMs) are widely used as a method to store keys and thus secure sensitive information. However, threats like counterfeiting, reverse engineering, and tampering [1] are becoming serious concerns for the security protocols using NVMs, putting at risk the information stored. In this scenario, Physical Unclonable Functions or PUFs arise as an alternative to traditional NVMs for their superior resilience to attacks, higher flexibility, and lower costs [2]. This is an especially attractive solution in hardware-constrained applications like IoT (where power and area are limited). PUFs are physical objects (e.g., an integrated circuit) that generate a physically defined response (output) for a given challenge (input) in a manner that is specific to the exact hardware instance impossible to replicate. Such response is used, for instance, to authenticate any object the PUF instance is attached to: at the end of the manufacturing process, a collection of PUF instances is given a set of challenges and each response recorded; at any later moment, a PUF instance is given the same challenge and, if the response coincides with the one stored, the PUF instance is the manufactured one [3].