Class of scalable parallel and vectorizable pseudorandom number generators based on non-cryptographic RSA exponentiation ciphers

Parallel supercomputer-based Monte Carlo and stochastic simulatons require pseudorandom number generators that can produce distinct pseudorandom streams across many independent processes. We propose a scalable class of parallel and vectorizable pseudorandom number generators based on a non-cryptographic version of the RSA public-key exponentiation cipher. Our method generates uniformly distributed IEEE double precision floating point pseudorandom sequences by encrypting pseudorandom sequences of 64-bit integer messages by modular exponentiation. The advantages of the method are: the method is parallelizable by parameterization with each pseudorandom number generator instance derived from an independent composite modulus, the method is fully scalable on massively parallel computing clusters because of the millions of 32-bit prime numbers, the seeding and initialization of the independent streams is simple, the periods of the independent instances are all different and greater than $8.5\times 10^{37}$, and the method passes a battery of intrastream and interstream correlation tests. The calculations in each instance can be vectorized. and can produce more than $10^8$ pseudorandom numbers per second on each multicore CPU.