Efficient implementation of true random number generator based on SRAM PUFs

  • Authors:
  • Vincent van der Leest;Erik van der Sluis;Geert-Jan Schrijen;Pim Tuyls;Helena Handschuh

  • Affiliations:
  • Intrinsic-ID, Eindhoven, The Netherlands;Intrinsic-ID, Eindhoven, The Netherlands;Intrinsic-ID, Eindhoven, The Netherlands;Intrinsic-ID, Eindhoven, The Netherlands;Intrinsic-ID, Eindhoven, The Netherlands

  • Venue:
  • Cryptography and Security
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

An important building block for many cryptographic systems is a random number generator. Random numbers are required in these systems, because they are unpredictable for potential attackers. These random numbers can either be generated by a truly random physical source (that is non-deterministic) or using a deterministic algorithm. In practical applications where relatively large amounts of random bits are needed, it is also possible to combine both of these generator types. A non-deterministic random number generator is used to provide a truly random seed, which is used as input for a deterministic algorithm that generates a larger amount of (pseudo-)random bits. In cryptographic systems where Physical Unclonable Functions (PUFs) are used for authentication or secure key storage, an interesting source of randomness is readily available. Therefore, we propose the construction of a FIPS 140-3 compliant random bit generator based on an SRAM PUF in this paper. These PUFs are a source of instant randomness, which is available when powering an IC. Based on large sets of measurements, we derive the min-entropy of noise on the start-up patterns of SRAM memories. The min-entropy determines the compression factor of a conditioning algorithm, which is used to extract a truly random (256 bits) seed from the memory. Using several randomness tests we prove that the conditioned seed has all the properties of a truly random string with full entropy. This truly random seed can be derived in a low cost and area efficient manner from the standard IC component SRAM. Furthermore, an efficient implementation of a deterministic algorithm for generating (pseudo-)random output bits will be proposed. Combining these two functions leads to an ideal way to generate large amounts of random data based on non-deterministic randomness.