How to generate cryptographically strong sequences of pseudo-random bits
SIAM Journal on Computing
How to construct random functions
Journal of the ACM (JACM)
A Pseudorandom Generator from any One-way Function
SIAM Journal on Computing
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Algorithm 806: SPRNG: a scalable library for pseudorandom number generation
ACM Transactions on Mathematical Software (TOMS)
A Design Principle for Hash Functions
CRYPTO '89 Proceedings of the 9th Annual International Cryptology Conference on Advances in Cryptology
CRYPTO '98 Proceedings of the 18th Annual International Cryptology Conference on Advances in Cryptology
A Concrete Security Treatment of Symmetric Encryption
FOCS '97 Proceedings of the 38th Annual Symposium on Foundations of Computer Science
Pseudorandom functions revisited: the cascade construction and its concrete security
FOCS '96 Proceedings of the 37th Annual Symposium on Foundations of Computer Science
TestU01: A C library for empirical testing of random number generators
ACM Transactions on Mathematical Software (TOMS)
Theory and application of trapdoor functions
SFCS '82 Proceedings of the 23rd Annual Symposium on Foundations of Computer Science
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Pseudo-random trees in Monte Carlo
Parallel Computing
Stronger security proofs for RSA and rabin bits
EUROCRYPT'97 Proceedings of the 16th annual international conference on Theory and application of cryptographic techniques
A security analysis of the NIST SP 800-90 elliptic curve random number generator
CRYPTO'07 Proceedings of the 27th annual international cryptology conference on Advances in cryptology
QuickSpec: guessing formal specifications using testing
TAP'10 Proceedings of the 4th international conference on Tests and proofs
Parallel random numbers: as easy as 1, 2, 3
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Deterministic parallel random-number generation for dynamic-multithreading platforms
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Merkle-Damgård revisited: how to construct a hash function
CRYPTO'05 Proceedings of the 25th annual international conference on Advances in Cryptology
Improved security analyses for CBC MACs
CRYPTO'05 Proceedings of the 25th annual international conference on Advances in Cryptology
Concrete security of the blum-blum-shub pseudorandom generator
IMA'05 Proceedings of the 10th international conference on Cryptography and Coding
SAC'11 Proceedings of the 18th international conference on Selected Areas in Cryptography
Hi-index | 0.00 |
We propose a new splittable pseudorandom number generator (PRNG) based on a cryptographic hash function. Splittable PRNGs, in contrast to linear PRNGs, allow the creation of two (seemingly) independent generators from a given random number generator. Splittable PRNGs are very useful for structuring purely functional programs, as they avoid the need for threading around state. We show that the currently known and used splittable PRNGs are either not efficient enough, have inherent flaws, or lack formal arguments about their randomness. In contrast, our proposed generator can be implemented efficiently, and comes with a formal statements and proofs that quantify how 'random' the results are that are generated. The provided proofs give strong randomness guarantees under assumptions commonly made in cryptography.