Tiny True Random Number Generator
Date
2009-07-25T21:02:57Z
Authors
Karanam, Shashi Prashanth
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Random Number Generators (RNGs) play a crucial role in the security of modern-day cryptographic modules. In cryptography they are used to generate initialization vectors for cryptographic primitives and protocols, keys for secret and public-key algorithms, seeds for pseudo-random number generators, challenges, nonces, padding bits, and system parameters in security protocols. A True Random Number Generator (TRNG) is a physical device that generates statistically independent and unbiased bits. A TRNG harvests randomness present in the underlying physical source and the generator will have no internal state kept. Increased research interest in the field of reconfigurable computing is making Field Programmable Gate Arrays (FPGAs) a preferred platform for cryptographic implementations. Hence, a pure digital implementation of a TRNG is highly demanded by modern-day applications. This thesis describes a simple TRNG design based on a single ring oscillator implemented using pure logic gates focusing on low power, and low area cryptographic applications. The randomization technique is based on sampling phase jitter contained in the oscillator ring. The TRNG has a very low area consumption, high throughput/area ratio and generates output bits at an acceptable bit rate. The security of the cryptographic primitives relies on the quality of the generated random bits, hence a TRNG for cryptographic applications must meet stringent requirements and should generate bits that can not be reproduced and are unpredictable in nature. The generator can be tested for its good statistical properties using a statistical test suite, ideally adjusted to a perfect RNG. Our TRNG design have been verified against statistical test suites from Diehard, NIST and BSI.
Description
Keywords
True Random Number Generator, Ring Oscillator, Jitter, Diehard, NIST