Abstract
Background: The need for random and pseudorandom numbers arises in many cryptographic applications. Many cryptographic protocols require random or pseudorandom numbers at various points, e.g., for auxiliary data used in digital signatures, or challenges in authentication protocols. In NIST SP800-22 and Chinese randomness test specification, the focus is on those applications where randomness is required for cryptographic purposes and a set of statistical tests for randomness is described. In practice, these tests can be used to evaluate data generated by cryptographic algorithms. It is studied that the fast software implementations of Chinese randomness test specification in this paper.
Methods: In this paper, the experiments show that the detection time of linear complexity test accounts for about two-third of all the testing time. We propose a type of fast implementation of the linear complexity test. The method is to follow the basic steps according to the test, replacing bit operations with word operations, where a word can be 32/64/128/256 bits, according to CPU processing power. Results: When the word width is set to 32, the improvement of the linear complexity test is much more significant compared with the basic implementation. Through the method, the efficiency of Chinese randomness test suit is increased by 2.41 times, compared with the basic implementation. Conclusion: we study the fast software implementation of Chinese randomness test specification. The hotspot item is detected and a type of fast implementation method of this test item is proposed in this paper. Through this method, the efficiency has been improved relative to the basic implementation. The method also can be used to NIST randomness test suit which has the same bottleneck item.Keywords: Random sequence, randomness test, Berlekamp-Massey algorithm, linear complexity, optimization implementation, NCA randomness test specifications.