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