+
+%We have proven in our previous works~\cite{guyeux12:bc} that chaotic iterations satisfying Theorem~\ref{Th:Caractérisation des IC chaotiques} are, among other
+%things, strongly transitive, topologically mixing, chaotic as defined by Li and Yorke,
+%and that they have a topological entropy and an exponent of Lyapunov both equal to $ln(\mathsf{N})$,
+%where $\mathsf{N}$ is the size of the iterated vector.
+%These topological properties make that we are ground to believe that a generator based on chaotic
+%iterations will probably be able to pass all the existing statistical batteries for pseudorandomness like
+%the NIST one. The following subsections, in which we prove that defective generators have their
+%statistical properties improved by chaotic iterations, show that such an assumption is true.
+
+%\subsection{Details of some Existing Generators}
+
+%The list of defective PRNGs we will use
+%as inputs for the statistical tests to come is introduced here.
+
+%Firstly, the simple linear congruency generators (LCGs) will be used.
+%They are defined by the following recurrence:
+%\begin{equation}
+%x^n = (ax^{n-1} + c)~mod~m,
+%\label{LCG}
+%\end{equation}
+%where $a$, $c$, and $x^0$ must be, among other things, non-negative and inferior to
+%$m$~\cite{LEcuyerS07}. In what follows, 2LCGs and 3LCGs refer to two (resp. three)
+%combinations of such LCGs. For further details, see~\cite{bfg12a:ip,combined_lcg}.
+
+%Secondly, the multiple recursive generators (MRGs) which will be used,
+%are based on a linear recurrence of order
+%$k$, modulo $m$~\cite{LEcuyerS07}:
+%\begin{equation}
+%x^n = (a^1x^{n-1}+~...~+a^kx^{n-k})~mod~m .
+%\label{MRG}
+%\end{equation}
+%The combination of two MRGs (referred as 2MRGs) is also used in these experiments.
+
+%Generators based on linear recurrences with carry will be regarded too.
+%This family of generators includes the add-with-carry (AWC) generator, based on the recurrence:
+%\begin{equation}
+%\label{AWC}
+%\begin{array}{l}
+%x^n = (x^{n-r} + x^{n-s} + c^{n-1})~mod~m, \\
+%c^n= (x^{n-r} + x^{n-s} + c^{n-1}) / m, \end{array}\end{equation}
+%the SWB generator, having the recurrence:
+%\begin{equation}
+%\label{SWB}
+%\begin{array}{l}
+%x^n = (x^{n-r} - x^{n-s} - c^{n-1})~mod~m, \\
+%c^n=\left\{
+%\begin{array}{l}
+%1 ~~~~~\text{if}~ (x^{i-r} - x^{i-s} - c^{i-1})<0\\
+%0 ~~~~~\text{else},\end{array} \right. \end{array}\end{equation}
+%and the SWC generator, which is based on the following recurrence:
+%\begin{equation}
+%\label{SWC}
+%\begin{array}{l}
+%x^n = (a^1x^{n-1} \oplus ~...~ \oplus a^rx^{n-r} \oplus c^{n-1}) ~ mod ~ 2^w, \\
+%c^n = (a^1x^{n-1} \oplus ~...~ \oplus a^rx^{n-r} \oplus c^{n-1}) ~ / ~ 2^w. \end{array}\end{equation}
+
+%Then the generalized feedback shift register (GFSR) generator has been implemented, that is:
+%\begin{equation}
+%x^n = x^{n-r} \oplus x^{n-k} .
+%\label{GFSR}
+%\end{equation}
+
+
+%Finally, the nonlinear inversive (INV) generator~\cite{LEcuyerS07} has been studied, which is:
+
+%\begin{equation}
+%\label{INV}
+%\begin{array}{l}
+%x^n=\left\{
+%\begin{array}{ll}
+%(a^1 + a^2 / z^{n-1})~mod~m & \text{if}~ z^{n-1} \neq 0 \\
+%a^1 & \text{if}~ z^{n-1} = 0 .\end{array} \right. \end{array}\end{equation}
+
+
+
+%\begin{table}
+%%\renewcommand{\arraystretch}{1}
+%\caption{TestU01 Statistical Test Failures}
+%\label{TestU011}
+%\centering
+% \begin{tabular}{lccccc}
+% \toprule
+%Test name &Tests& Logistic & XORshift & ISAAC\\
+%Rabbit & 38 &21 &14 &0 \\
+%Alphabit & 17 &16 &9 &0 \\
+%Pseudo DieHARD &126 &0 &2 &0 \\
+%FIPS\_140\_2 &16 &0 &0 &0 \\
+%SmallCrush &15 &4 &5 &0 \\
+%Crush &144 &95 &57 &0 \\
+%Big Crush &160 &125 &55 &0 \\ \hline
+%Failures & &261 &146 &0 \\
+%\bottomrule
+% \end{tabular}
+%\end{table}
+
+
+
+%\begin{table}
+%%\renewcommand{\arraystretch}{1}
+%\caption{TestU01 Statistical Test Failures for Old CI algorithms ($\mathsf{N}=4$)}
+%\label{TestU01 for Old CI}
+%\centering
+% \begin{tabular}{lcccc}
+% \toprule
+%\multirow{3}*{Test name} & \multicolumn{4}{c}{Old CI}\\
+%&Logistic& XORshift& ISAAC&ISAAC \\
+%&+& +& + & + \\
+%&Logistic& XORshift& XORshift&ISAAC \\ \cmidrule(r){2-5}
+%Rabbit &7 &2 &0 &0 \\
+%Alphabit & 3 &0 &0 &0 \\
+%DieHARD &0 &0 &0 &0 \\
+%FIPS\_140\_2 &0 &0 &0 &0 \\
+%SmallCrush &2 &0 &0 &0 \\
+%Crush &47 &4 &0 &0 \\
+%Big Crush &79 &3 &0 &0 \\ \hline
+%Failures &138 &9 &0 &0 \\
+%\bottomrule
+% \end{tabular}
+%\end{table}
+
+
+
+
+
+%\subsection{Statistical tests}
+%\label{Security analysis}
+
+%Three batteries of tests are reputed and regularly used
+%to evaluate the statistical properties of newly designed pseudorandom
+%number generators. These batteries are named DieHard~\cite{Marsaglia1996},
+%the NIST suite~\cite{ANDREW2008}, and the most stringent one called
+%TestU01~\cite{LEcuyerS07}, which encompasses the two other batteries.
+
+
+
+%\label{Results and discussion}
+%\begin{table*}
+%%\renewcommand{\arraystretch}{1}
+%\caption{NIST and DieHARD tests suite passing rates for PRNGs without CI}
+%\label{NIST and DieHARD tests suite passing rate the for PRNGs without CI}
+%\centering
+% \begin{tabular}{|l||c|c|c|c|c|c|c|c|c|c|}
+% \hline\hline
+%Types of PRNGs & \multicolumn{2}{c|}{Linear PRNGs} & \multicolumn{4}{c|}{Lagged PRNGs} & \multicolumn{1}{c|}{ICG PRNGs} & \multicolumn{3}{c|}{Mixed PRNGs}\\ \hline
+%\backslashbox{\textbf{$Tests$}} {\textbf{$PRNG$}} & LCG& MRG& AWC & SWB & SWC & GFSR & INV & LCG2& LCG3& MRG2 \\ \hline
+%NIST & 11/15 & 14/15 &\textbf{15/15} & \textbf{15/15} & 14/15 & 14/15 & 14/15 & 14/15& 14/15& 14/15 \\ \hline
+%DieHARD & 16/18 & 16/18 & 15/18 & 16/18 & \textbf{18/18} & 16/18 & 16/18 & 16/18& 16/18& 16/18\\ \hline
+%\end{tabular}
+%\end{table*}
+
+%Table~\ref{NIST and DieHARD tests suite passing rate the for PRNGs without CI} shows the
+%results on the two first batteries recalled above, indicating that all the PRNGs presented
+%in the previous section
+%cannot pass all these tests. In other words, the statistical quality of these PRNGs cannot
+%fulfill the up-to-date standards presented previously. We have shown in~\cite{bfg12a:ip} that the use of chaotic
+%iterations can solve this issue.
+%%More precisely, to
+%%illustrate the effects of chaotic iterations on these defective PRNGs, experiments have been divided in three parts~\cite{bfg12a:ip}:
+%%\begin{enumerate}
+%% \item \textbf{Single CIPRNG}: The PRNGs involved in CI computing are of the same category.
+%% \item \textbf{Mixed CIPRNG}: Two different types of PRNGs are mixed during the chaotic iterations process.
+%% \item \textbf{Multiple CIPRNG}: The generator is obtained by repeating the composition of the iteration function as follows: $x^0\in \mathds{B}^{\mathsf{N}}$, and $\forall n\in \mathds{N}^{\ast },\forall i\in \llbracket1;\mathsf{N}\rrbracket, x_i^n=$
+%%\begin{equation}
+%%\begin{array}{l}
+%%\left\{
+%%\begin{array}{l}
+%%x_i^{n-1}~~~~~\text{if}~S^n\neq i \\
+%%\forall j\in \llbracket1;\mathsf{m}\rrbracket,f^m(x^{n-1})_{S^{nm+j}}~\text{if}~S^{nm+j}=i.\end{array} \right. \end{array}
+%%\end{equation}
+%%$m$ is called the \emph{functional power}.
+%%\end{enumerate}
+%%
+%The obtained results are reproduced in Table
+%\ref{NIST and DieHARD tests suite passing rate the for single CIPRNGs}.
+%The scores written in boldface indicate that all the tests have been passed successfully, whereas an
+%asterisk ``*'' means that the considered passing rate has been improved.
+%The improvements are obvious for both the ``Old CI'' and the ``New CI'' generators.
+%Concerning the ``Xor CI PRNG'', the score is less spectacular. Because of a large speed improvement, the statistics
+% are not as good as for the two other versions of these CIPRNGs.
+%However 8 tests have been improved (with no deflation for the other results).
+
+
+%\begin{table*}
+%%\renewcommand{\arraystretch}{1.3}
+%\caption{NIST and DieHARD tests suite passing rates for PRNGs with CI}
+%\label{NIST and DieHARD tests suite passing rate the for single CIPRNGs}
+%\centering
+% \begin{tabular}{|l||c|c|c|c|c|c|c|c|c|c|c|c|}
+% \hline
+%Types of PRNGs & \multicolumn{2}{c|}{Linear PRNGs} & \multicolumn{4}{c|}{Lagged PRNGs} & \multicolumn{1}{c|}{ICG PRNGs} & \multicolumn{3}{c|}{Mixed PRNGs}\\ \hline
+%\backslashbox{\textbf{$Tests$}} {\textbf{$Single~CIPRNG$}} & LCG & MRG & AWC & SWB & SWC & GFSR & INV& LCG2 & LCG3& MRG2 \\ \hline\hline
+%Old CIPRNG\\ \hline \hline
+%NIST & \textbf{15/15} * & \textbf{15/15} * & \textbf{15/15} & \textbf{15/15} & \textbf{15/15} * & \textbf{15/15} * & \textbf{15/15} *& \textbf{15/15} * & \textbf{15/15} * & \textbf{15/15} \\ \hline
+%DieHARD & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} & \textbf{18/18} * & \textbf{18/18} *& \textbf{18/18} * & \textbf{18/18} *& \textbf{18/18} * \\ \hline
+%New CIPRNG\\ \hline \hline
+%NIST & \textbf{15/15} * & \textbf{15/15} * & \textbf{15/15} & \textbf{15/15} & \textbf{15/15} * & \textbf{15/15} * & \textbf{15/15} *& \textbf{15/15} * & \textbf{15/15} * & \textbf{15/15} \\ \hline
+%DieHARD & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} * & \textbf{18/18} *& \textbf{18/18} *\\ \hline
+%Xor CIPRNG\\ \hline\hline
+%NIST & 14/15*& \textbf{15/15} * & \textbf{15/15} & \textbf{15/15} & 14/15 & \textbf{15/15} * & 14/15& \textbf{15/15} * & \textbf{15/15} *& \textbf{15/15} \\ \hline
+%DieHARD & 16/18 & 16/18 & 17/18* & \textbf{18/18} * & \textbf{18/18} & \textbf{18/18} * & 16/18 & 16/18 & 16/18& 16/18\\ \hline
+%\end{tabular}
+%\end{table*}
+
+
+%We have then investigated in~\cite{bfg12a:ip} if it were possible to improve
+%the statistical behavior of the Xor CI version by combining more than one
+%$\oplus$ operation. Results are summarized in Table~\ref{threshold}, illustrating
+%the progressive increasing effects of chaotic iterations, when giving time to chaos to get settled in.
+%Thus rapid and perfect PRNGs, regarding the NIST and DieHARD batteries, can be obtained
+%using chaotic iterations on defective generators.
+
+%\begin{table*}
+%%\renewcommand{\arraystretch}{1.3}
+%\caption{Number of $\oplus$ operations to pass the whole NIST and DieHARD batteries}
+%\label{threshold}
+%\centering
+% \begin{tabular}{|l||c|c|c|c|c|c|c|c|}
+% \hline
+%Inputted $PRNG$ & LCG & MRG & SWC & GFSR & INV& LCG2 & LCG3 & MRG2 \\ \hline\hline
+%Threshold value $m$& 19 & 7 & 2& 1 & 11& 9& 3& 4\\ \hline\hline
+%\end{tabular}
+%\end{table*}
+
+%Finally, the TestU01 battery has been launched on three well-known generators
+%(a logistic map, a simple XORshift, and the cryptographically secure ISAAC,
+%see Table~\ref{TestU011}). These results can be compared with
+%Table~\ref{TestU01 for Old CI}, which gives the scores obtained by the
+%Old CI PRNG that has received these generators.
+%The obvious improvement speaks for itself, and together with the other
+%results recalled in this section, it reinforces the opinion that a strong
+%correlation between topological properties and statistical behavior exists.
+
+
+%The next subsection will now give a concrete original implementation of the Xor CI PRNG, the
+%fastest generator in the chaotic iteration based family. In the remainder,
+%this generator will be simply referred to as CIPRNG, or ``the proposed PRNG'', if this statement does not
+%raise ambiguity.
+
+
+\section{Toward Efficiency and Improvement for CI PRNG}
+\label{sec:efficient PRNG}
+
+\subsection{First Efficient Implementation of a PRNG based on Chaotic Iterations}
+%
+%Based on the proof presented in the previous section, it is now possible to
+%improve the speed of the generator formerly presented in~\cite{bgw09:ip,guyeux10}.
+%The first idea is to consider
+%that the provided strategy is a pseudorandom Boolean vector obtained by a
+%given PRNG.
+%An iteration of the system is simply the bitwise exclusive or between
+%the last computed state and the current strategy.
+%Topological properties of disorder exhibited by chaotic
+%iterations can be inherited by the inputted generator, we hope by doing so to
+%obtain some statistical improvements while preserving speed.
+%
+%%RAPH : j'ai viré tout ca
+%% Let us give an example using 16-bits numbers, to clearly understand how the bitwise xor operations
+%% are
+%% done.
+%% Suppose that $x$ and the strategy $S^i$ are given as
+%% binary vectors.
+%% Table~\ref{TableExemple} shows the result of $x \oplus S^i$.
+
+%% \begin{table}
+%% \begin{scriptsize}
+%% $$
+%% \begin{array}{|cc|cccccccccccccccc|}
+%% \hline
+%% x &=&1&0&1&1&1&0&1&0&1&0&0&1&0&0&1&0\\
+%% \hline
+%% S^i &=&0&1&1&0&0&1&1&0&1&1&1&0&0&1&1&1\\
+%% \hline
+%% x \oplus S^i&=&1&1&0&1&1&1&0&0&0&1&1&1&0&1&0&1\\
+%% \hline
+
+%% \hline
+%% \end{array}
+%% $$
+%% \end{scriptsize}
+%% \caption{Example of an arbitrary round of the proposed generator}
+%% \label{TableExemple}
+%% \end{table}
+
+
+
+
+\lstset{language=C,caption={C code of the sequential PRNG based on chaotic iterations},label={algo:seqCIPRNG}}
+\begin{small}