Vous êtes sur la page 1sur 15

1

Le hasard Reconnatre le vrai hasard

Simuler le hasard Par lhumain (16 19 54 11) IA

Par une machine

Hasard faible
Bon mlange, uniformit, longue priode, satisfaction des tests statistiques. Peut tre produit par des algorithmes rapides. Utile en simulation.

Hasard moyen
Imprvisibilit pour un observateur ne disposant que de moyens de calcul ralistes. Peut tre produit vraisemblablement par des algorithmes moyennement rapides.

Hasard fort
Imprvisibilit totale, incompressibilit. Ne peut jamais tre produit par algorithme, vraisemblablement par des moyens physiques. mais lest

Le hasard faible Gnration de nombres pseudo-alatoires


Dfinition :
Une suite de valeurs (x1, x2, , xn) est dite pseudo-alatoire si : - elle est calcule par une rgle algbrique - mais peut tre considre pour les applications comme la ralisation dune srie dexpriences alatoires.

Gnration de nombres pseudo-alatoires suivant la loi uniforme


Soit X ~ uniforme sur [0,1]. On souhaite gnrer une suite x1, x2, , xn (0 < xi < 1) qui semble tre le rsultat de la mesure de v.a. indpendantes suivant chacune un loi uniforme sur [0,1].

Technique utilise : le gnrateur multiplicatif congruent


Soient a, b, M trois constantes entires positives telles que a < M et b < M. On prend a pour germe et b pour multiplicateur. On construit 2 sries de nombres 1 yi < M et 0 < xi < 1 en partant de la valeur initiale y0 = a et en appliquant au calcul des valeurs successives les relations de rcurrence : yi = (b * yi-1) mod M xi = yi / M Sur ordinateur, on adapte M la longueur du mot machine. Si on prend M = 2k, il suffira de ngliger loverflow dans la multiplication.

Exemples : M = 26 = 64 a=1 b = 37
000001 100101 011001 011101 110001 010101 001001 001101 100001 000101 111001 111101 010001 110101 101001 101101 000001 yi 1 37 25 29 49 21 9 13 33 5 57 61 17 53 41 45 1 xi 0,016 0,578 0,391 0,453 0,766 0,328 0,141 0,203 0,516 0,078 0,891 0,953 0,266 0,828 0,641 0,703 0,016

Dans la classe java.util.Random, la mthode nextInt() utilise la formule plus labore : yi = (b * yi-1 + c )mod M b = 25.214.903.917 c = 11 M = 281.474.976.710.655 ( = 248 -1)

L'intrt, ou la qualit, de la suite de nombres obtenus si l'on veut s'en servir comme une suite de nombres "alatoires" dans une application, dpend des valeurs choisies pour a, b et M ! On trouve des choix intressants en se rfrant des thormes mathmatiques.

- Aprs un certain temps, la mme squence de valeurs rapparat. Le nombre de valeurs dune squence est la priode de la suite. Lidal est davoir la priode gale M-1 ! Thorme 1 : Si M = 2k, b = 8t-3, alors la priode de la squence gnre est 2k-2 (on gnre une valeur sur 4) et la squence des yi est une permutation de : 1, 5, 9, , 2k 3 si a mod 4 = 1 3, 7, 11, , 2k 1 si a mod 4 = 3 Thorme 2 : Si les nombres b et M nont pas de diviseurs communs, si tout nombre premier qui divise M divise aussi a-1, et si M nest pas divisible par 4, alors la priode du gnrateur est maximale, et vaut M-1. Si M est un multiple de 4, il faut que a-1 le soit aussi pour que la priode soit maximale.

10

- Mme si la squence complte est gnre et que les valeurs obtenues suivent de trs prs une distribution uniforme, on nest pas certain que toute partie de la squence ait une distribution presque uniforme. (La suite gnre doit tre dsordonne.) Exemple : 1 2 3 4 5 6 7 8 9 10 10 3 8 4 1 5 6 9 2 7

11

Tests spectraux : Dimension 2 : on reprsente dans lespace chaque couple (xn, xn+1). Ces couples doivent tre disperss.

12

Le hasard moyen
En cryptographie, conformment lide que le hasard est imprvisible, il faut tre certain que la suite alatoire ne pourra pas tre prdite rapidement partir de la connaissance de quelques-uns de ses points. Le caractre uniforme d'un gnrateur n'est pas une caractristique primordiale en cryptographie, contrairement d'autres applications.

Le gnrateur BBS (L.Blum, M. Blum et M. Shub)


Il faut admettre quune certaine conjecture mathmatique est vraie : Celle sur la difficult du calcul de la rsiduosit quadratique. (Trouver les racines carres modulo n est un problme difficile temps polynomial)

13

Cette conjecture est juge trs vraisemblable et donc on est presque certain que BBS est un bon gnrateur alatoire mais pas absolument. Soit M un produit de deux entiers premiers, chacun de la forme 4 t + 3. On prend comme graine un entier a sans facteur commun avec M. On dfinit : y0 = a2 mod M yi = yi-1 2 mod M La parit de yi donne la suite pseudo-alatoire de bits propose par BBS. Exemple : 70 702 = 4900 = 23 * 209 + 93 932 = 8649 = 41 * 209 + 80 802 = 6400 = 30 * 209 + 130 0 1 0 0 b0 b1 b2 b3

14

Le hasard fort
Caractristique principale : impossibilit absolue de la prdiction, quelle que soit la puissance de calcul utilise. On se base sur un phnomne physique non dterministe quon espre qui-rparti (produisant des 0 et des 1 en proportion gale)! Attention ce nest pas toujours le cas ! Solution : - Prendre une srie de bits engendres par un procd physique et une srie gnre par un gnrateur pseudo-alatoire de "bonne" qualit et oprer un OU exclusif entre les 2 sries.

15

- Uniformiser le gnrateur biais (Von Newmann) : Prendre les bits deux par deux, supprimer tous les couples 00 et 11, transformer les couples 01 en 0 et les couples 10 en 1. (Si la suite initiale donne 1 avec une probabilit p et 0 avec une probabilit 1-p, le couple 01 a pour probabilit p(1-p) comme le couple 10 !) 00 10 01 00 11 10 01 00 10 10 01 00 10 10 1 0 1 0 1 1 0 1 1