True Random Number Generators Secure in a Changing Environment
A true random number generator (TRNG) usually consists of two components: an “unpredictable” source with high entropy, and a randomness extractor — a function which, when applied to the source, produces a result that is statistically close to the uniform distribution. When the output of a TRNG is used for cryptographic needs, it is prudent to assume that an adversary may have some (limited) influence on the distribution of the high-entropy source. In this work:
We define a mathematical model for the adversary’s influence on the source.
We show a simple and efficient randomness extractor and prove that it works for all sources of sufficiently high-entropy, even if individual bits in the source are correlated.
Security is guaranteed even if an adversary has (bounded) influence on the source.
Our approach is based on a related notion of “randomness extraction” which emerged in complexity theory. We stress that the statistical randomness of our extractor’s output is proven, and is not based on any unproven assumptions, such as the security of cryptographic hash functions.
A sample implementation of our extractor and additional details can be found at a dedicated web page [Web].
- [BR94]Bellare, M., Rompel, J.: Randomness-efficient oblivious sampling. In: 35th Annual Symposium on Foundations of Computer Science (1994)Google Scholar
- [ErCS94]Eastlake III, D., Crocker, S., Schiller, J.: Randomness recommendations for security, RFC 1750 (December 1994)Google Scholar
- [Gla02]Gladman, B.: A specification for Rijndael, the AES algorithm (2002), Available from http://fp.gladman.plus.com/cryptography_technology/rijndael/aesspec.pdf
- [GW96]Goldberg, I., Wagner, D.: Randomness and the netscape browser. Dr. Dobb’s Journal, 66–70 (1996)Google Scholar
- [ILL89]Impagliazzo, R., Levin, L.A., Luby, M.: Pseudorandom generation from one-way functions. In: Proceedings of the 21st ACM Symposium on Theory of Computing (1989)Google Scholar
- [JK99]Jun, B., Kocher, P.: The Intel random number generator. Technical report, Cryptography Research Inc. (1999), Available from http://www.intel.com/design/security/rng/rngppr.htm
- [Mar95]Marsaglia, G.: DIEHARD, a battery of tests for random number generators (1995), Available from http://stat.fsu.edu/~geo/diehard.html
- [NTS99]Nisan, N., Ta-Shma, A.: Extracting randomness: A survey and new constructions. JCSS: Journal of Computer and System Sciences 58 (1999)Google Scholar
- [Sha02]Shaltiel, R.: Recent developments in extractors. Bulletin of the European Association for Theoretical Computer Science 77 (2002)Google Scholar
- [TV02]Trevisan, L., Vadhan, L.: Pseudorandomness and average-case complexity via uniform reductions. In: Proceedings of the 17th Annual Conference on Computational Complexity (2002)Google Scholar
- [vN51]von Neumann, J.: Various techniques used in connection with random digits. Applied Math. Series 12, 36–38 (1951)Google Scholar
- [WC81]Wegman, M.N., Carter, J.L.: New hash functions and their use in authentication and set equality. JCSS: Journal of Computer and System Sciences 22 (1981)Google Scholar
- [Web]Web page for this paper, Available from http://www.wisdom.weizmann.ac.il/~tromer/trng/
- [Zim95]Zimmermann, P.R.: PGP: Source Code and Internals. MIT Press, Cambridge (1995)Google Scholar