The Journal of Supercomputing

, Volume 71, Issue 10, pp 3877–3903 | Cite as

Efficient and cryptographically secure generation of chaotic pseudorandom numbers on GPU

  • Christophe Guyeux
  • Raphaël Couturier
  • Pierre-Cyrille Héam
  • Jacques M. Bahi


In this paper, we present a new pseudorandom number generator (PRNG) on graphics processing units (GPU). This PRNG is based on the so-called chaotic iterations. It is firstly proven to be chaotic according to the Devaney’s formulation. We, thus, propose an efficient implementation for GPU that successfully passes the BigCrush tests, deemed to be the hardest battery of tests in TestU01. Experiments show that this PRNG can generate about 20 billion of random numbers per second on Tesla C1060 and NVidia GTX280 cards. It is then established that under reasonable assumptions, the proposed PRNG can be cryptographically secure. A chaotic version of the Blum–Goldwasser asymmetric key encryption scheme is finally proposed.


Pseudo random number Parallelization GPU Cryptography Chaos 



This work is partially funded by the Labex ACTION program (contract ANR-11-LABX-01-01).


  1. 1.
    Bahi JM, Couchot J-F, Guyeux C, Richard A (2011) On the link between strongly connected iteration graphs and chaotic boolean discrete-time dynamical systems. In: FCT’11, 18th Int. Symp. on Fundamentals of Computation Theory of LNCS, vol 6914. Oslo, pp 126–137Google Scholar
  2. 2.
    Bahi JM, Guyeux C (2010) Hash functions using chaotic iterations. J Algorithm Comput Technol 4(2):167–181zbMATHMathSciNetCrossRefGoogle Scholar
  3. 3.
    Bahi JM, Guyeux C (2010) Topological chaos and chaotic iterations, application to hash functions. In:WCCI’10, IEEE World Congress on Computational Intelligence. Barcelona, pp 1–7 (Best paper award)Google Scholar
  4. 4.
    Bahi JM, Guyeux C, Wang Q (2009) A novel pseudo-random generator based on discrete chaotic iterations. In: INTERNET’09, 1-st Int. Conf. on Evolving Internet. Cannes, pp 71–76Google Scholar
  5. 5.
    Bahi J, Fang X, Guyeux C (2012) An optimization technique on pseudorandom generators based on chaotic iterations. In: INTERNET’2012, 4-th Int. Conf. on Evolving Internet. Venice, pp 31–36Google Scholar
  6. 6.
    Banks J, Brooks J, Cairns G, Stacey P (1992) On Devaney’s definition of chaos. Amer. Math. Monthly 99:332–334zbMATHMathSciNetCrossRefGoogle Scholar
  7. 7.
    Barker E, Roginsky A (2011) NIST special publication 800-131A—recommendation for the transitioning of cryptographic algorithms and key sizesGoogle Scholar
  8. 8.
    Blum L, Blum M, Shub M (1986) A simple unpredictable pseudo-random number generator. SIAM J Comput 15:364–383zbMATHMathSciNetCrossRefGoogle Scholar
  9. 9.
    Blum M, Goldwasser S (1985) An efficient probabilistic public key encryption scheme which hides all partial information. In: Proceedings of CRYPTO 84 on Advances in cryptology. Springer-Verlag New York, Inc, New York, pp 289–302Google Scholar
  10. 10.
    Couturier R (ed) (2013) Designing scientific applications on GPUs. Numerical Analysis and Scientific Computing. Chapman and Hall/CRC, p 498Google Scholar
  11. 11.
    Devaney RL (1989) An introduction to chaotic dynamical systems, 2nd edn. Addison-Wesley, Redwood CityzbMATHGoogle Scholar
  12. 12.
    Fischlin R, Schnorr CP (1997) Stronger security proofs for rsa and rabin bits. In: Proceedings of the 16th annual international conference on Theory and application of cryptographic techniques. EUROCRYPT’97, Springer-Verlag, Berlin, Heidelberg, pp 267–279Google Scholar
  13. 13.
    Goldreich O (2007) Foundations of cryptography: basic tools. Cambridge University Press, New YorkGoogle Scholar
  14. 14.
    Guyeux C, Bahi J (2010) An improved watermarking algorithm for internet applications. In: INTERNET’2010. The 2nd Int. Conf. on Evolving Internet. Valencia, pp 119–124Google Scholar
  15. 15.
    Jenkins RJ (1996) ISAAC. In: IWFSE: International Workshop on Fast Software Encryption, LNCS, vol 1039. pp 41–49Google Scholar
  16. 16.
    Knuth DE (1997) Seminum Algorithms, vol 3, 3rd edn. Addison-Wesley, Reading, MAGoogle Scholar
  17. 17.
    L’Ecuyer P, Simard RJ (2007) TestU01: A C library for empirical testing of random number generators. ACM Trans. Math. Softw 33(4):22Google Scholar
  18. 18.
    Marsaglia G (1996) Diehard: a battery of tests of randomness.
  19. 19.
    Marsaglia G (2003) Xorshift rngs. J Stat Softw 8(14):1–6Google Scholar
  20. 20.
    Nvidia (2011) Cuda cublas library. Version 4.0Google Scholar
  21. 21.
    Nvidia (2011) Curand library. Version 4.0Google Scholar
  22. 22.
    Pang W-M, Wong T-T, Heng P-A (2008) Generating massive high-quality random numbers using GPU. In: Jun Wang (eds) IEEE World Congress on Computational Intelligence. IEEE Computational Intelligence Society, IEEE Press, Hong KongGoogle Scholar
  23. 23.
    Robert F (1986) Discrete iterations: a metric study, vol 6. Springer Series in Computational MathematicsGoogle Scholar
  24. 24.
    Sidorenko A, Schoenmakers B (2005) Concrete security of the blum-blum-shub pseudorandom generator. In: Proceedings of the 10th International Conference on Cryptography and Coding, IMA’05, Springer-Verlag, Berlin, Heidelberg, pp 355–375Google Scholar
  25. 25.
    Thomas DB, Howes LW, Luk W (2009) A comparison of CPUs, GPUs, FPGAs, and massively parallel processor arrays for random number generation. In: Chow P, Cheung PYK(eds) Proceedings of the ACM/SIGDA 17th International Symposium on Field Programmable Gate Arrays, FPGA 2009, ACM, Monterey, pp 63–72Google Scholar
  26. 26.
    Zhmurov A, Rybnikov K, Kholodov Y, Barsegov V (2011) Generation of random numbers on graphics processors: forced indentation in silico of the bacteriophage hk97. J. Phys. Chem. B 115(18):5278–5288CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2015

Authors and Affiliations

  • Christophe Guyeux
    • 1
  • Raphaël Couturier
    • 1
  • Pierre-Cyrille Héam
    • 1
  • Jacques M. Bahi
    • 1
  1. 1.FEMTO-ST Institute, UMR 6174 CNRSUniversity of Bourgogne Franche ComteBelfortFrance

Personalised recommendations