Le problème. Éric Wegrzynowski. 29 avril Introduction. Principe RSA. Comment Alice et Bob peuvent-ils faire pour partager une clé

Documents pareils
Cryptographie et fonctions à sens unique

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Quelques tests de primalité

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

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

Calculateur quantique: factorisation des entiers

Chapitre VI - Méthodes de factorisation

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

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

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

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

Représentation des Nombres

Tests de primalité et cryptographie

Fonction de hachage et signatures électroniques

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

INF 4420: Sécurité Informatique Cryptographie II

Cours d arithmétique Première partie

ÉPREUVE COMMUNE DE TIPE Partie D

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

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Licence Sciences et Technologies Examen janvier 2010

Conversion d un entier. Méthode par soustraction

Sécurité de l'information

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

Correction du baccalauréat S Liban juin 2007

Algorithmes récursifs

Introduction à l étude des Corps Finis

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

CCP PSI Mathématiques 1 : un corrigé

Représentation d un entier en base b

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

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

Factorisation d entiers (première partie)

Correction du baccalauréat ES/L Métropole 20 juin 2014

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Théorie et codage de l information

Angles orientés et trigonométrie

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

Cryptographie Quantique

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

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

1 Recherche en table par balayage

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.

Sites web éducatifs et ressources en mathématiques

La cryptographie du futur

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Triangle de Pascal dans Z/pZ avec p premier

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Programmation linéaire

TECHNIQUES DE CRYPTOGRAPHIE

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

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

Algorithme. Table des matières

FONDEMENTS DES MATHÉMATIQUES

Panorama de la cryptographie des courbes elliptiques

Développement décimal d un réel

Logique. Plan du chapitre

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

Codage d information. Codage d information : -Définition-

Résolution d équations non linéaires

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

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

Fonctions homographiques

avec des nombres entiers

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

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

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Limites finies en un point

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

Chapitre 1 : Évolution COURS

Protocoles d authentification

Programmation C. Apprendre à développer des programmes simples dans le langage C

Signatures électroniques dans les applications INTERNET

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

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

Une introduction aux codes correcteurs quantiques

1 Introduction au codage

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

I. Polynômes de Tchebychev

Cours 14. Crypto. 2004, Marc-André Léger

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

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Objets Combinatoires élementaires

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 =

CORRIGE LES NOMBRES DECIMAUX RELATIFS. «Réfléchir avant d agir!»

module Introduction aux réseaux DHCP et codage Polytech / 5

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

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

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Sécurité des réseaux IPSec

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Corrigé du baccalauréat S Asie 21 juin 2010

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

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

Exercices sur le chapitre «Probabilités»

Continuité et dérivabilité d une fonction

Cours d algorithmique pour la classe de 2nde

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Mathématiques Algèbre et géométrie

Transcription:

Éric Wegrzynowski 29 avril 2010 Le problème Comment Alice et Bob peuvent-ils faire pour partager une clé secrète? Réponses : Impraticable se rencontrer physiquement pour échanger une clé secrète ; Praticable utiliser l une des deux méthodes suivantes : 1. protocole d échange de clés de Diffie-Hellman ; 2. système de chiffrement asymétrique.

Protocole d échange de clé Un protocole d échange de clé permet à deux protagonistes d échanger une clé secrète k ; en communiquant sur un canal non sécurisé ; en ne dévoilant rien à un espion qui lui rende la tâche de retrouver k plus facile que la recherche exhaustive. Le protocole de Diffie-Hellman Paramètres : un groupe cyclique G, un générateur g G. (n désigne le cardinal de G) Alice 1. génère un entier x A compris entre 0 et n 1 au hasard ; 2. calcule k A = g x A ; 3. envoie k A à Bob ; 4. reçoit k B et calcule k BA = k x A B. Bob 1. génère un entier x B compris entre 0 et n 1 au hasard ; 2. calcule k B = g x B ; 3. envoie k B à Alice ; 4. reçoit k A et calcule k AB = k x B A. Un exemple Paramètres : G = F 31, g = 3. (alors n = 30) Alice 1. génère l entier x A = 23 ; 2. calcule k A = g x A = 3 23 (mod 31) = 11 ; 3. envoie k A à Bob ; 4. reçoit k B = 22 et calcule k BA = k x A B = 2223 (mod 31) = 3. Bob 1. génère un entier x B = 17 ; 2. calcule k B = g x B = 3 17 (mod 31) = 22 ; 3. envoie k B à Alice ; 4. reçoit k A = 11 et calcule k AB = k x B A = 1117 (mod 31) = 3. C est la clé secrète partagée. k AB = k BA C est la clé secrète partagée. k AB = k BA = 3

