]> AND Private Git Repository - hdrcouchot.git/blob - 15RairoGen.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
3c49eb6da0d3fea5e96a97387ac163e32781745b
[hdrcouchot.git] / 15RairoGen.tex
1 Pour décrire un peu plus précisément le principe de
2 la génération pseudo-aléatoire, considérons l'espace booléen 
3 $\Bool=\{0,1\}$
4 muni des lois \og +\fg{}, \og . \fg{} et \og $\overline{\mathstrut\enskip}$ \fg{} 
5 définies par les tableaux ci-dessous:
6
7 \begin{minipage}{0.33\textwidth}
8   \begin{center}
9   \begin{tabular}{|c|c|c|}
10     \hline 
11     + & 0& 1 \\
12     \hline 
13     0 & 0& 1 \\
14     \hline 
15     1 & 1& 1 \\
16     \hline
17   \end{tabular}
18 \end{center}
19 \end{minipage}
20 \begin{minipage}{0.33\textwidth}
21   \begin{center}
22   \begin{tabular}{|c|c|c|}
23     \hline 
24     . & 0& 1 \\
25     \hline 
26     0 & 0& 0 \\
27     \hline 
28     1 & 0& 1 \\
29     \hline
30   \end{tabular}
31 \end{center}
32 \end{minipage}
33 \begin{minipage}{0.32\textwidth}
34   \begin{center}
35   \begin{tabular}{|c|c|c|}
36     \hline 
37      & 0& 1 \\
38     \hline 
39     $\overline{\mathstrut\enskip}$ & 1& 0 \\
40     \hline 
41    \end{tabular}
42 \end{center}
43 \end{minipage}
44
45
46 La fonction itérée est
47 une fonction $f$ de $\Bool^n$ dans lui-même qui à
48 un mot binaire $x = (x_1,\ldots,x_n)$ 
49 associe le mot $(f_1(x),\ldots, f_n(x))$.
50 Un exemple de fonction de $\Bool^n$ dans lui-même
51 est la fonction négation 
52 définie par  
53 $\neg(x)=(\overline{x_1},\dots,\overline{x_n})$. 
54
55 Le principe itératif est le suivant: 
56 à chaque itération $t$, on choisit un indice $i$ entre $1$ et $n$,
57 et le mot $x^t = (x_1^t,\ldots,x_n^t)$ est remplacé par
58 $x^{t+1} = (x_1^t,\ldots , x_{i-1}^t, f_i(x^t), x_{i+1}^t,\ldots, x_n^t)$.
59
60 Au bout d'un nombre $N$ d'itérations,
61 si la fonction, notée $G_f$ dans ce document, 
62 que l'on peut associer à l'algorithme décrit ci-dessus
63 a de \og bonnes\fg{} propriétés chaotiques, 
64 le mot $x^N$ doit être \og très différent\fg{} de $x^0$ 
65 de façon à même sembler ne plus dépendre de $x_0$:
66 pour un générateur aléatoire, il faut que la structure de 
67 $x^N$ semble être due au hasard; 
68 pour une application cryptographique, il faut qu'il
69 soit matériellement impossible (dans les conditions techniques actuelles) 
70 de retrouver $x^0$ à partir de $x^N$.
71
72 Tous les mots de 
73 $\Bool^n$ peuvent constituer les
74 $2^n$ sommets d'un \gls{graphoriente} (cf. glossaire)
75 dans lequel un arc relie deux sommets $x$ et $x'$ 
76 s'il existe une itération de l'algorithme
77 de génération qui permet de passer de $x$ à $x'$. 
78 Ce graphe est appelé le graphe d'itérations et 
79 ce document montre que si l'on a un \gls{graphfortementconnexe} (cf. glossaire),
80 alors la fonction $G_f$ est transitive, donc chaotique.
81
82 Enfin, un bon générateur aléatoire se doit de 
83 fournir  des nombres selon une \gls{distributionuniforme} (cf. glossaire). 
84 La dernière partie de ce document donnera, 
85 dans le cas où le graphe d'itérations est fortement connexe, 
86 une condition nécessaire est suffisante pour que
87 cette propriété soit satisfaite.
88
89
90  Cette section présente une application directe de la théorie développée ci-avant
91 à la génération de nombres pseudo aléatoires. On présente tout d'abord le générateur
92 basé sur des fonctions chaotiques (section~\ref{sub:prng:algo}), 
93 puis comment intégrer la contrainte de \gls{distributionuniforme} 
94 (cf. glossaire) de la sortie 
95 dans le choix de la fonction à itérer (section~\ref{sub:prng:unif}). 
96 L'approche est évaluée dans la dernière section.
97  
98
99 \subsection{ Générateur de nombres pseudo aléatoires basé sur le chaos}\label{sub:prng:algo}
100
101
102
103
104
105 On peut penser à construire un générateur de nombres pseudo 
106 aléatoires comme dans l'algorithme~\ref{CI Algorithm} donné ci-dessous.
107
108 \begin{algorithm}[h]
109 %\begin{scriptsize}
110 \KwIn{une fonction $f$, un nombre d'itérations $b$, 
111 une configuration initiale $x^0$ ($n$ bits)}
112 \KwOut{une configuration $x$ ($n$ bits)}
113 $x\leftarrow x^0$\;
114 $k\leftarrow b + \textit{Random}(b+1)$\;
115 %$k\leftarrow b + \textit{XORshift}(b+1)$\;
116 \For{$i=0,\dots,k-1$}
117 {
118 $s\leftarrow{\textit{Random}(n)}$\;
119 %$s\leftarrow{\textit{XORshift}(n)}$\;
120 $x\leftarrow{F_f(s,x)}$\;
121 }
122 return $x$\;
123 %\end{scriptsize}
124 \caption{Algorithme de génération de nombres pseudo aléatoires 
125 à l'aide de la fonction chaotique $G_f$}
126 \label{CI Algorithm}
127 \end{algorithm}
128
129
130 Celui-ci prend en entrée: une fonction $f$;
131 un entier $b$, qui assure que le nombre d'itérations
132 est compris entre $b+1 $ et  $2b+1$ et une configuration initiale $x^0$.
133 Il retourne une nouvelle configuration $x$.
134 En interne, il exploite un algorithme de génération
135 de nombres pseudo aléatoires
136 \textit{Random}$(l)$. 
137 Cet algorithme est utilisée dans notre générateur pour construire la longueur 
138 de la stratégie ainsi que les éléments qui la composent.
139 Pratiquement, il retourne des entiers dans $\llbracket 1 ; l \rrbracket$ 
140 selon une \gls{distributionuniforme} (cf. glossaire) et utilise 
141 \textit{XORshift} qui est une classe de générateurs de
142 nombres pseudo aléatoires
143 très rapides conçus par George Marsaglia. 
144
145 % L'algorithme \textit{XORshift} exploite itérativement
146 % la fonction \og \gls{xor}\fg{} $\oplus$ (cf. glossaire) 
147 % sur des nombres obtenus grâce à des \glspl{decalageDeBits} (cf. glossaire).
148
149 L'algorithme \textit{XORshift} 
150 exploite itérativement l'opérateur $\oplus$  
151 sur des nombres obtenus grâce à des \glspl{decalageDeBits} (cf. glossaire).
152 Cet opérateur, défini dans $\Bool^{n}$, 
153 applique la fonction \og  \gls{xor} \fg{} (cf. glossaire) 
154 aux bits de même rang de ses deux opérandes (\og opération bit à bit \fg{}).
155 Une instance de cette classe est donnée dans l'algorithme~\ref{XORshift} donné 
156 ci-dessous.
157
158 \begin{algorithm}[h]
159 %\SetLine
160 \KwIn{la configuration interne $z$ (un mot de 32-bit)}
161 \KwOut{$y$ (un mot de 32-bits)}
162 $z\leftarrow{z\oplus{(z\ll13)}}$\;
163 $z\leftarrow{z\oplus{(z\gg17)}}$\;
164 $z\leftarrow{z\oplus{(z\ll5)}}$\;
165 $y\leftarrow{z}$\;
166 return $y$\;
167 \medskip
168 \caption{Une boucle de l'algorithme de \textit{XORshift}}
169 \label{XORshift}
170 \end{algorithm}
171
172
173
174 Il reste à instancier une fonction $f$ dans 
175 l'algorithme~\ref{CI Algorithm} 
176 en adéquation avec  l'approche développée 
177 en section~\ref{sec:sccg}.
178 La section suivante montre comment l'uniformité de la distribution a
179 contraint cette instanciation.
180
181 \subsection{Un générateur à sortie uniformément distribuée}\label{sub:prng:unif}
182
183 Une matrice stochastique est une matrice carrée
184 dont tous les éléments sont positifs ou nuls et dont
185 la somme de chaque ligne
186 vaut 1. 
187 Une matrice stochastique l'est doublement si la somme de chaque colonne est 1.
188 Enfin, une matrice stochastique de taille $n \times n$ est régulière 
189 si  la propriété suivante est établie:
190 $$\exists k \in \mathds{N}^\ast, \forall i,j \in \llbracket 1; n \rrbracket, M_{ij}^k>0.$$
191
192 On énonce enfin le théorème suivant liant les 
193 \glspl{vecteurDeProbabilite} (cf. glossaire) 
194 et les \glspl{chaineDeMarkov} (cf. glossaire):
195
196
197  
198 \begin{Theo}\label{th}
199   Si $M$ est une matrice stochastique régulière, alors $M$ 
200   possède un unique vecteur stationnaire de probabilités  $\pi$
201   ($\pi.M = \pi$).
202   De plus, si $\pi^0$ est un \gls{vecteurDeProbabilite} 
203  et si on définit 
204   la suite $(\pi^{k})^{k \in  \Nats}$ par 
205   $\pi^{k+1} = \pi^k.M $ pour $k = 0, 1,\dots$ 
206   alors la \gls{chaineDeMarkov} $\pi^k$
207   converge vers $\pi$ lorsque $k$ tend vers l'infini.
208 \end{Theo}
209
210
211 Montrons sur un exemple jouet à deux éléments 
212 que ce théorème permet de vérifier si la sortie d'un générateur de 
213 nombres pseudo aléatoires est uniformément distribuée ou non.
214 Soit alors $g$ et $h$ deux fonctions  de $\Bool^2$
215 définies par $g(x_1,x_2)=(\overline{x_1},x_1.\overline{x_2}) $
216 et $h(x_1,x_2)=(\overline{x_1},x_1\overline{x_2}+\overline{x_1}x_2)$.
217 Leurs graphes d'interactions donnés en figure \ref{fig:g:inter} et \ref{fig:h:inter}
218 vérifient les hypothèses du théorème~\ref{th:Adrien}. 
219 Leurs graphes d'itérations
220 sont donc fortement connexes, ce que l'on a pu déjà vérifier aux figures
221 \ref{fig:g:iter} et \ref{fig:h:iter}.
222 \textit{A priori}, ces deux fonctions pourraient être intégrées
223 dans un générateur de nombres pseudo aléatoires. Montrons que ce n'est pas le cas pour $g$ et 
224 que cela l'est pour $h$.
225
226
227 Comme le générateur \textit{Random} possède une sortie uniformément 
228 distribuée,  la  stratégie est uniforme sur $\llbracket 1, 2 \rrbracket$,
229 et donc, 
230 pour tout sommet de $\Gamma(g)$ et de  $\Gamma(h)$,
231 chaque arc sortant de ce sommet a, parmi l'ensemble des arcs sortant 
232 de ce sommet, une probabilité $1/2$ d’être celui qui sera traversé.
233 En d'autres mots, $\Gamma(g)$ est le graphe orienté d'une chaîne de Markov.
234 Il est facile de vérifier que la \gls{matriceDeTransitions} (cf. glossaire)
235 d'un tel processus 
236 est $M_g   = \frac{1}{2} \check{M}_g$, 
237 où $\check{M}_g$ est la \gls{matriceDAdjacence} (cf. glossaire) donnée en 
238 figure~\ref{fig:g:incidence} (voir ci-après), et similairement pour $M_h$. 
239
240 \begin{figure}[h]
241   \begin{center}
242     \subfloat[$\check{M}_g $.]{
243       \begin{minipage}{0.25\textwidth}
244         \begin{center}
245           % \vspace{-3cm}
246           $\left( 
247             \begin{array}{cccc} 
248               1 & 0 & 1 & 0 \\ 
249               1 & 0 & 0 & 1 \\ 
250               1 & 0 & 0 & 1 \\ 
251               0 & 1 & 1 & 0 
252             \end{array}
253           \right)
254           $
255         \end{center}
256       \end{minipage}
257       \label{fig:g:incidence}
258     }
259     \subfloat[$\check{M}_h $.]{
260         \begin{minipage}{0.25\textwidth}
261           \begin{center}
262             $\left( 
263               \begin{array}{cccc} 
264                 1 & 0 & 1 & 0 \\ 
265                 0 & 1 & 0 & 1 \\ 
266                 1 & 0 & 0 & 1 \\ 
267                 0 & 1 & 1 & 0 
268               \end{array}
269             \right)
270             $
271           \end{center}
272         \end{minipage}
273         \label{fig:h:incidence}
274       }
275     \end{center}
276     \caption{Graphe des fonctions candidates avec $n=2$}
277     \label{fig:xplgraph}
278   \end{figure}
279
280 Les deux matrices $M_g$ et $M_h$ sont  stochastiques. Pour
281 montrer qu'elles sont régulières il suffit de constater qu'aucun élément de 
282 $M^5_g$ ni de  $M^3_h$ n'est nul.
283 De plus, les vecteurs de probabilités 
284 $\pi_g=(\frac{4}{10}, \frac{1}{10},\frac{3}{10},\frac{2}{10})$ et
285 $\pi_h=(\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4})$ 
286 vérifient $\pi_g M_g = \pi_g$ et 
287 $\pi_h M_h = \pi_h$. 
288 Alors d'après le théorème~\ref{th}, 
289 pour n'importe quel vecteur initial de probabilités $\pi^0$, on a 
290 $\lim_{k \to \infty} \pi^0 M^k_g = \pi_g$ et 
291 $\lim_{k \to \infty} \pi^0 M^k_h = \pi_h$. 
292 Ainsi la chaîne de Markov associé à $h$ tend vers une 
293 distribution uniforme, contrairement à celle associée à $g$.
294 On en déduit que $g$ ne devrait pas être itérée dans 
295 un générateur de nombres pseudo aléatoires.
296 Au contraire, 
297 $h$ devrait pouvoir être embarquée dans l'algorithme~\ref{CI Algorithm}, 
298 pour peu que le nombre $b$ d'itérations entre deux mesures successives 
299 de valeurs  soit suffisamment grand de sorte que
300 le vecteur d’état de la chaîne de Markov
301 ait une distribution suffisamment proche de la distribution uniforme.
302
303
304 Considérons le lemme technique suivant:
305 \begin{Lemma}\label{lem:stoc}
306 Soit $f: \Bool^{n} \rightarrow \Bool^{n}$, $\Gamma(f)$ son graphe d'itérations, $\check{M}$ la matrice d'adjacence de $\Gamma(f)$, et  $M$  la matrice 
307 $2^n\times 2^n$  définie par
308 $M = \frac{1}{n}\check{M}$.
309 Alors $M$ est une matrice stochastique régulière si et seulement si
310 $\Gamma(f)$ est fortement connexe.
311 \end{Lemma}
312
313 \begin{Proof}  
314 On remarque tout d'abord que $M$ 
315 est une matrice stochastique par construction.
316 Supposons $M$ régulière. 
317 Il existe donc  $k$ tel que $M_{ij}^k>0$ pour chaque $i,j\in \llbracket
318 1;  2^n  \rrbracket$. L'inégalité  $\check{M}_{ij}^k>0$  est alors établie.
319 Puisque $\check{M}_{ij}^k$ est le nombre de chemins de  $i$ à $j$ de longueur $k$
320 dans $\Gamma(f)$ et puisque ce nombre est positif, alors 
321 $\Gamma(f)$ est fortement connexe.
322
323 Réciproquement si $\Gamma(f)$ 
324 est fortement connexe, alors pour tous les sommets $i$ et $j$, un chemin peut être construit pour atteindre  $j$  depuis $i$ en au plus $2^n$ étapes.
325 Il existe donc 
326 $k_{ij} \in \llbracket 1,  2^n \rrbracket$ tels que $\check{M}_{ij}^{k_{ij}}>0$.  
327 Comme tous les  multiples $l \times k_{ij}$ de $k_{ij}$ sont tels que 
328 $\check{M}_{ij}^{l\times  k_{ij}}>0$, 
329 on peut conclure que, si 
330 $k$ est le plus petit multiple commun de $\{k_{ij}  \big/ i,j  \in \llbracket 1,  2^n \rrbracket  \}$ alors
331 $\forall i,j  \in \llbracket  1, 2^n \rrbracket,  \check{M}_{ij}^{k}>0$. 
332 Ainsi, $\check{M}$ et donc $M$ sont régulières.
333 \end{Proof}
334
335 Ces résultats permettent formuler et de prouver le théorème suivant:
336
337 \begin{Theo}
338   Soit $f: \Bool^{n} \rightarrow \Bool^{n}$, $\Gamma(f)$ son 
339   graphe d'itérations , $\check{M}$ sa matrice d'adjacence
340   et $M$ une matrice  $2^n\times 2^n$  définie comme dans le lemme précédent.
341   Si $\Gamma(f)$ est fortement connexe, alors 
342   la sortie du générateur de nombres pseudo aléatoires détaillé par 
343   l'algorithme~\ref{CI Algorithm} suit une loi qui 
344   tend vers la distribution uniforme si 
345   et seulement si  $M$ est une matrice doublement stochastique.
346 \end{Theo}
347 \begin{Proof}
348   $M$ est une matrice stochastique régulière (Lemme~\ref{lem:stoc}) 
349   qui a un unique vecteur de probabilités stationnaire
350   (Théorème \ref{th}).
351   Soit $\pi$  défini par 
352   $\pi = \left(\frac{1}{2^n}, \hdots, \frac{1}{2^n} \right)$.
353   On a  $\pi M = \pi$ si et seulement si
354   la somme des valeurs de chaque colonne de $M$  est 1, 
355   \textit{i.e.} si et seulement si 
356   $M$ est  doublement  stochastique.
357 \end{Proof}
358
359
360 \subsection{Expérimentations}
361
362 On considère le graphe d'interactions $G(f)$ donné en figure~\ref{fig:G}. 
363 Il vérifie le théorème~\ref{th:Adrien}: 
364 toutes les fonctions $f$ possédant un tel graphe d'interactions
365 ont un graphe d'itérations  $\Gamma(f)$ fortement connexe.
366 Pratiquement, un algorithme simple de satisfaction de contraintes
367 a trouvé  520 fonctions $f$ non isomorphes de graphe d'interactions  $G(f)$, 
368 dont seulement 16 d'entre elles possédent une matrice doublement stochastique.
369
370 La figure~\ref{fig:listfonction} explicite ces 16 fonctions en 
371 définissant les images des éléments de la liste
372 0, 1, 2,\ldots, 14, 15 en respectant  l'ordre.
373 Expliquons enfin comment a été calculé le nombre de la troisième 
374 colonne utilisé comme le paramètre $b$ 
375 dans l'algorithme~\ref{CI Algorithm}.
376
377 Soit $e_i$ le $i^{\textrm{ème}}$ vecteur la base canonique de $\R^{2^{n}}$. 
378 Chacun des éléments $v_j$, $1 \le j \le 2^n$, 
379 du vecteur $e_i M_f^t$ représente la probabilité 
380 d'être dans la configuration $j$ après $t$ étapes du processus de Markov 
381 associé à $\Gamma(f)$ en partant de la configuration $i$.   
382 Le nombre $\min \{
383  t \mid t \in \Nats, \vectornorm{e_i M_f^t - \pi} < 10^{-4}
384 \}$ représente le plus petit nombre d'itérations où la distance de 
385 ce vecteur au vecteur $\pi=(\frac{1}{2^n},\ldots,\frac{1}{2^n})$
386 -- autrement dit, où la déviation par rapport à la distribution uniforme --
387  est inférieure 
388 à $10^{-4}$. En prenant le max pour tous les $e_i$, on obtient une valeur pour
389  $b$. Ainsi, on a 
390 $$
391 b = \max\limits_{i \in \llbracket 1, 2^n \rrbracket} 
392 \{
393 \min \{
394  t \mid t \in \Nats, \vectornorm{e_i M_f^t - \pi} < 10^{-4}
395 \}
396 \}. 
397 $$
398
399 \begin{figure}%[h]
400   \begin{center}
401   \subfloat[Graphe d'interactions]{
402     \begin{minipage}{0.20\textwidth}
403       \begin{center}
404         \includegraphics[width=3.5cm]{images/Gi.pdf}
405       \end{center}
406     \end{minipage}
407     \label{fig:G}
408   }\hfill
409   \subfloat[Fonctions doublement stochastiques]{
410     \begin{minipage}{0.75\textwidth}
411       \begin{scriptsize}
412         \begin{center}
413           \begin{tabular}{|c|c|c|}
414 \hline
415 {Nom}& {Définition}&{$b$} \\
416 \hline 
417 $\mathcal{F}_1$ & 14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 1, 0  & 206\\
418 \hline
419 $\mathcal{F}_2$ &14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 5, 4, 3, 2, 0, 1  
420  & 94 \\
421 \hline
422 $\mathcal{F}_3$ &14, 15, 12, 13, 10, 11, 8, 9, 6, 7, 5, 4, 3, 2, 1, 0
423  & 69 \\
424 \hline
425 $\mathcal{F}_4$ &14, 15, 12, 13, 10, 11, 9, 8, 6, 7, 5, 4, 3, 2, 0, 1
426  & 56 \\
427 \hline
428 $\mathcal{F}_5$ &14, 15, 12, 13, 10, 11, 9, 8, 6, 7, 5, 4, 3, 2, 1, 0
429  & 48 \\
430 \hline
431 $\mathcal{F}_6$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 4, 5, 2, 3, 0, 1
432  & 86 \\
433 \hline
434 $\mathcal{F}_7$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 4, 5, 2, 3, 1, 0
435  & 58 \\
436 \hline
437 $\mathcal{F}_8$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 4, 5, 3, 2, 1, 0
438  & 46 \\
439 \hline
440 $\mathcal{F}_9$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1
441  & 42 \\
442 \hline
443 $\mathcal{F}_{10}$ &14, 15, 12, 13, 10, 11, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
444  & 69 \\
445 \hline
446 $\mathcal{F}_{11}$ &14, 15, 12, 13, 11, 10, 9, 8, 7, 6, 5, 4, 2, 3, 1, 0
447  & 58 \\
448 \hline
449 $\mathcal{F}_{12}$ &14, 15, 13, 12, 11, 10, 8, 9, 7, 6, 4, 5, 2, 3, 1, 0
450  & 35 \\
451 \hline
452 $\mathcal{F}_{13}$ &14, 15, 13, 12, 11, 10, 8, 9, 7, 6, 4, 5, 3, 2, 1, 0
453  & 56 \\
454 \hline
455 $\mathcal{F}_{14}$ &14, 15, 13, 12, 11, 10, 8, 9, 7, 6, 5, 4, 3, 2, 1, 0
456  & 94 \\
457 \hline
458 $\mathcal{F}_{15}$ &14, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 0, 1
459  & 86 \\ 
460 \hline
461 $\mathcal{F}_{16}$ &14, 15, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
462   & 206 \\
463  \hline
464 \end{tabular}
465 \end{center}
466 \end{scriptsize}
467 \end{minipage}
468 \label{fig:listfonction}
469 }
470 \end{center}
471 \caption{Candidates pour le générateur  avec $n=4$}
472  \end{figure}
473
474
475 La qualité des séquences aléatoires a été évaluée à travers la suite 
476 de tests statistiques développée pour les générateurs de nombres 
477 pseudo aléatoires par le 
478 \emph{National Institute of Standards and Technology} (NIST).
479 % Pour les 15 tests, le seuil $\alpha$ est fixé à $1\%$:
480 % une  valeur  
481 % qui est plus grande que $1\%$  signifie 
482 % que la chaîne est considérée comme aléatoire avec une confiance de $99\%$.
483 % Le tableau~\ref{fig:TEST} donne une vision synthétique de toutes 
484 % les expérimentations. 
485 L'expérience a montré notamment que toutes ces fonctions
486 passent avec succès cette batterie de tests.
487
488
489
490
491 % \begin{table}[th]
492 % \begin{scriptsize}
493 % \begin{tabular}{|*{17}{c|}}
494 % \hline
495 % {Propriété}& $\mathcal{F}_{1}$ &$\mathcal{F}_{2}$ &$\mathcal{F}_{3}$ &$\mathcal{F}_{4}$ &$\mathcal{F}_{5}$ &$\mathcal{F}_{6}$ &$\mathcal{F}_{7}$ &$\mathcal{F}_{8}$ &$\mathcal{F}_{9}$ &$\mathcal{F}_{10}$ &$\mathcal{F}_{11}$ &$\mathcal{F}_{12}$ &$\mathcal{F}_{13}$ &$\mathcal{F}_{14}$ &$\mathcal{F}_{15}$ &$\mathcal{F}_{16}$ \\
496 % \hline
497 % Fréquence &77.9 &15.4 &83.4 &59.6 &16.3 &38.4 &20.2 &29.0 &77.9 &21.3 &65.8 &85.1 &51.4 &35.0 &77.9 &92.4 \\ 
498 %  \hline 
499 % Fréquence / bloc &88.3 &36.7 &43.7 &81.7 &79.8 &5.9 &19.2 &2.7 &98.8 &1.0 &21.3 &63.7 &1.4 &7.6 &99.1 &33.5 \\ 
500 %  \hline 
501 % Somme cummulée &76.4 &86.6 &8.7 &66.7 &2.2 &52.6 &20.8 &80.4 &9.8 &54.0 &73.6 &80.1 &60.7 &79.7 &76.0 &44.7 \\ 
502 %  \hline 
503 % Exécution &5.2 &41.9 &59.6 &89.8 &23.7 &76.0 &77.9 &79.8 &45.6 &59.6 &89.8 &2.4 &96.4 &10.9 &72.0 &11.5 \\ 
504 %  \hline 
505 % Longue exécution &21.3 &93.6 &69.9 &23.7 &33.5 &30.4 &41.9 &43.7 &30.4 &17.2 &41.9 &51.4 &59.6 &65.8 &11.5 &61.6 \\ 
506 %  \hline 
507 % Rang &1.0 &41.9 &35.0 &45.6 &51.4 &20.2 &31.9 &83.4 &89.8 &38.4 &61.6 &4.0 &21.3 &69.9 &47.5 &95.6 \\ 
508 %  \hline 
509 % Fourrier Rapide &40.1 &92.4 &97.8 &86.8 &43.7 &38.4 &76.0 &57.5 &36.7 &35.0 &55.4 &57.5 &86.8 &76.0 &31.9 &7.6 \\ 
510 %  \hline 
511 % Sans superposition &49.0 &45.7 &50.5 &51.0 &48.8 &51.2 &51.6 &50.9 &50.9 &48.8 &45.5 &47.3 &47.0 &49.2 &48.6 &46.4 \\ 
512 %  \hline 
513 % Avec Superposition &27.6 &10.9 &53.4 &61.6 &16.3 &2.7 &59.6 &94.6 &88.3 &55.4 &76.0 &23.7 &47.5 &91.1 &65.8 &81.7 \\ 
514 %  \hline 
515 % Universelle &24.9 &35.0 &72.0 &51.4 &20.2 &74.0 &40.1 &23.7 &9.1 &72.0 &4.9 &13.7 &14.5 &1.8 &93.6 &65.8 \\ 
516 %  \hline 
517 % Entropie approchée &33.5 &57.5 &65.8 &53.4 &26.2 &98.3 &53.4 &63.7 &38.4 &6.7 &53.4 &19.2 &20.2 &27.6 &67.9 &88.3 \\ 
518 %  \hline 
519 % Suite aléatoire &29.8 &35.7 &40.9 &36.3 &54.8 &50.8 &43.5 &46.0 &39.1 &40.8 &29.6 &42.0 &34.8 &33.8 &63.0 &46.3 \\ 
520 %  \hline 
521 % Suite aléatoire variante &32.2 &40.2 &23.0 &39.6 &47.5 &37.2 &56.9 &54.6 &53.3 &31.5 &23.0 &38.1 &52.3 &57.1 &47.7 &40.8 \\ 
522 %  \hline 
523 % Série &56.9 &58.5 &70.4 &73.2 &31.3 &45.9 &60.8 &39.9 &57.7 &21.2 &6.4 &15.6 &44.7 &31.4 &71.7 &49.1 \\ 
524 %  \hline 
525 % Complexité linéaire &24.9 &23.7 &96.4 &61.6 &83.4 &49.4 &49.4 &18.2 &3.5 &76.0 &24.9 &97.2 &38.4 &38.4 &1.1 &8.6 \\ 
526 %  \hline
527 % \end{tabular}
528 % \end{scriptsize}
529 % \caption{Test de NIST réalisé sur des instances de générateurs}\label{fig:TEST}  
530 % \end{table}
531
532
533