1. Two Pseudo-random Number Generators, an
Overview
By Kato Mivule
Bowie State University
Computer Science Department
Wireless Security Presentation - Spring 2012
Dr. Claude Turner
2. Two Pseudo-random Number Generators, an Overview
Overview
• Introduction
• A Pseudorandom Bit Generator
• Linear Congruential Generator (LCG)
• Blum-Blum-Shub Pseudorandom Bit Generators
• BBS Algorithm
• Conclusion and Suggestions
3. Two Pseudo-random Number Generators, an Overview
Introduction
• Random number generation is a critical part of any cryptographic and
spread spectrum systems in terms of strength and security.
• A weak random number generation in a cryptographic or spread
spectrum system could results in a compromised system.
• As such a number of cryptographic and spread spectrum systems
depend on the generation random and pseudorandom bits for
enhanced security.
4. Two Pseudo-random Number Generators, an Overview
A pseudorandom bit generator (PRBG)
• This is an algorithm that utilizes deterministic procedures when given
a seed, to produce a sequence of random bits based on the seed value
that appear to be random and will pass the random number tests.
• The input to the PRBG is known as the seed, while the output of the
PRBG is referred to as a pseudorandom bit sequence
5. Two Pseudo-random Number Generators, an Overview
Linear Congruential Generator (LCG)
• This type of algorithm generates long random strings of numbers with
the sequence repeating at some point.
• The random string of values generated is determined by a fixed
number called a seed.
• 𝑥 𝑛+1 = (𝑎𝑥 𝑛 + 𝑏) 𝑚𝑜𝑑 𝑚
6. Two Pseudo-random Number Generators, an Overview
Linear Congruential Generator (LCG)
• One of the popular techniques for the production of pseudorandom
numbers is the utilization of Linear Congruential Generators (LCG).
• LCGs produce pseudorandom sequences of numbers 𝑥1 , 𝑥2 , 𝑥3 ...
according to the linear recurrence:
• 𝑥 𝑛+1 = (𝑎𝑥 𝑛 + 𝑏) 𝑚𝑜𝑑 𝑚
• Where 𝑛 ≥ 1
7. Two Pseudo-random Number Generators, an Overview
Linear Congruential Generator (LCG)
In a Linear Congruential Generator, the next pseudorandom number is generated from
the current one such that:
𝑥 𝑛+1 = (𝑎𝑥 𝑛 + 𝑏) 𝑚𝑜𝑑 𝑚
Where 𝑎 and 𝑏, are relatively prime numbers
𝑚 = modulus and 𝑚 > 0
𝑎 = the multiplier and 0 < 𝑎 < 𝑚
𝑏 = the increment and 0 < 𝑏 < 𝑚
𝑥0 = the starting seed value and 0 ≤ 𝑥0 < 𝑚
The scope of random numbers generated is less than the range of the integer used in the
calculation .
The generated random numbers 𝑥 𝑖 are said to be periodic where the period is always less
≤ 𝑚 and all 𝑥 𝑖 are in the interval 0 ≤ 𝑥 𝑖 < 𝑚.
8. Two Pseudo-random Number Generators, an Overview
Linear Congruential Generator (LCG)
Example of LCG
m = 16; a = 3; b = 1
𝑥 𝑛+1 = (3𝑥 𝑛 + 1) 𝑚𝑜𝑑 16
𝑥0 = (3*0 + 1) mod 16 = 1
𝑥1 = (3*1 + 1) mod 16 = 4
𝑥2 = (3*4 + 1) mod 16 = 13
𝑥3 = (3*13 + 1) mod 16 = 8
𝑥4 = (3*8 +1) mod 16 = 9
𝑥5 = (3*9 +1) mod 16 = 12
𝑥6 = (3*12 +1) mod 16 = 5
𝑥7 = (3*5 +1) mod 16 = 0
𝑥8 = (3*0 +1) mod 16 = 1
Therefore generated sequence = {1, 4, 13, 8, 9, 12, 5, 0, 1}
9. Two Pseudo-random Number Generators, an Overview
Blum-Blum-Shub (BBS) Pseudorandom Bit Generators
• Blum Shub (BBS) is a pseudorandom number generator suggested in 1986 by
Lenore Blum, Manuel Blum and Michael Shub (Blum et al., 1986).
• BBS is said to be a cryptographically secure pseudorandom bit generator
(CSPRBG). A CSPRBG is defined as one that passes the next-bit test.
• A pseudorandom bit generator is said to pass the next-bit test, if given the
first k bits of the sequence, there is no practical algorithm that can predict
that the next bit will be a 1 or 0 with probability greater than ½ therefore the
sequence is unpredictable.
• Blum Blum Shub is in the form:
• 𝑥 𝑛+1 = 𝑥 2 𝑚𝑜𝑑 𝑚
𝑛
10. Two Pseudo-random Number Generators, an Overview
BBS Algorithm
• Generate two large secret random prime numbers 𝑝 and 𝑞
• Let each of the chosen primes 𝑝 and 𝑞 be harmonious
1. Compute 𝑛 = 𝑝𝑞
2. Select a random integer 𝑠 (the seed) in the interval [1, 𝑛 − 1] such
that gcd 𝑠, 𝑛 = 1
3. Let 𝑥0 = 𝑠 2 𝑚𝑜𝑑 𝑛
4. For 𝑖 = 1 𝑡𝑜 ∞ 𝑑𝑜
5. Compute 𝑥 𝑖 = 𝑠 2 𝑚𝑜𝑑 𝑛
6. Compute 𝑥 𝑖 = 𝑥 𝑖 𝑚𝑜𝑑 2
7. 𝑧 𝑖 = 𝑡ℎ𝑒 𝑙𝑒𝑎𝑠𝑡 𝑠𝑖𝑔𝑛𝑖𝑓𝑖𝑐𝑎𝑛𝑡 𝑏𝑖𝑡 𝑜𝑓 𝑥 𝑖
8. Output the sequence as𝑧1 , 𝑧2 , 𝑧3 , … , 𝑧 𝑙
11. Two Pseudo-random Number Generators, an Overview
Thank You!
Comments, Questions, and Suggestions.
12. Two Pseudo-random Number Generators, an Overview
Sources and Bibliography
[1] Alfred J. Menezes, Paul C. Van Oorschot, Scott A. Vanstone "Handbook of Applied Cryptography" ISBN 0849385237, 9780849385230, Pages 169-190, CRC
Press, 1997
[2] X. Wang, W. Yu, X. Fu, D. Xuan, and W. Zhao, “iloc: An invisible localization attack to internet threat monitoring systems,” IEEE INFOCOM 2008. The 27th
Conference on Computer Communications, 2008, pp. 1930–1938.
[3] William Stallings, "Cryptography and Network Security: Principles and Practice", Prentice Hall, 2010, ISBN 0136097049, 9780136097044
[4] Bob Bockholt, "linear congruential generator", in Dictionary of Algorithms and Data Structures [online], Paul E. Black, ed., U.S. National Institute of Standards
and Technology. 17 December 2004. (accessed June 20th, 2010) Available from: http://www.itl.nist.gov/div897/sqg/dads/HTML/linearCongruentGen.html
[5] Samuel S. Wagstaff, Jr, "Cyptanalysis of Number Theoretic Ciphers", Chapman & Hall/CRC, ISBN 1-58488-153-4, page 211
[6] M.E. Yalcin, J.A.K. Suykens, J. Vandewalle "True random bit generation from a double-scroll attractor", IEEE Transactions on Circuits and Systems, 2004
[7] Anders Andersen, Finn Jensen, Morten Kristensen "TrueRandom", 2009,
http://www.daimi.au.dk/~ivan/reports2009/TrueRandom.pdf
[8] Henk C. A. van Tilborg, "Encyclopedia of cryptography and security", Springer, 2005,
ISBN 038723473X, 9780387234731
[9] Richard A. Mollin, "RSA and public-key cryptography", Volume 21 of Discrete mathematics and its applications, CRC Press, 2003, ISBN 1584883383,
9781584883388