Authors:
Marek Sýs
;
Dušan Klinec
and
Petr Švenda
Affiliation:
Masaryk University, Czech Republic
Keyword(s):
Statistical Randomness Testing, Hypothesis Testing, Boolean Function.
Related
Ontology
Subjects/Areas/Topics:
Applied Cryptography
;
Cryptographic Techniques and Key Management
;
Data and Application Security and Privacy
;
Data Engineering
;
Data Protection
;
Databases and Data Security
;
Information and Systems Security
;
Security Verification and Validation
Abstract:
The wide range of security applications requires data either truly random or indistinguishable from random.
The statistical tests included in batteries such as NIST STS or Dieharder are frequently used to assess the
randomness property. We designed a principally simple, yet powerful, statistical randomness test working on
bit level. It is based on a search for boolean function(s) indicating a bias when applied to the tested stream not
expected for truly random data. The deviances are detected in seconds rather than tens of minutes required
by the common batteries. Importantly, the boolean function indicating the bias directly describes the pattern
responsible for this bias. This allows to construct the bit predictor or to fix the cause of bias in the function
design. The present bias is typically detected in at least an order of magnitude less data than required by
NIST STS or Dieharder. The tests included in these batteries are either too simple to spot the common biases
(like the M
onobit test) or overly complex (like the Fourier Transform test) requiring 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 the output of C rand() and Java Random generators was found.
(More)