Nonlinear Dyn DOI 10.1007/s11071-017-3755-z ORIGINAL PAPER Hardware implementation of pseudo-random number generators based on chaotic maps Luis Gerardo de la Fraga · Esteban Torres-Pérez · Esteban Tlelo-Cuautle · Cuauhtemoc Mancillas-López Received: 22 February 2017 / Accepted: 16 August 2017 © Springer Science+Business Media B.V. 2017 Abstract We show the usefulness of bifurcation dia- grams to implement a pseudo-random number gen- erator (PRNG) based on chaotic maps. We provide details on the selection of the best parameter values to obtain high entropy and positive Lyapunov expo- nent from the bifurcation diagram of four chaotic maps, namely: Bernoulli shift map, tent, zigzag, and Boru- jeni maps. The binary sequences obtained from these maps are analyzed to implement a PRNG both in soft- ware and in hardware. The software implementation is realized using 32 and 64 bits microprocessor architec- tures, and with floating point and fixed point computer arithmetic. The hardware implementation is done by using a field-programmable gate array (FPGA) archi- tecture. We developed a serial communication interface between the PRNG on the FPGA and a personal com- puter to obtain the generated sequences. We validate the randomness of the generated binary sequences with the NIST test suite 800-22-a both in floating point and fixed point arithmetic. At the end, we show that those chaotic This work is partially supported by CONACyT-Mexico under project 237991. L. G. de la Fraga (B ) · E. Tlelo-Cuautle · C. Mancillas-López Cinvestav, Computer ScienceDepartment, Av. IPN 2508, 07360 Mexico City, Mexico e-mail: fraga@cs.cinvestav.mx E. Torres-Pérez · E. Tlelo-Cuautle INAOE, Department of Electronics, Luis Enrique Erro No. 1, 72840 Tonantzintla, Puebla, Mexico e-mail: etlelo@inaoep.mx maps are suitable to implement a PRNG but accord- ing to the hardware resources, the one based on the Bernoulli shift map is better. In addition, another advan- tage is that the required initial value for the sequences can be within the whole interval [−1, 1], including its bounds. 1 Introduction In 1999, Intel introduced a silicon-based random num- ber generator (RNG) that was incorporated across its motherboards, chipsets and desktop systems. That RNG was the first of Intel’s family of primitives, released for data and communications protection within the PC hardware [1]. Intel suggested that to define the concept of a RNG, it is first necessary to understand the idea of randomness, which is typically associated with unpredictability, chance and luck. The area of mathe- matics provides a precise definition of randomness that can then be applied toward the evaluation of a RNG. The author in [2] defines random numbers as a sequence of independent numbers with a specified dis- tribution and a specified probability of falling in any given range of values. As a result, the ideal RNG will provide a stream of uniformly distributed, nondeter- ministic, and independent bits over an infinite data set. In addition, as nowadays known, because the mathe- matical evaluation of randomness is difficult, it is only possible to use statistical analyses on sample data sets to detect characteristics that point to non-randomness, 123