For The Love of Computing: The Lagged Fibonacci Generator — Where Nature Meet Random Numbers

--

One of the greatest challenges we face in computer science is the generation of truly random numbers. Why? Because we generate encryption keys from them, and if someone improves their chances of guessing our random number, they may be able to guess our key. The two main types of random number generators are:

  • Pseudo-Random Number Generators (PRNGs). This method repeats the random numbers after a given time (periodic). They are fast and are also deterministic, and are useful in producing a repeatable set of random numbers.
  • True Random Number Generators (TRNGs). This method generates a truly random number, and uses somethin which is random. One approach is to monitor the movements of a mouse pointer on a screen or from the pauses in key-strokes. Overall the method is generally slow, especially if it involves human interaction, but is non-deterministic (it cannot be guessed) and aperiodic (it doesn’t repeat after a given time period).

At the core of random numbers is a seed value, and which is used to start the random number generator. Once running, and generating a sequence, the seed value should not be guessable. Each time a new sequence is generated a new random seed is also created.

--

--

Prof Bill Buchanan OBE FRSE
ASecuritySite: When Bob Met Alice

Professor of Cryptography. Serial innovator. Believer in fairness, justice & freedom. Based in Edinburgh. Old World Breaker. New World Creator. Building trust.