  Physical unclonable functions (PUFs) are relatively new security primitives
used for device authentication and device-specific secret key generation. In
this paper we focus on SRAM-PUFs. The SRAM-PUFs enjoy uniqueness and randomness
properties stemming from the intrinsic randomness of SRAM memory cells, which
is a result of manufacturing variations. This randomness can be translated into
the cryptographic keys thus avoiding the need to store and manage the device
cryptographic keys. Therefore these properties, combined with the fact that
SRAM memory can be often found in today's IoT devices, make SRAM-PUFs a
promising candidate for securing and authentication of the resource-constrained
IoT devices. PUF observations are always effected by noise and environmental
changes. Therefore secret-generation schemes with helper data are used to
guarantee reliable regeneration of the PUF-based secret keys. Error correction
codes (ECCs) are an essential part of these schemes. In this work, we propose a
practical error correction construction for PUF-based secret generation that
are based on polar codes. The resulting scheme can generate $128$-bit keys
using $1024$ SRAM-PUF bits and $896$ helper data bits and achieve a failure
probability of $10^{-9}$ or lower for a practical SRAM-PUFs setting with bit
error probability of $15\%$. The method is based on successive cancellation
combined with list decoding and hash-based checking that makes use of the hash
that is already available at the decoder. In addition, an adaptive list decoder
for polar codes is investigated. This decoder increases the list size only if
needed.
