From: couchot Date: Wed, 15 Jul 2015 11:40:49 +0000 (+0200) Subject: modif 15Rairo X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/hdrcouchot.git/commitdiff_plain/d3ea167453c701385858e4db6c3dcd9df216701d?ds=sidebyside modif 15Rairo --- diff --git a/15RairoGen.tex b/15RairoGen.tex index 835555e..3c49eb6 100644 --- a/15RairoGen.tex +++ b/15RairoGen.tex @@ -1,3 +1,92 @@ +Pour décrire un peu plus précisément le principe de +la génération pseudo-aléatoire, considérons l'espace booléen +$\Bool=\{0,1\}$ +muni des lois \og +\fg{}, \og . \fg{} et \og $\overline{\mathstrut\enskip}$ \fg{} +définies par les tableaux ci-dessous: + +\begin{minipage}{0.33\textwidth} + \begin{center} + \begin{tabular}{|c|c|c|} + \hline + + & 0& 1 \\ + \hline + 0 & 0& 1 \\ + \hline + 1 & 1& 1 \\ + \hline + \end{tabular} +\end{center} +\end{minipage} +\begin{minipage}{0.33\textwidth} + \begin{center} + \begin{tabular}{|c|c|c|} + \hline + . & 0& 1 \\ + \hline + 0 & 0& 0 \\ + \hline + 1 & 0& 1 \\ + \hline + \end{tabular} +\end{center} +\end{minipage} +\begin{minipage}{0.32\textwidth} + \begin{center} + \begin{tabular}{|c|c|c|} + \hline + & 0& 1 \\ + \hline + $\overline{\mathstrut\enskip}$ & 1& 0 \\ + \hline + \end{tabular} +\end{center} +\end{minipage} + + +La fonction itérée est +une fonction $f$ de $\Bool^n$ dans lui-même qui à +un mot binaire $x = (x_1,\ldots,x_n)$ +associe le mot $(f_1(x),\ldots, f_n(x))$. +Un exemple de fonction de $\Bool^n$ dans lui-même +est la fonction négation +définie par +$\neg(x)=(\overline{x_1},\dots,\overline{x_n})$. + +Le principe itératif est le suivant: +à chaque itération $t$, on choisit un indice $i$ entre $1$ et $n$, +et le mot $x^t = (x_1^t,\ldots,x_n^t)$ est remplacé par +$x^{t+1} = (x_1^t,\ldots , x_{i-1}^t, f_i(x^t), x_{i+1}^t,\ldots, x_n^t)$. + +Au bout d'un nombre $N$ d'itérations, +si la fonction, notée $G_f$ dans ce document, +que l'on peut associer à l'algorithme décrit ci-dessus +a de \og bonnes\fg{} propriétés chaotiques, +le mot $x^N$ doit être \og très différent\fg{} de $x^0$ +de façon à même sembler ne plus dépendre de $x_0$: +pour un générateur aléatoire, il faut que la structure de +$x^N$ semble être due au hasard; +pour une application cryptographique, il faut qu'il +soit matériellement impossible (dans les conditions techniques actuelles) +de retrouver $x^0$ à partir de $x^N$. + +Tous les mots de +$\Bool^n$ peuvent constituer les +$2^n$ sommets d'un \gls{graphoriente} (cf. glossaire) +dans lequel un arc relie deux sommets $x$ et $x'$ +s'il existe une itération de l'algorithme +de génération qui permet de passer de $x$ à $x'$. +Ce graphe est appelé le graphe d'itérations et +ce document montre que si l'on a un \gls{graphfortementconnexe} (cf. glossaire), +alors la fonction $G_f$ est transitive, donc chaotique. + +Enfin, un bon générateur aléatoire se doit de +fournir des nombres selon une \gls{distributionuniforme} (cf. glossaire). +La dernière partie de ce document donnera, +dans le cas où le graphe d'itérations est fortement connexe, +une condition nécessaire est suffisante pour que +cette propriété soit satisfaite. + + Cette section présente une application directe de la théorie développée ci-avant à la génération de nombres pseudo aléatoires. On présente tout d'abord le générateur basé sur des fonctions chaotiques (section~\ref{sub:prng:algo}),