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

Private GIT Repository
Ajout diapos présentation PRNG
[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 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.
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})$ 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.
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 $\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.
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 too.
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 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$.
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   \begin{subfigure}[b]{0.45\textwidth}
425     \centering
426     \includegraphics[scale=0.85]{graphe1.pdf}
427     \caption{$\Gamma(f_0)$}
428     \label{graphe1}
429   \end{subfigure}%
430   
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}
434     \centering  
435     \includegraphics[scale=0.85]{graphe2.pdf}
436     \caption{$\Gamma_{\{2,3\}}(f_0)$}
437     \label{graphe2}
438   \end{subfigure}
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})$}
441   \label{fig:itg}
442 \end{figure}
443
444
445 \begin{xpl}
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}$. 
457 \end{xpl}
458
459 \subsection{Proofs of chaos}
460
461 We will show that,
462 \begin{prpstn}
463 \label{prop:trans}
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)$.
466 \end{prpstn}
467
468
469 \begin{proof}
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. 
477
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)$.
489
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}$,...
497
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}$.
503  
504  
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.
510 \end{proof}
511
512
513 We show now that,
514 \begin{prpstn}
515 If $\Gamma_{\mathcal{P}}(f)$ is strongly connected, then $G_f$ is 
516 regular on $(\mathcal{X}_{\mathsf{N},\mathcal{P}}, d)$.
517 \end{prpstn}
518
519 \begin{proof}
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
522 that 
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$.
536 \end{proof}
537
538 $G_f$ being topologically transitive and regular, we can thus conclude that
539 \begin{thrm}
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.
542 \end{thrm}
543
544 \begin{crllr}
545   The pseudorandom number generator $\chi_{\textit{14Secrypt}}$ is not chaotic
546   on $(\mathcal{X}_{\mathsf{N},\{b\}},d)$ for the negation function.
547 \end{crllr}
548 \begin{proof}
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.
554 \end{proof}
555
556
557 \subsection{Comparison with other well-known generators}
558
559 \begin{table}
560 \centering
561   \begin{tabular}{c|ccccccc}
562   PRNG & LCG & MRG & AWC & SWB & SWC & GFSR & INV\\
563   \hline
564   NIST & 11 & 14 & 15 & 15 & 14 & 14 & 14\\
565   DieHARD & 16 & 16 & 15 & 16 &18 & 16 & 16
566   \end{tabular}
567   \caption{Statistical evaluation of known PRNGs: number of succeeded tests}
568   \label{table:comparisonWithout}
569 \end{table}
570
571 \begin{table}
572 \centering
573   \begin{tabular}{c|ccccccc}
574   PRNG & LCG & MRG & AWC & SWB & SWC & GFSR & INV\\
575   \hline
576   NIST & 15 & 15 & 15 & 15 & 15 & 15 & 15\\
577   DieHARD & 18 & 18 & 18 & 18 & 18 & 18 & 18
578   \end{tabular}
579   \caption{Statistical effects of CIPRNG on the succeeded tests}
580   \label{table:comparisonWith}
581 \end{table}
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. 
595
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. 
602
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.
605
606
607 %%% Local Variables:
608 %%% mode: latex
609 %%% TeX-master: "main"
610 %%% ispell-dictionary: "american"
611 %%% mode: flyspell
612 %%% End: