TrueRNG 10GB Entropy Test + Windows C++ Class
First off I want to thank Scott M for supplying us his class file for other people getting started writing a custom application for the TrueRNG in windows. His class file is here, it is also linked on the support tab of the product page.
Second, we wondered what the entropy data would look like if we captured 10 GB of data from the TrueRNG. Well it took awhile, but here are the results using the ent package under Ubuntu.
Entropy = 7.999994 bits per byte. Optimum compression would reduce the size of this 10737418240 byte file by 0 percent. Chi square distribution for 10737418240 samples is 95955.77, and randomly would exceed this value 0.01 percent of the times. Arithmetic mean value of data bytes is 127.5090 (127.5 = random). Monte Carlo value for Pi is 3.141487003 (error 0.00 percent). Serial correlation coefficient is 0.000012 (totally uncorrelated = 0.0).
We are really happy with those numbers.Tagged
According to the documentation of ENT, a chi-squared percentage of 0.01% is horrible and indicates a definitely non-random sequence. Chi-squared percentages should be between 10 and 90%. The further outside that range you are, the more suspect your generator is.
TrueRNG is a hardware random number generator and has tiny biased in the analog to digital converter. These are extremely small and show up only on very large data tests. They aren’t significant for most purposes. If they are significant for your application then they can be reduced by additional whitening. Since running this test we have improved our whitening algorithm trying to minimize the bias even further and switched to dual generators. We estimate the bias is about 1e-8 bits or so which has near zero effect on the entropy or use for cryptographic purposes.
Also, Saying that it doesn’t mean it isn’t random doesn’t have any meaning without a definition of random, which most of these tests are designed to show the errors in pseudorandom number generators and not necessarily true random number generators.