]> AND Private Git Repository - prng_gpu.git/blobdiff - prng_gpu.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
blabla
[prng_gpu.git] / prng_gpu.tex
index ba76fe2e244a35fccfa418c2452df09bc309780d..32280838c12fbe5427d17eac94106182abed6793 100644 (file)
@@ -929,37 +929,41 @@ have $d((S,E),(\tilde S,E))<\epsilon$.
 \begin{color}{red}
 \section{Statistical Improvements Using Chaotic Iterations}
 
 \begin{color}{red}
 \section{Statistical Improvements Using Chaotic Iterations}
 
-\subsection{About some Well-known PRNGs}
 \label{The generation of pseudo-random sequence}
 
 
 \label{The generation of pseudo-random sequence}
 
 
-
-
-Let us now give illustration on the fact that chaos appears to improve statistical properties.
+Let us now explain why we are reasonable grounds to believe that chaos 
+can improve statistical properties.
+We will show in this section that, when mixing defective PRNGs with
+chaotic iterations, the result presents better statistical properties
+(this section summarizes the work of~\cite{bfg12a:ip}).
 
 \subsection{Details of some Existing Generators}
 
 
 \subsection{Details of some Existing Generators}
 
-Here are the modules of PRNGs we have chosen to experiment.
+The list of defective PRNGs we will use 
+as inputs for the statistical tests to come is introduced here.
 
 
-\subsubsection{LCG}
-This PRNG implements either the simple or the combined linear congruency generator (LCGs). The simple LCG is defined by the recurrence:
+Firstly, the simple linear congruency generator (LCGs) will be used. 
+It is defined by the following recurrence:
 \begin{equation}
 x^n = (ax^{n-1} + c)~mod~m
 \label{LCG}
 \end{equation}
 \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 less than $m$~\cite{testU01}. In what follows, 2LCGs and 3LCGs refer as two (resp. three) combinations of such LCGs.
-For further details, see~\cite{combined_lcg}.
+where $a$, $c$, and $x^0$ must be, among other things, non-negative and less than 
+$m$~\cite{LEcuyerS07}. In what follows, 2LCGs and 3LCGs refer as two (resp. three) 
+combinations of such LCGs. For further details, see~\cite{bfg12a:ip,combined_lcg}.
 
 
-\subsubsection{MRG}
-This module implements multiple recursive generators (MRGs), based on a linear recurrence of order $k$, modulo $m$~\cite{testU01}:
+Secondly, the multiple recursive generators (MRGs) will be used too, which
+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}
 \begin{equation}
 x^n = (a^1x^{n-1}+~...~+a^kx^{n-k})~mod~m
 \label{MRG}
 \end{equation}
-Combination of two MRGs (referred as 2MRGs) is also be used in this paper.
+Combination of two MRGs (referred as 2MRGs) is also used in these experimentations.
 
 
-\subsubsection{UCARRY}
-Generators based on linear recurrences with carry are implemented in this module. This includes the add-with-carry (AWC) generator, based on the recurrence:
+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}
 \begin{equation}
 \label{AWC}
 \begin{array}{l}
@@ -981,16 +985,14 @@ and the SWC generator designed by R. Couture, which is based on the following re
 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}
 
 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}
 
-\subsubsection{GFSR}
-This module implements the generalized feedback shift register (GFSR) generator, that is:
+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}
 
 
 \begin{equation}
 x^n = x^{n-r} \oplus x^{n-k}
 \label{GFSR}
 \end{equation}
 
 
-\subsubsection{INV}
-Finally, this module implements the nonlinear inversive generator, as defined in~\cite{testU01}, which is:
+Finally, the nonlinear inversive generator~\cite{LEcuyerS07} has been regarded too, which is:
 
 \begin{equation}
 \label{INV}
 
 \begin{equation}
 \label{INV}
@@ -1007,45 +1009,14 @@ a^1 & \text{if}~  z^{n-1} = 0 .\end{array} \right. \end{array}\end{equation}
 \subsection{Statistical tests}
 \label{Security analysis}
 
 \subsection{Statistical tests}
 \label{Security analysis}
 
