]> AND Private Git Repository - rairo15.git/blob - chaos.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
74d07cf30515e46e915f9256785bc849c05dd706
[rairo15.git] / chaos.tex
1
2
3 \subsection{Notations and terminologies}\label{sec:notations}
4
5
6 Denote by $\mathds{B}$ the Boolean set, by $\mathds{N}^\ast$ the set
7 of natural integers $\{1,2,3, \hdots \}$, and by $\mathds{N}=\mathds{N}^\ast \cup \{0\}$.
8 For $a,b \in \mathds{N}, a \leqslant b$, $\llbracket a, b \rrbracket$ means the set
9 $\{a, a+1, \hdots , b\}$ of integers belonging between $a$ and $b$.
10 For any finite set $X$, $|X|$ denotes its cardinality.
11 The $n-$th of a sequence $v$ of vectors is $v^n$ while its $i-$th component is $v_i^n$, 
12 so $v=\left(v^n\right)_{n \in \mathds{N}}$. 
13 Finally, $\overline{x}$ stands for the negation of the Boolean $x$, while $\lfloor y \rfloor$ is
14 the largest integer lower than $y$.
15
16 \subsubsection{Devaney's Chaotic Dynamical Systems}
17 \label{subsec:Devaney}
18
19
20 Consider a topological space $(\mathcal{X},\tau)$ and a continuous function $f :
21 \mathcal{X} \rightarrow \mathcal{X}$.
22
23 \begin{Def}
24 The function $f$ is said to be \emph{topologically transitive} if, for any pair of open sets
25 $U,V \subset \mathcal{X}$, there exists $k>0$ such that $f^k(U) \cap V \neq
26 \varnothing$.
27 \end{Def}
28
29 \begin{Def}
30 An element $x$ is a \emph{periodic point} for $f$ of period $n\in \mathds{N}^*$
31 if $f^{n}(x)=x$.% The set of periodic points of $f$ is denoted $Per(f).$
32 \end{Def}
33
34 \begin{Def}
35 $f$ is said to be \emph{regular} on $(\mathcal{X}, \tau)$ if the set of periodic
36 points for $f$ is dense in $\mathcal{X}$: for any point $x$ in $\mathcal{X}$,
37 any neighborhood of $x$ contains at least one periodic point (without
38 necessarily the same period).
39 \end{Def}
40
41
42 \begin{Def}[Devaney's formulation of chaos~\cite{Devaney}]
43 The function $f$ is said to be \emph{chaotic} on $(\mathcal{X},\tau)$ if $f$ is regular and
44 topologically transitive.
45 \end{Def}
46
47 The chaos property is strongly linked to the notion of ``sensitivity'', defined
48 on a metric space $(\mathcal{X},d)$ by:
49
50 \begin{Def}
51 \label{sensitivity} The function $f$ has \emph{sensitive dependence on initial conditions}
52 if there exists $\delta >0$ such that, for any $x\in \mathcal{X}$ and any
53 neighborhood $V$ of $x$, there exist $y\in V$ and $n > 0$ such that
54 $d\left(f^{n}(x), f^{n}(y)\right) >\delta $.
55
56 The constant $\delta$ is called the \emph{constant of sensitivity} of $f$.
57 \end{Def}
58
59 Indeed, Banks \emph{et al.} have proven in~\cite{Banks92} that when $f$ is
60 chaotic and $(\mathcal{X}, d)$ is a metric space, then $f$ has the property of
61 sensitive dependence on initial conditions (this property was formerly an
62 element of the definition of chaos). 
63
64
65 \subsubsection{Introducing the \textit{CIPRNG} categories of chaotic iterations based pseudorandom number generators}
66
67 Define by $\mathcal{S}_X$ the set of sequences whose elements belong in $X \subset \mathds{N}, X \neq \varnothing$,
68 that is, $\mathcal{S}_X = \mathcal{X}^\mathds{N}$.
69 Let $\mathsf{N} \in \mathds{N}^\ast$, $f:\mathds{B}^\mathsf{N} \rightarrow \mathds{B}^\mathsf{N}$, and
70 $\mathcal{P} \subset \mathds{N}^\ast$ a non empty and finite set of integers.
71
72 Any couple $(u,v) \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket} \times \mathcal{S}_\mathcal{P}$ defines
73 a ``chaotic iterations based'' pseudorandom number generator, which is denoted by  $\textit{CIPRNG}_f^2(u,v)$~\cite{wbg10:ip}. It is 
74 defined as follows:
75 \begin{equation}
76 \label{CIPRNGver2}
77 \left\{
78 \begin{array}{l}
79  x^0 \in \mathds{B}^\mathsf{N}\\
80  \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.\\
81  \forall n \in \mathds{N}, y^n = x^{v^n} .
82 \end{array}
83 \right.
84 \end{equation}
85 The outputted sequence produced by this generator is $\left(y^n\right)_{n \in \mathds{N}}$. 
86 Remark that, given a sequence $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$ called a ``chaotic strategy'',
87 the following way to iterate: 
88 $$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. ,$$
89 is referred in the discrete mathematics literature as ``chaotic iterations''~\cite{Robert} (a terminology which has
90 \emph{a priori} no relation with the mathematical theory of chaos recalled previously), which
91 explains the name provided to these categories of pseudorandom number generators.
92
93
94 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 
95 uniformly equal to 1. 
96 It has been proven as chaotic for the vectorial Boolean negation $f_0:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N}$, 
97 $(x_1, \hdots , x_\mathsf{N}) \longmapsto (\overline{x_1}, \hdots, \overline{x_\mathsf{N}})$ in \cite{bgw09:ip} 
98 and for a larger set of well-chosen iteration functions in~\cite{bcgr11:ip} but,
99 as only one bit is modified at each iteration, this generator is not able to pass any reasonable statistical tests.
100
101 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$
102 where $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$ and $\oplus$ stands for the bitwise \emph{exclusive or} (xor) operation
103 between the binary decomposition of $x^n$ and $S^n$. This is indeed a $CIPRNG_{f_0}^2 (u,v)$ generator:
104 %, for 
105 %$u,v \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$: 
106 for any given $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$, $v^n$ is the number
107 of 1's in the binary decomposition of $S^n$ while $u^{v^n}, u^{v^n+1}, \hdots , u^{v^{n+1}-1}$
108 are the positions of these ones.
109 The $\textit{XOR~CIPRNG}$ has been proven chaotic and it is able to pass all the most stringent statistical 
110 batteries of tests~\cite{DBLP:journals/corr/abs-1112-5239}, namely: DieHARD~\cite{Marsaglia1996}, NIST~\cite{Nist10}, and TestU01~\cite{LEcuyerS07},
111 which encompasses the two former ones. Furthermore, the output sequence is cryptographically secure
112 when $S$ is cryptographically secure~\cite{DBLP:journals/corr/abs-1112-5239}.
113 We are then left to prove $\textit{CIPRNG}_f^2(u,v)$ is chaotic.
114
115 \subsection{The $\textit{CIPRNG}_f^2(u,v)$ is chaotic for well-chosen $f$}\label{sec:wellchosen}
116
117 \subsubsection{The generator as a discrete dynamical system}
118
119
120 Using notations of the previous section, consider a $\textit{CIPRNG}_f^2(u,v)$ generator $G$, with
121 $\mathsf{N} \in \mathds{N}^\ast$, $f:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N}$,
122 $u \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$, and $v \in \mathcal{S}_\mathcal{P}$, with
123 $\mathcal{P} \subset \mathds{N}$ a finite nonempty set having the cardinality 
124 $\mathsf{p} \in \mathds{N}^\ast$.
125 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}\}$
126 and $p_1< p_2< \hdots < p_\mathsf{p}$.
127 Let 
128 $$
129 \begin{array}{cccc}
130  F_f: & \mathds{B}^\mathsf{N} \times \llbracket 1, \mathsf{N} \rrbracket & \longrightarrow & \mathds{B}^\mathsf{N}\\
131       & (e,i) & \longmapsto & (e_1, \hdots , e_{i-1}, f(e)_i, e_{i+1}, \hdots , e_{\mathsf{N}}) 
132 \end{array}
133 $$
134 and
135 $$
136 \begin{array}{cccc}
137  F_{f,\mathsf{p}} : & \mathds{B}^\mathsf{N} \times \llbracket 1, \mathsf{N} \rrbracket^\mathsf{p} & \longrightarrow & \mathds{B}^\mathsf{N}\\
138       & (e,(u^0, u^1, \hdots, u^{\mathsf{p}-1})) & \longmapsto & F_f(\hdots (F_f(F_f(e,u^0), u^1), \hdots), u^{\mathsf{p}-1}) .
139 \end{array}
140 $$
141
142 Denote by $\mathcal{X}_{\mathsf{N},\mathcal{P}}=  \mathds{B}^\mathsf{N} \times \mathds{S}_{\mathsf{N},\mathcal{P}}$, where 
143 $\mathds{S}_{\mathsf{N},\mathcal{P}}=\mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}\times \mathcal{S}_\mathcal{P}$, 
144 we define the shift operation on sequences as follows,
145 $$\begin{array}{cccc}
146 \sigma:&\mathcal{S}_{X} &\longrightarrow
147 & \mathcal{S}_{X} \\
148 & (u^k)_{k \in \mathds{N}} & \longmapsto & (u^{k+1})_{k \in \mathds{N}}, 
149 \end{array}
150 $$
151 and let
152 $$\begin{array}{cccc}
153 \Sigma:&\mathds{S}_{\mathsf{N},\mathcal{P}} &\longrightarrow
154 &\mathds{S}_{\mathsf{N},\mathcal{P}} \\
155 & \left((u^k)_{k \in \mathds{N}},(v^k)_{k \in \mathds{N}}\right) & \longmapsto & \left(\sigma^{v^0}\left((u^k)_{k \in \mathds{N}}\right),\sigma\left((v^k)_{k \in \mathds{N}}\right)\right). 
156 \end{array}
157 $$
158 In other words, $\Sigma$ receives two sequences $u$ and $v$, and
159 it operates $v^0$ shifts on the first sequence and a single shift
160 on the second one. 
161 Let
162 \begin{equation}
163 \begin{array}{cccc}
164 G_f :&  \mathcal{X}_{\mathsf{N},\mathcal{P}} & \longrightarrow & \mathcal{X}_{\mathsf{N},\mathcal{P}}\\
165    & (e,(u,v)) & \longmapsto & \left( F_{f,v^0}\left( e, (u^0, \hdots, u^{v^0-1}\right), \Sigma (u,v) \right) .
166 \end{array}
167 \end{equation}
168 Then the outputs $(y^0, y^1, \hdots )$ produced by the $\textit{CIPRNG}_f^2(u,v)$ generator 
169 are the first components of the iterations $X^0 = (x^0, (u,v))$ and $\forall n \in \mathds{N}, 
170 X^{n+1} = G_f(X^n)$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$.
171
172
173
174
175
176
177 \subsubsection{A metric on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$}
178
179 We define a distance $d$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$ as follows. 
180 Consider 
181 $x=(e,s)$ and $\check{x}=(\check{e},\check{s})$ in 
182 $\mathcal{X}_{\mathsf{N},\mathcal{P}} = \mathds{B}^\mathsf{N} \times \mathds{S}_{\mathsf{N},\mathcal{P}} $,
183 where $s=(u,v)$ and $\check{s}=(\check{u},\check{v})$ are in $ \mathds{S}_{\mathsf{N},\mathcal{P}} = 
184 \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket} \times \mathcal{S}_\mathcal{P}$. 
185 \begin{itemize}
186 \item $e$ and $\check{e}$ are integers belonging in $\llbracket 0, 2^{\mathsf{N}-1} \rrbracket$. The Hamming distance
187 on their binary decomposition, that is, the number of dissimilar binary digits, constitutes the integral
188 part of $d(X,\check{X})$.
189 \item The fractional part is constituted by the differences between $v^0$ and $\check{v}^0$, followed by the differences
190 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 
191  differences between $v^1$ and $\check{v}^1$, followed by the differences
192 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.
193 More precisely, let $p = \lfloor \log_{10}{(\max{\mathcal{P}})}\rfloor +1$ and $n = \lfloor \log_{10}{(\mathsf{N})}\rfloor +1$.
194 \begin{itemize}
195 \item The $p$ first digits of $d(x,\check{x})$ is $|v^0-\check{v}^0|$ written in decimal numeration (and with $p$ digits).
196 \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
197 digits are $|u^0-\check{u}^0|$. They are followed by 
198 $|u^1-\check{u}^1|$ written with $n$ digits, etc.
199 \begin{itemize}
200 \item If
201 $v^0=\check{v}^0$, then the process is continued until $|u^{v^0-1}-\check{u}^{\check{v}^0-1}|$ and the fractional
202 part of $d(X,\check{X})$ is completed by 0's until reaching
203 $p+n\times \max{(\mathcal{P})}$ digits.
204 \item If $v^0<\check{v}^0$, then the $ \max{(\mathcal{P})}$  blocs of $n$
205 digits are $|u^0-\check{u}^0|$, ..., $|u^{v^0-1}-\check{u}^{v^0-1}|$,
206 $\check{u}^{v^0}$ (on $n$ digits), ..., $\check{u}^{\check{v}^0-1}$ (on $n$ digits), followed by O's if required.
207 \item The case $v^0>\check{v}^0$ is dealt similarly.
208 \end{itemize}
209 \item The next $p$ digits are $|v^1-\check{v}^1|$, etc.
210 \end{itemize}
211 \end{itemize}
212
213
214
215
216 \begin{xpl}
217 Consider for instance that $\mathsf{N}=13$, $\mathcal{P}=\{1,2,11\}$ (so $\mathsf{p}=3$), and that
218 $s=\left\{
219 \begin{array}{l}
220 u=\underline{6,} ~ \underline{11,5}, ...\\
221 v=1,2,...
222 \end{array}
223 \right.$\\
224 while
225 $\check{s}=\left\{
226 \begin{array}{l}
227 \check{u}=\underline{6,4} ~ \underline{1}, ...\\
228 \check{v}=2,1,...
229 \end{array}
230 \right.$
231
232 So $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = 0.010004000000000000000000011005 ...$
233 Indeed, the $p=2$ first digits are 01, as $|v^0-\check{v}^0|=1$, 
234 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
235 at most $\max{(\mathcal{P})}$ times, we must complete this
236 value by some 0's in such a way that the obtained result
237 has $n\times \max{(\mathcal{P})}=22$ digits, that is: 
238 0600000000000000000000. Similarly, the $\check{v}^0=2$ first
239 terms in $\check{u}$ are represented by 0604000000000000000000, and the absolute value of their
240 difference is equal to 0004000000000000000000. These digits are concatenated to 01, and
241 we start again with the remainder of the sequences.
242 \end{xpl}
243
244
245 \begin{xpl}
246 Consider now that $\mathsf{N}=9$, and $\mathcal{P}=\{2,7\}$, and that
247
248 $s=\left\{
249 \begin{array}{l}
250 u=\underline{6,7,} ~ \underline{4,2,} ...\\
251 v=2,2,...
252 \end{array}
253 \right.$\\
254 while
255 $\check{s}=\left\{
256 \begin{array}{l}
257 \check{u}=\underline{4, 9, 6, 3, 6, 6, 7,} ~ \underline{9, 8}, ...\\
258 \check{v}=7,2,...
259 \end{array}
260 \right.$
261
262 So $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = 0.5173633305600000...$, as $|v^0-\check{v}^0|=5$, $|4963667-6700000| = 1736333$, $|v^1-\check{v}^1|=0$,
263 and $|9800000-4200000| = 5600000$.
264 \end{xpl}
265
266
267
268 $d$ can be more rigorously written as follows:
269 $$d(x,\check{x})=d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})+d_{\mathds{B}^\mathsf{N}}(e,\check{e}),$$
270 where: % $p=\max \mathcal{P}$ and:
271 \begin{itemize}
272 \item $d_{\mathds{B}^\mathsf{N}}$ is the Hamming distance,
273 \item $\forall s=(u,v), \check{s}=(\check{u},\check{v}) \in \mathcal{S}_{\mathsf{N},\mathcal{P}}$,\newline 
274 $$\begin{array}{rcl}
275  d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) &= &
276    \sum_{k=0}^\infty \dfrac{1}{10^{(k+1)p+kn\max{(\mathcal{P})}}} 
277    \bigg(|v^k - \check{v}^k|  \\
278    & & + \left| \sum_{l=0}^{v^k-1} 
279        \dfrac{u^{\sum_{m=0}^{k-1} v^m +l}}{ 10^{(l+1)n}} -
280        \sum_{l=0}^{\check{v}^k-1} 
281        \dfrac{\check{u}^{\sum_{m=0}^{k-1} \check{v}^m +l}}{ 10^{(l+1)n}} \right| \bigg)
282 \end{array}
283 $$ %\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)}.$$
284 \end{itemize}
285
286
287 Let us show that,
288 \begin{proposition}
289 $d$ is a distance on $\mathcal{X}$.
290 \end{proposition}
291
292
293 \begin{proof}
294  $d_{\mathds{B}^\mathsf{N}}$ is the Hamming distance. We will prove that 
295  $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}$ is a distance
296 too, thus $d$ will also be a distance, being the sum of two distances.
297  \begin{itemize}
298 \item Obviously, $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})\geqslant 0$, and if $s=\check{s}$, then 
299 $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 
300 $\forall k \in \mathds{N}, v^k=\check{v}^k$ due to the 
301 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})}$ bloc 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}$.
302  \item $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}$ is clearly symmetric 
303 ($d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})=d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(\check{s},s)$). 
304 \item The triangle inequality is obtained because the absolute value satisfies it too.
305  \end{itemize}
306 \end{proof}
307
308
309 Before being able to study the topological behavior of the general 
310 chaotic iterations, we must first establish that:
311
312 \begin{proposition}
313  For all $f:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N} $, the function $G_f$ is continuous on 
314 $\left( \mathcal{X},d\right)$.
315 \end{proposition}
316
317
318 \begin{proof}
319 We will show this result by using the sequential continuity. Consider a
320 sequence $x^n=(e^n,(u^n,v^n)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}^\mathds{N}$ such
321 that $d(x^n,x) \longrightarrow 0$, for some $x=(e,(u,v))\in
322 \mathcal{X}_{\mathsf{N},\mathcal{P}}$. We will show that
323 $d\left(G_f(x^n),G_f(x)\right) \longrightarrow 0$.
324 Remark that $u$ and $v$ are sequences of sequences.
325
326 As $d(x^n,x) \longrightarrow 0$, there exists 
327 $n_0\in\mathds{N}$ such that 
328 $d(x^n,x) < 10^{-(p+n \max{(\mathcal{P})})}$
329 (its $p+n \max{(\mathcal{P})}$ first digits are null). 
330 In particular, $\forall n \geqslant n_0, e^n=e$,
331 as the Hamming distance between the integral parts of
332 $x$ and $\check{x}$ is 0. Similarly, due to the nullity 
333 of the $p+n \max{(\mathcal{P})}$ first digits of 
334 $d(x^n,x)$, we can conclude that $\forall n \geqslant n_0$,
335 $(v^n)^0=v^0$, and that $\forall n \geqslant n_0$,
336 $(u^n)^0=u^0$, $(u^n)^1=u^1$, ..., $(u^n)^{v^0-1}=u^{v^0-1}$.
337 This implies that:
338 \begin{itemize}
339 \item $G_f(x^n)_1=G_f(x)_1$: they have the same
340 Boolean vector as first coordinate.
341 \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
342 to 0, we can deduce that it is the case too for the left part of the equality, and so
343 $G_f(x^n)_2$ is convergent to $G_f(x)_2$.
344 \end{itemize}
345 \end{proof}
346
347 \begin{figure}[h]
348 \centering
349 \includegraphics[scale=0.85]{graphe1.pdf}
350 \caption{Chaotic iterations of $f_0$, defining the $CIPRNG_{f_0}^1$ ($\mathsf{N}=2$)}
351 \label{graphe1}
352 \end{figure}
353
354 \subsubsection{The $\textit{CIPRNG}_f^2(u,v)$ as iterations on a graph}
355
356 We define the directed graph $\mathcal{G}_{f,\mathcal{P}}$ as follows.
357 \begin{itemize}
358 \item Its vertices are the $2^\mathsf{N}$ elements of $\mathds{B}^\mathsf{N}$.
359 \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 
360 having their elements in $\llbracket 1, \mathsf{N} \rrbracket $.
361 \item There is an arc labeled $a_1, \hdots, a_{p_i}$, $i \in \llbracket 1, \mathsf{p} \rrbracket$ between vertices $x$ and $y$ if and only if $y=F_{f,p_i} (x, (a_1, \hdots, a_{p_i})) $.
362 \end{itemize}
363
364
365 \begin{figure}[h]
366 \centering
367 \includegraphics[scale=0.85]{graphe2.pdf}
368 \caption{Iteration graph of $CIPRNG_{f_0}^2$, $\mathcal{P}=\{2,3\}$, $\mathsf{N}=2$}
369 \label{graphe2}
370 \end{figure}
371
372 \begin{xpl}
373 Consider for instance $\mathsf{N}=2$, $f_0:\mathds{B}^2 \longrightarrow \mathds{B}^2, (x_1,x_2) \longmapsto (\overline{x_1}, \overline{x_2})$, and
374 $\mathcal{P}=\{2,3\}$. Chaotic iterations of $f_0$ are given in Figure~\ref{graphe1} while the digraph  $\mathcal{G}_{f_0,\{2,3\}}$ is depicted in
375 Figure~\ref{graphe2}. Notice that here, orientations of arcs are not necessary 
376 since the function $f$ is equal to its inverse $f^{-1}$. 
377 \end{xpl}
378
379 \subsubsection{Proofs of chaos}
380
381 We will show that,
382 \begin{proposition}
383 \label{prop:trans}
384  $\mathcal{G}_{f,\mathcal{P}}$ is strongly connected if and only if $G_f$ is 
385 topologically transitive on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
386 \end{proposition}
387
388
389 \begin{proof}
390 Suppose that $\mathcal{G}_{f,\mathcal{P}}$ is strongly connected. 
391 Let $x=(e,(u,v)),\check{x}=(\check{e},(\check{u},\check{v})) 
392 \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$.
393 We will find a point $y$ in the open ball $\mathcal{B}(x,\varepsilon )$ and
394 $n_0 \in \mathds{N}$ such that $G_f^{n_0}(y)=\check{x}$: this strong transitivity
395 will imply the transitivity property.
396 We can suppose that $\varepsilon <1$ without loss of generality. 
397
398 Let us denote by $(E,(U,V))$  the elements of $y$. As
399 $y$ must be in $\mathcal{B}(x,\varepsilon)$ and  $\varepsilon < 1$,
400 $E$ must be equal to $e$. Let $k=\lfloor \log_{10} (\varepsilon) \rfloor +1$.
401 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ must be lower than
402 $\varepsilon$, so the $k$ first digits of the fractional part of 
403 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ are null.
404 Let $k_1$ the smallest integer such that, if $V^0=v^0$, ...,  $V^{k_1}=v^{k_1}$,
405  $U^0=u^0$, ..., $U^{\sum_{l=0}^{k_1}V^l-1} = u^{\sum_{l=0}^{k_1}v^l-1}$.
406 Then $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))<\varepsilon$.
407 In other words, any $y$ of the form $(e,((u^0, ..., u^{\sum_{l=0}^{k_1}v^l-1}),
408 (v^0, ..., v^{k_1}))$ is in $\mathcal{B}(x,\varepsilon)$.
409
410 Let $y^0$ such a point and $z=G_f^{k_1}(y^0) = (e',(u',v'))$. $\mathcal{G}_{f,\mathcal{P}}$
411 being strongly connected, there is a path between $e'$ and $\check{e}$. Denote
412 by $a_0, \hdots, a_{k_2}$ the edges visited by this path. We denote by
413 $V^{k_1}=|a_0|$ (number of terms in the finite sequence $a_1$),
414 $V^{k_1+1}=|a_1|$, ..., $V^{k_1+k_2}=|a_{k_2}|$, and by 
415 $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}$,
416 $U^{k_1+V_{k_1}}=a_1^{0}$, $U^{k_1+V_{k_1}+1}=a_1^{1}$,...
417
418 Let $y=(e,((u^0, ..., u^{\sum_{l=0}^{k_1}v^l-1}, a_0^0, ..., a_0^{|a_0|}, a_1^0, ..., a_1^{|a_1|},..., 
419  a_{k_2}^0, ..., a_{k_2}^{|a_{k_2}|},$ \linebreak
420  $\check{u}^0, \check{u}^1, ...),(v^0, ..., v^{k_1},|a_0|, ...,
421  |a_{k_2}|,\check{v}^0, \check{v}^1, ...)))$. So $y\in \mathcal{B}(x,\varepsilon)$
422  and $G_{f}^{k_1+k_2}(y)=\check{x}$.
423  
424  
425 Conversely, if $\mathcal{G}_{f,\mathcal{P}}$ is not strongly connected, then there are 
426 2 vertices $e_1$ and $e_2$ such that there is no path between $e_1$ and $e_2$.
427 That is, it is impossible to find $(u,v)\in \mathds{S}_{\mathsf{N},\mathcal{P}}$
428 and $n \mathds{N}$ such that $G_f^n(e,(u,v))_1=e_2$. The open ball $\mathcal{B}(e_2, 1/2)$
429 cannot be reached from any neighborhood of $e_1$, and thus $G_f$ is not transitive.
430 \end{proof}
431
432
433 We show now that,
434 \begin{proposition}
435 If $\mathcal{G}_{f,\mathcal{P}}$ is strongly connected, then $G_f$ is 
436 regular on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
437 \end{proposition}
438
439 \begin{proof}
440 Let $x=(e,(u,v)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$. 
441 As in the proofs of Prop.~\ref{prop:trans}, let $k_1 \in \mathds{N}$ such
442 that 
443 $$\left\{(e, ((u^0, ..., u^{v^{k_1-1}},U^0, U^1, ...),(v^0, ..., v^{k_1},V^0, V^1, ...)) \mid \right.$$
444 $$\left.\forall i,j \in \mathds{N}, U^i \in \llbracket 1, \mathsf{N} \rrbracket, V^j \in \mathcal{P}\right\}
445 \subset \mathcal{B}(x,\varepsilon),$$
446 and $y=G_f^{k_1}(e,(u,v))$. $\mathcal{G}_{f,\mathcal{P}}$ being strongly connected,
447 there is at least a path from the Boolean state $y_1$ of $y$ and $e$.
448 Denote by $a_0, \hdots, a_{k_2}$ the edges of such a path.
449 Then the point:
450 $$(e,((u^0, ..., u^{v^{k_1-1}},a_0^0, ..., a_0^{|a_0|}, a_1^0, ..., a_1^{|a_1|},..., 
451  a_{k_2}^0, ..., a_{k_2}^{|a_{k_2}|},u^0, ..., u^{v^{k_1-1}},$$
452 $$a_0^0, ...,a_{k_2}^{|a_{k_2}|}...),(v^0, ..., v^{k_1}, |a_0|, ..., |a_{k_2}|,v^0, ..., v^{k_1}, |a_0|, ..., |a_{k_2}|,...))$$
453 is a periodic point in the neighborhood $\mathcal{B}(x,\varepsilon)$ of $x$.
454 \end{proof}
455
456 $G_f$ being topologically transitive and regular, we can thus conclude that
457 \begin{Theo}
458 The pseudorandom number generator $\textit{CIPRNG}_f^2$ denoted by $G_f$ in
459 this section is chaotic on $(\mathcal{X}_{\mathsf{N},\mathcal{P}},d)$ if
460 and only if its graph $\mathcal{G}_{f,\mathcal{P}}$ is strongly connected.
461 \end{Theo}