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

Private GIT Repository
intégration des remarques des relecteurs
[16dcc.git] / chaos.tex
1
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  
7 the map from 
8 $\Bool^{{\mathsf{N}}} \times \llbracket1;{\mathsf{N}}\rrbracket^{\Nats}$ 
9 to itself defined by
10 \[
11 \mathcal{H}_f(x,s)=(F_f(x,s_0),\sigma(s)).
12 \] 
13 In this definition, 
14 $\sigma: \llbracket1;{\mathsf{N}}\rrbracket^{\Nats} \longrightarrow
15  \llbracket1;{\mathsf{N}}\rrbracket^{\Nats} 
16 $
17  is a shift operation on sequences (\textit{i.e.}, a function that removes the 
18 first element of the sequence) formally defined with
19 $$
20 \sigma((u^k)_{k \in \Nats}) =  (u^{k+1})_{k \in \Nats}. 
21 $$
22
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 are concerned and 
30 any subsequence of a chaotic sequence  is   not  necessarily  
31 a   chaotic  sequence  as well.
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.
34
35
36
37
38 \subsection{Devaney's Chaotic Dynamical Systems}
39 \label{subsec:Devaney}
40
41
42 Consider a topological space $(\mathcal{X},\tau)$ and a continuous function $f :
43 \mathcal{X} \rightarrow \mathcal{X}$~\cite{Devaney}.
44
45 \begin{definition}
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
48 \varnothing$.
49 \end{definition}
50
51 \begin{definition}
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).$
54 \end{definition}
55
56 \begin{definition}
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).
61 \end{definition}
62
63
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.
67 \end{definition}
68
69 The chaos property is strongly linked to the notion of ``sensitivity'', defined
70 on a metric space $(\mathcal{X},d)$ by:
71
72 \begin{definition}
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 $.
77
78 The constant $\delta$ is called the \emph{constant of sensitivity} of $f$.
79 \end{definition}
80
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). 
85
86
87 \subsection{A Metric Space for PRNG Iterations}
88
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.
93
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 
96 % defined as follows:
97 % \begin{equation}
98 % \label{CIPRNGver2}
99 % \left\{
100 % \begin{array}{l}
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} .
104 % \end{array}
105 % \right.
106 % \end{equation}
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.
114
115
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.
122
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:
126 % %, for 
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.
136
137 % \subsection{The $\textit{CIPRNG}_f^2(u,v)$ is chaotic for well-chosen $f$}\label{sec:wellchosen}
138
139 % \subsection{The generator as a discrete dynamical system}
140
141
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 
145
146 % $$
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}).
149 % $$
150
151
152
153
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}$. 
159
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 
167 \[
168 \begin{array}{l}
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}).
171 \end{array}
172 \]
173
174
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. 
185
186 Let us introduce the shift function $\Sigma$ for any element of $\mathds{S}_{\mathsf{N},\mathcal{P}}$.
187
188 \[
189 \begin{array}{cccc}
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 & 
193 \begin {array}{l}
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).
196  \end{array} 
197 \end{array}
198 \]
199
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
202 on the second one. 
203 Let us consider
204 \begin{equation}
205 \begin{array}{cccc}
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) .
208 \end{array}
209 \end{equation}
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.
215
216
217
218
219
220 \subsection{A metric on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$}
221
222 We define a distance $d$ on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$ as follows. 
223 Consider 
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}$. 
228 \begin{itemize}
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$.
237 \begin{itemize}
238 \item The $p$ first digits of $d(x,\check{x})$ are $|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}$ differ 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.
242 \begin{itemize}
243 \item If
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.
251 \end{itemize}
252 \item The next $p$ digits are $|v^1-\check{v}^1|$, etc.
253 \end{itemize}
254 \end{itemize}
255
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:
262 \begin{itemize}
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$ ?
265   \item etc.
266 \end{itemize}
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.
268 \begin{xpl}
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
270 $s=\left\{
271 \begin{array}{l}
272 u=\underline{6,} ~ \underline{11,5}, ...\\
273 v=1,2,...
274 \end{array}
275 \right.$
276 while
277 $\check{s}=\left\{
278 \begin{array}{l}
279 \check{u}=\underline{6,4} ~ \underline{1}, ...\\
280 \check{v}=2,1,...
281 \end{array}
282 \right.$.
283
284 So 
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 first $\check{v}^0=2$ 
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.
295 \end{xpl}
296
297
298 \begin{xpl}
299 Consider now that $\mathsf{N}=9$ ($n=1$), $\mathcal{P}=\{2,7\}$ ($\mathsf{p}=2, p=1$), and that
300
301 $s=\left\{
302 \begin{array}{l}
303 u=\underline{6,7,} ~ \underline{4,2,} ...\\
304 v=2,2,...
305 \end{array}
306 \right.$\\
307 while
308 $\check{s}=\left\{
309 \begin{array}{l}
310 \check{u}=\underline{4, 9, 6, 3, 6, 6, 7,} ~ \underline{9, 8}, ...\\
311 \check{v}=7,2,...
312 \end{array}
313 \right.$
314
315 So: 
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$.
319 \end{xpl}
320
321
322
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:
326 \begin{itemize}
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 
329 \[
330 \begin{array}{l}
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)
338 \end{array}
339 \]
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)}.
341 \end{itemize}
342
343
344 Let us show that,
345 \begin{prpstn}
346 $d$ is a distance on $\mathcal{X}_{\mathsf{N},\mathcal{P}}$.
347 \end{prpstn}
348
349
350 \begin{proof}
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.
354  \begin{itemize}
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 as well.
362  \end{itemize}
363 \end{proof}
364
365
366 Before being able to study the topological behavior of the general 
367 chaotic iterations, we must first establish that:
368
369 \begin{prpstn}
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)$.
372 \end{prpstn}
373
374
375 \begin{proof}
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.
382
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}$.
394 This implies that:
395 \begin{itemize}
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 also the case for the left part of the equality, and so
400 $G_f(x^n)_2$ is convergent to $G_f(x)_2$.
401 \end{itemize}
402 \end{proof}
403
404
405
406 \subsection{$\Gamma_{\mathcal{P}}(f)$ as an extension of  $\Gamma(f)$}
407
408 Let $\mathcal{P}=\{p_1, p_2, \hdots, p_\mathsf{p}\}$.
409 We define the directed graph $\Gamma_{\mathcal{P}}(f)$ as follows.
410 \begin{itemize}
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})) $.
416 \end{itemize}
417
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}})$.
421
422 \begin{figure}[ht]
423   \centering
424   \subfigure[$\Gamma(f_0)$]{
425       \begin{minipage}{0.45\textwidth}
426         \centering
427         \includegraphics[scale=0.85]{graphe1.pdf}
428       \end{minipage}
429     \label{graphe1}
430     }
431     \subfigure[$\Gamma_{\{2,3\}}(f_0)$]{
432       \begin{minipage}{0.3\textwidth}
433         \centering
434           \includegraphics[scale=0.85]{graphe2.pdf}
435       \end{minipage}
436     \label{graphe2}
437     }
438   \caption{Iterating $f_0:(x_1,x_2) \mapsto (\overline{x_1}, \overline{x_2})$}
439   \label{fig:itg}
440 \end{figure}
441
442
443 \begin{xpl}
444 Consider for instance $\mathsf{N}=2$, 
445 Let $f_0:\mathds{B}^2 \longrightarrow \mathds{B}^2$ be the negation function,
446 \textit{i.e.}, $f_0(x_1,x_2) = (\overline{x_1}, \overline{x_2})$, and consider
447 $\mathcal{P}=\{2,3\}$. The graphs of iterations are given in 
448 Figure~\ref{fig:itg}.
449 Figure~\ref{graphe1} shows what happens when each iteration result  
450 is displayed .
451 On the contrary, Figure~\ref{graphe2} illustrates what happens when  2 or 3 modifications 
452 are systematically applied 
453 before results are generated. 
454 Notice that here, the orientations of arcs are not necessary 
455 since the function $f_0$ is equal to its inverse $f_0^{-1}$. 
456 \end{xpl}
457
458 \subsection{Proofs of chaos}
459
460 We will show that,
461 \begin{prpstn}
462 \label{prop:trans}
463  $\Gamma_{\mathcal{P}}(f)$ is strongly connected if and only if $G_f$ is 
464 topologically transitive on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
465 \end{prpstn}
466
467
468 \begin{proof}
469 Suppose that $\Gamma_{\mathcal{P}}(f)$ is strongly connected. 
470 Let $x=(e,(u,v)),\check{x}=(\check{e},(\check{u},\check{v})) 
471 \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$.
472 We will find a point $y$ in the open ball $\mathcal{B}(x,\varepsilon )$ and
473 $n_0 \in \mathds{N}$ such that $G_f^{n_0}(y)=\check{x}$: this strong transitivity
474 will imply the transitivity property.
475 We can suppose that $\varepsilon <1$ without loss of generality. 
476
477 Let us denote by $(E,(U,V))$  the elements of $y$. As
478 $y$ must be in $\mathcal{B}(x,\varepsilon)$ and  $\varepsilon < 1$,
479 $E$ must be equal to $e$. Let $k=\lfloor \log_{10} (\varepsilon) \rfloor +1$.
480 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ must be lower than
481 $\varepsilon$, so the $k$ first digits of the fractional part of 
482 $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))$ are null.
483 Let $k_1$ be the smallest integer such that, if $V^0=v^0$, ...,  $V^{k_1}=v^{k_1}$,
484  $U^0=u^0$, ..., $U^{\sum_{l=0}^{k_1}V^l-1} = u^{\sum_{l=0}^{k_1}v^l-1}$.
485 Then $d_{\mathds{S}_{\mathsf{N},\mathcal{P}}}((u,v),(U,V))<\varepsilon$.
486 In other words, any $y$ of the form $(e,((u^0, ..., u^{\sum_{l=0}^{k_1}v^l-1}),
487 (v^0, ..., v^{k_1}))$ is in $\mathcal{B}(x,\varepsilon)$.
488
489 Let $y^0$ such a point and $z=G_f^{k_1}(y^0) = (e',(u',v'))$. $\Gamma_{\mathcal{P}}(f)$
490 being strongly connected, there is a path between $e'$ and $\check{e}$. Denote
491 by $a_0, \hdots, a_{k_2}$ the edges visited by this path. We denote by
492 $V^{k_1}=|a_0|$ (number of terms in the finite sequence $a_1$),
493 $V^{k_1+1}=|a_1|$, ..., $V^{k_1+k_2}=|a_{k_2}|$, and by 
494 $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}$,
495 $U^{k_1+V_{k_1}}=a_1^{0}$, $U^{k_1+V_{k_1}+1}=a_1^{1}$,...
496
497 Let
498
499 \begin{eqnarray*}
500 y&=&(e,(
501 (u^0, \dots, u^{\sum_{l=0}^{k_1}v^l-1}, a_0^0, \dots, a_0^{|a_0|}, a_1^0, \dots, 
502 a_1^{|a_1|},\dots, a_{k_2}^0, \dots, a_{k_2}^{|a_{k_2}|},
503  \check{u}^0, \check{u}^1, \dots), \\
504 &&\qquad(v^0, \dots, v^{k_1},|a_0|, \dots,
505  |a_{k_2}|,\check{v}^0, \check{v}^1, \dots))).
506 \end{eqnarray*}
507 So $y\in \mathcal{B}(x,\varepsilon)$
508  and $G_{f}^{k_1+k_2}(y)=\check{x}$.
509  
510  
511 Conversely, if $\Gamma_{\mathcal{P}}(f)$ is not strongly connected, then there are 
512 2 vertices $e_1$ and $e_2$ such that there is no path between $e_1$ and $e_2$.
513 Thus, it is impossible to find $(u,v)\in \mathds{S}_{\mathsf{N},\mathcal{P}}$
514 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)$
515 cannot be reached from any neighborhood of $e_1$, and thus $G_f$ is not transitive.
516 \end{proof}
517
518
519 We now show  that,
520 \begin{prpstn}
521 If $\Gamma_{\mathcal{P}}(f)$ is strongly connected, then $G_f$ is 
522 regular on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
523 \end{prpstn}
524
525 \begin{proof}
526 Let $x=(e,(u,v)) \in \mathcal{X}_{\mathsf{N},\mathcal{P}}$ and $\varepsilon >0$. 
527 As in the proofs of Prop.~\ref{prop:trans}, let $k_1 \in \mathds{N}$ such
528 that 
529 $$\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.$$
530 $$\left.\forall i,j \in \mathds{N}, U^i \in \llbracket 1, \mathsf{N} \rrbracket, V^j \in \mathcal{P}\right\}
531 \subset \mathcal{B}(x,\varepsilon),$$
532 and $y=G_f^{k_1}(e,(u,v))$. $\Gamma_{\mathcal{P}}(f)$ being strongly connected,
533 there is at least a path from the Boolean state $y_1$ of $y$ to $e$.
534 %\ANNOT{Phrase pas claire : "from \dots " mais pas de "to \dots"}.
535 Denote by $a_0, \hdots, a_{k_2}$ the edges of such a path.
536 Then the point:\linebreak
537 $(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, 
538  a_{k_2}^0, \dots,$ \linebreak 
539 $\,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
540 $(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))$
541 is a periodic point in the neighborhood $\mathcal{B}(x,\varepsilon)$ of $x$.
542 \end{proof}
543
544 $G_f$ being topologically transitive and regular, we can thus conclude that
545 \begin{thrm}
546 Function $G_f$ is chaotic on $(\mathcal{X}_{\mathsf{N},\mathcal{P}},d)$ if
547 and only if its iteration graph $\Gamma_{\mathcal{P}}(f)$ is strongly connected.
548 \end{thrm}
549
550 \begin{crllr}
551   The pseudorandom number generator $\chi_{\textit{14Secrypt}}$ is not chaotic
552   on $(\mathcal{X}_{\mathsf{N},\{b\}},d)$ for the negation function.
553 \end{crllr}
554 \begin{proof}
555   In this context, $\mathcal{P}$ is the singleton $\{b\}$.
556   If $b$ is even, no vertex $e$ of $\Gamma_{\{b\}}(f_0)$ can reach 
557   its neighborhood and thus $\Gamma_{\{b\}}(f_0)$ is not strongly connected. 
558   If $b$ is odd, no vertex $e$ of $\Gamma_{\{b\}}(f_0)$ can reach itself 
559   and thus $\Gamma_{\{b\}}(f_0)$ is not strongly connected.
560 \end{proof}
561
562
563 \subsection{Comparison with other well-known generators}
564
565 \begin{table}
566 \centering
567   \begin{tabular}{c|ccccccc}
568   PRNG & LCG & MRG & AWC & SWB & SWC & GFSR & INV\\
569   \hline
570   NIST & 11 & 14 & 15 & 15 & 14 & 14 & 14\\
571   DieHARD & 16 & 16 & 15 & 16 &18 & 16 & 16
572   \end{tabular}
573   \caption{Statistical evaluation of known PRNGs: number of succeeded tests}
574   \label{table:comparisonWithout}
575 \end{table}
576
577 \begin{table}
578 \centering
579   \begin{tabular}{c|ccccccc}
580   PRNG & LCG & MRG & AWC & SWB & SWC & GFSR & INV\\
581   \hline
582   NIST & 15 & 15 & 15 & 15 & 15 & 15 & 15\\
583   DieHARD & 18 & 18 & 18 & 18 & 18 & 18 & 18
584   \end{tabular}
585   \caption{Statistical effects of CIPRNG on the succeeded tests}
586   \label{table:comparisonWith}
587 \end{table}
588 The objective of this section is to evaluate the statistical performance of the 
589 proposed CIPRNG method, by comparing the effects of its application on well-known
590 but defective generators. We considered during the experiments the following PRNGs:
591 linear congruential generator (LCG), multiple recursive generators (MRG)
592 add-with-carry (AWC), subtract-with-borrow (SWB), shift-with-carry (SWC)
593 Generalized Feedback Shift Register (GFSR), and nonlinear inversive generator.
594 A general overview and a reminder of these  generators 
595 can be found, for instance, in the documentation of the TestU01 statistical
596 battery of tests~\cite{LEcuyerS07}. For each studied generator, we have compared
597 their scores according to both NIST~\cite{Nist10} and DieHARD~\cite{Marsaglia1996}
598 statistical batteries of tests, by launching them alone or inside the $\textit{CIPRNG}_f^2(v,v)$
599 dynamical system, where $v$ is the considered PRNG set with most usual parameters,
600 and $f$ is the vectorial negation. 
601
602 Obtained results are reproduced in Tables~\ref{table:comparisonWithout} and \ref{table:comparisonWith}.
603 As can be seen, all these generators considered alone failed to pass either the 15 NIST tests or the
604 18 DieHARD ones, while both batteries of tests are always passed when applying the $\textit{CIPRNG}_f^2$
605 post-treatment. Other results in the same direction, which can be found in~\cite{bfgw11:ip}, illustrate
606 the fact that operating a provable chaotic post-treatment on defective generators tends to improve
607 their statistical profile. 
608
609 Such post-treatment depending on the properties of the inputted function $f$, we need to recall a general scheme to produce
610 functions and an iteration number $b$ such that $\Gamma_{\{b\}}$ is strongly connected.
611
612
613 %%% Local Variables:
614 %%% mode: latex
615 %%% TeX-master: "main"
616 %%% ispell-dictionary: "american"
617 %%% mode: flyspell
618 %%% End: