Table 3: Boolean functions.
Function f(x) for x ∈ [0, 1, 2, 3, 4, 5. . ., 2
n
− 1]
NEG
[255, 254, 253, 252, 251, 250 ..., 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
F1
[223, 190, 249, 236, 243, 234, 241, 252, 183, 244, 229, 245, 179, 178, 225, 248, 237, 254, 173, 232, 171, 202, 201, 200,
247, 198, 228, 230, 195, 242, 233, 160, 215, 220, 205, 216, 218, 154, 221, 208, 213, 210, 212, 148, 147, 211, 217, 209,
239, 238, 141, 140, 235, 203, 193, 204, 135, 134, 199, 197, 131, 226, 129, 224, 63, 174, 253, 184, 251, 250, 189, 176,
191, 246, 180, 182, 51, 50, 185, 240, 47, 46, 175, 188, 139, 42, 161, 172, 231, 164, 181, 165, 227, 130, 33, 32, 31, 222, 153,
158, 219, 26, 25, 156, 159, 214, 151, 149, 146, 18, 144, 152, 207, 206, 157, 136, 138, 170, 169, 8, 133, 6, 5, 196, 3, 194,
137, 192, 255, 110, 109, 120, 107, 126, 125, 112, 103, 114, 116, 118, 123, 98, 121, 96, 79, 78, 111, 124, 75, 122, 97,
108, 71, 100, 117, 101, 115, 66, 113, 64, 127, 90, 89, 94, 83, 91, 81, 92, 95, 84, 87, 85, 82, 86, 80, 88, 77, 76, 93, 72, 74,
106, 105, 104, 69, 102, 68, 70, 99, 67, 73, 65, 55, 58, 57, 44, 187, 186, 49, 60, 119, 52, 37, 53, 35, 54, 177, 56, 45, 62, 61,
40, 59, 10, 9, 168, 167, 166, 36, 38, 163, 162, 41, 48, 23, 28, 13, 24, 155, 30, 29, 16, 21, 150, 20, 22, 27, 19, 145,
17, 143, 142, 15, 14, 43, 11, 1, 12, 39, 4, 7, 132, 2, 34, 0, 128]
term taken from the outer strategy. Then, the out-
put is a permutation p of the internal state, which is
not internally modified. The topological framework
proposed in (Bakiri et al., 2016) for the CIPRNG-
XOR and in (Contassot-Vivier et al., 2017) can be
applied, mutatis mutandis, to this generator. It is
then possible to state that iterations of the internal
function are chaotic on its iteration space, denoted
as X
32
= B
32
× J0, 31K
N
. And, using a topological
semi-conjugacy, that the permutation does not alter
such an unpredictable behavior. After having estab-
lished that the 8-bits ICG function, denoted as g
f
,
is strongly transitive on its iteration space X
8
, we
can first deduce that the discrete dynamical system
x
0
∈ X
8
, x
n+1
= g
f
(x
n
) is chaotic, and then that h
f
is
chaotic according to Devaney.
Finally, the whole generator with the permutation
p must be integrated inside the iterations, to see if the
output has a chaotic behavior when modifying the in-
put (internal state or strategy). To write the generator
as a discrete dynamical system, we need to introduce
the reverse permutation p
−1
. To do so, let us define
p : X
32
−→ X
32
(e, s) 7−→ (p(e), s),
its inverse being
p
−1
: X
32
−→ X
32
(e, s) 7−→ (p
−1
(e), s).
We can now introduce the following diagram:
X
32
h
f
−−−−→ X
32
x
p
−1
p
y
X
32
G
f
−−−−→ X
32
p
−1
and p are obviously continuous on (X
32
, d
32
),
which can be directly deduced by the sequential char-
acterization of the continuity. So the commutative di-
agram depicted above is a topological conjugacy, and
the generator
G
f
= p
−1
◦ h
f
◦ p
thus inherits the chaotic behavior of h
f
on (X
32
, d
32
).
4 PLATFORM AND HARDWARE
IMPLEMENTATION ON FPGA
In this section, the hardware implementation of the
PRNG described in this article is executed the test
platform presented in (Bakiri et al., 2016). It uses
a Xilinx Zynq-7000 (EPP) (Rajagopalan et al., 2011)
and an AXI core selector deployed as a wrapper for
PRNGs. The main methodology of comparison be-
tween PRNGs is based on Xilinx Vivado tool 16.4
and Zybo Board 125Mhz. For area comparison, we
only considered LUT and FF as follows:
(LUT + FF) × 8,
Rate, for its part, is the number of bits that are treated
or transferred in each delay unit (Bps).
Table 4 presents the results of six different im-
plementations of our proposal on FPGA with their
TestU01 statistical test evaluations. During these im-
plementations, we considered two distinct Boolean
functions, namely the negation and F1 as mentioned
in Section 3. Three PRNGs are used as strategies (in-
putted generators), which are LFSR113, Taus88, and
xorshift128. Obtained results are described hereafter.
Negation Function. Three implementations have
been realized and evaluated, see Table 4. Notice that
in these 3 evaluations the value of the minimum mod-
ular multiplication operand b used in the permutation
(see Section 3) function is not the same. To pass
TestU01, it must be equal to 95 for all strategies as
LFSR113, Tauss88, and xorshift128 (as a compari-
son, we found 277803737 for PCG32). We have ob-
tained that the negation function outperforms F1 in
terms of throughput and area. Additionally, it is obvi-
ously more efficient than its best competitors recalled
in this paper, as its throughput is between 1.0 and 4
times larger than the other chaotic PRNGs (that can-
not pass TestU01), while it is 8 times faster than the
linear PRNGs... with the exception of (Dabal and
Pelka, 2014) using the logistic map: it is true that
the latter has a throughput of 7.5 Gbps for 32bits, but
with 2 times less area (we discarded (Dabal and Pelka,
2014), as this latter is fully dependent on Matlab