The Efficient Randomness Testing using Boolean Functions

Investor logo

Warning

This publication doesn't include Institute of Computer Science. It includes Faculty of Informatics. Official publication website can be found on muni.cz.
Authors

SÝS Marek KLINEC Dušan ŠVENDA Petr

Year of publication 2017
Type Article in Proceedings
Conference Proceedings of the 14th International Joint Conference on e-Business and Telecommunications (ICETE 2017) - Volume 4: SECRYPT, Madrid, Spain, July 24-26, 2017
MU Faculty or unit

Faculty of Informatics

Citation
Web https://crocs.fi.muni.cz/public/papers/secrypt2017
Doi http://dx.doi.org/10.5220/0006425100920103
Field Informatics
Keywords booltest; randomness; randomness testing; polynomials; NIST STS; Dieharder; boolean functions; statistical randomness test
Description The wide range of security applications requires data either truly random or indistinguishable from the random. The statistical tests included in batteries like NIST STS or Dieharder are frequently used to assess this randomness property. We designed principally simple, yet powerful statistical randomness test working on the bit level and based on a search for boolean function(s) exhibiting bias not expected for truly random data when applied to the tested stream. The deviances are detected in seconds rather than tens of minutes required by the common batteries. Importantly, the boolean function exhibiting the bias directly describes the pattern responsible for this bias - allowing for construction of bit predictor or fixing the cause of bias in tested function design. The present bias is frequently detected in at least order of magnitude less data than required for NIST STS or Dieharder showing that the tests included in these batteries are either too simple to spot the common biases (like Monobit test) or overly complex (like Fourier Transform test) which requires an extensive amount of data. The proposed approach called BoolTest fills this gap. The performance was verified on more than 20 real world cryptographic functions – block and stream ciphers, hash functions and pseudorandom generators. Among others, the previously unknown bias in output of C rand() and Java Random generators which can be utilized as practical distinguisher was found.
Related projects:

You are running an old browser version. We recommend updating your browser to its latest version.

More info