Randomness Testing: Result Interpretation and Speed

In cryptography, randomness is typically tested using a battery of tests consisting of many tests of randomness --- each focusing on a different feature. Probability that data produced by a good generator would pass all the tests in a battery can get quite small for a large number of used tests. Therefore, results of many tests should be interpreted with a particular focus on this issue. We argue for the Sidak correction --- this is a statistical method that can be used for evaluating multiple but independent tests. We analyzed the accuracy of the Sidak correction since tests of randomness are usually correlated, and we undertook this analysis for the NIST Statistical Test Suite. Results show that correlation of tests of randomness has got only a marginal influence on the accuracy of the Sidak correction. We also provide a speed-optimized version of NIST STS that achieved test results more than 30-times faster than the original NIST codes.