skip to main content
10.1145/3409390.3409402acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicppConference Proceedingsconference-collections
research-article

BSRNG: A High Throughput Parallel BitSliced Approach for Random Number Generators

Published:17 August 2020Publication History

ABSTRACT

In this work, a high throughput method for generating high-quality Pseudo-Random Numbers using the bitslicing technique is proposed. In such a technique, instead of the conventional row-major data representation, column-major data representation is employed, which allows the bitslicing implementation to take full advantage of all the available datapath of the hardware platform. By employing this data representation as building blocks of algorithms, we showcase the capability and scalability of our proposed method in various PRNG methods in the category of block and stream ciphers. The LFSR-based (Linear Feedback Shift Register) nature of the PRNG in our implementation perfectly suits the GPU’s many-core structure due to its register oriented architecture. In the proposed SIMD vectorized GPU implementation, each GPU thread can generate several 32 pseudo-random bits in each LFSR clock cycle. We then compare our implementation with some of the most significant PRNGs that display a satisfactory performance throughput and randomness criteria. The proposed implementation successfully passes the NIST test for statistical randomness and bit-wise correlation criteria. For computer-based PRNG and the optical solutions in terms of performance and performance per cost, this technique is efficient while maintaining an acceptable randomness measure. Our highest performance among all of the implemented CPRNGs with the proposed method is achieved by the MICKEY 2.0 algorithm, which shows 40% improvement over state of the art NVIDIA’s proprietary high-performance PRNG, cuRAND library, achieving 2.72 Tb/s of throughput on the affordable NVIDIA GTX 2080 Ti.

