Algorithm 970: Optimizing the NIST Statistical Test Suite and the Berlekamp-Massey Algorithm
Authors | |
---|---|
Year of publication | 2017 |
Type | Article in Periodical |
Magazine / Source | ACM Transactions on Mathematical Software |
MU Faculty or unit | |
Citation | |
Web | http://dl.acm.org/citation.cfm?id=2988228 |
Doi | http://dx.doi.org/10.1145/2988228 |
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: |