Pseudo Random Number Generation and Random Event Validation

Pseudo Random Number Generation and Random
Event Validation Through Graphical Analysis
Andrew Cronwright
Supervised by Mr Barry Irwin
Rhodes University Computer Science Department
[email protected] (E-mail)
http://www.cs.ru.ac.za/research/students/g02C2954/ (Web)
The Problem
Method
Pseudo Random Number Generators (PRNG) are
used in a vast number of computer applications,
such as:
Cryptography
Initial Sequence Numbers (TCP/IP stack)
Physical Simulations
and many other desktop applications
PRNGs produce numbers that are “random like”.
Poor ones produce easily predictable “random”
numbers, while good ones produce, very convincing, random numbers. Hence the need for good
random numbers in these systems is critical.
Use of a poor
PRNG can
lead to poor
security, possible hacks
and failed
experiments.
By implementing a method to visualize a random
data set in 3-dimensional space, one can very
easily determine the level of randomness in the
data.
This also provides a quick and easy way to view
any 1-dimensional data set in a 3-dimensional
space. How?
X[n] = s[n-2] - s[n-3]
Y[n] = s[n-1] - s[n-2]
Z[n] = s[n] - s[n-1]
And
X[n] = s[n-2]
Y[n] = s[n-1]
Z[n] = s[n]
This transformation will graphically display any
patterns (known as attractors) in the data. Also by
using colour shading, either according to position
in the original sequence, or according to position
will highlight “how/when” the numbers are generated as well as adding an extra dimension to the
data
A statistical test suite is also used in conjunction
to provide objective results to the visualisation.
Is this random? By using graphical methods, together with formal mathematical methods, one can
see the degree of randomness in a sample.
Initial Sequence Numbers, from TCP connections, from Windows XP (left) and a Cisco switch (right). Plotted in 3-space,
these points need to be random to ensure attacks such as
connection hijacking do not
occur, or are at least minimised.
Conclusion / Solution
This project will highlight the problems surrounding the use of poor PRNG’s. A hardware
RNG will be implemented and test against several PRNG’s to test the quality of the PRNG.
A standard for PRNG’s should be developed,
whereby generators are graded. The substandard ones should be removed from use.