Publication details

Algorithm 970: Optimizing the NIST Statistical Test Suite and the Berlekamp-Massey Algorithm

Investor logo
Investor logo

SÝS Marek ŘÍHA Zdeněk MATYÁŠ Václav

Year of publication 2017
Type Article in Periodical
Magazine / Source ACM Transactions on Mathematical Software
MU Faculty or unit

Faculty of Informatics

Field Informatics
Keywords Berlekamp-Massey algorithm; NIST STS; statistical randomness testing; design; algorithms; performance
Description The NIST Statistical Test Suite (NIST STS) is one of the most popular tools for the analysis of randomness. This test battery is widely used, but its implementation is quite inefficient. A complete randomness analysis using the NIST STS can take hours on a standard computer when the tested data volume is on the order of GB. We improved the most time-consuming test (Linear Complexity) from the previous most efficient implementation of the NIST STS. We also optimized other tests and achieved an overall speedup of 50.6x compared with the reference implementation. This means that 20 MB of data can be tested within a minute using our new optimized version of the NIST STS. To speed up the Linear Complexity test, we proposed a new version of the Berlekamp-Massey algorithm that computes only the linear complexity of a sequence. This new variant does not construct a linear feedback shift register and is approximately 187x faster than the original NIST implementation of the Berlekamp-Massey algorithm.
Related projects:

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

More info