CoolTest: Improved Randomness Testing Using Boolean Functions

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

GAVENDA Jiří SÝS Marek

Year of publication 2025
Type Article in Proceedings
Conference ICT Systems Security and Privacy Protection. SEC 2025. IFIP Advances in Information and Communication Technology
MU Faculty or unit

Faculty of Informatics

Citation
web https://link.springer.com/chapter/10.1007/978-3-031-92886-4_1
Doi http://dx.doi.org/10.1007/978-3-031-92886-4_1
Keywords Statistical randomness testing; Boolean functions; Random number generators
Description In this work, we present a new randomness test, CoolTest. CoolTest finds the optimal Boolean function from functions over $k$ variables for distinguishing tested data from random. CoolTest generalizes and improves BoolTest (ICETE'17) as it can find an arbitrary correlation among $k$ variables with comparable complexity, while BoolTest searches only for functions of a predefined form. CoolTest uses the innovative idea of Chatterjee et al. (INDOCRYPT'22), allowing to test $2^{2^k}$ Boolean functions while evaluating only $2^k$ of them. The test of Chatterjee et al. works only for rare cases when the correlated bits are close in the data. CoolTest makes the idea practically usable by selecting only a subset of bits on which it looks for a distinguisher. We evaluated CoolTest on outputs of 14 reduced-round cryptographic functions (e.g., AES, Twofish, Keccak, MD5). The results show that CoolTest significantly improves compared to BoolTest in almost all cases. On 100 MB of data, CoolTest provides better results for SHA-2, SHA-1, MD6, and SHACAL-2 than statistical test suites NIST STS, Dieharder, and TestU01, which consist of many different tests. We provide an estimate of the amount of data necessary to find a distinguisher based on the type and relative frequency of a non-random pattern.
Related projects:

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

More info