References

  1. Rudolf Ahlswede and Imre Csiszár. 1993. Common randomness in information theory and cryptography. part i: secret sharing. IEEE Transactions on Information Theory 39, 4 (1993).Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Armin Ahmadzadeh, Omid Hajihassani, and Saeid Gorgin. 2018. A high-performance and energy-efficient exhaustive key search approach via GPU on DES-like cryptosystems. The Journal of Supercomputing 74, 1 (2018), 160–182.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Mohammed Abdul Samad AL-khatib and Auqib Hamid Lone. 2018. Acoustic lightweight pseudo random number generator based on cryptographically secure LFSR. International Journal of Computer Network and Information Security 11, 2(2018), 38.Google ScholarGoogle Scholar
  4. Steve Babbage, C Canniere, Anne Canteaut, Carlos Cid, Henri Gilbert, Thomas Johansson, Matthew Parker, Bart Preneel, Vincent Rijmen, and Matthew Robshaw. 2008. The eSTREAM portfolio. eSTREAM, ECRYPT Stream Cipher Project(2008), 1–6.Google ScholarGoogle Scholar
  5. Steve Babbage and Matthew Dodd. 2006. The stream cipher MICKEY 2.0. ECRYPT Stream Cipher(2006).Google ScholarGoogle Scholar
  6. Eli Biham. 1997. A fast new DES implementation in software. In International Workshop on Fast Software Encryption. Springer, 260–272.Google ScholarGoogle ScholarCross RefCross Ref
  7. Kurt Binder, Dieter Heermann, Lyle Roelofs, A John Mallinckrodt, and Susan McKay. 1993. Monte Carlo simulation in statistical physics. Computers in Physics 7, 2 (1993), 156–157.Google ScholarGoogle ScholarCross RefCross Ref
  8. Ihsan Cicek, Ali Emre Pusane, and Gunhan Dundar. 2014. A novel design method for discrete time chaos based true random number generators. INTEGRATION, the VLSI journal 47, 1 (2014), 38–47.Google ScholarGoogle Scholar
  9. Anders Eklund, Paul Dufort, Daniel Forsberg, and Stephen M LaConte. 2013. Medical image processing on the GPU–Past, present and future. Medical image analysis 17, 8 (2013), 1073–1094.Google ScholarGoogle Scholar
  10. Shuang Gao and Gregory D Peterson. 2013. GASPRNG: GPU accelerated scalable parallel random number generator library. Computer Physics Communications 184, 4 (2013), 1241–1249.Google ScholarGoogle ScholarCross RefCross Ref
  11. Benedikt Gierlichs, Lejla Batina, Christophe Clavier, Thomas Eisenbarth, Aline Gouget, Helena Handschuh, Timo Kasper, Kerstin Lemke-Rust, Stefan Mangard, Amir Moradi, 2008. Susceptibility of eSTREAM candidates towards side channel analysis. (2008).Google ScholarGoogle Scholar
  12. Chunye Gong, Jie Liu, Lihua Chi, Qingfeng Hu, Li Deng, and Zhenghu Gong. 2010. Accelerating Pseudo-Random Number Generator for MCNP on GPU. In AIP Conference Proceedings, Vol. 1281. AIP, 1335–1337.Google ScholarGoogle Scholar
  13. Antonio Gulli and Sujit Pal. 2017. Deep Learning with Keras. Packt Publishing Ltd.Google ScholarGoogle Scholar
  14. O. Hajihassani, S. Khalaj Monfared, S. H. Khasteh, and S. Gorgin. 2019. Fast AES Implementation: A High-throughput Bitsliced Approach. IEEE Transactions on Parallel and Distributed Systems (2019), 1–1.Google ScholarGoogle Scholar
  15. Martin Hell, Thomas Johansson, and Willi Meier. 2007. Grain: a stream cipher for constrained environments. IJWMC 2, 1 (2007), 86–93.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Benjamin Jun and Paul Kocher. 1999. The Intel random number generator. Cryptography Research Inc. white paper 27 (1999), 1–8.Google ScholarGoogle Scholar
  17. Ido Kanter, Yaara Aviad, Igor Reidler, Elad Cohen, and Michael Rosenbluh. 2010. An optical ultrafast random bit generator. Nature Photonics 4, 1 (2010), 58.Google ScholarGoogle ScholarCross RefCross Ref
  18. Mohammad Sina Kiarostami, Mohammad Reza Daneshvaramoli, Saleh Khalaj Monfared, Dara Rahmati, and Saeid Gorgin. 2019. Multi-Agent non-Overlapping Pathfinding with Monte-Carlo Tree Search. In 2019 IEEE Conference on Games (CoG). IEEE, 1–4.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Philip Koopman. 2002. 32-bit cyclic redundancy codes for internet applications. In Proceedings International Conference on Dependable Systems and Networks. IEEE, 459–468.Google ScholarGoogle ScholarCross RefCross Ref
  20. William B Langdon. 2008. A fast high quality pseudo random number generator for graphics processing units. In 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence). IEEE, 459–465.Google ScholarGoogle ScholarCross RefCross Ref
  21. William B Langdon. 2009. A fast high quality pseudo random number generator for nVidia CUDA. In Proceedings of the 11th Annual Conference Companion on Genetic and Evolutionary Computation Conference: Late Breaking Papers. ACM, 2511–2514.Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Pierre L’Ecuyer. 1990. Random numbers for simulation. Commun. ACM 33, 10 (1990), 85–97.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Pierre L’Ecuyer and Richard Simard. 2007. TestU01: AC library for empirical testing of random number generators. ACM Transactions on Mathematical Software (TOMS) 33, 4 (2007), 22.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Pu Li, Ya Guo, Yanqiang Guo, Yuanlong Fan, Xiaomin Guo, Xianglian Liu, Kunying Li, K Alan Shore, Yuncai Wang, and Anbang Wang. 2018. Ultrafast fully photonic random bit generator. Journal of Lightwave Technology 36, 12 (2018), 2531–2540.Google ScholarGoogle ScholarCross RefCross Ref
  25. Yang Liu, Qi Zhao, Ming-Han Li, Jian-Yu Guan, Yanbao Zhang, Bing Bai, Weijun Zhang, Wen-Zhao Liu, Cheng Wu, Xiao Yuan, 2018. Device-independent quantum random-number generation. Nature 562, 7728 (2018), 548.Google ScholarGoogle Scholar
  26. George Marsaglia 2003. Xorshift rngs. Journal of Statistical Software 8, 14 (2003), 1–6.Google ScholarGoogle ScholarCross RefCross Ref
  27. Michael Mascagni. 1999. SPRNG: A scalable library for pseudorandom number generation. In Recent Advances in Numerical Methods and Applications II. World Scientific, 284–295.Google ScholarGoogle Scholar
  28. Michael Mascagni and Ashok Srinivasan. 2000. Algorithm 806: SPRNG: A scalable library for pseudorandom number generation. ACM Transactions on Mathematical Software (TOMS) 26, 3 (2000), 436–461.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Makoto Matsumoto and Takuji Nishimura. 1998. Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator. ACM Transactions on Modeling and Computer Simulation (TOMACS) 8, 1(1998), 3–30.Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Darius Mercadier, Pierre-Évariste Dagand, Lionel Lacassagne, and Gilles Muller. 2018. Usuba: optimizing & trustworthy bitslicing compiler. In Proceedings of the 2018 4th Workshop on Programming Models for SIMD/Vector Processing. 1–8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Nimalan Nandapalan, Richard P Brent, Lawrence M Murray, and Alistair P Rendell. 2011. High-performance pseudo-random number generation on graphics processing units. In International Conference on Parallel Processing and Applied Mathematics. Springer, 609–618.Google ScholarGoogle Scholar
  32. Naoki Nishikawa, Hideharu Amano, and Keisuke Iwai. 2017. Implementation of Bitsliced AES Encryption on CUDA-Enabled GPU. In Network and System Security, Zheng Yan, Refik Molva, Wojciech Mazurczyk, and Raimo Kantola (Eds.). Springer International Publishing, Cham, 273–287.Google ScholarGoogle Scholar
  33. Wai-Man Pang, Tien-Tsin Wong, and Pheng-Ann Heng. 2008. Generating massive high-quality random numbers using GPU. In 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence). IEEE, 841–847.Google ScholarGoogle ScholarCross RefCross Ref
  34. Saeid Rahmani, Armin Ahmadzadeh, Omid Hajihassani, S Mirhosseini, and Saeid Gorgin. 2016. An efficient multi-core and many-core implementation of k-means clustering. In ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE). 128–131.Google ScholarGoogle Scholar
  35. Vincent Rijmen and Joan Daemen. 2001. Advanced encryption standard. Proceedings of Federal Information Processing Standards Publications, National Institute of Standards and Technology(2001), 19–22.Google ScholarGoogle Scholar
  36. Andrew Rukhin, Juan Soto, James Nechvatal, Miles Smid, and Elaine Barker. 2001. A statistical test suite for random and pseudorandom number generators for cryptographic applications. Technical Report. Booz-Allen and Hamilton Inc Mclean Va.Google ScholarGoogle Scholar
  37. Guido Di Patrizio Stanchieri, Andrea De Marcellis, Elia Palange, and Marco Faccio. 2019. A True Random Number Generator Architecture Based on a Reduced Number of FPGA Primitives. AEU-International Journal of Electronics and Communications (2019).Google ScholarGoogle Scholar
  38. Berk Sunar. 2009. True random number generators for cryptography. In Cryptographic Engineering. Springer, 55–73.Google ScholarGoogle Scholar
  39. Myles Sussman, William Crutchfield, and Matthew Papakipos. 2006. Pseudorandom number generation on the GPU. In Proceedings of the 21st ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hardware. ACM, 87–94.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Robert Szerwinski and Tim Güneysu. 2008. Exploiting the power of GPUs for asymmetric cryptography. In International Workshop on Cryptographic hardware and embedded systems. Springer, 79–99.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Je Sen Teh, Azman Samsudin, Mishal Al-Mazrooie, and Amir Akhavan. 2015. GPUs and chaos: a new true random number generator. Nonlinear Dynamics 82, 4 (2015), 1913–1922.Google ScholarGoogle ScholarCross RefCross Ref
  42. NVIDIA Corporation. [n.d.]. The NVIDIA CUDA Random Number Generation library (cuRAND). https://developer.nvidia.com/curandGoogle ScholarGoogle Scholar
  43. David Barrie Thomas, Lee Howes, and Wayne Luk. 2009. A comparison of CPUs, GPUs, FPGAs, and massively parallel processor arrays for random number generation. In Proceedings of the ACM/SIGDA international symposium on Field programmable gate arrays. ACM, 63–72.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. John von Neumann. 1963. Various techniques used in connection with random digits. John von Neumann, Collected Works 5 (1963), 768–770.Google ScholarGoogle Scholar
  45. Hesong Xu, Nicola Massari, Leonardo Gasparini, Alessio Meneghetti, and Alessandro Tomasi. 2019. A SPAD-based random number generator pixel based on the arrival time of photons. Integration 64(2019), 22–28.Google ScholarGoogle ScholarCross RefCross Ref

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    ICPP Workshops '20: Workshop Proceedings of the 49th International Conference on Parallel Processing
    August 2020
    186 pages
    ISBN:9781450388689
    DOI:10.1145/3409390

    Copyright © 2020 ACM

    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 ACM 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]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 17 August 2020

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    Overall Acceptance Rate91of313submissions,29%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format .

View HTML Format