Revisiting BoolTest – On Randomness Testing Using Boolean Functions

Document Type

Conference Article

Publication Title

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)


Pseudo-random number generation is crucial in cryptology and other areas related to information technology. In a broad sense, the security of a protocol relies on the ‘randomness’ provided by the pseudo-random number generators. It is thus important to examine whether a random-looking stream has some kind of non-randomness in it. Here we consider that a binary stream is divided into blocks of a certain length m and we try to identify an m-bit Boolean function in this regard that is optimal to provide the highest Z-score for the output stream generated by the said function. In this regard, we show certain limitations of the BoolTest strategy by Sýs et al (2017) and present combinatorial results related to identifying the most suitable Boolean functions. We show that the existing works related to BoolTest identify the Boolean functions that are sub-optimal, constrained by the low degree in the Algebraic Normal Form. Our results find out the best Boolean function in this regard that will produce the maximum Z-score and the complexity is O(Nlog N) on the amount of random-looking stream of length N that we read during the evaluation process. We present substantial experimental evidence corresponding to our theoretical ideas. While we solve certain combinatorial problems related to BoolTest, the caveat is, this test is not sufficient to conclude on randomness or non-randomness of a given stream of data.

First Page


Last Page




Publication Date


This document is currently not available here.