Random Number Generation with Entropy Sources in the Graphics Processing Units
The random number generator (RNG) is indispensable to modern cryptography since cryptographic services make use of random numbers for deriving encryption keys or nonces in protocols for secure communication. Operating systems like Linux and Windows provide built-in random number generators which can be accessed by cryptographic modules and other processes. If the system fails to collect sufficient entropy from the operating environment, the output from the RNG is blocked or becomes less secure. In this paper, we propose a method providing sufficient entropy to RNGs using graphics processing units. By estimating run-time of the kernel function in GPU, we can gather noisy data with bias. After the distillation process, we obtain a binary sequence for entropy input to the deterministic part of RNG. Our scheme was implemented on the computing environments using NVIDIA’s GPU GTX 580 and GTX 610M.