학술논문

A Fast Hardware Pseudorandom Number Generator Based on xoroshiro128
Document Type
Periodical
Source
IEEE Transactions on Computers IEEE Trans. Comput. Computers, IEEE Transactions on. 72(5):1518-1524 May, 2023
Subject
Computing and Processing
Generators
Hardware
Standards
Libraries
Testing
Linearity
Python
Pseudorandom number generator
PRNG
Hardware circuits
statistical tests
Language
ISSN
0018-9340
1557-9956
2326-3814
Abstract
The Graphcore Intelligent Processing Unit contains an original pseudorandom number generator (PRNG) called xoroshiro128aox, based on the ${ \boldsymbol{F}}_{2}$F2-linear generator xoroshiro128. It is designed to be cheap to implement in hardware and provide high-quality statistical randomness. In this paper, we present a rigorous assessment of the generator's quality using standard statistical test suites and compare the results with the fast contemporary PRNGs xoroshiro128+, pcg64 and philox4x32-10. We show that xoroshiro128aox mitigates the known weakness in the lower order bits of xoroshiro128+ with a new ’AOX’ output function by passing the BigCrush and PractRand suites, but we note that the function has some minor non uniformities. We focus our testing with specific tests for linear artefacts to highlight the weaknesses of both xoroshiro128 PRNGs, but conclude that they are hard to detect, and xoroshiro128aox otherwise provides a good trade off between statistical quality and hardware implementation cost.