Testing randomness

162 Views Asked by At

I'm looking for informations about randomness and especially - random numbers. I found some about random number generators, but for now, the question, that concerns me is how statistically differ truly random and pseudorandom strings. For example, if I have 2 strings consisiting of 0 and 1, how can I find that one is generated by pseudorandom number generator and the other by truly RNG?
If someone could explain or find a url to useful info, I would appreciate it. Sorry if answer is easy to find but I'm not such good google user.

1

There are 1 best solutions below

4
On BEST ANSWER

This is a very broad area.

Statistical tests can only rule out strings on the basis that they are "statistically unlikely to have been generated by a true random generator". Some keywords are NIST Tests, DieHard tests. Look at the Crypto and/or Theoretical Computer Science stackexchange sites and there will be posts tagged randomness or randomness testing.

Clearly if the sequence has patterns, is compressible, is predictable, then there is a problem. In cryptographic applications, the issue of efficient testing also comes in, since if the test for ruling out randomness is exponential in complexity, then that test is not feasible anyway. Sometimes an assumption such as "factoring is computationally hard" is used to design generators where predicting the generator is equivalent to factoring a product of two very large primes, these days, each prime would be about 2000 bits in bitlength. Look under Blum Blum Shub for an example.

By the way, algorithmic randomness or Kolmogorov Complexity is a totally different approach, based on minimum program length for a Turing machine that would generate the string and halt. This quantity, unfortunately, is uncomputable in general.