Sécurité du protocole Ève, l espionne, écoute les échanges entre Alice et Bob, et connaît donc k A, k B, et bien entendu les paramètres G et g. Son problème est donc le suivant Étant donnés k A et k B, calculer k. Ce problème est connu sous le nom de problème de Diffie-Hellman. Il est lié au problème du logarithme discret. Aucun algorithme efficace connu actuellement. Solution du problème de Diffie-Hellman pratiquement incalculable dans F p dès lors que p est un (grand) nombre premier. du chiffrement asymétrique ou à clé publique k Pub(Bob) k Priv(Bob) m E c D m L utilisation de clés distinctes pour les opérations de chiffrement et de déchiffrement justifient l appellation de Alice Bob Chiffrement : Alice chiffre son message m à l aide de la clé publique de Bob k Pub(Bob), elle obtient un chiffré c qu elle envoie à Bob. Déchiffrement : Bob utilise sa clé privée k Priv(Bob) pour déchiffrer c. Ne nécessite pas d échange préalable de clé secrète. chiffrement asymétrique ou chiffrement à clé publique.

de base Utiliser une fonction à sens unique pour le chiffrement, que tout le monde peut utiliser ; avec une trappe permettant le déchiffrement, que seule la personne connaissant la trappe peut effectuer. est l un des premiers systèmes de chiffrement asymétrique (1977). C est le système le plus largement répandu (carte bancaire, protocole SSL,... ). Son nom est l acronyme des trois auteurs Rivest, Shamir et Adleman. Constitution des clés Une paire de clés est construite à partir d un entier n = p q produit de deux nombres premiers distincts, nommé modulus ; d un entier e premier avec ϕ(n) = (p 1)(q 1), nommé exposant de chiffrement ; d un entier d inverse de e modulo ϕ(n), nommé exposant de déchiffrement. La clé publique est le couple (n, e). La clé privée est l entier d.

