2 \subsection{Motivations}
3 Let us us first recall the chaos theoretical context presented
4 in~\cite{bcgr11:ip}. In this article, the space of interest
5 is $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$
6 and the iteration function $\mathcal{H}_f$ is
8 $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$
11 \mathcal{H}_f(x,s)=(F_f(x,s_0),\sigma(s)).
14 $\sigma: \llbracket1;{\mathsf{N}}\rrbracket^{\Nats} \longrightarrow
15 \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}
17 is a shift operation on sequences (\textit{i.e.}, a function that removes the
18 first element of the sequence) formally defined with
20 \sigma((u^k)_{k \in \Nats}) = (u^{k+1})_{k \in \Nats}.
23 We have proven~\cite[Theorem 1]{bcgr11:ip} that
24 $\mathcal{H}_f$ is chaotic in
25 $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$
26 if and only if $\Gamma(f)$ is strongly connected.
27 However, the corollary which would say that $\chi_{\textit{14Secrypt}}$ is chaotic
28 cannot be directly deduced since we do not output all the successive
29 values of iterating $F_f$. Only a few of them is concerned and
30 any subsequence of a chaotic sequence is not necessarily
31 a chaotic sequence too.
32 This necessitates a rigorous proof, which is the aim of this section.
33 Let us firstly recall the theoretical framework in which this research takes place.
38 \subsection{Devaney's Chaotic Dynamical Systems}
39 \label{subsec:Devaney}
42 Consider a topological space $(\mathcal{X},\tau)$ and a continuous function $f :
43 \mathcal{X} \rightarrow \mathcal{X}$~\cite{Devaney}.
46 The function $f$ is said to be \emph{topologically transitive} if, for any pair of open sets
47 $U,V \subset \mathcal{X}$, there exists $k>0$ such that $f^k(U) \cap V \neq
52 An element $x$ is a \emph{periodic point} for $f$ of period $n\in \mathds{N}^*$
53 if $f^{n}(x)=x$.% The set of periodic points of $f$ is denoted $Per(f).$
57 $f$ is said to be \emph{regular} on $(\mathcal{X}, \tau)$ if the set of periodic
58 points for $f$ is dense in $\mathcal{X}$: for any point $x$ in $\mathcal{X}$,
59 any neighborhood of $x$ contains at least one periodic point (without
60 necessarily the same period).
64 \begin{definition}[Devaney's formulation of chaos~\cite{Devaney}]
65 The function $f$ is said to be \emph{chaotic} on $(\mathcal{X},\tau)$ if $f$ is regular and
66 topologically transitive.
69 The chaos property is strongly linked to the notion of ``sensitivity'', defined
70 on a metric space $(\mathcal{X},d)$ by:
73 \label{sensitivity} The function $f$ has \emph{sensitive dependence on initial conditions}
74 if there exists $\delta >0$ such that, for any $x\in \mathcal{X}$ and any
75 neighborhood $V$ of $x$, there exist $y\in V$ and $n > 0$ such that
76 $d\left(f^{n}(x), f^{n}(y)\right) >\delta $.
78 The constant $\delta$ is called the \emph{constant of sensitivity} of $f$.
81 Indeed, Banks \emph{et al.} have proven in~\cite{Banks92} that when $f$ is
82 chaotic and $(\mathcal{X}, d)$ is a metric space, then $f$ has the property of
83 sensitive dependence on initial conditions (this property was formerly an
84 element of the definition of chaos).
87 \subsection{A Metric Space for PRNG Iterations}
89 % Define by $\mathcal{S}_X$ the set of sequences whose elements belong in $X \subset \mathds{N}, X \neq \varnothing$,
90 % that is, $\mathcal{S}_X = \mathcal{X}^\mathds{N}$.
91 % Let $\mathsf{N} \in \mathds{N}^\ast$, $f:\mathds{B}^\mathsf{N} \rightarrow \mathds{B}^\mathsf{N}$, and
92 % $\mathcal{P} \subset \mathds{N}^\ast$ a non empty and finite set of integers.
94 % Any couple $(u,v) \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket} \times \mathcal{S}_\mathcal{P}$ defines
95 % a ``chaotic iterations based'' pseudorandom number generator, which is denoted by $\textit{CIPRNG}_f^2(u,v)$~\cite{wbg10:ip}. It is
101 % x^0 \in \mathds{B}^\mathsf{N}\\
102 % \forall n \in \mathds{N}, \forall i \in \llbracket 1, \mathsf{N} \rrbracket, x_i^{n+1} = \left\{ \begin{array}{ll} f(x^n)_i & \text{if }~ i=u^n \\ x_i^n & \text{else} \end{array} \right.\\
103 % \forall n \in \mathds{N}, y^n = x^{v^n} .
107 % The outputted sequence produced by this generator is $\left(y^n\right)_{n \in \mathds{N}}$.
108 % Remark that, given a sequence $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$ called a ``chaotic strategy'',
109 % the following way to iterate:
110 % $$x^0 \in \mathds{B}^\mathsf{N}, \forall n \in \mathds{N}, \forall i \in \llbracket 1, \mathsf{N} \rrbracket, x_i^{n+1} = \left\{ \begin{array}{ll} f(x^n)_i & \text{if }~ i=S^n \\ x_i^n & \text{else} \end{array} \right. ,$$
111 % is referred in the discrete mathematics literature as ``chaotic iterations''~\cite{Robert} (a terminology which has
112 % \emph{a priori} no relation with the mathematical theory of chaos recalled previously), which
113 % explains the name provided to these categories of pseudorandom number generators.
116 % The formerly proposed $\textit{CIPRNG}_f^1(u)$~\cite{bgw09:ip,guyeuxTaiwan10} is equal to \linebreak $\textit{CIPRNG}_f^2\left(u,\left(1\right)_{n\in \mathds{N}}\right)$, where $\left(1\right)_{n\in \mathds{N}}$ is the sequence that is
117 % uniformly equal to 1.
118 % It has been proven as chaotic for the vectorial Boolean negation $f_0:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N}$,
119 % $(x_1, \hdots , x_\mathsf{N}) \longmapsto (\overline{x_1}, \hdots, \overline{x_\mathsf{N}})$ in \cite{bgw09:ip}
120 % and for a larger set of well-chosen iteration functions in~\cite{bcgr11:ip} but,
121 % as only one bit is modified at each iteration, this generator is not able to pass any reasonable statistical tests.
123 % The $\textit{XOR~CIPRNG}(S)$, for its part~\cite{DBLP:journals/corr/abs-1112-5239}, is defined as follows: $x^0 \in \mathds{B}^\mathsf{N}$, and $\forall n \in \mathds{N}, x^{n+1} = x^n \oplus S^n$
124 % where $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$ and $\oplus$ stands for the bitwise \emph{exclusive or} (xor) operation
125 % between the binary decomposition of $x^n$ and $S^n$. This is indeed a $CIPRNG_{f_0}^2 (u,v)$ generator:
127 % %$u,v \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$:
128 % for any given $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$, $v^n$ is the number
129 % of 1's in the binary decomposition of $S^n$ while $u^{v^n}, u^{v^n+1}, \hdots , u^{v^{n+1}-1}$
130 % are the positions of these ones.
131 % The $\textit{XOR~CIPRNG}$ has been proven chaotic and it is able to pass all the most stringent statistical
132 % batteries of tests~\cite{DBLP:journals/corr/abs-1112-5239}, namely: DieHARD~\cite{Marsaglia1996}, NIST~\cite{Nist10}, and TestU01~\cite{LEcuyerS07},
133 % which encompasses the two former ones. Furthermore, the output sequence is cryptographically secure
134 % when $S$ is cryptographically secure~\cite{DBLP:journals/corr/abs-1112-5239}.
135 % We are then left to prove $\textit{CIPRNG}_f^2(u,v)$ is chaotic.
137 % \subsection{The $\textit{CIPRNG}_f^2(u,v)$ is chaotic for well-chosen $f$}\label{sec:wellchosen}
139 % \subsection{The generator as a discrete dynamical system}
142 % This algorithm may be seen as $\mathsf{p}$ functional composition of $F_f$.
143 % We thus introduce the function
144 % $F_{f,\mathsf{p}} : \mathds{B}^\mathsf{N} \times \llbracket 1, \mathsf{N} \rrbracket^\mathsf{p} \rightarrow \mathds{B}^\mathsf{N}$ defined by
147 % F_{f,\mathsf{p}} (x,(u^0, u^1, \hdots, u^{\mathsf{p}-1})) \mapsto
148 % F_f(\hdots (F_f(F_f(x,u^0), u^1), \hdots), u^{\mathsf{p}-1}).
154 Let us first introduce $\mathcal{P} \subset \mathds{N}$ a finite nonempty
155 set having the cardinality $\mathsf{p} \in \mathds{N}^\ast$.
156 Intuitively, this is the set of authorized numbers of iterations.
157 Denote by $p_1, p_2, \hdots, p_\mathsf{p}$ the ordered elements of $\mathcal{P}$: $\mathcal{P} = \{ p_1, p_2, \hdots, p_\mathsf{p}\}$
158 and $p_1< p_2< \hdots < p_\mathsf{p}$.
160 In our Algorithm~\ref{CI Algorithm},
161 $\mathsf{p}$ is 1 and $p_1$ is $b$.
162 But this algorithm can be seen as $b$ functional compositions of $F_f$.
163 Obviously, it can be generalized with $p_i$, $p_i \in \mathcal{P}$,
164 functional compositions of $F_f$.
165 Thus, for any $p_i \in \mathcal{P}$ we introduce the function
166 $F_{f,p_i} : \mathds{B}^\mathsf{N} \times \llbracket 1, \mathsf{N} \rrbracket^{p_i} \rightarrow \mathds{B}^\mathsf{N}$ defined by
169 F_{f,p_i} (x,(u^0, u^1, \hdots, u^{p_i-1})) \mapsto \\
170 \qquad F_f(\hdots (F_f(F_f(x,u^0), u^1), \hdots), u^{p_i-1}).
175 The considered space is
176 $\mathcal{X}_{\mathsf{N},\mathcal{P}}= \mathds{B}^\mathsf{N} \times \mathds{S}_{\mathsf{N},\mathcal{P}}$, where
177 $\mathds{S}_{\mathsf{N},\mathcal{P}}=
178 \llbracket 1, \mathsf{N} \rrbracket^{\Nats}\times
179 \mathcal{P}^{\Nats}$.
180 Each element in this space is a pair where the first element is
181 $\mathsf{N}$-uple in $\Bool^{\mathsf{N}}$, as in the previous space.
182 The second element is a pair $((u^k)_{k \in \Nats},(v^k)_{k \in \Nats})$ of infinite sequences.
183 The sequence $(v^k)_{k \in \Nats}$ defines how many iterations are executed at time $k$ before the next output,
184 while $(u^k)_{k \in \Nats}$ details which elements are modified.
186 Let us introduce the shift function $\Sigma$ for any element of $\mathds{S}_{\mathsf{N},\mathcal{P}}$.
190 \Sigma:&\mathds{S}_{\mathsf{N},\mathcal{P}} &\rightarrow
191 &\mathds{S}_{\mathsf{N},\mathcal{P}} \\
192 & \left((u^k)_{k \in \mathds{N}},(v^k)_{k \in \mathds{N}}\right) & \mapsto &
194 \left(\sigma^{v^0}\left((u^k)_{k \in \mathds{N}}\right), \right. \\
195 \qquad \left. \sigma\left((v^k)_{k \in \mathds{N}}\right)\right).
200 In other words, $\Sigma$ receives two sequences $u$ and $v$, and
201 it operates $v^0$ shifts on the first sequence and a single shift
206 G_f :& \mathcal{X}_{\mathsf{N},\mathcal{P}} & \rightarrow & \mathcal{X}_{\mathsf{N},\mathcal{P}}\\
207 & (e,(u,v)) & \mapsto & \left( F_{f,v^0}\left( e, (u^0, \hdots, u^{v^0-1}\right), \Sigma (u,v) \right) .
210 Then the outputs $(y^0, y^1, \hdots )$ produced by the $\textit{CIPRNG}_f^2(u,v)$ generator~\cite{wbg10:ip}
211 are by definition the first components of the iterations $X^0 = (x^0, (u,v))$ and $\forall n \in \mathds{N},
212 X^{n+1} = G_f(X^n)$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$.
213 The new obtained generator can be shown as either a post-treatment over generators $u$ and $v$, or a
214 discrete dynamical system on a set constituted by binary vectors and couple of integer sequences.
220 \subsection{A metric on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$}
222 We define a distance $d$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$ as follows.
224 $x=(e,s)$ and $\check{x}=(\check{e},\check{s})$ in
225 $\mathcal{X}_{\mathsf{N},\mathcal{P}} = \mathds{B}^\mathsf{N} \times \mathds{S}_{\mathsf{N},\mathcal{P}} $,
226 where $s=(u,v)$ and $\check{s}=(\check{u},\check{v})$ are in $ \mathds{S}_{\mathsf{N},\mathcal{P}} =
227 \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket} \times \mathcal{S}_\mathcal{P}$.
229 \item $e$ and $\check{e}$ are integers belonging in $\llbracket 0, 2^{\mathsf{N}-1} \rrbracket$. The Hamming distance
230 on their binary decomposition, that is, the number of dissimilar binary digits, constitutes the integral
231 part of $d(X,\check{X})$.
232 \item The fractional part is constituted by the differences between $v^0$ and $\check{v}^0$, followed by the differences
233 between finite sequences $u^0, u^1, \hdots, u^{v^0-1}$ and $\check{u}^0, \check{u}^1, \hdots, \check{u}^{\check{v}^0-1}$, followed by
234 differences between $v^1$ and $\check{v}^1$, followed by the differences
235 between $u^{v^0}, u^{v^0+1}, \hdots, u^{v^1-1}$ and $\check{u}^{\check{v}^0}, \check{u}^{\check{v}^0+1}, \hdots, \check{u}^{\check{v}^1-1}$, etc.
236 More precisely, let $p = \lfloor \log_{10}{(\max{\mathcal{P}})}\rfloor +1$ and $n = \lfloor \log_{10}{(\mathsf{N})}\rfloor +1$.
238 \item The $p$ first digits of $d(x,\check{x})$ is $|v^0-\check{v}^0|$ written in decimal numeration (and with $p$ digits: zeros are added on the left if needed).
239 \item The next $n\times \max{(\mathcal{P})}$ digits aim at measuring how much $u^0, u^1, \hdots, u^{v^0-1}$ differs from $\check{u}^0, \check{u}^1, \hdots, \check{u}^{\check{v}^0-1}$. The $n$ first
240 digits are $|u^0-\check{u}^0|$. They are followed by
241 $|u^1-\check{u}^1|$ written with $n$ digits, etc.
244 $v^0=\check{v}^0$, then the process is continued until $|u^{v^0-1}-\check{u}^{\check{v}^0-1}|$ and the fractional
245 part of $d(X,\check{X})$ is completed by 0's until reaching
246 $p+n\times \max{(\mathcal{P})}$ digits.
247 \item If $v^0<\check{v}^0$, then the $ \max{(\mathcal{P})}$ blocs of $n$
248 digits are $|u^0-\check{u}^0|$, ..., $|u^{v^0-1}-\check{u}^{v^0-1}|$,
249 $\check{u}^{v^0}$ (on $n$ digits), ..., $\check{u}^{\check{v}^0-1}$ (on $n$ digits), followed by 0's if required.
250 \item The case $v^0>\check{v}^0$ is dealt similarly.
252 \item The next $p$ digits are $|v^1-\check{v}^1|$, etc.
256 This distance has been defined to capture all aspects of divergences between two sequences generated
257 by the $\textit{CIPRNG}_f^2$ method, when setting respectively $(u,v)$ and $(\check{u},\check{v})$ as inputted
258 couples of generators. The integral part measures the bitwise Hamming distance between
259 the two $\mathsf{N}$-length binary vectors chosen as seeds. The fractional part must decrease
260 when the number of identical iterations applied by the $\textit{CIPRNG}_f^2$ discrete dynamical system on these seeds, in both cases (that is, when inputting either $(u,v)$ or $(\check{u},\check{v})$), increases.
261 More precisely, the fractional part will alternately measure the following elements:
263 \item Do we iterate the same number of times between the next two outputs, when considering either $(u,v)$ or $(\check{u},\check{v})$?
264 \item Then, do we iterate the same components between the next two outputs of $\textit{CIPRNG}_f^2$ ?
267 Finally, zeros are put to be able to recover what occurred at a given iteration. Such aims are illustrated in the two following examples.
269 Consider for instance that $\mathsf{N}=13$, $\mathcal{P}=\{1,2,11\}$ (so $\mathsf{p}=3$, $p=\lfloor \log_{10}{(\max{\mathcal{P}})}\rfloor +1 = 2$, while $n=2$), and that
272 u=\underline{6,} ~ \underline{11,5}, ...\\
279 \check{u}=\underline{6,4} ~ \underline{1}, ...\\
285 $$d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = 0.01~0004000000000000000000~01~1005...$$
286 Indeed, the $p=2$ first digits are 01, as $|v^0-\check{v}^0|=1$,
287 and we use $p$ digits to code this difference ($\mathcal{P}$ being $\{1,2,11\}$, this difference can be equal to 10). We then take the $v^0=1$ first terms of $u$, each term being coded in $n=2$ digits, that is, 06. As we can iterate
288 at most $\max{(\mathcal{P})}$ times, we must complete this
289 value by some 0's in such a way that the obtained result
290 has $n\times \max{(\mathcal{P})}=22$ digits, that is:
291 0600000000000000000000. Similarly, the $\check{v}^0=2$ first
292 terms in $\check{u}$ are represented by 0604000000000000000000, and the value of their
293 digit per digit absolute difference is equal to 0004000000000000000000. These digits are concatenated to 01, and
294 we start again with the remainder of the sequences.
299 Consider now that $\mathsf{N}=9$ ($n=1$), $\mathcal{P}=\{2,7\}$ ($\mathsf{p}=2, p=1$), and that
303 u=\underline{6,7,} ~ \underline{4,2,} ...\\
310 \check{u}=\underline{4, 9, 6, 3, 6, 6, 7,} ~ \underline{9, 8}, ...\\
316 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = 0.5~2263667~1~5600000...$.
317 %as $|v^0-\check{v}^0|=5$, $|4963667-6700000| = 1736333$, $|v^1-\check{v}^1|=0$,
318 %and $|9800000-4200000| = 5600000$.
323 $d$ can be more rigorously written as follows:
324 $$d(x,\check{x})=d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})+d_{\mathds{B}^\mathsf{N}}(e,\check{e}),$$
325 where: % $p=\max \mathcal{P}$ and:
327 \item $d_{\mathds{B}^\mathsf{N}}$ is the Hamming distance,
328 \item $\forall s=(u,v), \check{s}=(\check{u},\check{v}) \in \mathcal{S}_{\mathsf{N},\mathcal{P}}$,\newline
331 d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = \\
332 \quad \sum_{k=0}^\infty \dfrac{1}{10^{(k+1)p+kn\max{(\mathcal{P})}}}
333 \bigg(|v^k - \check{v}^k| \\
334 \quad\quad + \left| \sum_{l=0}^{v^k-1}
335 \dfrac{u^{\sum_{m=0}^{k-1} v^m +l}}{ 10^{(l+1)n}} -
336 \sum_{l=0}^{\check{v}^k-1}
337 \dfrac{\check{u}^{\sum_{m=0}^{k-1} \check{v}^m +l}}{ 10^{(l+1)n}} \right| \bigg)
340 %\left| \sum_{l=0}^{v^k-1} \dfrac{u^{\sum_{m=0}^{k-1} v^m +l}}{ 10^{l}} - \sum_{l=0}^{\check{v}^k-1} \dfrac{\check{u}^{\sum_{m=0}^{k-1} \check{v}^m +l}}{ 10^{l}}\right|\right)}.
346 $d$ is a distance on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$.
351 $d_{\mathds{B}^\mathsf{N}}$ is the Hamming distance. We will prove that
352 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}$ is a distance
353 too, thus $d$ will also be a distance, being the sum of two distances.
355 \item Obviously, $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})\geqslant 0$, and if $s=\check{s}$, then
356 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})=0$. Conversely, if $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})=0$, then
357 $\forall k \in \mathds{N}, v^k=\check{v}^k$ due to the
358 definition of $d$. Then, as digits between positions $p+1$ and $p+n$ are null and correspond to $|u^0-\check{u}^0|$, we can conclude that $u^0=\check{u}^0$. An extension of this result to the whole first $n \times \max{(\mathcal{P})}$ blocs leads to $u^i=\check{u}^i$, $\forall i \leqslant v^0=\check{v}^0$, and by checking all the $n \times \max{(\mathcal{P})}$ blocs, $u=\check{u}$.
359 \item $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}$ is clearly symmetric
360 ($d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})=d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(\check{s},s)$).
361 \item The triangle inequality is obtained because the absolute value satisfies it too.
366 Before being able to study the topological behavior of the general
367 chaotic iterations, we must first establish that:
370 For all $f:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N} $, the function $G_f$ is continuous on
371 $\left( \mathcal{X},d\right)$.
376 We will show this result by using the sequential continuity. Consider a
377 sequence $x^n=(e^n,(u^n,v^n)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}^\mathds{N}$ such
378 that $d(x^n,x) \longrightarrow 0$, for some $x=(e,(u,v))\in
379 \mathcal{X}_{\mathsf{N},\mathcal{P}}$. We will show that
380 $d\left(G_f(x^n),G_f(x)\right) \longrightarrow 0$.
381 Remark that $u$ and $v$ are sequences of sequences.
383 As $d(x^n,x) \longrightarrow 0$, there exists
384 $n_0\in\mathds{N}$ such that
385 $d(x^n,x) < 10^{-(p+n \max{(\mathcal{P})})}$
386 (its $p+n \max{(\mathcal{P})}$ first digits are null).
387 In particular, $\forall n \geqslant n_0, e^n=e$,
388 as the Hamming distance between the integral parts of
389 $x$ and $\check{x}$ is 0. Similarly, due to the nullity
390 of the $p+n \max{(\mathcal{P})}$ first digits of
391 $d(x^n,x)$, we can conclude that $\forall n \geqslant n_0$,
392 $(v^n)^0=v^0$, and that $\forall n \geqslant n_0$,
393 $(u^n)^0=u^0$, $(u^n)^1=u^1$, ..., $(u^n)^{v^0-1}=u^{v^0-1}$.
396 \item $G_f(x^n)_1=G_f(x)_1$: they have the same
397 Boolean vector as first coordinate.
398 \item $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(\Sigma (u^n,v^n); \Sigma(u,v)) = 10^{p+n \max{(\mathcal{P})}} d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u^n,v^n); (u,v))$. As the right part of the equality tends
399 to 0, we can deduce that it is the case too for the left part of the equality, and so
400 $G_f(x^n)_2$ is convergent to $G_f(x)_2$.
406 \subsection{$\Gamma_{\mathcal{P}}(f)$ as an extension of $\Gamma(f)$}
408 Let $\mathcal{P}=\{p_1, p_2, \hdots, p_\mathsf{p}\}$.
409 We define the directed graph $\Gamma_{\mathcal{P}}(f)$ as follows.
411 \item Its vertices are the $2^\mathsf{N}$ elements of $\mathds{B}^\mathsf{N}$.
412 \item Each vertex has $\displaystyle{\sum_{i=1}^\mathsf{p} \mathsf{N}^{p_i}}$ arrows, namely all the $p_1, p_2, \hdots, p_\mathsf{p}$ tuples
413 having their elements in $\llbracket 1, \mathsf{N} \rrbracket $.
414 \item There is an arc labeled $u_0, \hdots, u_{p_i-1}$, $i \in \llbracket 1, \mathsf{p} \rrbracket$ between vertices $x$ and $y$ if and only if
415 $y=F_{f,p_i} (x, (u_0, \hdots, u_{p_i-1})) $.
418 It is not hard to see that the graph $\Gamma_{\{1\}}(f)$ is
419 $\Gamma(f)$ formerly introduced in~\cite{bcgr11:ip} for the $\textit{CIPRNG}_f^1(u)$ generator,
420 which is indeed $\textit{CIPRNG}_f^2(u,(1)_{n \in \mathds{N}})$.
424 \begin{subfigure}[b]{0.45\textwidth}
426 \includegraphics[scale=0.85]{graphe1.pdf}
427 \caption{$\Gamma(f_0)$}
431 ~ %add desired spacing between images, e. g. ~, \quad, \qquad, \hfill etc.
432 % (or a blank line to force the subfigure onto a new line)
433 \begin{subfigure}[b]{0.3\textwidth}
435 \includegraphics[scale=0.85]{graphe2.pdf}
436 \caption{$\Gamma_{\{2,3\}}(f_0)$}
439 ~ %add desired spacing between images, e. g. ~, \quad, \qquad, \hfill etc.
440 \caption{Iterating $f_0:(x_1,x_2) \mapsto (\overline{x_1}, \overline{x_2})$}
446 Consider for instance $\mathsf{N}=2$,
447 Let $f_0:\mathds{B}^2 \longrightarrow \mathds{B}^2$ be the negation function,
448 \textit{i.e.}, $f_0(x_1,x_2) = (\overline{x_1}, \overline{x_2})$, and consider
449 $\mathcal{P}=\{2,3\}$. The graphs of iterations are given in
450 Figure~\ref{fig:itg}.
451 The Figure~\ref{graphe1} shows what happens when
452 displaying each iteration result.
453 On the contrary, Figure~\ref{graphe2} illustrates the behaviors
454 when always applying either 2 or 3 modifications before generating results.
455 Notice that here, orientations of arcs are not necessary
456 since the function $f_0$ is equal to its inverse $f_0^{-1}$.
459 \subsection{Proofs of chaos}
464 $\Gamma_{\mathcal{P}}(f)$ is strongly connected if and only if $G_f$ is
465 topologically transitive on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
470 Suppose that $\Gamma_{\mathcal{P}}(f)$ is strongly connected.
471 Let $x=(e,(u,v)),\check{x}=(\check{e},(\check{u},\check{v}))
472 \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$.
473 We will find a point $y$ in the open ball $\mathcal{B}(x,\varepsilon )$ and
474 $n_0 \in \mathds{N}$ such that $G_f^{n_0}(y)=\check{x}$: this strong transitivity
475 will imply the transitivity property.
476 We can suppose that $\varepsilon <1$ without loss of generality.
478 Let us denote by $(E,(U,V))$ the elements of $y$. As
479 $y$ must be in $\mathcal{B}(x,\varepsilon)$ and $\varepsilon < 1$,
480 $E$ must be equal to $e$. Let $k=\lfloor \log_{10} (\varepsilon) \rfloor +1$.
481 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ must be lower than
482 $\varepsilon$, so the $k$ first digits of the fractional part of
483 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ are null.
484 Let $k_1$ the smallest integer such that, if $V^0=v^0$, ..., $V^{k_1}=v^{k_1}$,
485 $U^0=u^0$, ..., $U^{\sum_{l=0}^{k_1}V^l-1} = u^{\sum_{l=0}^{k_1}v^l-1}$.
486 Then $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))<\varepsilon$.
487 In other words, any $y$ of the form $(e,((u^0, ..., u^{\sum_{l=0}^{k_1}v^l-1}),
488 (v^0, ..., v^{k_1}))$ is in $\mathcal{B}(x,\varepsilon)$.
490 Let $y^0$ such a point and $z=G_f^{k_1}(y^0) = (e',(u',v'))$. $\Gamma_{\mathcal{P}}(f)$
491 being strongly connected, there is a path between $e'$ and $\check{e}$. Denote
492 by $a_0, \hdots, a_{k_2}$ the edges visited by this path. We denote by
493 $V^{k_1}=|a_0|$ (number of terms in the finite sequence $a_1$),
494 $V^{k_1+1}=|a_1|$, ..., $V^{k_1+k_2}=|a_{k_2}|$, and by
495 $U^{k_1}=a_0^0$, $U^{k_1+1}=a_0^1$, ..., $U^{k_1+V_{k_1}-1}=a_0^{V_{k_1}-1}$,
496 $U^{k_1+V_{k_1}}=a_1^{0}$, $U^{k_1+V_{k_1}+1}=a_1^{1}$,...
498 Let $y=(e,((u^0, \dots, u^{\sum_{l=0}^{k_1}v^l-1}, a_0^0, \dots, a_0^{|a_0|}, a_1^0, \dots, $ \linebreak
499 $a_1^{|a_1|},\dots, a_{k_2}^0, \dots, a_{k_2}^{|a_{k_2}|},$
500 $\check{u}^0, \check{u}^1, \dots),(v^0, \dots, v^{k_1},|a_0|, \dots,$\linebreak
501 $|a_{k_2}|,\check{v}^0, \check{v}^1, \dots)))$. So $y\in \mathcal{B}(x,\varepsilon)$
502 and $G_{f}^{k_1+k_2}(y)=\check{x}$.
505 Conversely, if $\Gamma_{\mathcal{P}}(f)$ is not strongly connected, then there are
506 2 vertices $e_1$ and $e_2$ such that there is no path between $e_1$ and $e_2$.
507 That is, it is impossible to find $(u,v)\in \mathds{S}_{\mathsf{N},\mathcal{P}}$
508 and $n\in \mathds{N}$ such that $G_f^n(e,(u,v))_1=e_2$. The open ball $\mathcal{B}(e_2, 1/2)$
509 cannot be reached from any neighborhood of $e_1$, and thus $G_f$ is not transitive.
515 If $\Gamma_{\mathcal{P}}(f)$ is strongly connected, then $G_f$ is
516 regular on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
520 Let $x=(e,(u,v)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$.
521 As in the proofs of Prop.~\ref{prop:trans}, let $k_1 \in \mathds{N}$ such
523 $$\left\{(e, ((u^0, \dots, u^{v^{k_1-1}},U^0, U^1, \dots),(v^0, \dots, v^{k_1},V^0, V^1, \dots)) \mid \right.$$
524 $$\left.\forall i,j \in \mathds{N}, U^i \in \llbracket 1, \mathsf{N} \rrbracket, V^j \in \mathcal{P}\right\}
525 \subset \mathcal{B}(x,\varepsilon),$$
526 and $y=G_f^{k_1}(e,(u,v))$. $\Gamma_{\mathcal{P}}(f)$ being strongly connected,
527 there is at least a path from the Boolean state $y_1$ of $y$ to $e$.
528 %\ANNOT{Phrase pas claire : "from \dots " mais pas de "to \dots"}.
529 Denote by $a_0, \hdots, a_{k_2}$ the edges of such a path.
530 Then the point:\linebreak
531 $(e,((u^0, \dots, u^{v^{k_1-1}},a_0^0, \dots, a_0^{|a_0|}, a_1^0, \dots, a_1^{|a_1|},\dots,
532 a_{k_2}^0, \dots,$ \linebreak
533 $\,a_{k_2}^{|a_{k_2}|},u^0, \dots, u^{v^{k_1-1}},a_0^0, \dots,a_{k_2}^{|a_{k_2}|}\dots),$\linebreak
534 $(v^0, \dots, v^{k_1}, |a_0|, \dots, |a_{k_2}|,v^0, \dots, v^{k_1}, |a_0|, \dots, |a_{k_2}|,\dots))$
535 is a periodic point in the neighborhood $\mathcal{B}(x,\varepsilon)$ of $x$.
538 $G_f$ being topologically transitive and regular, we can thus conclude that
540 The function $G_f$ is chaotic on $(\mathcal{X}_{\mathsf{N},\mathcal{P}},d)$ if
541 and only if its iteration graph $\Gamma_{\mathcal{P}}(f)$ is strongly connected.
545 The pseudorandom number generator $\chi_{\textit{14Secrypt}}$ is not chaotic
546 on $(\mathcal{X}_{\mathsf{N},\{b\}},d)$ for the negation function.
549 In this context, $\mathcal{P}$ is the singleton $\{b\}$.
550 If $b$ is even, any vertex $e$ of $\Gamma_{\{b\}}(f_0)$ cannot reach
551 its neighborhood and thus $\Gamma_{\{b\}}(f_0)$ is not strongly connected.
552 If $b$ is odd, any vertex $e$ of $\Gamma_{\{b\}}(f_0)$ cannot reach itself
553 and thus $\Gamma_{\{b\}}(f_0)$ is not strongly connected.
557 \subsection{Comparison with other well-known generators}
561 \begin{tabular}{c|ccccccc}
562 PRNG & LCG & MRG & AWC & SWB & SWC & GFSR & INV\\
564 NIST & 11 & 14 & 15 & 15 & 14 & 14 & 14\\
565 DieHARD & 16 & 16 & 15 & 16 &18 & 16 & 16
567 \caption{Statistical evaluation of known PRNGs: number of succeeded tests}
568 \label{table:comparisonWithout}
573 \begin{tabular}{c|ccccccc}
574 PRNG & LCG & MRG & AWC & SWB & SWC & GFSR & INV\\
576 NIST & 15 & 15 & 15 & 15 & 15 & 15 & 15\\
577 DieHARD & 18 & 18 & 18 & 18 & 18 & 18 & 18
579 \caption{Statistical effects of CIPRNG on the succeeded tests}
580 \label{table:comparisonWith}
582 The objective of this section is to evaluate the statistical performance of the
583 proposed CIPRNG method, by comparing the effects of its application on well-known
584 but defective generators. We considered during experiments the following PRNGs:
585 linear congruential generator (LCG), multiple recursive generators (MRG)
586 add-with-carry (AWC), subtract-with-borrow (SWB), shift-with-carry (SWC)
587 Generalized Feedback Shift Register (GFSR), and nonlinear inversive generator.
588 A general overview and a recall of design of these famous generators
589 can be found, for instance, in the documentation of the TestU01 statistical
590 battery of tests~\cite{LEcuyerS07}. For each studied generator, we have compared
591 their scores according to both NIST~\cite{Nist10} and DieHARD~\cite{Marsaglia1996}
592 statistical batteries of tests, by launching them alone or inside the $\textit{CIPRNG}_f^2(v,v)$
593 dynamical system, where $v$ is the considered PRNG set with most usual parameters,
594 and $f$ is the vectorial negation.
596 Obtained results are reproduced in Tables~\ref{table:comparisonWithout} and \ref{table:comparisonWith}.
597 As can be seen, all these generators considered alone failed to pass either the 15 NIST tests or the
598 18 DieHARD ones, while both batteries of tests are always passed when applying the $\textit{CIPRNG}_f^2$
599 post-treatment. Other results in the same direction, which can be found in~\cite{bfgw11:ip}, illustrate
600 the fact that operating a provable chaotic post-treatment on defective generators tends to improve
601 their statistical profile.
603 Such post-treatment depending on the properties of the inputted function $f$, we need to recall a general scheme to produce
604 functions and an iteration number $b$ such that $\Gamma_{\{b\}}$ is strongly connected.
609 %%% TeX-master: "main"
610 %%% ispell-dictionary: "american"