-\section{Improving Statistical Properties Using Chaotic Iterations}
-
-
-\subsection{The CIPRNG family}
-
-Three categories of PRNGs have been derived from chaotic iterations. They are
-recalled in what follows.
-
-\subsubsection{Old CIPRNG}
-
-Let $\mathsf{N} = 4$. Some chaotic iterations are fulfilled to generate a sequence $\left(x^n\right)_{n\in\mathds{N}} \in \left(\mathds{B}^4\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~\cite{bgw09:ip}.
-Chaotic iterations are realized as follows. Initial state $x^0 \in \mathds{B}^4$ is a Boolean vector taken as a seed and chaotic strategy $\left(S^n\right)_{n\in\mathds{N}}\in \llbracket 1, 4 \rrbracket^\mathds{N}$ is constructed with $PRNG_2$. Lastly, iterate function $f$ is the vectorial Boolean negation.
-At each iteration, only the $S^n$-th component of state $x^n$ is updated. Finally, some $x^n$ are selected by a sequence $m^n$, provided by a second generator $PRNG_1$, as the pseudorandom bit sequence of our generator.
-
-The basic design procedure of the Old CI generator is summed up in Algorithm~\ref{Chaotic iteration}.
-The internal state is $x$, the output array is $r$. $a$ and $b$ are those computed by $PRNG_1$ and $PRNG_2$.
-
-
-\begin{algorithm}
-\textbf{Input:} the internal state $x$ (an array of 4-bit words)\\
-\textbf{Output:} an array $r$ of 4-bit words
-\begin{algorithmic}[1]
-
-\STATE$a\leftarrow{PRNG_1()}$;
-\STATE$m\leftarrow{a~mod~2+13}$;
-\WHILE{$i=0,\dots,m$}
-\STATE$b\leftarrow{PRNG_2()}$;
-\STATE$S\leftarrow{b~mod~4}$;
-\STATE$x_S\leftarrow{ \overline{x_S}}$;
-\ENDWHILE
-\STATE$r\leftarrow{x}$;
-\STATE return $r$;
-\medskip
-\caption{An arbitrary round of the old CI generator}
-\label{Chaotic iteration}
-\end{algorithmic}
-\end{algorithm}
-
-\subsubsection{New CIPRNG}
-
-The New CI generator is designed by the following process~\cite{bg10:ip}. 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}^{32}\right)^\mathds{N}$ 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}^{32}$ is a Boolean vector taken as a seed and chaotic strategy $\left(S^n\right)_{n\in\mathds{N}}\in \llbracket 1, 32 \rrbracket^\mathds{N}$ is
-an \emph{irregular decimation} of $PRNG_2$ sequence, as described in Algorithm~\ref{Chaotic iteration1}.
-
-Another time, at each iteration, only the $S^n$-th component of state $x^n$ is updated, as follows: $x_i^n = x_i^{n-1}$ if $i \neq S^n$, else $x_i^n = \overline{x_i^{n-1}}$.
-Finally, some $x^n$ are selected
-by a sequence $m^n$ as the pseudo-random bit sequence of our generator.
-$(m^n)_{n \in \mathds{N}} \in \mathcal{M}^\mathds{N}$ is computed from $PRNG_1$, where $\mathcal{M}\subset \mathds{N}^*$ is a finite nonempty set of integers.
-
-The basic design procedure of the New CI generator is summarized in Algorithm~\ref{Chaotic iteration1}.
-The internal state is $x$, the output state is $r$. $a$ and $b$ are those computed by the two input
-PRNGs. Lastly, the value $g_1(a)$ is an integer defined as in Eq.~\ref{Formula}.
-
-\begin{equation}
-\label{Formula}
-m^n = g_1(y^n)=
-\left\{
-\begin{array}{l}
-0 \text{ if }0 \leqslant{y^n}<{C^0_{32}},\\
-1 \text{ if }{C^0_{32}} \leqslant{y^n}<\sum_{i=0}^1{C^i_{32}},\\
-2 \text{ if }\sum_{i=0}^1{C^i_{32}} \leqslant{y^n}<\sum_{i=0}^2{C^i_{32}},\\
-\vdots~~~~~ ~~\vdots~~~ ~~~~\\
-N \text{ if }\sum_{i=0}^{N-1}{C^i_{32}}\leqslant{y^n}<1.\\
-\end{array}
-\right.
-\end{equation}
-
-\begin{algorithm}
-\textbf{Input:} the internal state $x$ (32 bits)\\
-\textbf{Output:} a state $r$ of 32 bits
-\begin{algorithmic}[1]
-\FOR{$i=0,\dots,N$}
-{
-\STATE$d_i\leftarrow{0}$\;
-}
-\ENDFOR
-\STATE$a\leftarrow{PRNG_1()}$\;
-\STATE$m\leftarrow{f(a)}$\;
-\STATE$k\leftarrow{m}$\;
-\WHILE{$i=0,\dots,k$}
-
-\STATE$b\leftarrow{PRNG_2()~mod~\mathsf{N}}$\;
-\STATE$S\leftarrow{b}$\;
- \IF{$d_S=0$}
- {
-\STATE $x_S\leftarrow{ \overline{x_S}}$\;
-\STATE $d_S\leftarrow{1}$\;
-
- }
- \ELSIF{$d_S=1$}
- {
-\STATE $k\leftarrow{ k+1}$\;
- }\ENDIF
-\ENDWHILE\\
-\STATE $r\leftarrow{x}$\;
-\STATE return $r$\;
-\medskip
-\caption{An arbitrary round of the new CI generator}
-\label{Chaotic iteration1}
-\end{algorithmic}
-\end{algorithm}
-
-
-\subsubsection{Xor CIPRNG}
-
-Instead of updating only one cell at each iteration as Old CI and New CI, we can try to choose a
-subset of components and to update them together. Such an attempt leads
-to a kind of merger of the two random sequences. When the updating function is the vectorial negation,
-this algorithm can be rewritten as follows~\cite{arxivRCCGPCH}:
-
-\begin{equation}
-\left\{
-\begin{array}{l}
-x^0 \in \llbracket 0, 2^\mathsf{N}-1 \rrbracket, S \in \llbracket 0, 2^\mathsf{N}-1 \rrbracket^\mathds{N} \\
-\forall n \in \mathds{N}^*, x^n = x^{n-1} \oplus S^n,
-\end{array}
-\right.
-\label{equation Oplus}
-\end{equation}
-%This rewriting can be understood as follows. The $n-$th term $S^n$ of the
-%sequence $S$, which is an integer of $\mathsf{N}$ binary digits, presents
-%the list of cells to update in the state $x^n$ of the system (represented
-%as an integer having $\mathsf{N}$ bits too). More precisely, the $k-$th
-%component of this state (a binary digit) changes if and only if the $k-$th
-%digit in the binary decomposition of $S^n$ is 1.
-
-The single basic component presented in Eq.~\ref{equation Oplus} is of
-ordinary use as a good elementary brick in various PRNGs. It corresponds
-to the discrete dynamical system in chaotic iterations.