-%A theoretical proof for the randomness of a generator is impossible to give, therefore statistical inference based on observed sample sequences produced by the generator seems to be the best option.
-Considering the properties of binary random sequences, various statistical tests can be designed to evaluate the assertion that the sequence is generated by a perfectly random source. We have performed some statistical tests for the CIPRNGs proposed here. These tests include NIST suite~\cite{ANDREW2008} and DieHARD battery of tests~\cite{DieHARD}. For completeness and for reference, we give in the following subsection a brief description of each of the aforementioned tests.
-
-
-
-\subsubsection{NIST statistical tests suite}
-
-Among the numerous standard tests for pseudo-randomness, a convincing way to show the randomness of the produced sequences is to confront them to the NIST (National Institute of  Standards and Technology) statistical tests, being an up-to-date tests suite proposed by the Information Technology Laboratory (ITL). A new version of the Statistical tests suite has been released in August 11, 2010.
-
-The NIST tests suite SP 800-22 is a statistical package consisting of 15 tests. They were developed to test the randomness of binary sequences produced by hardware or software based cryptographic pseudorandom number generators. These tests focus on a variety of different types of non-randomness that could exist in a sequence.
-
-For each statistical test, a set of $P-values$ (corresponding to the set of sequences) is produced.
-The interpretation of empirical results can be conducted in various ways.
-In this paper, the examination of the distribution of P-values to check for uniformity ($ P-value_{T}$) is used.
-The distribution of $P-values$ is examined to ensure uniformity.
-If $P-value_{T} \geqslant 0.0001$, then the sequences can be considered to be uniformly distributed.
+Three batteries of tests are reputed and usually 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.
 
 
-In our experiments, 100 sequences (s = 100), each with 1,000,000-bit long, are generated and tested. If the $P-value_{T}$ of any test is smaller than 0.0001, the sequences are considered to be not good enough and the generating algorithm is not suitable for usage.
 
 
 
 
-
-
-
-\subsubsection{DieHARD battery of tests}
-The DieHARD battery of tests has been the most sophisticated standard for over a decade. Because of the stringent requirements in the DieHARD tests suite, a generator passing this battery of
-tests can be considered good as a rule of thumb.
-
-The DieHARD battery of tests consists of 18 different independent statistical tests. This collection
- of tests is based on assessing the randomness of bits comprising 32-bit integers obtained from
-a random number generator. Each test requires $2^{23}$ 32-bit integers in order to run the full set
-of tests. Most of the tests in DieHARD return a $P-value$, which should be uniform on $[0,1)$ if the input file
-contains truly independent random bits.  These $P-values$ are obtained by
-$P=F(X)$, where $F$ is the assumed distribution of the sample random variable $X$ (often normal).
-But that assumed $F$ is just an asymptotic approximation, for which the fit will be worst
-in the tails. Thus occasional $P-values$ near 0 or 1, such as 0.0012 or 0.9983, can occur.
-An individual test is considered to be failed if the $P-value$ approaches 1 closely, for example $P>0.9999$.
-
-
-\subsection{Results and discussion}
 \label{Results and discussion}
 \begin{table*}
 \renewcommand{\arraystretch}{1.3}
 \label{Results and discussion}
 \begin{table*}
 \renewcommand{\arraystretch}{1.3}
@@ -1061,16 +1032,21 @@ DieHARD & 16/18 & 16/18 & 15/18 & 16/18 & \textbf{18/18} & 16/18 & 16/18 & 16/18
 \end{tabular}
 \end{table*}
 
 \end{tabular}
 \end{table*}
 
-Table~\ref{NIST and DieHARD tests suite passing rate the for PRNGs without CI} shows the results on the batteries recalled above, indicating that almost all the PRNGs cannot pass all their tests. In other words, the statistical quality of these PRNGs cannot fulfill the up-to-date standards presented previously. We will show that the CIPRNG can solve this issue.
-
-To illustrate the effects of this CIPRNG in detail, experiments will be divided in three parts:
+Table~\ref{NIST and DieHARD tests suite passing rate the for PRNGs without CI} shows the 
+results on the two firsts 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.
 \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,$
+  \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}
 \begin{equation}
 \begin{array}{l}
-x_i^n=\left\{
+\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}
 \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}