ABSTRACT

There are many situations in cryptography where it is important to be able to generate random numbers, bitstrings, etc. For example, cryptographic keys are normally generated at random from a specified keyspace, and many encryption schemes and signature schemes require random numbers to be generated during their execution. Generating random numbers by means of coin tosses or other physical processes is time-consuming and expensive, so in practice it is common to use a pseudo-random bit generator. A bit generator starts with a short random bitstring (a seed) and expands it into a much longer bitstring. Thus, a bit generator reduces the number of random bits that are required in a cryptographic application.