Exemple de clés n = 11 17 = 187 ; e = 3, nombre premier avec ϕ(n) = 10 16 = 160 ; d = 107 inverse de e modulo ϕ(n). En effet e d = 321 = 160 2 + 1. La clé publique est le couple (187, 3). La clé privée est l entier 107. Chiffrement Un message à chiffrer par est un entier compris entre 0 et n 1. Soit m un tel message. Le chiffré est obtenu en utilisant la clé publique du destinataire et en calculant c = m e (mod n). Le chiffré est donc un entier compris entre 0 et n 1. Exemple : Le message m = 15 chiffré avec la clé publique (n = 187, e = 3) donne c = 15 3 (mod 187) = 9. Déchiffrement Soit c un message à déchiffrer. Pour le déchiffrer, le destinataire utilise sa clé privée et calcule m = c d (mod n). Il retrouve ainsi le message clair initial. Exemple : Le chiffré c = 9 se déchiffre avec la clé privée d = 107 m = 9 107 (mod 187) = 15. Sécurité de Ève, l espionne, écoute les échanges entre Alice et Bob, et connaît la clé publique de Bob. Son problème est donc le suivant Étant donnés un chiffré c et la clé publique de Bob (n, e), calculer le clair m. Ce problème est connu sous le nom de problème. Il est lié au problème de la factorisation des entiers. Aucun algorithme efficace connu actuellement. Solution du problème pratiquement incalculable dès lors que n est le produit de deux grands nombres premiers : au moins 1024 bits pour chacun de ces deux nombres, soit un modulus d au moins 2048 bits (cf record établi en décembre 2009 (http ://eprint.iacr.org/2010/006.pdf)).

Inconvénient de présente l inconvénient d être beaucoup plus lent que les systèmes symétriques comme l AES par exemple. Il n est utilisé que pour chiffrer de petits messages. Par exemple une clé d un système symétrique, ou encore pour signer des messages. standardisé est standardisé par le PKCS#1 (cf http://www.rsa.com/rsalabs/node.asp?id=2124) dans la version 1.5 de PKCS#1 un message M à chiffrer a une taille m = M qui ne peut excéder k 11 octets (où k est la taille en octets du module de la clé publique). Une chaîne PS d octets aléatoires non nuls de longueur k m 3 est générée. Et on forme une chaîne EM de longueur k de la forme EM = 00 02 PS 00 M. C est cette chaîne EM, convertie en un entier de Z n, qui est chiffrée. la version 2.1 de PKCS#1 définit un autre schéma de codage des données à chiffrer plus sûr. C est le -OAEP (Optimal Asymmetric Encryption Padding). Rabin Rabin Constitution des clés Une paire de clés du système de Rabin est construite à partir d un couple de deux nombres premiers distincts p et q tels que p = 3 (mod 4) et q = 3 (mod 4) ; du produit de ces deux nombres premiers n = pq ; de deux entiers a et b tels que (coefficients de Bezout). ap + bq = 1 La clé publique est l entier n. La clé privée est le quadruplet (p, q, a, b).

Rabin Exemple de paires de clé p = 19 = 4 4 + 3, q = 23 = 4 5 + 3 deux nombres premiers congrus à 3 modulo 4 ; n = pq = 437 ; a = 6 et b = 5. Clé publique : n = 437. Clé privée : (p, q, a, b) = (19, 23, 6, 5). Rabin Chiffrement de Rabin Un message à chiffrer est un entier compris entre 0 et n 1. Soit m un tel message. Le chiffré est obtenu en utilisant la clé publique n du destinataire et en calculant le carré de m moduo n : c = m 2 (mod n). Le chiffré est donc un entier compris entre 0 et n 1. Exemple : Le message m = 15 chiffré avec la clé publique n = 437 donne c = m 2 (mod n) = 225. Rabin Déchiffrement Soit c un message à déchiffrer. Pour le déchiffrer, le destinataire utilise sa clé privée (p, q, a, b) et calcule 1. r = c (p+1)/4 (mod p) ; 2. s = c (q+1)/4 (mod q) ; 3. x = (aps + bqr) (mod n) ; 4. y = (aps bqr) (mod n). Le message clair est l un des quatre nombres x, n x, y, n y. Exemple : Le chiffré c = 225 se déchiffre avec la clé privée (p, q, a, b) = (19, 23, 6, 5) r = 4 s = 8 x = 422 y = 376 Le message clair est l un des quatre nombres 422, 15, 376, 61. Rabin Sécurité de Rabin Ève, l espionne, écoute les échanges entre Alice et Bob, et connaît la clé publique de Bob. Son problème est donc le suivant Étant donnés un chiffré c et la clé publique de Bob n, calculer le clair m. Il est lié au problème du calcul d une racine carrée modulo un entier composé dont on ne connaît pas la factorisation. On démontre que le problème de Ève est équivalent au problème de la factorisation des entiers. Aucun algorithme efficace connu actuellement.

De nombreux autres systèmes asymétriques Merkle-Hellman, proposé en 1978, fondé sur la difficulté de résoudre le problème du sac à dos. Système cassé en 1982 par Shamir à l aide de l algorithme LLL. Mc Eliece, proposé en 1978, fondé sur la difficulté du problème du décodage (théorie des codes correcteurs). Elgamal, proposé en 1985, fondé sur la difficulté du problème du logarithme discret. et bien d autres.

Taille d un entier En base 10 La taille d un entier non nul n écrit en base 10 est donnée par n 10 = log 10 (n) + 1. En base 2 La taille d un entier non nul n écrit en base 2 est donnée par En résumé n 2 = log 2 (n) + 1. Rapport des tailles Le rapport de la taille de l écriture d un entier en base 10 à celle en base 2 est n 10 n 2 log 10(n) log 2 (n) = ln(2) ln(10) = log 10(2) 0, 301. Le rapport de la taille de l écriture d un entier en base 2 à celle en base 10 est n 2 log 2(n) n 10 log 10 (n) = ln(10) ln(2) = log 2(10) 3, 322. n b log b (n). Algorithme d exponentiation modulaire rapide ou square and multiply algorithm Entrée: a, b et n trois entiers naturels. Sortie: a b (mod n) r 1 s a k b tant que k 0 faire si k est impair alors r r s (mod n) fin si s s 2 (mod n) k k 2 fin tant que retourner r

Exemple d exponentiation Calcul de a b (mod n) avec a = 67 par b = 21 et n = 97. r s k Initialisation 1 67 21 Début itération k est impair 67 27 10 k est pair 67 50 5 k est impair 52 75 2 k est pair 52 96 1 k est impair 45 1 0 k est nul Fin itération a b (mod n) = r = 45. Complexité de cet algorithme Nombre d élévations au carré = b 2. Nombre de multiplications = nombre de 1 dans l écriture binaire de b en enlevant le bit de poids fort. Dans tous les cas, le nombre de multiplications modulo (mod n) est majoré par 2 b 2 2 log 2 (b). Entrée: a, b deux entiers naturels. Sortie: d = pgcd(a, b), u et v tels que au + bv = d. a 1 a ; b 1 b ; u 1 0 ; u 2 1 ; v 1 1 ; v 2 0 ; tant que b 1 0 faire q a 1 b 1 ; r a 1 qb 1 ; x u 2 qu 1 ; y v 2 qv 1 ; a 1 b 1 ; b 1 r ; u 2 u 1 ; u 1 x ; v 2 v 1 ; v 2 y ; fin tant que retourner d = a 1, u = u 2, v = v 2.

Exemple de déroulement de l algorithme d Euclide étendu Calcul du pgcd et des coefficients de Bezout pour a = 160 avec b = 107. i q r u 1 u 2 v 1 v 2 a 1 b 1 0 0 1 1 0 160 107 1 1 53 1 0-1 1 107 53 2 2 1-2 1 3-1 53 1 3 53 0 107-2 -160 3 1 0 L identité de Bézout qui en résulte est 1 = 160 2 + 107 3. Complexité de l algorithme une division euclidienne, deux multiplications et deux soustractions à chaque étape du tant que ; les différentes valeurs intermédiaires calculées au cours de l algo ne dépassent pas (en valeur absolue) le plus grand des deux entiers a et b ; le nombre d étapes est en O(n), où n est la taille du plus petit des deux entiers a et b Algorithme polynomial en la taille des entiers donnés en entrée (cubique si algos classiques de division et de multiplication). Nombre de nombres premiers Théorème des nombres premiers En notant π(x) = card({n N n x et n premier}), on a pour x 59 ( x 1 + 1 ) < π(x) < x ( 1 + 3 ) ln(x) 2 ln(x) ln(x) 2 ln(x) En particulier, π(x) x ln(x) lorsque x +. Corollaire Lorsque t est un entier au moins égal à 3, le nombre π t de nombres premiers de t bits est minoré par π t = π(2 t ) π(2 t 1 ) > 2 t 2 (t 1) ln(2). Avec t = 1024, cela donne π 1024 > 0, 63 10 305.

Trouver des nombres premiers Pour trouver un nombre premier d une taille donnée t (en bits) : 1. choisir un entier p impair de taille t au hasard ; 2. tester si p est premier ; 3. s il est premier alors retourner p, sinon recommencer au point 1. La probabilité P t qu un entier impair de taille t choisi au hasard soit premier est minorée par P t = π t 2 t 2 > 1 (t 1) ln(2). Il faut donc en moyenne tester 1 P t < (t 1) ln(2) nombres pour trouver un nombre premier de taille t. Avec t = 1024, il faut en moyenne tester la primalité de moins de 709 nombres. Un test élémentaire de primalité Test par recherche du plus petit diviseur supérieur à 1. Entrée: n un entier au moins égal à 3. Sortie: déterminer si n est premier. k 2 tant que k ne divise pas n et k n faire k k + 1 fin tant que si k divise n alors retourner NON sinon retourner OUI fin si Coût de cet algo dans le pire des cas : O( n) divisions. Pour tester un entier de taille t bits : O(2 t/2 ) divisions. algorithme exponentiel en fonction de la taille. Un problème de la classe P Depuis août 2002, on sait que ce problème est de la classe des problèmes polynomiaux (test de primalité Agrawal-Kayal-Saxena). Malheureusement, l algorithme AKS est inutilisable en pratique. Deux théorèmes Théorème de Fermat Si n est un nombre premier, alors pour tout a N, non multiple de n, on a a n 1 = 1 (mod n). Théorème de Miller Soit n > 1 un entier impair. On pose n 1 = 2 s u avec u impair. S il existe un entier 1 < a < n tel que a u 1 (mod n) et a 2i u 1 (mod n) pour i [[0, s 1]], alors n est composé, et l entier a est appelé témoin de non primalité de n. De plus, si n est un entier impair composé, au moins les trois quarts des entiers a compris entre 1 et n sont des témoins de non primalité de n.

Un algorithme probabiliste Test de Miller-Rabin. Entrée: n un entier impair au moins égal à 3. Sortie: déterminer si n est premier. 1: choisir au hasard a [[2, n 2]] 2: calculer g = pgcd(a, n) 3: si g > 1 alors 4: retourner NON 5: fin si 6: calculer u et s tels que n 1 = 2 s u avec u impair 7: b0 a u (mod n) 8: si b0 = 1 alors 9: retourner (probablement) OUI 10: fin si 11: pour 1 i s faire 12: bi bi 1 2 (mod n) 13: fin pour 14: si bs = 1 alors 15: j min{0 i bi+1 = 1} 16: sinon 17: retourner NON 18: fin si 19: g pgcd(bj + 1, n) 20: si g = 1 ou g = n alors 21: retourner (probablement) OUI 22: sinon 23: retourner NON 24: fin si Analyse du test de Miller-Rabin 1. Algorithme probabiliste toujours correct si réponse négative ; possibilité d erreur si réponse positive ; réponse toujours correcte si n est premier ; possibilité d erreur si n est composé, mais probabilité d erreur < 1 4. 2. Complexité algorithmique (dans le pire des cas) : deux calculs de pgcd ; une exponentiation modulaire ; s élévations au carré. Algorithme cubique en nombre d opérations sur les bits. Difficulté de la factorisation Étant donnés deux entiers p et q, il est facile de les multiplier. 149 331 = 49319. Avec l algorithme de l école primaire, cela demande de l ordre de n 2 opérations sur les chiffres en notant n le nombre de chiffres des deux entiers à multiplier. Mais, étant donné un entier composé m, il est bien plus difficile de trouver deux nombres p et q plus grands que 1 dont le produit est m. C est le problème de la factorisation des entiers. Aucun algorithme efficace n est connu aujourd hui.

Le record 768 = 123018668453011775513049495838496272077285356959533\ 479219732245215172640050726365751874520219978646938\ 995647494277406384592519255732630345373154826850791\ 702612214291346167042921431160222124047927473779408\ 0665351419597459856902143413 nombre de 232 chiffres (768 bits) qui se factorise en deux nombres premiers p = 334780716989568987860441698482126908177047949837137\ 685689124313889828837938780022876147116525317430877\ 37814467999489 et q = 367460436667995904282446337996279526322791581643430\ 876426760322838157396665112792333734171433968102700\ 92798736308917 Record établi en décembre 2009. (cf http://eprint.iacr.org/2010/006.pdf) Difficulté du logarithme discret Étant donnés un groupe cyclique G, un générateur g, et un entier x, il est facile de calculer Le record g x. Avec l algorithme d exponentiation modulaire rapide, cela demande de l ordre de log 2 (b) opérations dans G. Mais pour certains groupes G, etant donnés un générateur g et un élément h de G, il est en général bien plus difficile de trouver un entier x tel que Calcul d un logarithme discret réalisé dans le corps à 2 613 éléments. Record établi en septembre 2005. h = g x. C est le problème du logarithme discret. Aucun algorithme efficace n est connu à ce jour. Si on sait résoudre efficacement le problème du logarithme discret, alors on sait résoudre efficacement le problème de Diffie-Hellman.