Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2503778.2503784acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Splittable pseudorandom number generators using cryptographic hashing

Published: 23 September 2013 Publication History

Abstract

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.

References

[1]
L. Augustsson, M. Rittri, and D. Synek. Functional pearl: On generating unique names. J. Funct. Program., 4: 117--123, 1 1994.
[2]
E. Barker and J. Kelsey. Special Publication 800--90a: Recommendation for random number generation using deterministic random bit generators, 2012.
[3]
M. Bellare and P. Rogaway. Code-based game-playing proofs and the security of triple encryption. Cryptology ePrint Archive, Report 2004/331, 2004. http://eprint.iacr.org/2004/331.
[4]
M. Bellare and P. Rogaway. Introduction to modern cryptography, 2005. http://www.cs.ucsd.edu/mihir/cse207/classnotes.html.
[5]
M. Bellare, R. Canetti, and H. Krawczyk. Pseudorandom functions revisited: the cascade construction and its concrete security. In Foundations of Computer Science, pages 514--523, 1996.
[6]
M. Bellare, A. Desai, E. Jokipii, and P. Rogaway. A concrete security treatment of symmetric encryption. In Proc. Foundations of Computer Science, 1997, pages 394--403, 1998.
[7]
M. Bellare, K. Pietrzak, and P. Rogaway. Improved security analyses for CBC MACs. In Advances in Cryptology -- CRYPTO 2005, LNCS 3621, pages 527--545. Springer-Verlag, 2005.
[8]
M. Blum and S. Micali. How to generate cryptographically strong sequences of pseudo-random bits. SIAM J. Comput., 13 (4): 850--864, Nov. 1984.
[9]
D. R. L. Brown and K. Gjøsteen. A security analysis of NIST SP 800--90 elliptic curve random number generator. In Proc. Advances in cryptology -- CRYPTO '07, pages 466--481. Springer-Verlag, 2007.
[10]
F. W. Burton and R. L. Page. Distributed random number generation. J. Funct. Program., 2 (2): 203--212, 1992.
[11]
S.-j. Chang, R. Perlner, W. E. Burr, M. S. Turan, J. M. Kelsey, S. Paul, and L. E. Bassham. Third-Round Report of the SHA-3 Cryptographic Hash Algorithm Competition. NIST, 2012.
[12]
S. Chatterjee, A. Menezes, and P. Sarkar. Another look at tightness. In Proc. Selected Areas in Cryptography (SAC'11), LNCS. 7118, pages 293--319, 2012.
[13]
K. Claessen and J. Hughes. QuickCheck: a lightweight tool for random testing of Haskell programs. In Proc. International Conference on Functional programming, ICFP '00, pages 268--279. ACM, 2000.
[14]
K. Claessen, N. Smallbone, and J. Hughes. QuickSpec: Guessing formal specifications using testing. In Proc. Tests and Proofs, TAP'10, pages 6--21. Springer-Verlag, 2010.
[15]
J.-S. Coron, Y. Dodis, C. Malinaud, and P. Puniya. Merkle-damgård revisited: How to construct a hash function. In Advances in Cryptology -- CRYPTO 2005, LNCS 3621, pages 430--448. Springer-Verlag, 2005.
[16]
I. Damgård. A design principle for hash functions. In Advances in Cryptology -- CRYPTO '89, LNCS 435, pages 416--427. Springer, 1990.
[17]
N. Ferguson, S. Lucks, B. Schneier, D. Whiting, M. Bellare, T. Kohno, J. Callas, and J. Walker. The Skein hash function family, 2010. URL http://www.schneier.com/skein.pdf.
[18]
R. Fischlin and C. Schnorr. Stronger security proofs for rsa and rabin bits. In W. Fumy, editor, Advances in Cryptology -- EUROCRYPT '97, LNCS 1233, pages 267--279. Springer, 1997.
[19]
P. Frederickson, R. Hiromoto, T. L. Jordan, B. Smith, and T. Warnock. Pseudo-random trees in monte carlo. Parallel Computing, 1 (2): 175--180, 1984.
[20]
O. Goldreich, S. Goldwasser, and S. Micali. How to construct random functions. phJ. ACM, 33 (4): 792--807, Aug. 1986.
[21]
C. Hall, D. Wagner, J. Kelsey, and B. Schneier. Building PRFs from PRPs. In phAdvances in Cryptology -- CRYPTO '98, LNCS 1462, pages 370--389. Springer-Verlag, 1998.
[22]
D. R. C. Hill, C. Mazel, J. Passerat-Palmbach, and M. K. Traore. Distribution of random streams for simulation practitioners. phConcurrency and Computation: Practice and Experience, 2012.
[23]
S. Hirose. Security analysis oftextscdrbg usingtextschmac intextscnist sp 800--90. In K.-I. Chung, K. Sohn, and M. Yung, editors, phInformation Security Applications, pages 278--291. Springer-Verlag, 2009.
[24]
J. Håstad, R. Impagliazzo, L. A. Levin, and M. Luby. A pseudorandom generator from any One-way function. phSIAM Journal on Computing, 28: 12--24, 1999.
[25]
P. L'Ecuyer and R. Simard. TestU01: A C library for empirical testing of random number generators. phACM Trans. Math. Softw., 33 (4), 2007.
[26]
C. E. Leiserson, T. B. Schardl, and J. Sukha. Deterministic parallel random-number generation for dynamic-multithreading platforms. In phProc. Symp. on Principles and Practice of Parallel Programming, pages 193--204. ACM, 2012.
[27]
R. Leshchinskiy. Recycle your arrays! In phProc. Practical Aspects of Declarative Languages, PADL '09, pages 209--223. Springer-Verlag, 2009.
[28]
M. Mascagni and A. Srinivasan. Algorithm 806:textscsprng: a scalable library for pseudorandom number generation. phACM Trans. Math. Softw., 26 (3): 436--461, 2000.
[29]
M. Mascagni, S. A. Cuccaro, D. V. Pryor, and M. L. Robinson. Recent developments in parallel pseudorandom number generation. In phSIAM Conf. on Parallel Processing for Scientific Computing, volumetextscii, pages 524--529, 1993.
[30]
B. D. McCullough. The accuracy of econometric software. In D. A. Belsley and E. J. Kontoghiorghes, editors, phHandbook of Computational Econometrics, chapter 2, pages 55--79. Wiley, 2009.
[31]
S. Micali and C. P. Schnorr. Efficient, perfect polynomial random number generators. phJ. Cryptology, 3: 157--172, 1991.
[32]
S. Peyton-Jones, B. Smith, et al. Splittable random numbers. Mailing list discussion, 2010. URL http://www.haskell.org/pipermail/haskell-cafe/2010-November/085959.html.
[33]
P. Rogaway. Evaluation of some blockcipher modes of operation. Unpublished manuscript, 2011.
[34]
J. K. Salmon, M. A. Moraes, R. O. Dror, and D. E. Shaw. Parallel random numbers: as easy as 1, 2, 3. In phProc. High Performance Computing, Networking, Storage and Analysis, pages 1--12. ACM, 2011.
[35]
A. Sidorenko and B. Schoenmakers. Concrete security of the Blum-Blum-Shub pseudorandom generator. In phCryptography and Coding 2005, LNCS 3796, pages 355--375, 2005.
[36]
A. C. Yao. Theory and application of trapdoor functions. In phProc. Symp. Foundations of Computer Science, pages 80--91. IEEE, 1982.

Cited By

View all
  • (2024)Type-Level Property Based TestingProceedings of the 9th ACM SIGPLAN International Workshop on Type-Driven Development10.1145/3678000.3678206(37-49)Online publication date: 28-Aug-2024
  • (2024)Parallel Algebraic Effect HandlersProceedings of the ACM on Programming Languages10.1145/36746518:ICFP(756-788)Online publication date: 15-Aug-2024
  • (2022)A Dynamic Repository Approach for Small File Management With Fast Access Time on Hadoop Cluster: Hash Based Extended Hadoop ArchiveIEEE Access10.1109/ACCESS.2022.316343310(36856-36867)Online publication date: 2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Haskell '13: Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
September 2013
158 pages
ISBN:9781450323833
DOI:10.1145/2503778
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 September 2013

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. haskell
  2. provable security
  3. splittable pseudorandom number generators

Qualifiers

  • Research-article

Conference

ICFP'13
Sponsor:
ICFP'13: ACM SIGPLAN International Conference on Functional Programming
September 23 - 24, 2013
Massachusetts, Boston, USA

Acceptance Rates

Haskell '13 Paper Acceptance Rate 13 of 33 submissions, 39%;
Overall Acceptance Rate 57 of 143 submissions, 40%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)27
  • Downloads (Last 6 weeks)2
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Type-Level Property Based TestingProceedings of the 9th ACM SIGPLAN International Workshop on Type-Driven Development10.1145/3678000.3678206(37-49)Online publication date: 28-Aug-2024
  • (2024)Parallel Algebraic Effect HandlersProceedings of the ACM on Programming Languages10.1145/36746518:ICFP(756-788)Online publication date: 15-Aug-2024
  • (2022)A Dynamic Repository Approach for Small File Management With Fast Access Time on Hadoop Cluster: Hash Based Extended Hadoop ArchiveIEEE Access10.1109/ACCESS.2022.316343310(36856-36867)Online publication date: 2022
  • (2021)Processing Erroneous Situations in Large Blockchain Networks by a Consensus Algorithm Based on the Byzantine Generals’ Problem SolutionHerald of the Bauman Moscow State Technical University. Series Instrument Engineering10.18698/0236-3933-2021-4-27-40(27-40)Online publication date: Dec-2021
  • (2021)LXM: better splittable pseudorandom number generators (and almost as fast)Proceedings of the ACM on Programming Languages10.1145/34855255:OOPSLA(1-31)Online publication date: 15-Oct-2021
  • (2021)Multiple Streams with Recurrence-Based, Counter-Based, and Splittable Random Number Generators2021 Winter Simulation Conference (WSC)10.1109/WSC52266.2021.9715397(1-16)Online publication date: 12-Dec-2021
  • (2019) Computable Variants of AIXI which are More Powerful than AIXI tl Journal of Artificial General Intelligence10.2478/jagi-2019-000110:1(1-23)Online publication date: 29-Apr-2019
  • (2019)Coverage guided, property based testingProceedings of the ACM on Programming Languages10.1145/33606073:OOPSLA(1-29)Online publication date: 10-Oct-2019
  • (2017)HLogo: A Haskell STM-Based Parallel Variant of NetLogoSimulation and Modeling Methodologies, Technologies and Applications10.1007/978-3-319-69832-8_7(97-119)Online publication date: 28-Oct-2017
  • (2015)Random number generation with multiple streams for sequential and parallel computingProceedings of the 2015 Winter Simulation Conference10.5555/2888619.2888623(31-44)Online publication date: 6-Dec-2015
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media