Linear Congruential Generator

This is an excerpt from the content

Related Concepts

Pseudorandom Generator; Stream Cipher


A linear congruential generator is a pseudorandom generator that produces a sequence of numbers x1, x2, x3, according to the following linear recurrence:

$${x}_{t} = a{x}_{t-1} + b\quad \mathrm{mod}\ n$$
for t ≥ 1 (modular arithmetic); integers a,  b, and n characterize entirely the generator, and the seed is x0.


Considering for example a = 3,  b = 5,  n = 17, and x0 = 2, the sequence produced by the linear congruential generator will be 11, 4, 0, 5, 3, 14, 13, 10, 1, 8, 12, 7, 9, 15, 16,


Pseudorandom generators are very useful in cryptography, in protocols, but also in the generation of keystreams in stream ciphers. In this case, they have to present strong properties to face cryptanalysis.


Such generators are easy to implement and pass the following statistical tests: Golomb’s randomness postulates, frequency test, serial test, poker test ...