Générateurs pseudo-aléatoires

Documents pareils
Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Introduction à l étude des Corps Finis

Cryptographie et fonctions à sens unique

Quelques tests de primalité

IFT3245. Simulation et modèles

Modélisation et simulation

Programmation linéaire

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Chapitre VI - Méthodes de factorisation

Cryptographie. Cours 3/8 - Chiffrement asymétrique

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Théorie et codage de l information

1 Recherche en table par balayage

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Analyse stochastique de la CRM à ordre partiel dans le cadre des essais cliniques de phase I

Algorithmique quantique : de l exponentiel au polynômial

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

ÉPREUVE COMMUNE DE TIPE Partie D

Résolution de systèmes linéaires par des méthodes directes

Simulation de variables aléatoires

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Calculateur quantique: factorisation des entiers

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Probabilités conditionnelles Loi binomiale

Chp. 4. Minimisation d une fonction d une variable

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Exercices Corrigés Premières notions sur les espaces vectoriels

Chapitre 7. Récurrences

Simulation : application au système bonus-malus en responsabilité civile automobile

Cours de Probabilités et de Statistique

Logique. Plan du chapitre

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Chapitre 5 : Flot maximal dans un graphe

Université Paris-Dauphine DUMI2E 1ère année, Applications

Raisonnement par récurrence Suites numériques

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Systèmes de transmission

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Cours 7 : Utilisation de modules sous python

La persistance des nombres

Probabilités sur un univers fini

1.6- Génération de nombres aléatoires

Limites finies en un point

I. Polynômes de Tchebychev

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Cryptographie Quantique

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Optimisation Discrète

Bases de données documentaires et distribuées Cours NFE04

Logiciel de Base. I. Représentation des nombres

Sujet 4: Programmation stochastique propriétés de fonction de recours

FIMA, 7 juillet 2005

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Conversion d un entier. Méthode par soustraction

Fonctions de plusieurs variables

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

INF 4420: Sécurité Informatique Cryptographie II

Programmes des classes préparatoires aux Grandes Ecoles

Chapitre 6. Fonction réelle d une variable réelle

Modes opératoires pour le chiffrement symétrique

Les devoirs en Première STMG

Partie 1 - Séquence 3 Original d une fonction

Continuité et dérivabilité d une fonction

Le produit semi-direct

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

108y= 1 où x et y sont des entiers

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Polynômes à plusieurs variables. Résultant

Le signal GPS. Les horloges atomiques à bord des satellites GPS produisent une fréquence fondamentale f o = Mhz

I. Ensemble de définition d'une fonction

Rappels sur les suites - Algorithme

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

QUI VEUT JOUER AVEC MOI?

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

16 Chapitre 16. Autour des générateurs pseudoaléatoires

Ordonnancement temps réel

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Fonctions de deux variables. Mai 2011

Licence Sciences et Technologies Examen janvier 2010

Objets Combinatoires élementaires

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Annexe 6. Notions d ordonnancement.

Comparaison de fonctions Développements limités. Chapitre 10

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Transcription:

Générateurs pseudo-aléatoires Bellitto Thomas, Blot Aymeric, Pierron Théo ENS Ker Lann

Sommaire Problématique Les générateurs congruentiels linéaires Les générateurs congruentiels inverseurs Algorithmes de test

Problématique Énoncé du problème On veut créer un échantillon de n nombres de [0, 1] uniformément répartis et indépendants.

Problématique Énoncé du problème On veut créer un échantillon de n nombres de [0, 1] uniformément répartis et indépendants. Restriction Pour obtenir une suite suffisamment aléatoire, on s intéresse ici à des générateurs déterministes, donc pseudo-aléatoires.

Présentation du LCG Problématique Les générateurs congruentiels linéaires Principe Implémentation et complexité Importance du choix des paramètres Qualité Les générateurs congruentiels inverseurs Algorithmes de test

Principe Principe de l algorithme Le GCL crée une suite aléatoire définie par : { un = au n 1 + b mod m u 0 = seed avec a, b, m et seed des paramètres.

Principe Principe de l algorithme Le GCL crée une suite aléatoire définie par : { un = au n 1 + b mod m u 0 = seed avec a, b, m et seed des paramètres. Variante On peut aussi conserver seulement un nombre fixé des premiers (ou derniers) chiffres.

Implémentation et complexité Complexité spatiale On calcule les termes un par un en stockant seulement le dernier calculé donc la complexité spatiale est O(1).

Implémentation et complexité Complexité spatiale On calcule les termes un par un en stockant seulement le dernier calculé donc la complexité spatiale est O(1). Complexité temporelle Le calcul de u n en fonction de u n 1 est en O(1) (modulo) donc la complexité temporelle du calcul de n termes est en O(n).

Importance du choix des paramètres Pas de place pour le hasard! Le choix de a, b, m et seed influe fortement sur le comportement de la suite. Par exemple, avec a = 51, b = 12, m = 512 et seed = 10, on obtient :

Importance du choix des paramètres Pas de place pour le hasard! Le choix de a, b, m et seed influe fortement sur le comportement de la suite. Par exemple, avec a = 51, b = 12, m = 512 et seed = 10, on obtient : 10, 10,

Importance du choix des paramètres Pas de place pour le hasard! Le choix de a, b, m et seed influe fortement sur le comportement de la suite. Par exemple, avec a = 51, b = 12, m = 512 et seed = 10, on obtient : 10, 10, On ne peut donc pas choisir les paramètres au hasard, sous peine d obtenir une période ridiculement petite.

Théorèmes Théorème Si b 0, alors la période est maximale ssi : b m = 1 Pour tout p premier, p m p a 1 4 m 4 a 1

Théorèmes Théorème Si b 0, alors la période est maximale ssi : b m = 1 Pour tout p premier, p m p a 1 4 m 4 a 1 Théorème Si b = 0, on a la condition suffisante : Si m est premier m a m 1 1 m a j 1 pour tout j [1, m 2]. alors la période est maximale

Qualité Ce générateur est très rapide et peu coûteux en mémoire, mais il est plus facilement craquable que d autres générateurs utilisant les mêmes ressources. Il n est donc pas utilisé en cryptographie. De plus, les termes sont trop corrélés pour être utilisés pour des simulations (Monte-Carlo).

Amélioration On peut choisir m = 2 k, ce qui permet d accélérer les divisions quand on considère les entiers en binaire.

Amélioration On peut choisir m = 2 k, ce qui permet d accélérer les divisions quand on considère les entiers en binaire. Les bits de poids faibles sont alors moins aléatoires. Il est donc recommandé de conserver seulement ceux de poids fort.

Présentation du ICG Problématique Les générateurs congruentiels linéaires Les générateurs congruentiels inverseurs Principe Implémentation et complexité Choix des paramètres Qualité Algorithmes de test

Principe Principe de l algorithme Le GCI crée une suite aléatoire définie par : u n = aun 1 1 + b u n = b sinon u 0 = seed mod m si u n 1 (Z/mZ) avec a, b, m et seed des paramètres. Généralement, on prend m premier pour que Z/mZ soit un corps, ie que tout élément non nul soit inversible.

Amélioration On prend (x n (j)) n Z/p j Z de période p j. r T On pose T = p 1 p r et x n = x n (j) mod T. j=1p j On parle de générateur inverseur composé.

Implémentation et complexité Complexité spatiale On calcule les inverses dès le début du programme et on les stocke dans un tableau. Ainsi, v[i] = i 1. On a donc une complexité spatiale en O(m).

Implémentation et complexité Complexité spatiale On calcule les inverses dès le début du programme et on les stocke dans un tableau. Ainsi, v[i] = i 1. On a donc une complexité spatiale en O(m). Complexité temporelle Pour calculer les inverses, on utilise l algorithme d Euclide (en O(ln(m))).

Implémentation et complexité Complexité spatiale On calcule les inverses dès le début du programme et on les stocke dans un tableau. Ainsi, v[i] = i 1. On a donc une complexité spatiale en O(m). Complexité temporelle Pour calculer les inverses, on utilise l algorithme d Euclide (en O(ln(m))). On calcule m 1 inverses, donc la complexité temporelle de ce 2 calcul est O(m ln(m)).

Implémentation et complexité Complexité spatiale On calcule les inverses dès le début du programme et on les stocke dans un tableau. Ainsi, v[i] = i 1. On a donc une complexité spatiale en O(m). Complexité temporelle Pour calculer les inverses, on utilise l algorithme d Euclide (en O(ln(m))). On calcule m 1 inverses, donc la complexité temporelle de ce 2 calcul est O(m ln(m)). D où une complexité temporelle totale en O(m ln(m)+n), où n est le nombre de termes demandés.

Choix des paramètres Théorème Si P = X 2 bx a est irréductible dans Z/mZ alors la période est maximale.

Qualité Pas d écart statistique indésirable

Qualité Pas d écart statistique indésirable La période reste stable si on fait varier la graine

Qualité Pas d écart statistique indésirable La période reste stable si on fait varier la graine On peut choisir simplement les paramètres qui donnent une période maximale (algorithme développé par W.S.Chou a ) a On inversive maximal period polynomials over finite fields

Qualité Pas d écart statistique indésirable La période reste stable si on fait varier la graine On peut choisir simplement les paramètres qui donnent une période maximale (algorithme développé par W.S.Chou a ) L approche composée permet d allonger considérablement la période. a On inversive maximal period polynomials over finite fields

Algorithmes de test Nous allons ici développer deux algorithmes de test : le test du χ 2 et le «run test».

Principe Test du χ 2 On prend une liste L à tester a. a Il faut prendre L suffisamment grande

Principe Test du χ 2 On prend une liste L à tester a. On note o i le nombre de i présents dans L, e i le nombre théorique de ces i. a Il faut prendre L suffisamment grande

Principe Test du χ 2 On prend une liste L à tester a. On note o i le nombre de i présents dans L, e i le nombre théorique de ces i. On calcule : K = n (e i o i ) 2 i=1 e i a Il faut prendre L suffisamment grande

Principe Test du χ 2 On prend une liste L à tester a. On note o i le nombre de i présents dans L, e i le nombre théorique de ces i. On calcule : K = n (e i o i ) 2 i=1 On compare K à une table de valeurs. Plus K est proche de 0, plus les nombres fournis sont uniformément répartis. a Il faut prendre L suffisamment grande e i

Exemple On suppose qu on a lancé 36 fois un dé à n = 6 faces et qu on a obtenu les résultats : o 1 = 7, o 2 = 10, o 3 = 4, o 4 = 5, o 5 = 6 et o 6 = 4 On calcule K = 4.33.

Exemple On suppose qu on a lancé 36 fois un dé à n = 6 faces et qu on a obtenu les résultats : o 1 = 7, o 2 = 10, o 3 = 4, o 4 = 5, o 5 = 6 et o 6 = 4 On calcule K = 4.33. Pour une tolérance de 5% (et 5 = n 1 degrés de liberté), les tables nous donnent une valeur de 11.1. K < 11.1.

Exemple On suppose qu on a lancé 36 fois un dé à n = 6 faces et qu on a obtenu les résultats : o 1 = 7, o 2 = 10, o 3 = 4, o 4 = 5, o 5 = 6 et o 6 = 4 On calcule K = 4.33. Pour une tolérance de 5% (et 5 = n 1 degrés de liberté), les tables nous donnent une valeur de 11.1. K < 11.1. Donc on peut affirmer que le dé est régulier avec une probabilité d erreur de 5%.

Run test Il s agit de regarder la monotonie locale de la suite, ie le nombre de séquences croissantes et décroissantes. Principe On prend une liste de taille n.

Run test Il s agit de regarder la monotonie locale de la suite, ie le nombre de séquences croissantes et décroissantes. Principe On prend une liste de taille n. On compte le nombre R de séquences monotones

Run test Il s agit de regarder la monotonie locale de la suite, ie le nombre de séquences croissantes et décroissantes. Principe On prend une liste de taille n. On compte le nombre R de séquences monotones On sait que E(R) = 2n 1 et Var(R) = 16n 29 3 90

Run test Il s agit de regarder la monotonie locale de la suite, ie le nombre de séquences croissantes et décroissantes. Principe On prend une liste de taille n. On compte le nombre R de séquences monotones On sait que E(R) = 2n 1 et Var(R) = 16n 29 3 90 On calcule z = R E(R) Var(R)

Run test Il s agit de regarder la monotonie locale de la suite, ie le nombre de séquences croissantes et décroissantes. Principe On prend une liste de taille n. On compte le nombre R de séquences monotones On sait que E(R) = 2n 1 et Var(R) = 16n 29 3 90 On calcule z = R E(R) Var(R) Si z < 1.96, le test est réussi pour une tolérance de 5%

Exemple On prend L = [1, 3, 7, 4, 2, 8, 5].

Exemple On prend L = [1, 3, 7, 4, 2, 8, 5]. Il y a 4 séquences monotones : [1, 3, 7], [4, 2], [8] et [5].

Exemple On prend L = [1, 3, 7, 4, 2, 8, 5]. Il y a 4 séquences monotones : [1, 3, 7], [4, 2], [8] et [5]. Ensuite, E(R) = 2 7 1 = 4.33 et Var(R) = 0.922 donc 3 z = 0.34 et le test est réussi.

Test du LCG On a considéré le LCG utilisé par GCC : a = 1103515245, b = 12345, m = 2 32. Ce générateur passe les tests du χ 2 et le run test.

On peut aussi tracer un graphe avec ce générateur :

En dimension supérieure

Test du ICG On a pris a = 543, b = 1723 et m = 1021. Ce générateur passe aussi les deux tests.

En images

Un générateur de plus grande période a = 1288490188, b = 1 et m = 2 31 1.

Sources http://fr.wikipedia.org/ http://random.mat.sbg.ac.at/ The art of computer programming, D.E.Knuth