Sécurité des systèmes informatiques

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

Cryptographie et fonctions à sens unique

Quelques tests de primalité

Factorisation d entiers (première partie)

Chapitre VI - Méthodes de factorisation

Introduction à l étude des Corps Finis

L ALGORITHMIQUE. Algorithme

FONDEMENTS DES MATHÉMATIQUES

Nombres premiers. Comment reconnaître un nombre premier? Mais...

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

La cryptographie du futur

INF 4420: Sécurité Informatique Cryptographie II

Cours d arithmétique Première partie

Développement décimal d un réel

Fonction de hachage et signatures électroniques

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

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

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

Tests de primalité et cryptographie

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

Programmation linéaire

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

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

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Calculateur quantique: factorisation des entiers

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Objets Combinatoires élementaires

Travail d intérêt personnel encadré : La cryptographie

Polynômes à plusieurs variables. Résultant

DOCM Solutions officielles = n 2 10.

Résolution d équations non linéaires

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

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

ÉPREUVE COMMUNE DE TIPE Partie D

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Feuille TD n 1 Exercices d algorithmique éléments de correction

Représentation des Nombres

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

Conversion d un entier. Méthode par soustraction

Représentation d un entier en base b

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

Correction du baccalauréat S Liban juin 2007

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Panorama de la cryptographie des courbes elliptiques

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

Triangle de Pascal dans Z/pZ avec p premier

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

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

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Informatique Générale

Corrigé des TD 1 à 5

Nouveaux résultats en cryptographie basée sur les codes correcteurs d erreurs

NOMBRES COMPLEXES. Exercice 1 :

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

Probabilités sur un univers fini

Exercices sur le chapitre «Probabilités»

Une forme générale de la conjecture abc

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique


Chapitre 1 : Évolution COURS

Le produit semi-direct

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Partie 1 - Séquence 3 Original d une fonction

Cours 7 : Utilisation de modules sous python

Représentation géométrique d un nombre complexe

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

avec des nombres entiers

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

Algorithmes et mathématiques. 1. Premiers pas avec Python. Exo Hello world!

Pour l épreuve d algèbre, les calculatrices sont interdites.

Table des matières. I Mise à niveau 11. Préface

Extrait du poly de Stage de Grésillon 1, août 2010

Les suites numériques

Carl-Louis-Ferdinand von Lindemann ( )

1 Définition et premières propriétés des congruences

Simulation de variables aléatoires

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

1 Recherche en table par balayage

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

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 =

Cryptologie à clé publique

Les indices à surplus constant

Licence Sciences et Technologies Examen janvier 2010

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Résumé du cours d algèbre 1, Sandra Rozensztajn. UMPA, ENS de Lyon, sandra.rozensztajn@ens-lyon.fr

Fonctions homographiques

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

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Moments des variables aléatoires réelles

Continuité en un point

Cours 02 : Problème général de la programmation linéaire

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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Chapitre 10 Arithmétique réelle

Programmation linéaire et Optimisation. Didier Smets

Transcription:

Sécurité des systèmes informatiques Le chiffrement asymétrique Olivier Markowitch

Nombres premiers Théorème : Il existe une infinité de nombres premiers Preuve : Supposons qu il y ait un nombre fini de nombres premiers : p 1, p 2,..., p n Ainsi p n est le plus grand nombre premier Posons x = (p 1 p 2... p n ) + 1 Ce x (qui est 2) est divisible par au moins un nombre premier p Ainsi p divise x et p doit appartenir à l ensemble composé de tous les premiers {p 1,..., p n } Or si p divise x et divise p 1... p n, alors ce p doit diviser 1, ce qui est impossible 1

Décomposition en facteurs premiers Définition : Théorème fondamental de l arithmétique n 2, n se factorise, de manière unique, en un produit de puissances de premiers : n = p e 1 1... p e r r avec p i premier et e i 0 entier, où i [1, r] 2

Théorème 1 Soit (a, b) le plus grand commun diviseur entre a et b, alors (a, b) est le plus petit élément positif de l ensemble I où I = {ax + by tels que x, y Z} Preuve : Soit d le plus petit élément positif de l ensemble I ; d est donc de la forme d = au + bv avec u et v appartenant à Z. Question 1 : d divise-t-il a? Si d ne divise pas a, nous avons a = dq + r où d est le quotient, r le reste et 0 < r < d. Ainsi nous avons r = a dq, donc r = a (au + bv)q, et ainsi : r = a(1 uq) + b( vq) Cette équation présente r comme une combinaison linéaire de a et b à coefficients entiers, donc r I avec 0 < r < d. Nous avons ainsi une contradiction car d a été choisi comme étant le plus petit élément positif de I et ici r < d. Donc d divise a, et de la même manière d divise b.

Théorème 1 (suite) Question 2 : d est-il le plus grand de tous les diviseurs? Soit d un diviseur commun de a et b. d divise a et d divise b. Donc d divise au et d divise bv. Donc d divise au + bv = d. Donc d divise d d d et d = (a, b). Conclusion : nous avons montré que d divise a et b et qu il est le plus grand commun diviseur de a et de b. Ainsi (a, b) = d est le plus petit élément positif de I.

Bézout Théorème de Bézout Si a, b Z ne sont pas simultanément nuls, alors il existe u et v Z tels que au + bv = (a, b) où (a, b) dénote le plus grand commun diviseur entre a et b Preuve : Découle directement du théorème : pgcd(a, b) est le plus petit élément positif de l ensemble I où I = {ax + by tels que x, y Z} 5

Inverse modulaire Théorème : ax 1 (mod m) (a, m) = 1 Preuve : Nous avons ax 1 (mod m) et donc m divise ax 1. Si (a, m) = d, alors d divise a et d divise m ; et si d divise m et m divise ax 1 alors d divise ax 1. Mais comme d divise a, nous avons que d doit diviser 1, et donc d ne peut valoir que 1 : (a, m) = 1. Si (a, m) = 1, par Bézout nous avons qu il existe u et v Z tels que au+mv = 1. Ainsi il existe un u tel que au 1 (mod m) (preuve d existence de l inverse). De plus, si ax 0 1 (mod m) et si ax 1 1 (mod m) alors ax 0 ax 1 0 (mod m) et a(x 0 x 1 ) 0 (mod m). Donc m divise a(x 0 x 1 ), mais comme (a, m) = 1, m doit diviser x 0 x 1 et ainsi par la définition d une congruence nous avons x 0 x 1 (mod m) (preuve de l unicité de l inverse).

Théorème 2 Soit p un nombre premier et soit (a, p) = 1 alors les valeurs de a, 2a,..., (p 1)a calculées modulo p sont toutes différentes En effet, si ia ja (mod p) pour i j appartenant tous deux à [1, p 1], alors nous avons que p divise (i j)a Mais comme i j < p, nous avons que i j est premier avec p. Donc p ne divise pas i j et ainsi p devrait diviser a, ce qui est une contradiction Donc ia ja (mod p) pour i j appartenant tous deux à [1, p 1] et ainsi : a 2a (p 1)a 1 2 p 1 (mod p) 7

Le petit théorème de Fermat Le petit Théorème de Fermat : Si m est premier et (a, m) = 1 alors a m 1 1 (mod m) Preuve : Supposons que (a, m) = 1. Nous pouvons écrire la suite de valeurs : a, 2a,..., (m 1)a. Aucun de ces m 1 éléments n est divisible par m. De plus ces m 1 éléments sont tous différents modulo m ; ainsi i a mod m pour i allant de 1 à m 1 donne m 1 valeurs différentes plus petites que m Ainsi nous avons : a 2a...(m 1)a 1 2...(m 1) (mod m) a m 1 (m 1)! (m 1)! (mod m) (a m 1 1)(m 1)! 0 (mod m) Comme (m 1)! n est pas nul, nous avons : a m 1 1 (mod m) 8

Théorème 3 (x, p) = (x mod p, p) En effet, si x mod p = y alors il existe un entier l tel que x = lp + y. Ainsi nous avons : (x, p) = (lp + y, p) = d avec d divisant lp + y et divisant p Puisque d divise p alors d divise lp, mais comme nous avons aussi que d divise lp + y, nous avons que d divise y Comme d divise y et p, nous avons (y, p) = d car d est le plus grand de ces diviseurs, en effet s il existait un d > d tel que d divise p et y, alors ce d divise aussi lp et donc ce serait un d > d qui diviserait lp+y ce qui est une contradiction avec (lp + y, p) = d. Ainsi (x, p) = (x mod p, p) 9

Fonction Phi d Euler Définition : La fonction d Euler Φ(n) égale le nombre d éléments plus petits que n et qui sont premiers avec n Si n se décompose en facteurs premiers tels qu indiqué à la définition précédente, nous avons : Φ(n) = n r i=1 (1 1pi ) 10

Fonction Phi d Euler (suite) Théorème : Si n = p e 1 1 p e r r, nous avons : ) (1 1pi Preuve : φ(n) = n r i=1 A Pour un p premier, nous avons φ(p) = p 1 B Si on travaille modulo p α, où p est un premier et α est un entier plus grand ou égal à 2, le nombre d éléments qui ont un diviseur commun avec p α sont les multiples de p : 1p, 2p,..., p α 1 p. Il y a donc p α 1 multiples de p. Et ainsi : φ(p α ) = p α p α 1 = p α (1 1 p ) 11

Fonction Phi d Euler (suite) C Soient m et n de la forme p α où α est un entier plus grand ou égal à 1 et tels que (m, n) = 1. Combien d éléments plus petits ou égaux à mn sont premiers avec mn? Ecrivons les valeurs de 1 à mn sous forme matricielle de la manière suivante : 1 2 3... m m + 1 m + 2 m + 3... 2m 2m + 1. 2m + 2 2m + 3... 3m. (n 1)m + 1 (n 1)m + 2 (n 1)m + 3... nm Une colonne r de cette matrice est composée d éléments im+r pour i allant de 0 à n 1. Si (r, m) = 1 alors tous ces éléments im + r d une telle colonne r sont premiers avec m. En effet, nous avons (im+r, m) = (im+r mod m, m) = (r, m) = 1. Il y a ainsi φ(m) valeurs possibles pour r pour avoir (r, m) = 1. Il y a donc φ(m) colonnes composées d éléments tous premiers avec m. 12

Fonction Phi d Euler (suite) Des éléments composants ces φ(m) colonnes composées d éléments premiers avec m, il faut extraire les éléments qui sont aussi premiers avec n. Nous cherchons donc des éléments de la forme im + r, pour i allant de 0 à n 1, qui sont premiers avec n. Nous savons que, pour i allant de 0 à n 1, (im+ r, n) = (im + r mod n, n). Nous remarquons que im + r jm + r (mod n) pour i j tous deux allant de 0 à n 1. En effet, si im + r jm + r (mod n) pour i j tous deux allant de 0 à n 1, alors n divise (i j)m. Mais comme i j < n, n ne divise pas i j. Donc n devrait diviser m ce qui est une contradiction (car (m, n) = 1). Donc quand i varie de 0 à n 1, im + r mod n donne n résultats différents strictement inférieurs à n, à savoir 0, 1, 2,..., n 1. Il y a donc φ(n) de ces n valeurs qui sont premières avec n, et ce dans chacune des φ(m) colonnes considérées. Donc φ(mn) = φ(m)φ(n) 13

Fonction Phi d Euler (suite) D En combinant les points B et C, nous avons que si alors n = p e 1 1 p e r r φ(n) = p e 1 1 (1 1 )... p e r r (1 1 ) = n p 1 p r r i=1 (1 1pi ) 14

Groupe multiplicatif Définition : Le groupe multiplicatif Z n est tel que Z n = {a Z n tel que pgcd(a, n) = 1} 15

Théorème d Euler Théorème : soit un groupe formé de φ(n) éléments, où n > 2. Pour un élément a appartenant à ce groupe, nous avons : a Φ(n) = 1 Preuve : Soit P = a 1 a 2... a φ(n) où les différents a i appartiennent au groupe considéré. Soit a un élément appartenant aussi au groupe, et calculons : (a a 1 )(a a 2 )...(a a φ(n) ) D un côté nous voyons que cela vaut : a φ(n) a 1... a φ(n) = a φ(n) P. D un autre côté on note que a a i a a j i j. Et comme il y a φ(n) éléments dans ce produit, nous avons : (a a 1 )(a a 2 ) (a a φ(n) ) = a 1 a 2... a φ(n) = P. En conclusion, nous avons a φ(n) P = P et donc a φ(n) = 1. 16

Théorème 4 Théorème : Soit a un élément du groupe formé de φ(n) éléments, l ordre de a divise l ordre du groupe. Preuve : Si l ordre de l élément a ne divise par l ordre du groupe, égal à φ(n), alors φ(n) = q ordre(a)+r avec 0 < r < ordre(a). Ainsi : a φ(n) = a ordre(a) q a r = 1 q a r = a r Comme a r 1 puisque r < ordre(a), nous devrions avoir a φ(n) 1, ce qui est une contradiction. 17

Exemple 1 Soit n = 7, Z 7 = {1,2,3,4,5,6}, φ(7) = 6 ordre de 1 = 1 : 1 0 = 1, 1 1 = 1 ordre de 2 = 3 : 2 0 = 1, 2 1 = 2, 2 2 = 4, 2 3 = 1 ordre de 3 = 6 (générateur) : 3 0 = 1, 3 1 = 3, 3 2 = 2, 3 3 = 6, 3 4 = 4, 3 5 = 5, 3 6 = 1 ordre de 4 = 3 : 4 0 = 1, 4 1 = 4, 4 2 = 2, 4 3 = 1 ordre de 5 = 6 (générateur) : 5 0 = 1, 5 1 = 5, 5 2 = 4, 5 3 = 6, 5 4 = 2, 5 5 = 3, 5 6 = 1 ordre de 6 = 2 : 6 0 = 1, 6 1 = 6, 6 2 = 1 Les différents ordres 1, 2, 3 et 6 divisent φ(7) = 6 18

Exemple 2 Soit n = 9, Z 9 = {1,2,4,5,7,8}, φ(9) = 6 ordre de 1 = 1 : 1 0 = 1, 1 1 = 1 ordre de 2 = 6 (générateur) : 2 0 = 1, 2 1 = 2, 2 2 = 4, 2 3 = 8, 2 4 = 7, 2 5 = 5, 2 6 = 1 ordre de 4 = 3 : 4 0 = 1, 4 1 = 4, 4 2 = 7, 4 3 = 1 ordre de 5 = 6 (générateur) : 5 0 = 1, 5 1 = 5, 5 2 = 7, 5 3 = 8, 5 4 = 4, 5 5 = 2, 5 6 = 1 ordre de 7 = 3 : 7 0 = 1, 7 1 = 7, 7 2 = 4, 7 3 = 1 ordre de 8 = 2 : 8 0 = 1, 8 1 = 8, 8 2 = 1 Les différents ordres 1, 2, 3 et 6 divisent φ(9) = 6 19

Lemme Chinois Le théorème du reste Chinois : Si 1 i j k : pgcd(m i, m j ) = 1 alors le système de congruences : x a 1 (mod m 1 ). x a k (mod m k ) possède une et une seule solution modulo m où m = m 1... m k 20

Lemme Chinois - Preuve Preuve de l unicité de la solution : Si x a i (mod m i ) i [1, k] et si y a i (mod m i ) i [1, k], alors x y (mod m i ) i [1, k], et donc m i divise x y i [1, k], ce qui implique que m divise x y, et donc x y (mod m) 21

Lemme Chinois - Preuve (suite) Preuve de l existence d une solution : Posons M i = m m i i [1, k], m i est premier avec tous les m j (quand i j), et donc m i est premier avec M i Ainsi, il existe un entier c i tel que c i M i 1 (mod m i ) Posons x = k i=1 a i c i M i, nous constatons que x mod m i = a i c i M i mod m i = a i car M j 0 (mod m i ) quand i j et c i M i 1 (mod m i ) x est donc une solution du système 22

Les racines carrées de 1 Si n = pq, où p et q sont deux nombres premiers, il existe 4 racines carrées de 1 modulo n Ces 4 racines carrées se calculent à partir des deux racines carrées de 1 modulo p (à savoir 1 et -1), et des deux racines carrées de 1 modulo q (aussi 1 et -1) qui sont combinées au moyen du théorème du reste chinois 23

Les racines carrées de 1 (suite) Supposons p = 7, q = 3 et donc n = 21. Nous cherchons un x tel que x 2 = 1 (mod n). Nous construisons les 4 systèmes d équations suivants : (1) x 1 (mod p) et x 1 (mod q) ; (2) x 1 (mod p) et x 1 (mod q) ; (3) x 1 (mod p) et x 1 (mod q) ; (4) x 1 (mod p) et x 1 (mod q) que nous résolvons au moyen du théorème du reste chinois où m 1 = p, m 2 = q, M 1 = pq = q, M p 2 = pq = p, C q 1 = M1 1 mod m 1 = 5 et C 2 = M2 1 mod m 2 = 1 (1) x = a 1 C 1 M 1 +a 2 C 2 M 2 = 1 3 5+1 7 1 = 1 mod 21 (2) x = a 1 C 1 M 1 +a 2 C 2 M 2 = ( 1) 3 5+1 7 1 = 8 mod 21 (3) x = a 1 C 1 M 1 +a 2 C 2 M 2 = 1 3 5+( 1) 7 1 = 8 mod 21 (4) x = a 1 C 1 M 1 +a 2 C 2 M 2 = ( 1) 3 5+( 1) 7 1 = 1 mod 21 24

Résidus quadratiques Définition : a Z n est un résidu quadratique modulo n, s il existe un x Z n tel que x 2 a (mod n). Si un tel x n existe pas, a est un résidu non quadratique modulo n Définition : L ensemble de tous les résidus quadratiques modulo n est noté Q n, et l ensemble de tous les résidus non quadratiques modulo n est noté Q n Remarque : p 1 2 éléments de Z p sont des carrés modulo p et p 1 2 éléments n en sont pas (où p est un nombre premier impair) 25

Symbole de Legendre Définition : Si p est un premier impair et si a un entier, alors le symbole de Legendre : ( ) a p = 0 si p divise a 1 si a Q p 1 si a Q p De plus : ( a p ) = a p 1 2 mod p 26

Symbole de Legendre (suite) Preuve : Si p divise a, il existe un k tel que a = kp et donc a 0 (mod p) ; donc a p 1 2 0 (mod p) Si a Q p alors il existe un x Z p tel que x 2 a (mod p). Nous avons alors : a p 1 2 x p 1 1 (mod p) (par Fermat) 27

Symbole de Legendre (suite) Preuve (suite) : Si a Q p, alors par Fermat (avec p un premier) nous pouvons écrire a p 1 1 (mod p) ainsi a p 1 1 0 (mod p) et donc : ( a p 1 ) ( 2 1 a p 1 ) 2 + 1 0 (mod p) Puisque a Q p, nous ne pouvons avoir : a p 1 2 1 0 (mod p) car nous venons de voir qu alors a serait dans Q p Ainsi a annule a p 1 2 + 1, et donc : a p 1 2 1 (mod p) si a Q p 28

Symbole de Jacobi Définition : Soit a un entier, et soit n impair 3 tel que n = p e 1 1... p e r r (cf. le théorème fondamental de l arithmétique), alors : ( ) ( ) e1 ( ) er a a a =... n p 1 p r 29

Théorème 5 Théorème : a Q n a Q p et a Q q (où n = pq et p, q sont des premiers distincts) Preuve : a est un résidu quadratique modulo n il existe un x tel que x 2 a (mod n) x 2 a(up+vq) (mod n) (par Bézout, où up+vq = 1) x 2 aup + avq (mod n) x 2 a (p) x 2 a (q) (par le Lemme Chinois) a Q p et a Q q 30

Retour au symbole de Jacobi En conséquence du théorème 5, nous voyons que : si a Q p et a Q q, alors ( a n ) = ( ap ) ( aq ) = 1 1 = 1 Idem, si a Q p et Q q Si a Q p et a Q q alors ( a n ) = ( ap ) ( aq ) = 1 1 = 1 Mais si a Q p et a Q q alors nous avons aussi ( an ) = ( ap ) ( aq ) = 1 1 = 1 Ainsi ( a n ) = 1 ne permet pas de déterminer si a Qn ou si a Q n 31

Le problème de la factorisation Etant donné un entier positif n, trouver sa factorisation en premiers : n = p e 1 1... p en n où les p i sont distincts et les e i 1 Quelques méthodes de factorisation : ρ-pollard p 1-Pollard Crible quadratique Number field sieve 32

RSA Génération des clés 1. choisir aléatoirement deux grands premiers distincts p et q approximativement de la même taille 2. calculer n = pq et φ(n) = (p 1)(q 1) 3. choisir un entier e aléatoire ]1, φ(n)[ tel que pgcd(e, φ(n)) = 1 4. calculer l unique d ]1, φ(n)[ tel que e d 1 (mod φ(n)) La clé publique est (n, e) La clé secrète est d 33

RSA (suite) Chiffrement Soit le message x Z n à chiffrer. Calculer : y = x e mod n Déchiffrement y est déchiffré en calculant : x = y d mod n 34

RSA - Exemple Soient p = 101, q = 113 Donc n = p q = 11413 Et φ(n) = 100 112 = 11200 (= 2 6 5 2 7) Soit e = 3533, nous avons bien (e, φ(n)) = 1 Alors d = 6597 qui vérifie e d 1 (mod φ(n)) La clé publique est (e, n) = (3533,11413) La clé privée est d = 6597 35

RSA - Exemple (suite) Lorsqu Alice veut envoyer un message x = 10010111111110 (=9726 en décimal) à Bob à qui appartient la clé publique ci-dessus, elle calcule : y = x e mod n = 9726 3533 mod 11413 = 5761 Bob déchiffre le message chiffré y en calculant : x = y d mod n = 5761 6597 mod 11413 = 9726 36

Déchiffrement de RSA Preuve : Soit le message m, le composite n = pq, une clé publique RSA (e, n) et la clé privée correspondante d. Il existe un k tel que ed = 1 + kφ(n) Si (m, p) = 1 m p 1 1 (mod p) (par Fermat) m (p 1)(q 1)k 1 (mod p) m 1+(p 1)(q 1)k m (mod p) Si (m, p) = p (soit m = d p) m 1+(p 1)(q 1)k (d p) 1+φ(n)k 0 (mod p) ce qui est cohérent avec m d p 0 (mod p) 37

Déchiffrement de RSA (suite) Donc, dans tous les cas nous avons m ed m (mod p) De la même façon nous avons m ed m (mod q) Comme p et q sont des premiers distincts, par le théorème du reste Chinois nous avons : où x = m ed x m (mod p) x m (mod q) Nous avons x = map + mbq où a = p 1 mod q et b = q 1 mod p. Ainsi x = m(ap + bq) avec ap + bq = (p, q) = 1 (par Bézout, modulo n) Ainsi m ed modulo n = m 38

Contrainte sur l usage des clés Théorème : Connaissant une clé publique (e, n) et la clé privée associée d, nous pouvons factoriser n Preuve : Nous avons ed 1 (mod φ(n)) Pour n importe quel entier a Z n a ed 1 1 (mod n) nous avons : Nous pouvons écrire ed 1 = 2 s t avec t entier impair (a 2st 1 (mod n)) Si z = a 2s 1t est une racine carrée triviale de 1 modulo n on choisit un autre entier a Sinon (avec z qui est une racine carrée non triviale de 1 modulo n) nous avons z 2 1 (mod n) et n divise z 2 1, donc n divise (z 1)(z + 1) 39

Contrainte sur l usage des clés (suite) Que valent (z 1, n) et (z + 1, n)? Ces deux plus grands commun diviseur ne peuvent prendre comme valeurs que 1, p, q ou n Aucun des deux pgcd ne peut valoir n. En effet, si (z 1, n) = n alors z 1 est un multiple de n, donc z 1 (mod n) et z est une racine carrée triviale de 1. Le raisonnement est le même si (z + 1, n) = n De même, les deux pgcd ne peuvent être simultanément égaux à 1, car si (z 1, n) = 1 et (z+1, n) = 1 alors n ne divise pas z 2 1 Conclusion : au moins un des deux pgcd vaut p ou q Corollaire : Deux utilisateurs ne peuvent avoir le même n dans leur clé publique 40

Attaque cyclique Soit Alice qui envoie à Bob un message y chiffré avec sa clé RSA (e, n) Oscar intercepte ce message y qu il sait être à destination de Bob et «surchiffre» itérativement ce message chiffré. Il calcule ainsi : y e mod n (y e ) e mod n = y e2 mod n... (y ei 2 ) e mod n = y ei 1 mod n (y ei 1 ) e mod n = y ei mod n jusqu à ce que y ei mod n = y. A ce moment Oscar retrouve x = y ei 1 mod n 41

Le problème de la racine carrée Etant donné n = pq (où p et q sont premiers), et a un résidu quadratique modulo n, trouver une racine carrée de a modulo n Si p et q sont connus, il existe une solution de complexité polynomiale Le problème de la racine carrée modulo n est calculatoirement équivalent au problème de la factorisation 42

Rabin Génération des clés Choisir aléatoirement deux grands premiers p et q de même taille, calculer n = pq La clé publique est n La clé secrète est (p, q) Chiffrement Le message x à chiffrer Z n, calculer : y = x 2 mod n Déchiffrement Calculer la racine carrée modulo n de y. Choisir (éventuellement sur base d une redondance) le message clair parmi les 4 racines carrées 43

Le calcul des 4 racines carrées de y Soit n = pq, et p q 3 (mod 4) trouver les entiers a et b tel que ap + bq = 1 (Bezout) calculer r = y p+1 4 mod p calculer s = y q+1 4 mod q calculer g = aps + bqr mod n calculer h = aps + bq( r) mod n Les 4 racines carrées de y modulo n sont g, g, h et h 44

Rabin : chosen cipher text attack Oscar a accès à une «machine à déchiffrer» de Bob. Il choisit un x Z n et chiffre ce x à l intention de Bob : y = x 2 mod n. Il soumet ce y à la machine à déchiffrer et obtient en retour x qui est une des 4 racines carrées de y. Avec une probabilité égale à 1 2, cette racine carrée diffère de x et de x ; sinon Oscar recommence le processus. Soient : x de la forme aps + bqr x de la forme aps + bq( r) Oscar calcule : ( x x, n ) = (2bqr, pq) = q 45

Rabin - Exemple Soient p = 277, q = 331 Donc n = p q = 91687 La clé publique est n = 91687 La clé privée est (p, q) = (227,331) Lorsqu Alice veut envoyer un message x 0 = 1001111001 à Bob à qui appartient la clé publique ci-dessus, elle ajoute d abord une redondance (basée sur les 6 derniers bits) : x = x 0 111001 = 1001111001111001 = 40569 puis elle calcule : y = x 2 mod n = 40569 2 mod 91687 = 62111 46

Rabin - Exemple (suite) Bob déchiffre le message chiffré en calculant la racine carrée de y modulo n (connaissant les deux facteurs premiers p et q de n) : y mod n = x 1 = 69654 = 10001000000010110 x 2 = 22033 = 101011000010001 x 3 = 40569 = 1001111001111001 x 4 = 51118 = 1100011110101110 Seul x 3 a la redondance prévue et donc x 0 = 1001111001 est retrouvé 47

Le problème du logarithme discret Soit G un groupe cyclique d ordre n, soit α un générateur de G et soit β G, le logarithme discret de β en base α, log α (β), est l unique entier x, 0 x n 1, tel que β = α x Le problème (dans Z p) : Etant donné un nombre premier p, un générateur α Z p et un élément β Z p, trouver l entier x, 0 x n 1, tel que α x = β Quelques méthodes pour calculer un logarithme discret : «baby step, giant step», ρ-pollard pour logarithme, Pohlig-Hellman, Index calculus 48

Le problème Diffie-Hellman Soient un premier p, un générateur α Z p, un élément α a mod p et un élément α b mod p, trouver α ab mod p Le problème Diffie-Hellman P le problème du logarithme discret 49

El Gamal Génération des clés 1. choisir aléatoirement un grand premier p 2. trouver un générateur α du groupe multiplicatif Z p 3. choisir aléatoirement un entier a [1, p 2] 4. calculer β = α a mod p La clé publique est (p, α, β) La clé secrète est a 50

El Gamal (suite) Chiffrement Soit x Z p, choisir aléatoirement un entier k [1, p 2] et calculer : y 1 = α k mod p y 2 = x β k mod p Déchiffrement Soient (y 1, y 2 ) représentant le chiffré : x = y 1 a y 2 mod p 51

El Gamal - Exemple Soient p = 2579, α = 2, et a = 765 Nous avons α a mod p = 2 765 mod 2579 = 949 La clé publique est (p, α, α a ) = (2579,2,949) La clé privée est a = 765 Lorsqu Alice veut envoyer un message x = 10100010011 = 1299 à Bob à qui appartient la clé publique ci-dessus, elle choisit k au hasard, prenons k = 853, et elle calcule : y 1 = α k mod p = 2 853 mod 2579 y 2 = x (α a ) k mod p = 1299 949 853 mod 2579 y 1 = 435 y 2 = 2396 52

El Gamal - Exemple (suite) Bob déchiffre le message chiffré en calculant : x = y 1 a y 2 mod p x = (435 765 ) 1 2396 mod 2579 x = 1299 53

Le subset sum problem Soit un ensemble {a 1,..., a n } d entiers positifs et soit un entier s, déterminer s il existe ou non un sousensemble des a j, 1 j n, tel que leur somme égale s Ou encore, déterminer s il existe des x i binaires (de valeurs 0 ou 1), 1 i n, tels que : n i=1 a i x i = s 54

Séquence super-croissante Une séquence super-croissante est une séquence de n entiers positifs b i tel que i [2, n] : b i > i 1 j=1 b j Algorithme résolvant le «subset sum problem» d une séquence super croissante de n éléments b i et d une somme s : i=n; while(i >= 1) { if(s >= b[i]) { x[i]=1; s-=b[i]; } else x[i]=0; --i; } 55

Les séquences super-croissantes Une séquence de nombres est un séquence supercroissante (super-increasing sequence) si chaque nombre de cette séquence est plus grand ou égal à la somme des éléments qui le précédent dans la séquence. Le problème de la somme des sous-ensembles (subset sum problem) se résout en une complexité polynomiale pour les séquences super-croissantes. 56

Subset sum problem (exemple 1) Soit la séquence super-croissante suivante : E = {6,15,37,83,190,386,781,1580}. Existe-t-il un sousensemble de E tel que la somme des éléments de sous ensemble donne s = 1221? L algorithme évolue ainsi : i = 8 = E 1221 1580? non x 8 = 0 i = 7 1221 781? oui x 7 = 1 et s = 440 i = 6 440 386? oui x 6 = 1 et s = 54 i = 5 54 190? non x 5 = 0 i = 4 54 83? non x 4 = 0 i = 3 54 37? oui x 3 = 1 et s = 17 i = 2 17 15? oui x 2 = 1 et s = 2 i = 1 2 6? non x 1 = 0 Quand la boucle de l algorithme se termine s vaut toujours 2 (et non 0), cela indique qu il n y a pas de sous-ensemble de valeurs de E telles que leur somme égale s. En effet, si nous prenons les éléments de E correspondant au x i qui valent 1, nous avons : 781 + 386 + 37 + 15 = 1219 1221. 57

Subset sum problem (exemple 2) Si avec la même séquence E : E = {6,15,37,83,190,386,781,1580}, nous cherchons un sous-ensemble dont la somme serait s = 619, alors nous avons : i = 8 = E 619 1580? non x 8 = 0 i = 7 619 781? non x 7 = 0 i = 6 619 386? oui x 6 = 1 et s = 233 i = 5 233 190? oui x 5 = 1 et s = 43 i = 4 43 83? non x 4 = 0 i = 3 43 37? oui x 3 = 1 et s = 6 i = 2 6 15? non x 2 = 0 i = 1 6 6? oui x 1 = 1 et s = 0 Quand la boucle de l algorithme se termine s vaut 0 ce qui signifie que nous avons trouvé un sous-ensemble de valeurs de E telles que leur somme égale s. Si nous prenons les éléments de E correspondant au x i qui valent 1, nous avons : 386 + 190 + 37 + 6 = 619. 58

Merkle-Hellman Génération des clés Un entier n est fixé comme paramètre commun 1. choisir une séquence super-croissante de n éléments b i et un modulus M tels que : M > b 1 +... + b n 2. choisir un entier W [1, M 1] tel que W soit premier avec M 3. calculer i [1, n] : a i = W b i mod M La clé publique est (a 1,..., a n ) La clé secrète est (M, W, b 1,..., b n ) 59

Merkle-Hellman (suite) Chiffrement Soit x un message à chiffrer de n bits Calculer y = x 1 a 1 +... + x n a n Déchiffrement calculer d = W 1 y mod M résoudre le «subset sum problem» sur la séquence des b i avec la somme égale à d le message clair x est tel que d = x 1 b 1 +... + x n b n 60

Merkle-Hellman (exemple) Soient les informations suivantes relatives à Bob : n = 9, (b 1,..., b 9 ) = (2,5,9,21,45,103,215,450,946) une suite supercroissante, M = 2003 et W = 1289 (le pgcd(w, M) = 1). Nous avons (a 1,..., a 9 ) = (575,436,1586,1030,1921,569,721,1183,1570) qui n est plus une suite super-croissante. Si Alice veut envoyer le message x = 101100111 à Bob, elle calcule : y = 575 + 1586 + 1030 + 721 + 1183 + 1570 = 6665 Pour déchiffrer Bob calcule : d = W 1 y = (1289) 1 6665 = 3176665 = 1643 mod 2003 Puis Bob cherche les x i tel que s = n i=1 x ib i s = 1643 x 9 = 1 s = 697 x 8 = 1 s = 247 x 7 = 1 s = 32 x 6 = 0, x 5 = 0, x 4 = 1 s = 11 x 3 = 1 s = 2 x 2 = 0, x 1 = 1 s = 0 Et il retrouve x = 101100111 61

Attaques sur le subset sum problem Attaques du schéma de chiffrement de Merkle-Hellman : Adi Shamir A polynomial-times algorithm for breaking the basic Merkle-Hellman cryptosystem, IEEE Transaction on Information Theory, Vol 30, 1984 ou J.C. Lagarias Knapsack public key cryptosystems and diophantine approximation, Proceedings of Crypto 83, Plenum Press, 1984 62

Autres cryptosystèmes basés sur le subset sum problem Un autre cryptosystem basé sur le subset sum problem et non encore cassé : B. Chor et R. Rivest A knapsack type public-key cryptosystem based on arithmetic in finite fields, Proceedings of Crypto 84, Lecture Notes in Computer Science, no. 196, Springer, 1985 ou B. Chor and R. Rivest A knapsack type public-key cryptosystem based on arithmetic in finite field, IEEE Transaction on Information Theory, Vol 34, 1988 63

Le problème de résiduosité quadratique Etant donné un entier composite impair n, et un a Z n tel que ( a n ) = 1, décider si a est ou non un résidu quadratique modulo n Le problème de résiduosité quadratique P le problème de la factorisation 64

Goldwasser-Micali Génération des clés 1. choisir aléatoirement 2 grands premiers distincts p et q approximativement de même taille 2. calculer n = pq 3. choisir z Z n tel que z soit un résidu non quadratique modulo n et tel que ( z n ) = 1 La clé publique est : (n, z) La clé secrète est : (p, q) 65

Goldwasser-Micali (suite) Chiffrement Soit le message x à chiffrer composé de t bits : x 1... x t 1. choisir aléatoirement i [1, t] : r i 2. i [1, t] : y i = z x i r i 2 mod n Déchiffrement i [1, t], calculer ( y i p ) = ei Si e i = 1 alors x i = 0, sinon x i = 1 Remarque : y i est un résidu quadratique modulo n (n = pq) si y i est un résidu quadratique modulo p 66

Goldwasser-Micali (exemple) Soient p = 7, q = 3 et donc n = 7 3 = 21 les informations suivantes relatives à Bob. Nous cherchons un z Z n qui soit un résidu non quadratique modulo n et tel que ( z n ) = 1 Les résidus quadratique modulo 21 sont {1,4,7,9,15,16,17,18} (se sont les seuls résultats possibles de la mise au carré des éléments de Z n ). Essayons z = 11 (qui est bien un résidu non quadratique modulo 21) et calculons le symbole de Jacobi : ( ) ( ) ( ) 11 21 = 113 117 = (11 1 mod 3) (11 3 mod 7) = 1 1 = 1. Et donc z = 11 ne convient pas. Essayons z = 5 (qui est aussi un résidu non quadratique modulo 21) : ( 5 21 ) = ( 53 ) ( 57 ) = (5 1 mod 3) (5 3 mod 7) = 1 1 = 1. Donc z = 5 convient. 67

Goldwasser-Micali (exemple) Si Alice veut chiffrer le message x = 10110 pour Bob, elle choisit au hasard r 1 = 4, r 2 = 8, r 3 = 13, r 4 = 5 et r 5 = 4. Puis elle calcule : y 1 = 5 4 2 = 80 = 17 mod 21 y 2 = 8 2 = 1 mod 21 y 3 = 5 13 2 = 845 = 5 mod 21 y 4 = 5 5 2 = 125 = 20 mod 21 y 5 = 4 2 = 16 mod 21 Et donc y = (17,1,5,20,16). 68

Goldwasser-Micali (exemple) Pour déchiffrer y = (17,1,5,20,16) Bob évalue les symboles de Legendre suivants : ( y1p ) = ( 177 ) = 17 3 = 4913 = 1 mod 7 1 x 1 = 1 ( y2p ) = ( 17 ) = 1 3 = 1 mod 7 x 2 = 0 ( ) ( ) y3p = 57 = 5 3 = 125 = 1 mod 7 1 x ( 3 = ) 1 ( ) y4p = 207 = 20 3 = 8000 = 1 mod 7 1 ( ) x 4 ( = 1 ) y5p = 167 = 16 3 = 4096 = 1 mod 7 x 5 = 0 Et Bob retrouve x = 10110 69