1 \chapter{Design of CI PRNG}
2 \label{Design of CI PRNG}
4 The designs of our two versions of CI pseudorandom number generators based on discrete chaotic iterations, satisfying Devaney's chaos, are proposed and discussed. Detail operations of this approach are described in this chapter, while their performance and a comparative study will be presented latter.
7 \section{The generation of pseudorandom sequence}
8 \label{The generation of pseudorandom sequence}
9 \subsection{The logistic map}
11 %Generating a pseudorandom sequence from the orbit of a real chaotic system requires mapping the state of the system to integer domain. Various methods have been proposed for the conversion of a real sequence into an integer sequence, two of them are recalled bellow.
13 The logistic map, given by:
15 $x^{n+1}=\mu ~ x^{n}(1-x^{n})$, with $x^{0}\in(0,1)$, $\mu \in(3.99996,4]$,
18 \noindent was originally introduced as a demographic model by Pierre Fran\c cois Verhulst in 1838. In 1947, Ulam and Von Neumann ~\cite{ulam1947} studied it as a PRNG. This essentially requires mapping the states of the system $\left(x^n\right)_{n \in \mathds{N}}$ to $\{0,1\}^\mathds{N}$. A simple way for turning $x^n$ to a discrete bit symbol $r$ is by using a threshold function as it is shown in Algorithm~\ref{logisticmap1}.
19 A second usual way to obtain an integer sequence from a real system is to chop off the leading bits after moving the decimal point of each $x$ to the right, as it is obtained in Algorithm~\ref{logisticmap2}.
22 \textbf{Input:} the internal state $x$ (a decimal number)\\
23 \textbf{Output:} $r$ (a 1-bit word)
24 \begin{algorithmic}[1]
25 \STATE$x\leftarrow{4x(1-x)}$
36 \caption{An arbitrary round of logistic map 1}
42 \textbf{Input:} the internal state $x$ (a decimal number)\\
43 \textbf{Output:} $r$ (an integer)
44 \begin{algorithmic}[1]
45 \STATE$x\leftarrow{4x(1-x)}$
46 \STATE$r\leftarrow{\lfloor10000000x\rfloor}$
49 \caption{An arbitrary round of logistic map 2}
58 XORshift is a category of very fast PRNGs designed by George Marsaglia~\cite{Marsaglia2003}.
59 It repeatedly uses the transform of \emph{exclusive or} (XOR) on a number with a bit shifted version of it. The state of a XORshift generator is a vector of bits. At each step, the next state is obtained by applying a given number of XORshift operations to $w$-bit blocks in the current state, where $w = 32$ or $64$. A XORshift operation is defined as follows. Replace the $w$-bit block by a bitwise XOR of the original block, with a shifted copy of itself by $a$ positions either to the right or to the left, where $ 0 < a < w$. This Algorithm~\ref{XORshift} has a period of $2^{32}-1=4.29\times10^9$.
63 \textbf{Input:} the internal state $z$ (a 32-bits word)\\
64 \textbf{Output:} $y$ (a 32-bits word)
65 \begin{algorithmic}[1]
67 \STATE$z\leftarrow{z\oplus{(z\ll13)}}$;
68 \STATE$z\leftarrow{z\oplus{(z\gg17)}}$;
69 \STATE$z\leftarrow{z\oplus{(z\ll5)}}$;
70 \STATE$y\leftarrow{z}$;
73 \caption{An arbitrary round of XORshift algorithm}
79 ISAAC is an array-based PRNG and a stream cipher designed by Robert Jenkins (1996) to be cryptographically secure~\cite{Jenkins1996}. The name is an acronym for Indirection, Shift, Accumulate, Add and Count. The ISAAC algorithm has similarities with RC4. It uses an array of 256 32-bit integers as the internal state, writing the results to another 256-integer array, from which they are read one at a time until empty, at which point they are recomputed. Since it only takes about 19 32-bit operations for each 32-bit output word, it is extremely fast on 32-bit computers.\newline
80 We give the key-stream procedure of ISAAC in Algorithm~\ref{ISAAC}. The internal state is $x$, the output array is $r$, and the inputs $a$, $b$, and $c$ are those computed in the previous round. % So we need the initial values of a,b, and c. Yes.
81 The value $f(a,i)$ in Table~\ref{ISAAC} is a 32-bit word, defined for all $a$ and $i\in\{0,\dots,255\}$ as:
84 f(a,i) = \left\{\begin{array}{ll}
85 a\ll13 & \text{if } i\equiv0~mod~4 , \\
86 a\gg6 & \text{if } i\equiv1~mod~4 , \\
87 a\ll2 & \text{if } i\equiv2~mod~4 , \\
88 a\gg16 & \text{if } i\equiv3~mod~4 . \\
94 \textbf{Input:} $a$, $b$, $c$, and the internal state $x$\\
95 \textbf{Output:} an array $r$ of 256 32-bit words
96 \begin{algorithmic}[1]
97 \STATE$c\leftarrow{c+1}$;
98 \STATE$b\leftarrow{b+c}$;
99 \WHILE{$i=0,\dots,255$}
100 \STATE$s\leftarrow{x_i}$;
101 \STATE$a\leftarrow{f(a,i)+x_{(i+128)~mod~256}}$;
102 \STATE$x_i\leftarrow{a+b+x_{(x\gg2)~mod~256}}$;
103 \STATE$r_i\leftarrow{s+x_{(x_i\gg10)~mod~256}}$;
104 \STATE$b\leftarrow{r_i}$;
108 \caption{An arbitrary round of ISAAC algorithm}
113 \section{A Theoretical Proof for Devaney's Chaotic Dynamical Systems}
114 \label{A theoretical proof for Devaney's chaotic dynamical systems}
115 The outline proofs, of the properties on which our PRNG is based, are given in this section.
117 \subsection{A topological approach for chaotic iterations}
119 Denote by $\delta $ the \emph{discrete boolean metric}, $\delta
120 (x,y)=0\Leftrightarrow x=y.$ Given a function $f$, define the function $%
121 F_{f}:$ $\llbracket1;\mathsf{N}\rrbracket\times \mathds{B}^{\mathsf{N}%
122 }\longrightarrow \mathds{B}^{\mathsf{N}}$ such that $$F_{f}(k,E)=\left(
123 E_{j}.\delta (k,j)+f(E)_{k}.\overline{\delta (k,j)}\right) _{j\in \llbracket%
124 1;\mathsf{N}\rrbracket},$$ where + and . are the boolean addition and product operations.
126 Consider the phase space: $\mathcal{X}=\llbracket1;\mathsf{N}\rrbracket^{%
127 \mathds{N}}\times \mathds{B}^{\mathsf{N}}$ and the map $$G_{f}\left( S,E\right) =\left( \sigma
128 (S),F_{f}(i(S),E)\right) ,$$ then the chaotic iterations defined in (\ref{Chaotic iterations}) can be described by the following iterations \cite{guyeux09}
132 X^{0}\in \mathcal{X} \\
133 X^{k+1}=G_{f}(X^{k}).%
138 Let us define a new distance between two points $(S,E),(\check{S},\check{E})\in
139 \mathcal{X}$ by $$d((S,E);(\check{S},\check{E}))=d_{e}(E,\check{E})+d_{s}(S,%
142 \item $\displaystyle{d_{e}(E,\check{E})}=\displaystyle{%
143 \sum_{k=1}^{\mathsf{N}}\delta (E_{k},\check{E}_{k})} \in \llbracket 0 ; \mathsf{N} \rrbracket$ \\
144 \item $\displaystyle{%
145 d_{s}(S,\check{S})}=\displaystyle{\dfrac{9}{\mathsf{N}}\sum_{k=1}^{\infty }%
146 \dfrac{|S^{k}-\check{S}^{k}|}{10^{k}}} \in [0 ; 1].$
151 It is then proven in \cite{guyeux09} by using the sequential continuity that
156 \label{continuite} $G_f$ is a continuous function on $(\mathcal{X},d)$.
159 \subsection{Regularity}
164 Periodic points of $G_{f}$ are dense in $\mathcal{X}$.
168 Let $(S,E)\in \mathcal{X}$, and $\varepsilon >0$. We are looking for a
169 periodic point $(S^{\prime },E^{\prime })$ satisfying $d((S,E);(S^{\prime
170 },E^{\prime }))<\varepsilon$.
172 We choose $E^{\prime }=E$, and we reproduce enough entries from $S$ to $%
173 S^{\prime }$ so that the distance between $(S^{\prime },E)$ and $(S,E)$ is
174 strictly less than $\varepsilon $: a number $k=\lfloor log_{10}(\varepsilon
175 )\rfloor +1$ of terms is sufficient.\newline
176 After this $k^{th}$ iterations, the new common state is $\mathcal{E}$, and
177 strategy $S^{\prime }$ is shifted of $k$ positions: $\sigma ^{k}(S^{\prime })$.\newline
178 Then we have to complete strategy $S^{\prime }$ in order to make $(E^{\prime
179 },S^{\prime })$ periodic (at least for sufficiently large indices). To do
180 so, we put an infinite number of 1 to the strategy $S^{\prime }$.
182 Then, either the first state is conserved after one iteration, so $\mathcal{E%
183 }$ is unchanged and we obtain a fixed point. Or the first state is not
184 conserved, then: if the first state is not conserved after a second
185 iteration, then we will be again in the first case above (due to the fact that a state is a boolean). Otherwise the first state is conserved, and we have
186 indeed a fixed (periodic) point.
188 Thus, there exists a periodic point into every neighbourhood of any point, so
189 $(\mathcal{X},G_f)$ is regular, for any map $f$.
192 \subsection{Transitivity}
194 \label{transitivite} Contrary to the regularity, the topological
195 transitivity condition is not automatically satisfied by any function \newline ($
196 f=Identity$ is not topologically transitive). Let us denote by $\mathcal{T}$
197 the set of maps $f$ such that $(\mathcal{X},G_{f})$ is topologically
201 $\mathcal{T}$ is a nonempty set.
205 We will prove that the vectorial logical negation function $f_{0}$
209 f_{0}: & \mathds{B}^{\mathsf{N}} & \longrightarrow & \mathds{B}^{\mathsf{N}}
211 & (x_{1},\hdots,x_{\mathsf{N}}) & \longmapsto & (\overline{x_{1}},\hdots,%
212 \overline{x_{\mathsf{N}}}) \\
217 \noindent is topologically transitive.\newline
218 Let $\mathcal{B}_A=\mathcal{B}(X_{A},r_{A})$ and $\mathcal{B}_B=\mathcal{B}(X_{B},r_{B})$ be two
219 open balls of $\mathcal{X}$, where $X_A=(S_A,E_A)$, and $X_B=(S_B,E_B)$. Our goal is to start from a point of $\mathcal{B}_A$ and to arrive, after some iterations of $G_{f_0}$, in $\mathcal{B}_B$.\newline
220 We have to be close to $X_{A}$, then the starting state $E$ must be $E_{A}$; it
221 remains to construct the strategy $S$. Let $S^n = S_{A}^n, \forall n \leqslant n_0$, where $n_0$ is chosen in such a way that $(S,E_{A})\in \mathcal{B}_{A}$, and $E'$ be the state of $G_{f_0}^{n_0}(S_{A},E_{A})$.\newline
222 $E'$ differs from $E_{B}$ by a finite number of cells $c_1,\hdots, c_{n_1}$. Let $S^{n_0+n} = c_n, \forall n \leqslant n_1$. Then the state of $G_{f_0}^{n_0+n_1}(S,E)$ is $E_{B}$.\newline
223 Last, let $S^{n_0+n_1+n} = S_{B}^n, \forall n \leqslant n_2$, where $n_2$ is chosen in such a way that $G_{f_0}^{n_0+n_1}(S,E)$ is at a distance less than $r_B $ from $(S_{B},E_{B})$. Then, starting from a point $(S,E)$ close to $X_A$, we are close to $X_B$ after $n_0+n_1$ iterations: $(\mathcal{X},G_{f_0})$ is transitive.
226 \subsection{Sensitive dependence on initial conditions}
231 $(\mathcal{X},G_{f_0})$ has sensitive dependence on initial conditions, and
232 its constant of sensitiveness is equal to $\mathsf{N}$.
236 Let $(S,E) \in \mathcal{X}$, and $\delta>0$. A new point $(S',E')$ is defined by: $E'=E$, $S'^n = S^n, \forall n \leqslant n_0$, where $n_0$ is chosen in such a way that $d((S,E);(S',E'))<\delta$, and $S'^{n_0+k} = k, \forall k \in \llbracket 1; \mathsf{N} \rrbracket$.
238 \noindent Then the point $(S',E')$ is as close as we want than $(S,E)$, and systems of $G_{f_0}^{k+\mathsf{N}}(S,E)$ and $G_{f_0}^{k+\mathsf{N}}(S',E')$ have no cell presenting the same state: distance between this two points is greater or equal than $\mathsf{N}$.
242 This sensitive dependence could be stated as a consequence of regularity and
243 transitivity (by using the theorem of Banks~\cite{Banks92}). However, we have
244 preferred proving this result independently of regularity, because the
245 notion of regularity must be redefined in the context of the finite set of
249 \subsection{Devaney's Chaotic Dynamical Systems}
250 Then, the vectorial negation $f_{0}(x_{1},%
251 \hdots,x_{\mathsf{N}})=(\overline{x_{1}},\hdots,\overline{x_{\mathsf{N}}})$ satisfies the three conditions for Devaney's chaos, namely, regularity, transitivity, and sensitivity in the metric space $(\mathcal{X},d)$. This leads to the following result.
256 $G_{f_0}$ is a chaotic map on $(\mathcal{X},d)$ in the sense of Devaney.
264 \section{Old CI algorithms and examples}
265 \label{Old CI algorithms and examples}
266 \subsection{Chaotic iterations as PRNG}
267 \label{subsec Chaotic iterations as PRNG}
268 Our generator denoted by CI(PRNG1,PRNG2) is designed by the following process.
270 Let $\mathsf{N} \in \mathds{N}^*, \mathsf{N} \geqslant 2$. Some chaotic iterations are fulfilled to generate a sequence $\left(x^n\right)_{n\in\mathds{N}} \in \left(\mathds{B}^\mathsf{N}\right)^\mathds{N}$ of boolean vectors: the successive states of the iterated system. Some of these vectors are randomly extracted and their components constitute our pseudorandom bit flow.
272 Chaotic iterations are realized as follows. Initial state $x^0 \in \mathds{B}^\mathsf{N}$ is a boolean vector taken as a seed and chaotic strategy $\left(S^n\right)_{n\in\mathds{N}}\in \llbracket 1, \mathsf{N} \rrbracket^\mathds{N}$ is constructed with PRNG2. Lastly, iterate function $f$ is the vectorial boolean negation
273 $$f_0:(x_1,...,x_\mathsf{N}) \in \mathds{B}^\mathsf{N} \longmapsto (\overline{x_1},...,\overline{x_\mathsf{N}}) \in \mathds{B}^\mathsf{N}.$$
274 To sum up, at each iteration only $S^i$-th component of state $X^n$ is updated, as follows
276 x_i^n = \left\{\begin{array}{ll}x_i^{n-1} & \text{if } i \neq S^i, \\ \\ \overline{x_i^{n-1}} & \text{if } i = S^i. \\\end{array}\right.
278 Finally, let $\mathcal{M}$ be a finite subset of $\mathds{N}^*$. Some $x^n$ are selected by a sequence $m^n$ as the pseudorandom bit sequence of our generator, $(m^n)_{n \in \mathds{N}} \in \mathcal{M}^\mathds{N}$ . So, the generator returns the following values: the components of $x^{m^0}$, followed by the components of $x^{m^0+m^1}$, followed by the components of $x^{m^0+m^1+m^2}$, \emph{etc.}
279 In other words, the generator returns the following bits:\newline
280 $$x_1^{m_0}x_2^{m_0}x_3^{m_0}\hdots x_\mathsf{N}^{m_0}x_1^{m_0+m_1}x_2^{m_0+m_1}\hdots x_\mathsf{N}^{m_0+m_1} x_1^{m_0+m_1+m_2}x_2^{m_0+m_1+m_2}\hdots$$
281 %and its $k^{th}$ bit is equal to $$\displaystyle{x_{k+1 \text{ (mod }\mathsf{N}\text{)}}^{\sum_{i=0}^{\lfloor k/\mathsf{N} \rfloor}m_i}}.$$
283 \noindent or the following integers:$$x^{m_0}x^{m_0+m_1}x^{m_0+m_1+m_2}\hdots$$
284 \subsection{ The range of $m^i$: $\mathcal{M}$}
285 In probability and statistics, a random process is a repeating process whose outcomes follow no describable deterministic pattern, but follow a probability distribution, the occurrence of each outcomehe is possible. A simple example of the discrete uniform distribution is throwing a fair die. The possible values of $x$ are 1, 2, 3, 4, 5, 6; and each time the die is thrown, the probability of a given score is $1/6$. It means that whatever number the the previous die is, the next given score still has a probability of $1/6$.
287 We shall carefully choose the range of $m^i$: $\mathcal{M}$. In some cases, some values in $2^N$ can not be obtained and the next returns of our generator will not be uniform because of $\bar{\bar{x}}=x$, as it is illustrated in the following example. Let us suppose that $x_i = (0, 0, 0, 0)$. Then the following Table \ref{The probability} shows the probability of $x_{i+1}$ with different sets $\mathcal{M}$. As it can be observed, the sets $\mathcal{M}$ with only one element can not obtain every one of $2^4$ values. So it is recommended to "added" two adjacent sets in Table \ref{The probability} together as $\mathcal{M}=\{$k, k+1$\}$. And easy to notice, the set like $\{1,2,3,4\}$ make the outputs of our generator would not be uniform distribution.
290 \renewcommand{\arraystretch}{1.3}
291 \caption{The probability of $x_{i+1}$ with different sets $\mathcal{M}$}
292 \label{The probability}
295 \begin{tabular}{cc@{}c@{}c@{}c@{}c@{}c@{}c@{}c@{}c@{}c@{}c@{}c@{}c}\toprule
296 $\mathcal{M}$~&~\{1\}~&~\{2\}~&~\{3\}~&~\{4\}~&~\{5\}~&~\{6\}~&~\{7\}~&~\{8\}~&~\{9\}~&~\{10\}~&~\{11\}~&~\{12\}~&~\{13\} \\\hline
297 0 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
298 1 &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
299 2 &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
300 3 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
301 4 &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
302 5 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
303 6 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
304 7 & & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
305 8 &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
306 9 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
307 10 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
308 11 & & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
309 12 & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
310 13 & & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
311 14 & & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$\\
312 15 & & & &$\surd$& &$\surd$& &$\surd$& &$\surd$& &$\surd$& \\
319 In order to evaluate our proposed $\mathcal{M}=\{$k, k+1$\}$ and compare its statistical properties with various other $\mathcal{M}$, the density histogram and intensity map of adjacent output have been computed. The length of $x$ is $N = 4$ bits, and the initial conditions and control
320 parameters are the same. A large number of
321 sampled values are simulated ($10^6$ samples).
322 %As shown in Figure~\ref{Histogram and intensity map}, it means that the number of adjacent output exists within the sequence.
323 Figure~\ref{1213} shows the intensity map for $\mathcal{M}=\{12,13\}$.
324 In order to appear random, the histogram should be uniformly distributed in all areas.
325 It can be observed that a uniform histogram and a flat color intensity map are obtained when using $\mathcal{M}=\{$k, k+1$\}$ ($k\geqslant 3\mathsf{N}$ is recommended).
326 other illustrations of this fact are given by Figure~\ref{45}Figure~\ref{1234}Figure~\ref{1}Figure~\ref{2}Figure~\ref{3}Figure~\ref{4}.
327 % whereas their uniformities are further justified by the tests presented in Chapter \ref{StatisticalTestsforRandomness}.
331 \subfigure[$\mathcal{M}=\{12,13\}$]{\includegraphics[scale=0.34]{images/1213.eps}
332 \label{1213}} \hspace{0.4cm}
333 \subfigure[$\mathcal{M}=\{4,5\}$]{\includegraphics[scale=0.34]{images/45.eps}
334 \label{45}} \hspace{0.4cm}
335 \subfigure[$\mathcal{M}=\{1,2,3,4\}$]{\includegraphics[scale=0.34]{images/1234.eps}
336 \label{1234}} \hspace{0.4cm}
337 \subfigure[$\mathcal{M}=\{1\}$]{\includegraphics[scale=0.34]{images/1.eps}
338 \label{1}} \hspace{0.4cm}
339 \subfigure[$\mathcal{M}=\{2\}$]{\includegraphics[scale=0.34]{images/2.eps}
340 \label{2}} \hspace{0.4cm}
341 \subfigure[$\mathcal{M}=\{3\}$]{\includegraphics[scale=0.34]{images/3.eps}
342 \label{3}} \hspace{0.4cm}
343 \subfigure[$\mathcal{M}=\{4\}$]{\includegraphics[scale=0.34]{images/4.eps}
344 \label{4}} \hspace{0.4cm}
345 \caption{Histogram and intensity maps}
350 \subsection{Old CI PRNGs Algorithm}
351 The basic design procedure of the novel generator is summed up in Algorithm~\ref{Chaotic iteration}.
352 The internal state is $x$, the output array is $r$. $a$ and $b$ are those computed by PRNG1 and PRNG2. Lastly, $k$ and $\mathsf{N}$ are constants and \linebreak $\mathcal{M}=\{$k, k+1$\}$ ($k\geqslant 3\mathsf{N}$ is recommended).
355 % \begin{tabular}{|l|}
357 % ~\textbf{Input}: the internal state $x$ (an array of $\mathsf{N}$ 1-bit words)\\
359 % ~\textbf{Output}: an array $r$ of $\mathsf{N}$ 1-bit words\\
361 % ~$a\leftarrow{PRNG1(~)}$;\\
362 % ~$m\leftarrow{a~mod~2+k}$\;\\
363 % ~\textbf{for} $i=0,\dots,m$ \textbf{do}\\
364 % ~~~~~~ $b\leftarrow{PRNG2(~)}$;\\
365 % ~~~~~~ $S\leftarrow{b~mod~\mathsf{N}}$;\\
366 % ~~~~~~ $x_S\leftarrow{ \overline{x_S}}$;\\
367 % ~~~~~~ $r\leftarrow{x}$;\\
368 % ~\textbf{end for}\\
369 % ~\textbf{return} $r$;\\
371 % ~\textbf{An arbitrary round of CI}~\\
374 % \caption{An arbitrary round of the proposed generator}
375 % \label{Chaotic iteration}
379 \textbf{Input:} the internal state $x$ (an array of $\mathsf{N}$ 1-bit words)\\
380 \textbf{Output:} an array $r$ of $\mathsf{N}$ 1-bit words
381 \begin{algorithmic}[1]
383 \STATE$a\leftarrow{PRNG1()}$;
384 \STATE$m\leftarrow{a~mod~2+c}$;
385 \WHILE{$i=0,\dots,m$}
386 \STATE$b\leftarrow{PRNG2()}$;
387 \STATE$S\leftarrow{b~mod~\mathsf{N}}$;
388 \STATE$x_S\leftarrow{ \overline{x_S}}$;
390 \STATE$r\leftarrow{x}$;
393 \caption{An arbitrary round of the old CI generator}
394 \label{Chaotic iteration}
400 % \begin{tabular}{|l|}
402 % ~\textbf{Input}: the internal state $x$ (an array of $\mathsf{N}$ 1-bit words)\\
404 % ~\textbf{Output}: an array $r$ of $\mathsf{N}$ 1-bit words\\
406 % ~$a\leftarrow{ISAAC(~)}$;\\
407 % ~$m\leftarrow{a~mod~2+c}$\;\\
408 % ~\textbf{for} $i=0,\dots,m$ \textbf{do}\\
409 % ~~~~~~ $b\leftarrow{XORshift(~)}$;\\
410 % ~~~~~~ $S\leftarrow{b~mod~\mathsf{N}}$;\\
411 % ~~~~~~ $x_S\leftarrow{ \overline{x_S}}$;\\
412 % ~~~~~~ $r\leftarrow{x}$;\\
413 % ~\textbf{end for}\\
414 % ~\textbf{return} $r$;\\
416 % ~\textbf{An arbitrary round of CI(ISAAC, XORshift)}~\\
419 % \caption{An arbitrary round of the proposed generator}
420 % \label{Chaotic iteration}
423 \subsection{Illustrative example}
425 In this example, $\mathsf{N} = 5$ and $\mathcal{M} = \{$4,5$\}$ are chosen for easy understanding.
426 The initial state of the system $x^0$ can be seeded by the decimal part of the current time. For example, the current time in seconds since the Epoch is 1237632934.484084, so $t = 484084$. $x^0 = t \text{ (mod 32)}$ in binary digits, then $x^0 = (1, 0, 1, 0, 0)$. $m$ and $S$ can now be computed from PRNG1 and PRNG2:
428 \item $m$ = 4, 5, 4, 4, 4, 4, 5, 5, 5, 5, 4, 5, 4,...
429 \item $S$ = 2, 4, 2, 2, 5, 1, 1, 5, 5, 3, 2, 3, 3,...
431 Chaotic iterations are done with initial state $x^0$, vectorial logical negation $f_0$, and strategy $S$. The result is presented in Table \ref{table application example}. Let us recall that sequence $m$ gives the states $x^n$ to return: $x^4, x^{4+5}, x^{4+5+4}, \hdots$\newline
434 %\renewcommand{\arraystretch}{1.3}
436 \begin{tabular}{c|c@{}c@{}c@{}c@{}c|c@{}c@{}c@{}c@{}c@{}c|c@{}c@{}c@{}c@{}c@{}c}
438 $m:$ & & & 4 & & & & & 5 & & & & & & 4 & & & \\ \hline
439 $S$ & 2 & 4 & 2 & 2 & & 5 & 1 & 1 & 5 & 5 & & 3 & 2 & 3 & 3 & & \\ \hline
440 $x^{0}$ & & & & & $x^{4}$ & & & & & & $x^{9}$ & & & & & $x^{13}$ & \\
443 1 & & $\xrightarrow{1} 0$ & $\xrightarrow{1} 1$ & & &
447 0 & $\xrightarrow{2} 1$ & & $\xrightarrow{2} 0$ & $\xrightarrow{2} 1$ &
449 1 & & $\xrightarrow{2} 0$ & & & 0 &\\
453 1 & $\xrightarrow{3} 0$ & & $\xrightarrow{3} 1$ & $\xrightarrow{3} 0$ &
456 0 & & $\xrightarrow{4} 1$ & & &
462 0 & $\xrightarrow{5} 1$ & & & $\xrightarrow{5} 0$ & $\xrightarrow{5} 1$ &
468 Binary Output: $x_1^{0}x_2^{0}x_3^{0}x_4^{0}x_5^{0}x_1^{4}x_2^{4}x_3^{4}x_4^{4}x_5^{4}x_1^{9}x_2^{9}x_3^{9}x_4^{9}x_5^{9}x_1^{13}x_2^{13}... = 10100111101111110...$
471 $x^{0},x^{0},x^{4},x^{6},x^{8}... = 20,30,31,19...$
472 \caption{Application example}
473 \label{table application example}
476 So, in this example, the generated binary digits are: 10100111101111110011... Or the integers are: 20, 30, 31, 19...
478 \subsection{On the periodicity of chaotic orbit}
479 \label{Conclusions and Future Work}
480 \label{Experiments and statistical tests}
482 Since chaotic iterations are constrained in a discrete space with $2^{N}$ elements, it is obvious that every chaotic orbit will eventually be periodic, i.e., finally goes to a cycle with limited length not greater than $2^{N}$.
484 The schematic view of a typical orbit of a digital chaotic system is shown in Figure~\ref{A pseudo orbit of a digital chaotic system}. Generally speaking, each digital chaotic orbit includes two connected parts: $x^{0} , x^{1} , \dots, x^{l-1}$ and $ x^{l} , x^{l +1} , \dots , x^{l +n}$ , which are respectively called transient (branch) and cycle. Accordingly, $l$ and $n + 1$ are respectively called transient length and cycle period, and $l + n$ is called orbit length. Thus,
488 \includegraphics[scale=0.20]{images/pseudo_orbit.eps}
489 \caption{A pseudo orbit of a digital chaotic system}
490 \label{A pseudo orbit of a digital chaotic system}
494 \begin{definition}%\cite{bahi102008}
495 A sequence $x = (x^{ 1} , ..., x^{n} )$ is said to be cyclic if a subset of successive terms is repeated from a given rank, until the end of $x$.
498 This generator based on discrete chaotic iterations generated by two pseudorandom sequences ($m$ and $w$) has a long cycle length. If the cycle period of $m$ and $w$ are respectivelly $n_{m}$ and $n_{w}$, then in an ideal situation, the cycle period of the novel sequence is $n_{m} \times n_{w}\times 2$ (because $\bar{\bar{x}}=x$). Table \ref{The ideal cycle period} gives the ideal cycle period of various generators.
501 \item $m$ ($n_{m}=2$): 12121212121212121212121212...
503 \item $w$ ($n_{w}=4$): 1 23 4 12 3 41 2 34 1 23 4 12 3 41 2 34 1 23 4...
505 \item $x$ ($n_{x}=2 \times 4 \times 2=16$): 0000(0) 1000(8) 1110(14) 1111(15) 0011(3) 0001(1) 1000(8) 1100(12) 1111(15) 0111(7) 0001(1) 0000(0) 1100(12) 1110(14) 0111(7) 0011(3) 0000(0) 1000(8) 1110(14) 1111(15) 0011(3) 0001(1) 1000(8) 1100(12) 1111(15) 0111(7) 0001(1) 0000(0) 1100(12) 1110(14) 0111(7) 0011(3)...
511 \renewcommand{\arraystretch}{1.3}
512 \caption{Ideal cycle period}
513 \label{The ideal cycle period}
516 \begin{tabular}{|c|c|c|}\toprule\hline
517 \multicolumn{2}{|c|}{\textbf{PRNG}}&\textbf{Ideal cycle period}\\\hline
518 \multicolumn{2}{|c|}{\textbf{Logistic map}}& $\infty$\\\hline
519 \multicolumn{2}{|c|}{\textbf{XORshift}}&$2^{32}-1$ \\\hline
520 \multicolumn{2}{|c|}{\textbf{ISAAC}}& $2^{8295}$\\\hline
521 \multirow{4}*{\textbf{Old CI algorithms}}&\textbf{Logistic map 1+Logistic map 2}&$\infty$\\\cline{2-3}
522 &\textbf{XORshift+XORshift}&$2^{65}$\\\cline{2-3}
523 &\textbf{XORshift+ISAAC}&$2^{8328}$\\\cline{2-3}
524 &\textbf{ISAAC+ISAAC}&$2^{16591}$\\\hline
531 \section{New CI algorithms and examples}
532 \subsection{Presentation}
533 The CI generator (generator based on chaotic iterations) is designed by the following process. First of all, some chaotic iterations have to be done to generate a sequence $\left(x^n\right)_{n\in\mathds{N}} \in \left(\mathds{B}^\mathsf{N}\right)^\mathds{N}$ ($\mathsf{N} \in \mathds{N}^*, \mathsf{N} \geqslant 2$, $N$ is not necessarily equal to 32) of boolean vectors, which are the successive states of the iterated system. Some of these vectors will be randomly extracted and our pseudo-random bit flow will be constituted by their components. Such chaotic iterations are realized as follows. Initial state $x^0 \in \mathds{B}^\mathsf{N}$ is a boolean vector taken as a seed (see Section~\ref{algo seed}) and chaotic strategy $\left(S^n\right)_{n\in\mathds{N}}\in \llbracket 1, \mathsf{N} \rrbracket^\mathds{N}$ is
534 an irregular decimation of a random number sequence (Section~\ref{Chaotic strategy}). The iterate function $f$ is
535 the vectorial boolean negation:
536 $$f_0:(x_1,...,x_\mathsf{N}) \in \mathds{B}^\mathsf{N} \longmapsto (\overline{x_1},...,\overline{x_\mathsf{N}}) \in \mathds{B}^\mathsf{N}.$$
537 At each iteration, only the $S^i$-th component of state $x^n$ is updated, as follows: $x_i^n = x_i^{n-1}$ if $i \neq S^i$, else $x_i^n = \overline{x_i^{n-1}}$.
538 Finally, some $x^n$ are selected
539 by a sequence $m^n$ as the pseudo-random bit sequence of our generator.
540 $(m^n)_{n \in \mathds{N}} \in \mathcal{M}^\mathds{N}$ is computed from a PRNG, such as XORshift sequence $(y^n)_{n \in \mathds{N}} \in \llbracket 0, 2^{32}-1 \rrbracket$ (see Section~\ref{algo m}). So, the
541 generator returns the following values:\newline
543 Bits:$$x_1^{m_0}x_2^{m_0}x_3^{m_0}\hdots x_\mathsf{N}^{m_0}x_1^{m_0+m_1}x_2^{m_0+m_1}\hdots x_\mathsf{N}^{m_0+m_1} x_1^{m_0+m_1+m_2}\hdots$$
544 or States:$$x^{m_0}x^{m_0+m_1}x^{m_0+m_1+m_2}\hdots$$
548 \subsection{The seed}
550 The unpredictability of random sequences is established using
551 a random seed that is obtained by a physical source like timings of keystrokes.
552 Without the seed, the attacker must not be able to make any predictions about
553 the output bits, even when all details of the generator are known~\cite{Turan2008}.
555 The initial state of the system $x^0$ and the first term $y^0$ of the input PRNG are seeded either by
556 the current time in seconds since the Epoch, or by a number that the user inputs.
557 Different ways are possible. For example, let us denote by $t$ the decimal part of the current
558 time. So $x^0$ can be $t \text{ (mod $2^N$)}$ written in binary digits and $y^0 = t$.
560 \subsection{Sequence $m$ of returned states}
562 The output of the sequence $(y^n)$ is uniform in $\llbracket 0, 2^{32}-1 \rrbracket$. However, we do not want the output of $(m^n)$ to be uniform in $\llbracket 0, N \rrbracket$, because in this case, the returns of our generator will not be uniform in $\llbracket 0, 2^{N}-1 \rrbracket$, as it is illustrated in the following example. Let us suppose that $x^0=(0,0,0)$. Then $m^0 \in \llbracket 0, 3 \rrbracket$.
564 \item If $m^0=0$, then no bit will change between the first and the second output of our new CI PRNG. Thus $x^1 = (0,0,0)$.
565 \item If $m^0=1$, then exactly one bit will change, which leads to three possible values for $x^1$, namely $(1,0,0)$, $(0,1,0)$, and $(0,0,1)$.
568 As each value in $\llbracket 0, 2^3-1 \rrbracket$ must be returned with the same probability, then the values $(0,0,0)$, $(1,0,0)$, $(0,1,0)$, and $(0,0,1)$ must occur for $x^1$ with the same probability. Finally we see that, in this example, $m^0=1$ must be three times probable as $m^0=0$.
569 This leads to the following general definition for the probability of $m=i$:
571 P(m^n=i)=\frac{C^i_N}{2^N}
574 Then, here is an example for the $(m^n)$ sequence with a selector function $g_1$
580 0 \text{ if }0 \leqslant\frac{y^n}{2^{32}}<\frac{C^0_N}{2^N},\\
581 1 \text{ if }\frac{C^0_N}{2^N} \leqslant\frac{y^n}{2^{32}}<\sum_{i=0}^1\frac{C^i_N}{2^N},\\
582 2 \text{ if }\sum_{i=0}^1\frac{C^i_N}{2^N} \leqslant\frac{y^n}{2^{32}}<\sum_{i=0}^2\frac{C^i_N}{2^N},\\
583 \vdots~~~~~ ~~\vdots~~~ ~~~~\\
584 N \text{ if }\sum_{i=0}^{N-1}\frac{C^i_N}{2^N} \leqslant\frac{y^n}{2^{32}}<1.\\
589 Let us notice, to conclude this subsection, that our new CI PRNG can use any reasonable function as selector. In this paper, $g_1()$ and $g_2()$ are adopted for demonstration purposes, where:
594 N \text{ if }0 \leqslant\frac{y^n}{2^{32}}<\frac{C^0_N}{2^N},\\
595 N-1 \text{ if }\frac{C^0_N}{2^N} \leqslant\frac{y^n}{2^{32}}<\sum_{i=0}^1\frac{C^i_N}{2^N},\\
596 N-2 \text{ if }\sum_{i=0}^1\frac{C^i_N}{2^N} \leqslant\frac{y^n}{2^{32}}<\sum_{i=0}^2\frac{C^i_N}{2^N},\\
597 \vdots~~~~~ ~~\vdots~~~ ~~~~\\
598 0 \text{ if }\sum_{i=0}^{N-1}\frac{C^i_N}{2^N} \leqslant\frac{y^n}{2^{32}}<1.\\
603 In this thesis, $g_1()$ is the selector function unless noted otherwise. And we will show later that both of $g_1()$ and $g_2()$ can pass all of the performed tests.
606 %This definition has been chosen for the following reason:
608 %The probability $P$ of occurrences of any integer taken in $ \llbracket 0;\mathsf{2^N}-1 \rrbracket$ is $\frac{1}{2^N}$. A string of $N$ binary digits is used to represent this integer; changing $m$ bits of this string will lead to $C_N^m$ different integers.
611 %$m^n$ indicates the changing bits between two adjacent output values.
614 %If the CI generator generate numbers, each approximately uniformly selected from the set
615 %$\llbracket 0;\mathsf{2^N}-1 \rrbracket$, the probability
616 %distribution $P_m$ of $m$ from the XORshift is equal to $\frac{C_N^m}{2^N}$.
620 %$y^0 \in \llbracket 0;2^{32}-1 \rrbracket$ be an integer deduced as a seed too (see Section \ref{algo seed}).
621 % As shown in Figure~\ref{}, It means that the velue of y_{n+1} can be selected as any values.
622 % Color histogram. In order to appear random, the color histograms of the encrypted image should be uniform
623 % distributed in all three color components (RGB). Figs. 6 and 7 show the histograms of RGB colors for the
624 % original (Fig. 5(a)) and the encrypted images (Fig. 5(b)), respectively. It can be observed that a flat color his-
625 % togram is resulted from the encrypted image using our scheme. Its uniformity is further justified by the chi-
627 In order to evaluate our proposed method and compare its statistical properties with various other methods, the density histogram and intensity map of adjacent output have been computed. The length of $x$ is $N = 4$ bits, and the initial conditions and control
628 parameters are the same. A large number of
629 sampled values are simulated ($10^6$ samples).
630 %As shown in Figure~\ref{Histogram and intensity map}, it means that the number of adjacent output exists within the sequence.
631 Figure~\ref{Histogram1} and Figure~\ref{Histogram2} shows the intensity map for $m^n=g_1(y^n)$ and $m^n=g_2(y^n)$.
632 In order to appear random, the histogram should be uniformly distributed in all areas.
633 It can be observed that uniform histograms and flat color intensity maps are obtained when using our schemes.
634 Another illustration of this fact is given by Figure~\ref{Histogram3}, whereas its uniformity is further justified by the tests presented in Section \ref{Results of NISTfor new CI}.
635 % and for $m^n=y^n~mod~N$ () respectively.
640 \subfigure [The histogram of adjacent output distribution $m^n = g_1(y^n)$]{\includegraphics[scale=0.4]{images/f(y).eps}
641 \label{Histogram1}} \hspace{0.4cm}
642 \subfigure [The histogram of adjacent output distribution $m^n = g_2(y^n)$]{\includegraphics[scale=0.3]{images/f2(y).eps}
643 \label{Histogram2}} \hspace{0.4cm}
644 \subfigure [The histogram of adjacent output distribution $m^n = y^n ~ mod ~ 4$]{\includegraphics[scale=0.4]{images/y.eps}%
645 \label{Histogram3}} \hspace{0.4cm}
646 \caption{Histogram and intensity maps}
647 \label{Histogram and intensity map1}
651 \subsection{Chaotic strategy}
652 \label{Chaotic strategy}
653 The chaotic strategy $(S^k) \in \llbracket 1, N \rrbracket^\mathds{N}$ is generated from a second XORshift sequence $(b^k) \in \llbracket 1, N \rrbracket^\mathds{N}$. The only difference between the sequences $S$ and $b$ is that some terms of $b$ are discarded, in such a way that $\forall k \in \mathds{N}, (S^{M^k}, S^{M^k+1}, \hdots, S^{M^{k+1}-1})$ does not contain any given integer twice, where $M^k = \sum_{i=0}^k m^i$. Therefore, no bit will change more than once between two successive outputs of our PRNG, increasing the speed of the former generator by doing so. $S$ is said to be ``an irregular decimation'' of $b$. This decimation can be obtained by the following process.
655 Let $(d^1,d^2,\dots,d^N)\in \{0,1\}^N$ be a mark sequence, such that whenever $\sum_{i=1}^N d^i = m^k$,
656 then $\forall i, d_i=0$ ($\forall k$, the sequence is reset when $d$ contains $m^k$ times the number 1). This mark sequence will control the XORshift sequence $b$ as follows:
658 \item if $d^{b^j} \neq 1$, then $S^k=b^j$, $d^{b^j} = 1$, and $k = k+1$,
659 \item if $d^{b^j}=1$, then $b^j$ is discarded.
661 For example, if $b = 142\underline{2}334 1421\underline{1}\underline{2}\underline{2}34...$ and $m = 4341...$, then $S=1423~341~4123~4...$ However, if we do not use the mark sequence, then one position may change more than once and the balance property will not be checked, due to the fact that $\bar{\bar{x}}=x$. As an example, for $b$ and $m$ as in the previous example, $S=1422~334~1421~1...$ and $S=14~4~42~1...$ lead to the same output (because switching the same bit twice leads to the same state).
664 To check the balance property, a set of 500
665 sequences are generated with and without decimation, each
666 sequence containing $10^6$ bits. Figure~\ref{nmark} shows the
667 percentages of differences between zeros and ones, and presents a better balance property for the sequences with decimation. This claim will be verified in the tests section (Section \ref{Results of NISTfor new CI}).
670 Another example is given in Table~\ref{table application example}, in which $r$ means ``reset'' and the integers which are underlined in sequence $b$ are discarded.
671 %A simple example illustrates the behavior of this structure.\\
672 %$m$ : 0,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~4,~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2,\\
673 %$d$ : r(1,0,0,0),(1,0,0,1),(1,1,0,1),(1,1,1,1),r(0,0,1,0),(0,0,1,1),r \\
674 %$b$ : ~~~ 1,~~~~~~~~~~~ 4,~~~~~~~~~~~~ 2,~~~~ \underline{2},~~~~ 3,~~~~~~~~~~~~~~3,~~~~~~~~~~~~~ 4,~~~~~~~~~~~~~~~~\\
675 %$S$ : ~~~1,~~~~~~~~~~~ 4,~~~~~~~~~~~~ 2,~~~~~~~~~~~~ 3,~~~~~~~~~~~~~~3,~~~~~~~~~~~~~ 4,~~~~~~~~~~~~~~~~
677 %Here r means reset, the underlined numbers in the sequence $b_j$ are discarded. In brief, the
678 %sequence $S$ is an irregular decimation of $b$ by the mark sequence.
687 \includegraphics[width=3.85in]{images/nmark.eps}
688 \DeclareGraphicsExtensions.
689 \caption{Balance property}
693 \subsection{New CI(XORshift, XORshift) Algorithm}
695 The basic design procedure of the novel generator is summed up in Algorithm~\ref{Chaotic iteration1}.
696 The internal state is $x$, the output state is $r$. $a$ and $b$ are those computed by the two input
697 PRNGs. The value $g_1(a)$ is an integer, defined as in Equation~\ref{Formula}. Lastly, $\mathsf{N}$ is a constant defined by the user.
699 \textbf{Input:} the internal state $x$ ($\mathsf{N}$ bits)\\
700 \textbf{Output:} a state $r$ of $\mathsf{N}$ bits
701 \begin{algorithmic}[1]
704 \STATE$d_i\leftarrow{0}$\;
707 \STATE$a\leftarrow{PRNG1()}$\;
708 \STATE$m\leftarrow{f(a)}$\;
709 \STATE$k\leftarrow{m}$\;
710 \WHILE{$i=0,\dots,k$}
712 \STATE$b\leftarrow{PRNG2()~mod~\mathsf{N}}$\;
713 \STATE$S\leftarrow{b}$\;
716 \STATE $x_S\leftarrow{ \overline{x_S}}$\;
717 \STATE $d_S\leftarrow{1}$\;
722 \STATE $k\leftarrow{ k+1}$\;
728 \caption{An arbitrary round of the new CI generator}
729 \label{Chaotic iteration1}
736 % \KwIn{the internal state $x$ ($\mathsf{N}$ bits)}
737 % \KwOut{a state $r$ of $\mathsf{N}$ bits}
738 % \For{$i=0,\dots,N$}
740 % $d_i\leftarrow{0}$\;
742 % $a\leftarrow{XORshift1()}$\;
743 % $m\leftarrow{g_1(a)}$\;
745 % \For{$i=0,\dots,k$}
747 % $b\leftarrow{XORshift2()~mod~\mathsf{N}}$\;
751 % $x_S\leftarrow{ \overline{x_S}}$\;
752 % $d_S\leftarrow{1}$\;
756 % $k\leftarrow{ k+1}$\;
762 % \caption{An arbitrary round of the new CI(XORshift,XORshift) generator}
763 % \label{Chaotic iteration1}
766 As a comparison, the basic design procedure of the old generator is recalled in Algorithm~\ref{Chaotic iteration2} ($a$ and $b$ are computed by two input PRNGs, $\mathsf{N}$ and $c\geqslant 3\mathsf{N}$ are constants defined by the user). See Subsection~\ref{Old CI algorithms and examples} for further information.
770 % \KwIn{the internal state $x$ ($\mathsf{N}$ bits)}
771 % \KwOut{a state $r$ of $\mathsf{N}$ bits}
772 % $a\leftarrow{Logistic map1()}$\;
782 % $m\leftarrow{d+c}$\;
783 % \For{$i=0,\dots,m$}
785 % $b\leftarrow{Logistic map2()}$\;
786 % $S\leftarrow{100000b~mod~\mathsf{N}}$\;
787 % $x_S\leftarrow{ \overline{x_S}}$\;
792 % \caption{An arbitrary round of the old CI PRNG}
793 % \label{Chaotic iteration2}
796 \textbf{Input:} the internal state $x$ (an array of $\mathsf{N}$ 1-bit words)\\
797 \textbf{Output:} an array $r$ of $\mathsf{N}$ 1-bit words
798 \begin{algorithmic}[1]
800 \STATE$a\leftarrow{PRNG1()}$;
801 \STATE$m\leftarrow{a~mod~2+c}$;
802 \WHILE{$i=0,\dots,m$}
803 \STATE$b\leftarrow{PRNG2()}$;
804 \STATE$S\leftarrow{b~mod~\mathsf{N}}$;
805 \STATE$x_S\leftarrow{ \overline{x_S}}$;
807 \STATE$r\leftarrow{x}$;
810 \caption{An arbitrary round of the old CI generator}
811 \label{Chaotic iteration2}
816 \subsection{Illustrative Example}
818 In this example, $\mathsf{N} = 4$ is chosen for easy understanding and the input PRNG is XORshift PRNG.
819 As stated before, the initial state of the system $x^0$ can be seeded by the decimal part $t$ of the current time.
820 For example, if the current time in seconds since the Epoch is 1237632934.484088,
821 so $t = 484088$, then $x^0 = t \text{ ($mod$ 16)}$ in binary digits, \emph{i.e.}, $x^0 = ( 0, 1, 0, 0)$.
823 To compute $m$ sequence, Equation~\ref{Formula} can be adapted to this example as follows:
828 \begin{array}{llccccc}
829 0 & \text{ if }&0 &\leqslant&\frac{y^n}{2^{32}}&<&\frac{1}{16},\\
830 1 & \text{ if }&\frac{1}{16} &\leqslant&\frac{y^n}{2^{32}}&<&\frac{5}{16} ,\\
831 2 & \text{ if }&\frac{5}{16} &\leqslant&\frac{y^n}{2^{32}}&<&\frac{11}{16},\\
832 3 & \text{ if }&\frac{11}{16} &\leqslant&\frac{y^n}{2^{32}}&<&\frac{15}{16},\\
833 4 & \text{ if }&\frac{15}{16} &\leqslant&\frac{y^n}{2^{32}}&<&1,\\
838 \noindent where $y$ is generated by XORshift seeded with the current time. We can see that the probabilities of occurrences of $m=0$, $m=1$, $m=2$, $m=3$, $m=4$, are $\frac{1}{16}$, $\frac{4}{16}$, $\frac{6}{16}$, $\frac{4}{16}$, $\frac{1}{16}$, respectively. This $m$ determines what will be the next output $x$. For instance,
840 \item If $m=0$, the following $x$ will be $( 0, 1, 0, 0)$.
841 \item If $m=1$, the following $x$ can be $( 1, 1, 0, 0)$, $( 0, 0, 0, 0)$, $( 0, 1, 1, 0)$, or $( 0, 1, 0, 1)$.
842 \item If $m=2$, the following $x$ can be $( 1, 0, 0, 0)$, $( 1, 1, 1, 0)$, $( 1, 1, 0, 1)$, $( 0, 0, 1, 0)$, $( 0, 0, 0, 1)$, or $( 0, 1, 1, 1)$.
843 \item If $m=3$, the following $x$ can be $( 0, 0, 1, 1)$, $( 1, 1, 1, 1)$, $( 1, 0, 0, 1)$, or $( 1, 0, 1, 0)$.
844 \item If $m=4$, the following $x$ will be $( 1, 0, 1, 1)$.
847 In this simulation, $m = 0, 4, 2, 2, 3, 4, 1, 1, 2, 3, 0, 1, 4,...$ Additionally, $b$ is computed with a XORshift generator too, but with another seed. We have found $b = 1, 4, 2, 2, 3, 3, 4, 1, 1, 4, 3, 2, 1,...$
849 Chaotic iterations are made with initial state $x^0$, vectorial logical negation $f_0$, and
850 strategy $S$. The result is presented in Table~\ref{table application example}. Let us recall that sequence $m$ gives the states $x^n$ to return, which are here $x^0, x^{0+4}, x^{0+4+2}, \hdots$ So, in this example, the output of the generator is: 10100111101111110011... or 4,4,11,8,1...
856 %\renewcommand{\arraystretch}{1.3}
858 \begin{tabular}{|c|c@{}c|c@{}c@{}c@{}c@{}c@{}c|c@{}c@{}c|c@{}c@{}c@{}c|}
860 $m$ &0 & &4 & & & & & &2& &&2&& & \\ \hline
861 $k$ &0 & &4 & & &$+1$ & & &2& &&2&$+1$& & \\ \hline
862 $b$ & & &1 &4&2&\underline{2} &3& &3&4&&1&\underline{1} &4&\\ \hline
863 $d$ &r & &r~$\left(\begin{array}{c}1\\0\\0\\0\end{array}\right)$ & $\left(\begin{array}{c}1\\0\\0\\1\end{array}\right)$ & $\left(\begin{array}{c}1\\1\\0\\1\end{array}\right)$ & & $\left(\begin{array}{c}1\\1\\1\\1\end{array}\right)$ && r~$\left(\begin{array}{c}0\\0\\1\\0\end{array}\right)$ &$\left(\begin{array}{c}0\\0\\1\\1\end{array}\right)$ &&r~$\left(\begin{array}{c}1\\0\\0\\0\end{array}\right)$ & &$\left(\begin{array}{c}1\\0\\0\\1\end{array}\right)$ & \\ \hline
864 $S$ & & &1 &4&2& &3& &3&4&&1& &4 & \\ \hline
865 $x^{0}$ & &$x^{0}$ & & &
867 $x^{6}$& & &&$x^{8}$ \\
869 0 & &0 &$\xrightarrow{1} 1$ & &
871 1 &$\xrightarrow{1} 0$ & & & 0\\
874 $\xrightarrow{2} 0$ & & &0 & & &
878 & &$\xrightarrow{3} 1$ &1 &$\xrightarrow{3} 0$ & &
881 0 & &0 & &$\xrightarrow{4} 1$ &
882 & & &1 & &$\xrightarrow{4} 0$ &
883 0 & & &$\xrightarrow{4} 1$&1 \\
887 Binary Output: $x_1^{0}x_2^{0}x_3^{0}x_4^{0}x_1^{4}x_2^{4}x_3^{4}x_4^{4}x_1^{6}x_2^{6}... = 0100101110000001...$\\
889 $x^{0},x^{4},x^{6},x^{8}... = 4,11,8,1...$
890 \caption{Example of New CI(XORshift,XORshift) generation}
891 \label{table application example}
901 % \section{Chaotic iterations as pseudo-random generator}
902 % \subsection{Presentation}
904 % The CI generator is designed by the following process \cite{wang2009,wbg10:ip}.
906 % Chaotic iterations are done to generate a sequence $\left(x^n\right)_{n\in\mathds{N}} \in \left(\mathds{B}^\mathsf{N}\right)^\mathds{N}$ ($\mathsf{N} \in \mathds{N}^*, \mathsf{N} \geqslant 2$) of boolean vectors, which are the successive states of the iterated system. Some of these vectors are randomly extracted and the pseudo-random bit flow is constituted by their components. These chaotic iterations are realized as follows.
908 % Initial state $x^0 \in \mathds{B}^\mathsf{N}$ is a boolean vector taken as a seed (see Section~\ref{algo seed}) and chaotic strategy $\left(S^n\right)_{n\in\mathds{N}}\in \llbracket 1, \mathsf{N} \rrbracket^\mathds{N}$ is defined with a XORshift sequence (Old CI generator \cite{wang2009}) or an irregular decimation of it (New CI generatot \cite{wbg10:ip}), as it is explained in Section~\ref{Chaotic strategy}). Lastly, the iterate function $f$ is the vectorial boolean negation.
910 % More precisely, at each iteration, only $S^i$-th component of state $x^n$ is updated as follows
912 % x_i^n = \left\{\begin{array}{ll}x_i^{n-1} & \text{if } i \neq S^i, \\ \\ \overline{x_i^{n-1}} & \text{if } i = S^i. \\\end{array}\right.
914 % Then, let $\mathcal{M}$ be a finite subset of $\mathds{N}^*$. Some $x^n$ are selected by a sequence $m^n$ as the pseudo-random bit sequence of our generator. The sequence $(m^n)_{n \in \mathds{N}} \in \mathcal{M}^\mathds{N}$ is computed from XORshift (or from a decimation of it, in case of the new CI generator). So, the generator returns the following values:
916 % \item the components of $x^{m^0}$,
917 % \item following by the components of $x^{m^0+m^1}$,
918 % \item following by the components of $x^{m^0+m^1+m^2}$,
921 % In other words, the generator returns the following bits:\newline
923 % $$x_1^{m_0}x_2^{m_0}x_3^{m_0}\hdots x_\mathsf{N}^{m_0}x_1^{m_0+m_1}x_2^{m_0+m_1}\hdots x_\mathsf{N}^{m_0+m_1} x_1^{m_0+m_1+m_2}x_2^{m_0+m_1+m_2}\hdots$$
928 % \subsection{The seed}
931 % The initial state of the system $x^0$ and the first term $y^0$ of the XORshift are seeded either by the current time in seconds since the Epoch, or by a number that the user inputs, as it is usually the case for every PRNG.
933 % \subsection{Sequence $m$ of returned states}
936 % The output of a sequence $(y^n)$ produced by a XORshift generator is uniform in $\llbracket 0, 2^{32}-1 \rrbracket$. However, we do not want the output of $(m^n)$ to be uniform in $\llbracket 0, N \rrbracket$, because in this case, the returns of our generator will not be uniform in $\llbracket 0, 2^{N}-1 \rrbracket$, as it is illustrated in the following example. Let us suppose that $x^0=(0,0,0)$. Then $m^0 \in \llbracket 0, 3 \rrbracket$.
938 % \item If $m^0=0$, then no bit will change between the first and the second output of our PRNG. Thus $x^1 = (0,0,0)$.
939 % \item If $m^0=1$, then exactly one bit will change, which leads to three possible values for $x^1$, namely $(1,0,0)$, $(0,1,0)$, and $(0,0,1)$.
942 % As each value in $\llbracket 0, 2^3-1 \rrbracket$ must be returned with the same probability, then the values $(0,0,0)$, $(1,0,0)$, $(0,1,0)$ and $(0,0,1)$ must occur for $x^1$ with the same probability. Finally we see that, in this example, $m^0=1$ must be three times more probable than $m^0=0$.
943 % This leads to the following general definition for $m$:
949 % 0 \text{ if }0 \leqslant\frac{y^n}{2^{32}}<\frac{C^0_N}{2^N},\\
950 % 1 \text{ if }\frac{C^0_N}{2^N} \leqslant\frac{y^n}{2^{32}}<\sum_{i=0}^1\frac{C^i_N}{2^N},\\
951 % 2 \text{ if }\sum_{i=0}^1\frac{C^i_N}{2^N} \leqslant\frac{y^n}{2^{32}}<\sum_{i=0}^2\frac{C^i_N}{2^N},\\
952 % \vdots~~~~~ ~~\vdots~~~ ~~~~\\
953 % N \text{ if }\sum_{i=0}^{N-1}\frac{C^i_N}{2^N} \leqslant\frac{y^n}{2^{32}}<1.\\
958 % %This definition has been chosen for the following reason:
960 % %The probability $P$ of occurrences of any integer taken in $ \llbracket 0;\mathsf{2^N}-1 \rrbracket$ is $\frac{1}{2^N}$. A string of $N$ binary digits is used to represent this integer; changing $m$ bits of this string will lead to $C_N^m$ different integers.
963 % %$m^n$ indicates the changing bits between two adjacent output values.
966 % %If the CI generator generate numbers, each approximately uniformly selected from the set
967 % %$\llbracket 0;\mathsf{2^N}-1 \rrbracket$, the probability
968 % %distribution $P_m$ of $m$ from the XORshift is equal to $\frac{C_N^m}{2^N}$.
972 % %$y^0 \in \llbracket 0;2^{32}-1 \rrbracket$ be an integer deduced as a seed too (see Section \ref{algo seed}).
975 % \subsection{Chaotic strategy}
976 % \label{Chaotic strategy}
978 % The chaotic strategy $(S^k) \in \llbracket 1, N \rrbracket^\mathds{N}$ is generated from a second XORshift sequence $(b^k) \in \llbracket 1, N \rrbracket^\mathds{N}$. In the Old CI generator, $S=b$. In the New CI generator, the sole difference between the sequences $S$ and $b$ is that some terms of $b$ are discarded, in such a way that: $\forall k \in \mathds{N}, (S^{M^k}, S^{M^k+1}, \hdots, S^{M^{k+1}-1})$ does not contain a same integer twice, where $M^k = \sum_{i=0}^k m^i$. Therefore, in New CI generator, no bit will change more than once between two successive outputs of our PRNG, increasing the speed of the former generator by doing so. $S$ is said to be ``an irregular decimation'' of $b$. This decimation can be obtained by the following process.
980 % Let $(d^1,d^2,\dots,d^N)\in \{0,1\}^N$ be a mark sequence, such that whenever $\sum_{i=1}^N d^i = m^k$,
981 % then $\forall i, d_i=0$ ($\forall k$, the sequence is reset when $d$ contains $m^k$ times the number 1). This mark sequence will control the XORshift sequence $b$ as follows:
983 % \item if $d^{b^j} \neq 1$, then $S^k=b^j$, $d^{b^j} = 1$, and $k = k+1$,
984 % \item if $d^{b^j}=1$, then $b^j$ is discarded.
986 % For example, if $b = 142\underline{2}334 142\underline{1}\underline{1}\underline{2}\underline{2}34...$ and $m = 4241...$, then $S=1423~34~1423~4...$ Another example is given in Table~\ref{table application example}, in which $r$ means ``reset'' and the integers which are underlined in sequence $b$ are discarded.
990 % %\subsection{Old CI pseudo-random sequence}
991 % %\label{The generation of pseudo-random sequence}
993 % %The design of the PRNG based on discrete chaotic iterations is proposed in this section, while its performance is evaluated in the next sections.
994 % %The old CI generator is designed by the following process.
995 % %Let $\mathsf{N} \in \mathds{N}^*, \mathsf{N} \geqslant 2$. Some chaotic iterations are done, which generate a sequence $\left(x^n\right)_{n\in\mathds{N}} \in \left(\mathds{B}^\mathsf{N}\right)^\mathds{N}$ of boolean vectors: the successive states of the iterated system. Some of these vectors are chaotically extracted and their components constitute our pseudo-random bit flow.
996 % %Chaotic iterations are realized as follows: initial state\linebreak $x^0 \in \mathds{B}^\mathsf{N}$ is a boolean vector taken as a seed and chaotic strategy $\left(S^n\right)_{n\in\mathds{N}}\in \llbracket 1, \mathsf{N} \rrbracket^\mathds{N}$ is constructed with XORshift. Lastly, iterate function $f$ is the vectorial boolean negation
997 % %$$f_0:(x_1,...,x_\mathsf{N}) \in \mathds{B}^\mathsf{N} \longmapsto (\overline{x_1},...,\overline{x_\mathsf{N}}) \in \mathds{B}^\mathsf{N}.$$
1004 % \section{CI(XORshift, XORshift) algorithms and examples}
1006 % \subsection{Algorithms}
1008 % The basic design procedure of the old generator is recalled in Algorithm~\ref{Chaotic iteration2} ($a$ and $b$ are computed by XORshift generators, $\mathsf{N}$ and $c\geqslant 3\mathsf{N}$ are constants defined by the user).
1009 % Algorithm~\ref{Chaotic iteration1} summarizes the basic design procedure of the new generator. The internal state is $x$, the output state is $r$. $a$ and $b$ are those computed by the two XORshift generators. The value $f(a)$ is an integer, defined as in Equation~\ref{Formula}. Lastly, $\mathsf{N}$ is a constant defined by the user.
1013 % \textbf{Input:} the internal state $x$ (an array of $\mathsf{N}$ 1-bit words)\\
1014 % \textbf{Output:} an array $r$ of $\mathsf{N}$ 1-bit words
1015 % \begin{algorithmic}[1]
1017 % \STATE$a\leftarrow{XORshift1()}$;
1018 % \STATE$m\leftarrow{a~mod~2+c}$;
1019 % \WHILE{$i=0,\dots,m$}
1020 % \STATE$b\leftarrow{XORshift2()}$;
1021 % \STATE$S\leftarrow{b~mod~\mathsf{N}}$;
1022 % \STATE$x_S\leftarrow{ \overline{x_S}}$;
1024 % \STATE$r\leftarrow{x}$;
1025 % \STATE return $r$;
1027 % \caption{An arbitrary round of the old CI(XORshift,XORshift) generator}
1028 % \label{Chaotic iteration2}
1033 % \subsection{Old CI(XORshift,XORshift) example}
1037 % In this example, $\mathsf{N} = 5$ and $\mathcal{M} = \{\text{4,5}\}$ are adopted for easy understanding.
1038 % The initial state of the system $x^0$ can be seeded by the decimal part of the current time. For example, the current time in seconds since the Epoch is 1237632934.484084, so $t = 484084$. $x^0 = t \text{ (mod 32)}$ in binary digits, then $x^0 = (1, 0, 1, 0, 0)$. $m$ and $S$ can now be computed from two XORshift PRNGs:
1040 % $m$ = 4, 5, 4, 4, 4, 4, 5, 5, 5, 5, 4, 5, 4,...
1042 % $S$ = 2, 4, 2, 2, 5, 1, 1, 5, 5, 3, 2, 3, 3,...
1044 % Chaotic iterations are done with initial state $x^0$, vectorial logical negation $f_0$ and strategy $S$. The result is presented in Table \ref{Table:old CI}. Let us recall that sequence $m$ gives the states $x^n$ to return: $x^4, x^{4+5}, x^{4+5+4}, \hdots$
1049 % \renewcommand{\arraystretch}{1.3}
1050 % \caption{Application example (Old CI generator)}
1051 % \label{Table:old CI}
1053 % \begin{tabular}{c|c@{}c@{}c@{}c@{}c|c@{}c@{}c@{}c@{}c@{}c|c@{}c@{}c@{}c@{}c@{}c}
1055 % $m:$ & & & 4 & & & & & 5 & & & & & & 4 & & & \\ \hline
1056 % $S$ & 2 & 4 & 2 & 2 & & 5 & 1 & 1 & 5 & 5 & & 3 & 2 & 3 & 3 & & \\ \hline
1057 % $x^{0}$ & & & & & $x^{4}$ & & & & & & $x^{9}$ & & & & & $x^{13}$ & \\
1060 % 1 & & $\xrightarrow{1} 0$ & $\xrightarrow{1} 1$ & & &
1064 % 0 & $\xrightarrow{2} 1$ & & $\xrightarrow{2} 0$ & $\xrightarrow{2} 1$ &
1066 % 1 & & $\xrightarrow{2} 0$ & & & 0 &\\
1070 % 1 & $\xrightarrow{3} 0$ & & $\xrightarrow{3} 1$ & $\xrightarrow{3} 0$ &
1073 % 0 & & $\xrightarrow{4} 1$ & & &
1079 % 0 & $\xrightarrow{5} 1$ & & & $\xrightarrow{5} 0$ & $\xrightarrow{5} 1$ &
1085 % Output: $x_1^{0}x_2^{0}x_3^{0}x_4^{0}x_5^{0}x_1^{4}x_2^{4}x_3^{4}x_4^{4}x_5^{4}x_1^{9}x_2^{9}x_3^{9}x_4^{9}$
1086 % $x_5^{9}x_1^{13}x_2^{13}x_3^{13}x_4^{13}x_5^{13}... = 10100111101111110011...$
1089 % So, in this example, the output of the generator is: 10100111101111110011...
1094 % \textbf{Input:} the internal state $x$ ($\mathsf{N}$ bits)\\
1095 % \textbf{Output:} a state $r$ of $\mathsf{N}$ bits
1096 % \begin{algorithmic}[1]
1097 % \FOR{$i=0,\dots,N$}
1099 % \STATE$d_i\leftarrow{0}$\;
1102 % \STATE$a\leftarrow{XORshift1()}$\;
1103 % \STATE$m\leftarrow{f(a)}$\;
1104 % \STATE$k\leftarrow{m}$\;
1105 % \WHILE{$i=0,\dots,k$}
1107 % \STATE$b\leftarrow{XORshift2()~mod~\mathsf{N}}$\;
1108 % \STATE$S\leftarrow{b}$\;
1111 % \STATE $x_S\leftarrow{ \overline{x_S}}$\;
1112 % \STATE $d_S\leftarrow{1}$\;
1117 % \STATE $k\leftarrow{ k+1}$\;
1120 % $r\leftarrow{x}$\;
1123 % \caption{An arbitrary round of the new CI(XORshift,XORshift) generator}
1124 % \label{Chaotic iteration1}
1132 % \subsection{New CI(XORshift,XORshift) example}
1134 % In this example, $\mathsf{N} = 4$ is chosen for easy understanding.
1135 % The initial state of the system $x^0$ can be seeded another time by the decimal part $t$ of the current time.
1136 % For example, if the current time in seconds since the Epoch is 1237632934.484088,
1137 % so $t = 484088$, then $x^0 = t \text{ (mod 16)}$ in binary digits, \emph{i.e.}, $x^0 = ( 0, 1, 0, 0)$.
1139 % To compute $m$ sequence, Equation~\ref{Formula} can be adapted to this example as follows:
1141 % \label{m1 fuction}
1144 % \begin{array}{llccccc}
1145 % 0 & \text{ if }&0 &\leqslant&\frac{y^n}{2^{32}}&<&\frac{1}{16},\\
1146 % 1 & \text{ if }&\frac{1}{16} &\leqslant&\frac{y^n}{2^{32}}&<&\frac{5}{16} ,\\
1147 % 2 & \text{ if }&\frac{5}{16} &\leqslant&\frac{y^n}{2^{32}}&<&\frac{11}{16},\\
1148 % 3 & \text{ if }&\frac{11}{16} &\leqslant&\frac{y^n}{2^{32}}&<&\frac{15}{16},\\
1149 % 4 & \text{ if }&\frac{15}{16} &\leqslant&\frac{y^n}{2^{32}}&<&1,\\
1154 % \noindent where $y$ is generated by XORshift seeded with the current time. We can see that the probabilities of occurrences of $m=0$, $m=1$, $m=2$, $m=3$, $m=4$, are $\frac{1}{16}$, $\frac{4}{16}$, $\frac{6}{16}$, $\frac{4}{16}$, $\frac{1}{16}$, respectively. This $m$ determines what will be the next output $x$. For instance,
1156 % \item If $m=0$, the following $x$ will be $( 0, 1, 0, 0)$.
1157 % \item If $m=1$, the following $x$ can be $( 1, 1, 0, 0)$, $( 0, 0, 0, 0)$, $( 0, 1, 1, 0)$, or $( 0, 1, 0, 1)$.
1158 % \item If $m=2$, the following $x$ can be $( 1, 0, 0, 0)$, $( 1, 1, 1, 0)$, $( 1, 1, 0, 1)$, $( 0, 0, 1, 0)$, $( 0, 0, 0, 1)$, or $( 0, 1, 1, 1)$.
1159 % \item If $m=3$, the following $x$ can be $( 0, 0, 1, 1)$, $( 1, 1, 1, 1)$, $( 1, 0, 0, 1)$, or $( 1, 0, 1, 0)$.
1160 % \item If $m=4$, the following $x$ will be $( 1, 0, 1, 1)$.
1163 % In this simulation, $m = 0, 4, 2, 2, 3, 4, 1, 1, 2, 3, 0, 1, 4,...$ Additionally, $b$ is computed with a XORshift generator too, but with another seed. We have found $b = 1, 4, 2, 2, 3, 3, 4, 1, 1, 4, 3, 2, 1,...$
1165 % Chaotic iterations are made with initial state $x^0$, vectorial logical negation $f_0$ and
1166 % strategy $S$. The result is presented in Table~\ref{table application example}. Let us recall that sequence $m$ gives, after decimation, the states $x^n$ to return, which are here $x^0, x^{0+4}, x^{0+4+2}, \hdots$ So, in this example, the output of the generator is: 0100101110000001... or 4,11,8,1...
1174 % \label{CI(XORshift, XORshift) algorithm}
1175 % %\renewcommand{\arraystretch}{1.3}
1177 % % \begin{tabular}{0.75\textwidth}{|c|cc|cccccc|ccc|cccc|}
1178 % \begin{tabular}{|c|c@{}c|c@{}c@{}c@{}c@{}c@{}c|c@{}c@{}c|c@{}c@{}c@{}c|}
1180 % $m$ &0 & &4 & & & & & &2& &&2&& & \\ \hline
1181 % $k$ &0 & &4 & & &$+1$ & & &2& &&2&$+1$& & \\ \hline
1182 % $b$ & & &1 &4&2&\underline{2} &3& &3&4&&1&\underline{1} &4&\\ \hline
1183 % $d$ &r & &r~$\left(\begin{array}{c}1\\0\\0\\0\end{array}\right)$ & $\left(\begin{array}{c}1\\0\\0\\1\end{array}\right)$ & $\left(\begin{array}{c}1\\1\\0\\1\end{array}\right)$ & & $\left(\begin{array}{c}1\\1\\1\\1\end{array}\right)$ && r~$\left(\begin{array}{c}0\\0\\1\\0\end{array}\right)$ &$\left(\begin{array}{c}0\\0\\1\\1\end{array}\right)$ &&r~$\left(\begin{array}{c}1\\0\\0\\0\end{array}\right)$ & &$\left(\begin{array}{c}1\\0\\0\\1\end{array}\right)$ & \\ \hline
1184 % $S$ & & &1 &4&2& &3& &3&4&&1& &4 & \\ \hline
1185 % $x^{0}$ & &$x^{0}$ & & &
1186 % & & &$x^{4}$ & & &
1187 % $x^{6}$& & &&$x^{8}$ \\
1189 % 0 & &0 &$\xrightarrow{1} 1$ & &
1191 % 1 &$\xrightarrow{1} 0$ & & & 0\\
1194 % $\xrightarrow{2} 0$ & & &0 & & &
1198 % & &$\xrightarrow{3} 1$ &1 &$\xrightarrow{3} 0$ & &
1201 % 0 & &0 & &$\xrightarrow{4} 1$ &
1202 % & & &1 & &$\xrightarrow{4} 0$ &
1203 % 0 & & &$\xrightarrow{4} 1$&1 \\
1207 % Binary Output: $x_1^{0}x_2^{0}x_3^{0}x_4^{0}x_1^{4}x_2^{4}x_3^{4}x_4^{4}x_1^{6}x_2^{6}... = 0100101110000001...$\\
1209 % $x^{0},x^{4},x^{6},x^{8}... = 4,11,8,1...$
1210 % \caption{Example of New CI(XORshift,XORshift) generation}
1211 % \label{table application example}