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

Private GIT Repository
modif abstract
[16dcc.git] / chaos.tex
1 Let us us first recall the chaos theoretical context presented 
2 in~\cite{bcgr11:ip}. In this article, the space of interest 
3 is $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$ 
4 and the iteration function $\mathcal{H}_f$ is  
5 the map from 
6 $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$ 
7 to itself defined by
8 \[
9 \mathcal{H}_f(x,s)=(F_f(x,s_0),\sigma(s)).
10 \] 
11 In this definition, 
12 $\sigma: \llbracket1;{\mathsf{N}}\rrbracket^{\Nats} \longrightarrow
13  \llbracket1;{\mathsf{N}}\rrbracket^{\Nats} 
14 $
15  is a shift operation on sequences (\textit{i.e.}, a function that removes the 
16 first element of the sequence) formally defined with
17 $$
18 \sigma((u^k)_{k \in \Nats}) =  (u^{k+1})_{k \in \Nats}. 
19 $$
20
21 We have proven~\cite[Theorem 1]{bcgr11:ip} that   
22 $\mathcal{H}_f$ is chaotic in 
23 $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$
24 if and only if $\Gamma(f)$ is strongly connected.
25 However, the corrolary which would say that $\chi_{\textit{14Secrypt}}$ is chaotic 
26 cannot be directly deduced since we do not output all the successive
27 values of iterating $F_f$. Only a a few of them is concerned and 
28 any subsequence of a chaotic sequence  is   not  necessarily  
29 a   chaotic  sequence  too.
30 This necessitates a rigorous proof, which is the aim of this section.
31
32
33
34
35
36 \subsection{Devaney's Chaotic Dynamical Systems}
37 \label{subsec:Devaney}
38
39
40 Consider a topological space $(\mathcal{X},\tau)$ and a continuous function $f :
41 \mathcal{X} \rightarrow \mathcal{X}$.
42
43 \begin{definition}
44 The function $f$ is said to be \emph{topologically transitive} if, for any pair of open sets
45 $U,V \subset \mathcal{X}$, there exists $k>0$ such that $f^k(U) \cap V \neq
46 \varnothing$.
47 \end{definition}
48
49 \begin{definition}
50 An element $x$ is a \emph{periodic point} for $f$ of period $n\in \mathds{N}^*$
51 if $f^{n}(x)=x$.% The set of periodic points of $f$ is denoted $Per(f).$
52 \end{definition}
53
54 \begin{definition}
55 $f$ is said to be \emph{regular} on $(\mathcal{X}, \tau)$ if the set of periodic
56 points for $f$ is dense in $\mathcal{X}$: for any point $x$ in $\mathcal{X}$,
57 any neighborhood of $x$ contains at least one periodic point (without
58 necessarily the same period).
59 \end{definition}
60
61
62 \begin{definition}[Devaney's formulation of chaos~\cite{Devaney}]
63 The function $f$ is said to be \emph{chaotic} on $(\mathcal{X},\tau)$ if $f$ is regular and
64 topologically transitive.
65 \end{definition}
66
67 The chaos property is strongly linked to the notion of ``sensitivity'', defined
68 on a metric space $(\mathcal{X},d)$ by:
69
70 \begin{definition}
71 \label{sensitivity} The function $f$ has \emph{sensitive dependence on initial conditions}
72 if there exists $\delta >0$ such that, for any $x\in \mathcal{X}$ and any
73 neighborhood $V$ of $x$, there exist $y\in V$ and $n > 0$ such that
74 $d\left(f^{n}(x), f^{n}(y)\right) >\delta $.
75
76 The constant $\delta$ is called the \emph{constant of sensitivity} of $f$.
77 \end{definition}
78
79 Indeed, Banks \emph{et al.} have proven in~\cite{Banks92} that when $f$ is
80 chaotic and $(\mathcal{X}, d)$ is a metric space, then $f$ has the property of
81 sensitive dependence on initial conditions (this property was formerly an
82 element of the definition of chaos). 
83
84
85 \subsection{A Metric Space for PRNG Iterations}
86
87 % Define by $\mathcal{S}_X$ the set of sequences whose elements belong in $X \subset \mathds{N}, X \neq \varnothing$,
88 % that is, $\mathcal{S}_X = \mathcal{X}^\mathds{N}$.
89 % Let $\mathsf{N} \in \mathds{N}^\ast$, $f:\mathds{B}^\mathsf{N} \rightarrow \mathds{B}^\mathsf{N}$, and
90 % $\mathcal{P} \subset \mathds{N}^\ast$ a non empty and finite set of integers.
91
92 % Any couple $(u,v) \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket} \times \mathcal{S}_\mathcal{P}$ defines
93 % a ``chaotic iterations based'' pseudorandom number generator, which is denoted by  $\textit{CIPRNG}_f^2(u,v)$~\cite{wbg10:ip}. It is 
94 % defined as follows:
95 % \begin{equation}
96 % \label{CIPRNGver2}
97 % \left\{
98 % \begin{array}{l}
99 %  x^0 \in \mathds{B}^\mathsf{N}\\
100 %  \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.\\
101 %  \forall n \in \mathds{N}, y^n = x^{v^n} .
102 % \end{array}
103 % \right.
104 % \end{equation}
105 % The outputted sequence produced by this generator is $\left(y^n\right)_{n \in \mathds{N}}$. 
106 % Remark that, given a sequence $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$ called a ``chaotic strategy'',
107 % the following way to iterate: 
108 % $$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. ,$$
109 % is referred in the discrete mathematics literature as ``chaotic iterations''~\cite{Robert} (a terminology which has
110 % \emph{a priori} no relation with the mathematical theory of chaos recalled previously), which
111 % explains the name provided to these categories of pseudorandom number generators.
112
113
114 % 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 
115 % uniformly equal to 1. 
116 % It has been proven as chaotic for the vectorial Boolean negation $f_0:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N}$, 
117 % $(x_1, \hdots , x_\mathsf{N}) \longmapsto (\overline{x_1}, \hdots, \overline{x_\mathsf{N}})$ in \cite{bgw09:ip} 
118 % and for a larger set of well-chosen iteration functions in~\cite{bcgr11:ip} but,
119 % as only one bit is modified at each iteration, this generator is not able to pass any reasonable statistical tests.
120
121 % 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$
122 % where $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$ and $\oplus$ stands for the bitwise \emph{exclusive or} (xor) operation
123 % between the binary decomposition of $x^n$ and $S^n$. This is indeed a $CIPRNG_{f_0}^2 (u,v)$ generator:
124 % %, for 
125 % %$u,v \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$: 
126 % for any given $S \in \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket}$, $v^n$ is the number
127 % of 1's in the binary decomposition of $S^n$ while $u^{v^n}, u^{v^n+1}, \hdots , u^{v^{n+1}-1}$
128 % are the positions of these ones.
129 % The $\textit{XOR~CIPRNG}$ has been proven chaotic and it is able to pass all the most stringent statistical 
130 % batteries of tests~\cite{DBLP:journals/corr/abs-1112-5239}, namely: DieHARD~\cite{Marsaglia1996}, NIST~\cite{Nist10}, and TestU01~\cite{LEcuyerS07},
131 % which encompasses the two former ones. Furthermore, the output sequence is cryptographically secure
132 % when $S$ is cryptographically secure~\cite{DBLP:journals/corr/abs-1112-5239}.
133 % We are then left to prove $\textit{CIPRNG}_f^2(u,v)$ is chaotic.
134
135 % \subsection{The $\textit{CIPRNG}_f^2(u,v)$ is chaotic for well-chosen $f$}\label{sec:wellchosen}
136
137 % \subsection{The generator as a discrete dynamical system}
138
139
140 % This algorithm may be seen as $\mathsf{p}$ functional composition of $F_f$.
141 % We thus introduce the function 
142 % $F_{f,\mathsf{p}} :  \mathds{B}^\mathsf{N} \times \llbracket 1, \mathsf{N} \rrbracket^\mathsf{p}  \rightarrow \mathds{B}^\mathsf{N}$ defined by 
143
144 % $$
145 % F_{f,\mathsf{p}} (x,(u^0, u^1, \hdots, u^{\mathsf{p}-1}))  \mapsto 
146 % F_f(\hdots (F_f(F_f(x,u^0), u^1), \hdots), u^{\mathsf{p}-1}).
147 % $$
148
149
150
151
152 Let us first introduce $\mathcal{P} \subset \mathds{N}$ a finite nonempty
153 set having the cardinality $\mathsf{p} \in \mathds{N}^\ast$.
154 Intuitively, this  is the set of authorized numbers of iterations.
155 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}\}$
156 and $p_1< p_2< \hdots < p_\mathsf{p}$. In our algorithm, 
157 $\mathsf{p}$ is 1 and $p_1$ is $b$. 
158
159
160 The Algorithm~\ref{CI Algorithm} 
161 may be seen as $b$ functional composition of $F_f$.
162 However, it can be generalized with $p_i$, $p_i \in \mathcal{P}$,
163 functional compositions of $F_f$.
164 Thus, for any $p_i \in \mathcal{P}$ we introduce the function 
165 $F_{f,p_i} :  \mathds{B}^\mathsf{N} \times \llbracket 1, \mathsf{N} \rrbracket^{p_i}  \rightarrow \mathds{B}^\mathsf{N}$ defined by 
166 \[
167 \begin{array}{l}
168 F_{f,p_i} (x,(u^0, u^1, \hdots, u^{p_i-1}))  \mapsto \\
169 \qquad F_f(\hdots (F_f(F_f(x,u^0), u^1), \hdots), u^{p_i-1}).
170 \end{array}
171 \]
172
173
174 The considered space is 
175  $\mathcal{X}_{\mathsf{N},\mathcal{P}}=  \mathds{B}^\mathsf{N} \times \mathds{S}_{\mathsf{N},\mathcal{P}}$, where 
176 $\mathds{S}_{\mathsf{N},\mathcal{P}}=
177 \llbracket 1, \mathsf{N} \rrbracket^{\Nats}\times 
178 \mathcal{P}^{\Nats}$. 
179 Each element in this space is a pair where the first element is 
180 $\mathsf{N}$-uple in $\Bool^{\mathsf{N}}$, as in the previous space.  
181 The second element is a pair $((u^k)_{k \in \Nats},(v^k)_{k \in \Nats})$ of infinite sequences.
182 The sequence $(v^k)_{k \in \Nats}$ defines how many iterations are executed at time $k$ between two outputs. 
183 The sequence $(u^k)_{k \in \Nats}$ defines which elements is modified. 
184
185 Let us define the shift function $\Sigma$ for any element of $\mathds{S}_{\mathsf{N},\mathcal{P}}$.
186
187 \[
188 \begin{array}{cccc}
189 \Sigma:&\mathds{S}_{\mathsf{N},\mathcal{P}} &\rightarrow
190 &\mathds{S}_{\mathsf{N},\mathcal{P}} \\
191 & \left((u^k)_{k \in \mathds{N}},(v^k)_{k \in \mathds{N}}\right) & \mapsto & 
192 \begin {array}{l}
193     \left(\sigma^{v^0}\left((u^k)_{k \in \mathds{N}}\right), \right. \\
194      \qquad \left. \sigma\left((v^k)_{k \in \mathds{N}}\right)\right).
195  \end{array} 
196 \end{array}
197 \]
198
199 In other words, $\Sigma$ receives two sequences $u$ and $v$, and
200 it operates $v^0$ shifts on the first sequence and a single shift
201 on the second one. 
202 Let
203 \begin{equation}
204 \begin{array}{cccc}
205 G_f :&  \mathcal{X}_{\mathsf{N},\mathcal{P}} & \rightarrow & \mathcal{X}_{\mathsf{N},\mathcal{P}}\\
206    & (e,(u,v)) & \mapsto & \left( F_{f,v^0}\left( e, (u^0, \hdots, u^{v^0-1}\right), \Sigma (u,v) \right) .
207 \end{array}
208 \end{equation}
209 Then the outputs $(y^0, y^1, \hdots )$ produced by the $\textit{CIPRNG}_f^2(u,v)$ generator 
210 are the first components of the iterations $X^0 = (x^0, (u,v))$ and $\forall n \in \mathds{N}, 
211 X^{n+1} = G_f(X^n)$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$.
212
213
214
215
216
217
218 \subsection{A metric on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$}
219
220 We define a distance $d$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$ as follows. 
221 Consider 
222 $x=(e,s)$ and $\check{x}=(\check{e},\check{s})$ in 
223 $\mathcal{X}_{\mathsf{N},\mathcal{P}} = \mathds{B}^\mathsf{N} \times \mathds{S}_{\mathsf{N},\mathcal{P}} $,
224 where $s=(u,v)$ and $\check{s}=(\check{u},\check{v})$ are in $ \mathds{S}_{\mathsf{N},\mathcal{P}} = 
225 \mathcal{S}_{\llbracket 1, \mathsf{N} \rrbracket} \times \mathcal{S}_\mathcal{P}$. 
226 \begin{itemize}
227 \item $e$ and $\check{e}$ are integers belonging in $\llbracket 0, 2^{\mathsf{N}-1} \rrbracket$. The Hamming distance
228 on their binary decomposition, that is, the number of dissimilar binary digits, constitutes the integral
229 part of $d(X,\check{X})$.
230 \item The fractional part is constituted by the differences between $v^0$ and $\check{v}^0$, followed by the differences
231 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 
232  differences between $v^1$ and $\check{v}^1$, followed by the differences
233 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.
234 More precisely, let $p = \lfloor \log_{10}{(\max{\mathcal{P}})}\rfloor +1$ and $n = \lfloor \log_{10}{(\mathsf{N})}\rfloor +1$.
235 \begin{itemize}
236 \item The $p$ first digits of $d(x,\check{x})$ is $|v^0-\check{v}^0|$ written in decimal numeration (and with $p$ digits).
237 \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
238 digits are $|u^0-\check{u}^0|$. They are followed by 
239 $|u^1-\check{u}^1|$ written with $n$ digits, etc.
240 \begin{itemize}
241 \item If
242 $v^0=\check{v}^0$, then the process is continued until $|u^{v^0-1}-\check{u}^{\check{v}^0-1}|$ and the fractional
243 part of $d(X,\check{X})$ is completed by 0's until reaching
244 $p+n\times \max{(\mathcal{P})}$ digits.
245 \item If $v^0<\check{v}^0$, then the $ \max{(\mathcal{P})}$  blocs of $n$
246 digits are $|u^0-\check{u}^0|$, ..., $|u^{v^0-1}-\check{u}^{v^0-1}|$,
247 $\check{u}^{v^0}$ (on $n$ digits), ..., $\check{u}^{\check{v}^0-1}$ (on $n$ digits), followed by 0's if required.
248 \item The case $v^0>\check{v}^0$ is dealt similarly.
249 \end{itemize}
250 \item The next $p$ digits are $|v^1-\check{v}^1|$, etc.
251 \end{itemize}
252 \end{itemize}
253
254
255
256 \newcommand{\ns}{$\hspace{.1em}$}
257
258 \begin{xpl}
259 Consider for instance that $\mathsf{N}=13$, $\mathcal{P}=\{1,2,11\}$ (so $\mathsf{p}=2$), and that
260 $s=\left\{
261 \begin{array}{l}
262 u=\underline{6,} ~ \underline{11,5}, ...\\
263 v=1,2,...
264 \end{array}
265 \right.$
266 while
267 $\check{s}=\left\{
268 \begin{array}{l}
269 \check{u}=\underline{6,4} ~ \underline{1}, ...\\
270 \check{v}=2,1,...
271 \end{array}
272 \right.$.
273
274 So $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = 0.01\ns00\ns04\ns00\ns00\ns00\ns00\ns00\ns00\ns00\ns00\ns00\ns01\ns10\ns05 ...$
275 Indeed, the $p=2$ first digits are 01, as $|v^0-\check{v}^0|=1$, 
276 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
277 at most $\max{(\mathcal{P})}$ times, we must complete this
278 value by some 0's in such a way that the obtained result
279 has $n\times \max{(\mathcal{P})}=22$ digits, that is: 
280 0600000000000000000000. Similarly, the $\check{v}^0=2$ first
281 terms in $\check{u}$ are represented by 0604000000000000000000, and the absolute value of their
282 difference is equal to 0004000000000000000000. These digits are concatenated to 01, and
283 we start again with the remainder of the sequences.
284 \end{xpl}
285
286
287 \begin{xpl}
288 Consider now that $\mathsf{N}=9$, and $\mathcal{P}=\{2,7\}$, and that
289
290 $s=\left\{
291 \begin{array}{l}
292 u=\underline{6,7,} ~ \underline{4,2,} ...\\
293 v=2,2,...
294 \end{array}
295 \right.$
296 while
297 $\check{s}=\left\{
298 \begin{array}{l}
299 \check{u}=\underline{4, 9, 6, 3, 6, 6, 7,} ~ \underline{9, 8}, ...\\
300 \check{v}=7,2,...
301 \end{array}
302 \right.$
303
304 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$,
305 and $|9800000-4200000| = 5600000$.
306 \end{xpl}
307
308
309
310 $d$ can be more rigorously written as follows:
311 $$d(x,\check{x})=d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})+d_{\mathds{B}^\mathsf{N}}(e,\check{e}),$$
312 where: % $p=\max \mathcal{P}$ and:
313 \begin{itemize}
314 \item $d_{\mathds{B}^\mathsf{N}}$ is the Hamming distance,
315 \item $\forall s=(u,v), \check{s}=(\check{u},\check{v}) \in \mathcal{S}_{\mathsf{N},\mathcal{P}}$,\newline 
316 \[
317 \begin{array}{l}
318  d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s}) = \\
319   \quad  \sum_{k=0}^\infty \dfrac{1}{10^{(k+1)p+kn\max{(\mathcal{P})}}} 
320    \bigg(|v^k - \check{v}^k|  \\
321    \quad\quad + \left| \sum_{l=0}^{v^k-1} 
322        \dfrac{u^{\sum_{m=0}^{k-1} v^m +l}}{ 10^{(l+1)n}} -
323        \sum_{l=0}^{\check{v}^k-1} 
324        \dfrac{\check{u}^{\sum_{m=0}^{k-1} \check{v}^m +l}}{ 10^{(l+1)n}} \right| \bigg)
325 \end{array}
326 \]
327  %\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)}.
328 \end{itemize}
329
330
331 Let us show that,
332 \begin{prpstn}
333 $d$ is a distance on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$.
334 \end{prpstn}
335
336
337 \begin{proof}
338  $d_{\mathds{B}^\mathsf{N}}$ is the Hamming distance. We will prove that 
339  $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}$ is a distance
340 too, thus $d$ will also be a distance, being the sum of two distances.
341  \begin{itemize}
342 \item Obviously, $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})\geqslant 0$, and if $s=\check{s}$, then 
343 $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 
344 $\forall k \in \mathds{N}, v^k=\check{v}^k$ due to the 
345 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}$.
346  \item $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}$ is clearly symmetric 
347 ($d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(s,\check{s})=d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}(\check{s},s)$). 
348 \item The triangle inequality is obtained because the absolute value satisfies it too.
349  \end{itemize}
350 \end{proof}
351
352
353 Before being able to study the topological behavior of the general 
354 chaotic iterations, we must first establish that:
355
356 \begin{prpstn}
357  For all $f:\mathds{B}^\mathsf{N} \longrightarrow \mathds{B}^\mathsf{N} $, the function $G_f$ is continuous on 
358 $\left( \mathcal{X},d\right)$.
359 \end{prpstn}
360
361
362 \begin{proof}
363 We will show this result by using the sequential continuity. Consider a
364 sequence $x^n=(e^n,(u^n,v^n)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}^\mathds{N}$ such
365 that $d(x^n,x) \longrightarrow 0$, for some $x=(e,(u,v))\in
366 \mathcal{X}_{\mathsf{N},\mathcal{P}}$. We will show that
367 $d\left(G_f(x^n),G_f(x)\right) \longrightarrow 0$.
368 Remark that $u$ and $v$ are sequences of sequences.
369
370 As $d(x^n,x) \longrightarrow 0$, there exists 
371 $n_0\in\mathds{N}$ such that 
372 $d(x^n,x) < 10^{-(p+n \max{(\mathcal{P})})}$
373 (its $p+n \max{(\mathcal{P})}$ first digits are null). 
374 In particular, $\forall n \geqslant n_0, e^n=e$,
375 as the Hamming distance between the integral parts of
376 $x$ and $\check{x}$ is 0. Similarly, due to the nullity 
377 of the $p+n \max{(\mathcal{P})}$ first digits of 
378 $d(x^n,x)$, we can conclude that $\forall n \geqslant n_0$,
379 $(v^n)^0=v^0$, and that $\forall n \geqslant n_0$,
380 $(u^n)^0=u^0$, $(u^n)^1=u^1$, ..., $(u^n)^{v^0-1}=u^{v^0-1}$.
381 This implies that:
382 \begin{itemize}
383 \item $G_f(x^n)_1=G_f(x)_1$: they have the same
384 Boolean vector as first coordinate.
385 \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
386 to 0, we can deduce that it is the case too for the left part of the equality, and so
387 $G_f(x^n)_2$ is convergent to $G_f(x)_2$.
388 \end{itemize}
389 \end{proof}
390
391
392
393 \subsection{$\Gamma_{\mathcal{P}}(f)$ as an extension of  $\Gamma(f)$}
394
395 Let $\mathcal{P}=\{p_1, p_2, \hdots, p_\mathsf{p}\}$.
396 We define the directed graph $\Gamma_{\mathcal{P}}(f)$ as follows.
397 \begin{itemize}
398 \item Its vertices are the $2^\mathsf{N}$ elements of $\mathds{B}^\mathsf{N}$.
399 \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 
400   having their elements in $\llbracket 1, \mathsf{N} \rrbracket $.
401 \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 
402 $y=F_{f,p_i} (x, (u_0, \hdots, u_{p_i-1})) $.
403 \end{itemize}
404
405 It is not hard to see that the graph $\Gamma_{\{1\}}(f)$ is 
406 $\Gamma(f)$.
407
408 \begin{figure}[ht]
409   \centering
410   \begin{subfigure}[b]{0.45\textwidth}
411     \centering
412     \includegraphics[scale=0.85]{graphe1.pdf}
413     \caption{$\Gamma(f_0)$}
414     \label{graphe1}
415   \end{subfigure}%
416   
417 ~ %add desired spacing between images, e. g. ~, \quad, \qquad, \hfill etc.
418   % (or a blank line to force the subfigure onto a new line)
419   \begin{subfigure}[b]{0.3\textwidth}
420     \centering  
421     \includegraphics[scale=0.85]{graphe2.pdf}
422     \caption{$\Gamma_{\{2,3\}}(f_0)$}
423     \label{graphe2}
424   \end{subfigure}
425   ~ %add desired spacing between images, e. g. ~, \quad, \qquad, \hfill etc.
426   \caption{Iterating $f_0:(x_1,x_2) \mapsto (\overline{x_1}, \overline{x_2})$}
427   \label{fig:itg}
428 \end{figure}
429
430
431 \begin{xpl}
432 Consider for instance $\mathsf{N}=2$, 
433 Let $f_0:\mathds{B}^2 \longrightarrow \mathds{B}^2$ be the negation function,
434 \textit{i.e.}, $f_0(x_1,x_2) = (\overline{x_1}, \overline{x_2})$, and consider
435 $\mathcal{P}=\{2,3\}$. The graphs of iterations are given in 
436 \textsc{Figure~\ref{fig:itg}}.
437 The \textsc{Figure~\ref{graphe1}} shows what happens when 
438 displaying each iteration result.
439 On the contrary, the \textsc{Figure~\ref{graphe2}} explicits the behaviors
440 when always applying either 2 or 3 modifications before generating results. 
441 Notice that here, orientations of arcs are not necessary 
442 since the function $f_0$ is equal to its inverse $f_0^{-1}$. 
443 \end{xpl}
444
445 \subsection{Proofs of chaos}
446
447 We will show that,
448 \begin{prpstn}
449 \label{prop:trans}
450  $\Gamma_{\mathcal{P}}(f)$ is strongly connected if and only if $G_f$ is 
451 topologically transitive on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
452 \end{prpstn}
453
454
455 \begin{proof}
456 Suppose that $\Gamma_{\mathcal{P}}(f)$ is strongly connected. 
457 Let $x=(e,(u,v)),\check{x}=(\check{e},(\check{u},\check{v})) 
458 \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$.
459 We will find a point $y$ in the open ball $\mathcal{B}(x,\varepsilon )$ and
460 $n_0 \in \mathds{N}$ such that $G_f^{n_0}(y)=\check{x}$: this strong transitivity
461 will imply the transitivity property.
462 We can suppose that $\varepsilon <1$ without loss of generality. 
463
464 Let us denote by $(E,(U,V))$  the elements of $y$. As
465 $y$ must be in $\mathcal{B}(x,\varepsilon)$ and  $\varepsilon < 1$,
466 $E$ must be equal to $e$. Let $k=\lfloor \log_{10} (\varepsilon) \rfloor +1$.
467 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ must be lower than
468 $\varepsilon$, so the $k$ first digits of the fractional part of 
469 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ are null.
470 Let $k_1$ the smallest integer such that, if $V^0=v^0$, ...,  $V^{k_1}=v^{k_1}$,
471  $U^0=u^0$, ..., $U^{\sum_{l=0}^{k_1}V^l-1} = u^{\sum_{l=0}^{k_1}v^l-1}$.
472 Then $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))<\varepsilon$.
473 In other words, any $y$ of the form $(e,((u^0, ..., u^{\sum_{l=0}^{k_1}v^l-1}),
474 (v^0, ..., v^{k_1}))$ is in $\mathcal{B}(x,\varepsilon)$.
475
476 Let $y^0$ such a point and $z=G_f^{k_1}(y^0) = (e',(u',v'))$. $\Gamma_{\mathcal{P}}(f)$
477 being strongly connected, there is a path between $e'$ and $\check{e}$. Denote
478 by $a_0, \hdots, a_{k_2}$ the edges visited by this path. We denote by
479 $V^{k_1}=|a_0|$ (number of terms in the finite sequence $a_1$),
480 $V^{k_1+1}=|a_1|$, ..., $V^{k_1+k_2}=|a_{k_2}|$, and by 
481 $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}$,
482 $U^{k_1+V_{k_1}}=a_1^{0}$, $U^{k_1+V_{k_1}+1}=a_1^{1}$,...
483
484 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 
485 $a_1^{|a_1|},\dots, a_{k_2}^0, \dots, a_{k_2}^{|a_{k_2}|},$  
486  $\check{u}^0, \check{u}^1, \dots),(v^0, \dots, v^{k_1},|a_0|, \dots,$\linebreak
487  $|a_{k_2}|,\check{v}^0, \check{v}^1, \dots)))$. So $y\in \mathcal{B}(x,\varepsilon)$
488  and $G_{f}^{k_1+k_2}(y)=\check{x}$.
489  
490  
491 Conversely, if $\Gamma_{\mathcal{P}}(f)$ is not strongly connected, then there are 
492 2 vertices $e_1$ and $e_2$ such that there is no path between $e_1$ and $e_2$.
493 That is, it is impossible to find $(u,v)\in \mathds{S}_{\mathsf{N},\mathcal{P}}$
494 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)$
495 cannot be reached from any neighborhood of $e_1$, and thus $G_f$ is not transitive.
496 \end{proof}
497
498
499 We show now that,
500 \begin{prpstn}
501 If $\Gamma_{\mathcal{P}}(f)$ is strongly connected, then $G_f$ is 
502 regular on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
503 \end{prpstn}
504
505 \begin{proof}
506 Let $x=(e,(u,v)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$. 
507 As in the proofs of Prop.~\ref{prop:trans}, let $k_1 \in \mathds{N}$ such
508 that 
509 $$\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.$$
510 $$\left.\forall i,j \in \mathds{N}, U^i \in \llbracket 1, \mathsf{N} \rrbracket, V^j \in \mathcal{P}\right\}
511 \subset \mathcal{B}(x,\varepsilon),$$
512 and $y=G_f^{k_1}(e,(u,v))$. $\Gamma_{\mathcal{P}}(f)$ being strongly connected,
513 there is at least a path from the Boolean state $y_1$ of $y$ and $e$ \ANNOT{Phrase pas claire : "from \dots " mais pas de "to \dots"}.
514 Denote by $a_0, \hdots, a_{k_2}$ the edges of such a path.
515 Then the point:\linebreak
516 $(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, 
517  a_{k_2}^0, \dots,$ \linebreak 
518 $\,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
519 $(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))$
520 is a periodic point in the neighborhood $\mathcal{B}(x,\varepsilon)$ of $x$.
521 \end{proof}
522
523 $G_f$ being topologically transitive and regular, we can thus conclude that
524 \begin{thrm}
525 The function $G_f$ is chaotic on $(\mathcal{X}_{\mathsf{N},\mathcal{P}},d)$ if
526 and only if its iteration graph $\Gamma_{\mathcal{P}}(f)$ is strongly connected.
527 \end{thrm}
528
529 \begin{crllr}
530   The pseudorandom number generator $\chi_{\textit{14Secrypt}}$ is not chaotic
531   on $(\mathcal{X}_{\mathsf{N},\{b\}},d)$ for the negation function.
532 \end{crllr}
533 \begin{proof}
534   In this context, $\mathcal{P}$ is the singleton $\{b\}$.
535   If $b$ is even, any vertex $e$ of $\Gamma_{\{b\}}(f_0)$ cannot reach 
536   its neighborhood and thus $\Gamma_{\{b\}}(f_0)$ is not strongly connected. 
537   If $b$ is odd, any vertex $e$ of $\Gamma_{\{b\}}(f_0)$ cannot reach itself 
538   and thus $\Gamma_{\{b\}}(f_0)$ is not strongly connected.
539 \end{proof}
540
541 The next section recalls a general scheme to produce
542 functions and a iteration number $b$
543 such that $\Gamma_{\{b\}}$ is strongly connected.
544
545
546 %%% Local Variables:
547 %%% mode: latex
548 %%% TeX-master: "main"
549 %%% ispell-dictionary: "american"
550 %%% mode: flyspell
551 %%% End: