CoolTest: Improved Randomness Testing Using Boolean Functions
Autoři | |
---|---|
Rok publikování | 2025 |
Druh | Článek ve sborníku |
Konference | ICT Systems Security and Privacy Protection. SEC 2025. IFIP Advances in Information and Communication Technology |
Fakulta / Pracoviště MU | |
Citace | |
www | 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 |
Klíčová slova | Statistical randomness testing; Boolean functions; Random number generators |
Popis | 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. |
Související projekty: |