In a famous paper published in 1951 (Natl Bur Stand Appl Math Ser 12:36–38, 1951), von Neumann presented a simple procedure allowing to correct the bias of random sources. This procedure introduces latencies between the random outputs. On the other hand, algorithms such as stream ciphers, block ciphers, or even modular multipliers usually run in a number of clock cycles which are independent of the operands’ values: feeding such hardware blocks with the inherently irregular output of such de-biased sources frequently proves tricky and is challenging to model at the HDL level. We propose an algorithm to compensate these irregularities, by storing or releasing numbers at given intervals of time. This algorithm is modeled as a special queue that achieves zero blocking probability and a near-deterministic service distribution (i.e., of minimal variance). While particularly suited to cryptographic applications, for which it was designed, this algorithm also applies to a variety of contexts and constitutes an example of queue for which the buffer allocation problem can be solved.
Random number generation Queuing theory HDL Statistics
This is a preview of subscription content, log in to check access
Balsamo, S., de Nitto Personé, V., Onvural, R.: Analysis of Queueing Networks with Blocking, vol. 31. Springer, Berlin (2013)MATHGoogle Scholar
Demir, L., Tunali, S., Eliiyi, D.T.: The state of the art on buffer allocation problem: a comprehensive survey. J. Intell. Manuf. 25(3), 371–392 (2014)CrossRefGoogle Scholar