Le chiffrement asymétrique

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

Systèmes d ’Information :
Algorithmes et structures de données avancés
CHAPITRE 2 Nombres entiers, initiation à l’arithmétique- Nombres rationnels.
Enseigner l’arithmétique en série L
1°) consolider une connaissance des nombres
Présentation Unité de codage
Courbes elliptiques.
Continuité Introduction Continuité Théorème des valeurs intermédiaires
Cryptographie Mener des Activités en classe
Enseignement de spécialité en S
CryptoGraphy
Preuves interactives: IP, AM, MA et isomorphisme de graphe
1.2 COMPOSANTES DES VECTEURS
Le codage des nombres en informatique
Nombres entiers. Ensembles de nombres
Équations différentielles.
Confidentialité II Systèmes à clé publique
? EPFL Playstations 3 Cryptologie Internet Sécurité Algorithme RSA
Les Algorithmes Cryptographiques Symétriques
EXEMPLE DE MESSAGE CRYPTE PUIS DECRYPTE avec la méthode RSA
Cryptographie Réalisé par TOUJENI Noura BEN SOUISSI Rania KARAOUD Imen
ARITHMETIQUE : NOMBRES PREMIERS, PGCD
FRACTIONS PARTIELLES cours 13.
Espaces vectoriels Montage préparé par : S André Ross
Chiffrement de Lester Hill
Chapitre 1 Le Sens des nombres
3.2 PRODUIT VECTORIEL Cours 7.
EXERCICES D’ARITHMETIQUES
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Introduction au calcul quantique
Transformations linéaires et sous-espaces associés
Programmation linéaire en nombres entiers : les méthodes de troncature
Cryptographie - 2.
ASI 3 Méthodes numériques pour l’ingénieur
Chapitre 4 Théorème de Pythagore.
Quand le français est plus important que les calculs en mathématiques
Un peu de maths (et d’info)
La décomposition en valeurs singulières: un outil fort utile
Expressions régulières et hash tables
Eléments d’arithmétique dans l’ensemble des naturels
La géométrie tropicale
Pr BELKHIR Abdelkader Master RSD Sécurité des systèmes informatiques
Gestion des clés cryptographiques
Arithmétique Modulaire
ASI 3 Méthodes numériques pour l’ingénieur
Le chiffrement symétrique
Cours de mathématiques économiques
DU1 Sécurité : DU Commerce Electronique Michel de Rougemont Université Paris II Les systèmes à clé publique: RSA.
La sécurité dans les réseaux mobiles Ad hoc
Théorie algébrique des nombres
CHAPITRE 3: LES NOMBRES.
Le protocole d’authentification
Les Algorithmes Cryptographiques Asymétriques
Multiprécision.
Programmation linéaire en nombres entiers
Attaque du protocoles RSA Yoann Moulin ESISAR IR - P2004
Pr BELKHIR Abdelkader USTHB
Définition de file En informatique, on définit une file comme étant une structure de données où l’on peut insérer et extraire en fonctionnant selon le.
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Cryptographie.
Mathématiques Discrètes Chapitre 2 (section 3)
La racine carrée.
Primalité et génération de nombres premiers
Leçon Nombres entiers et rationnels
Réalisation d’un logiciel de Chiffrement RSA.
Nous allons traiter de la signature électronique.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Chap.V RSA. I. Rappels Mathématiques La congruence Définition 1 a et b sont congrus modulo n s’ils ont même reste par la division par n. On note a≡b[n]
Transcription de la présentation:

Le chiffrement asymétrique Pr Belkhir Abdelkader 08/04/2017 Pr BELKHIR Abdelkader

Cryptographie asymétrique Le chiffrement par clé publique Merkle-Hellman RSA : Rivest - Shamir - Adleman El Gamal Comparaisons 08/04/2017 Pr BELKHIR Abdelkader

Chiffrement asymétrique La clé de chiffrement publique est pk La clé sk reste privée et sert au déchiffrement uniquement Sk clé privée Ma clé publique = pk c m E D m Algorithme de chiffrement Algorithme de déchiffrement La clé public ne permet pas de déchiffrer (en particulier, elle ne permet pas de retrouver la clé privée 08/04/2017 Pr BELKHIR Abdelkader

Définition formelle Un chiffrement à clé publique se compose de trois algorithmes: Algorithme de génération de clés: KG(l)=(pk, sk); il produit un couple (clé publique, clé privée) Algorithme de chiffrement: E(m,pk)=c utilise la clé publique pk pour chiffrer un message m Algorithme de déchiffrement: D(c,sk)=m : utilise la clé privée sk pour retrouver m 08/04/2017 Pr BELKHIR Abdelkader

Restes Chinois Comment travailler avec plusieurs modules ? Théorème Si m et n sont premiers entre eux alors la condition : est équivalente à : a  b (mn) Preuve: Si a b (mn) les deux relations a b (m) et a b (n) ont bien lieu. Réciproquement si ces deux relations ont lieu alors il existe k1 et k2 tels que : a - b = k1m = k2n On voit alors que m divise k2n et comme il est premier avec n il divise k2. Si bien que : a - b = k3mn 08/04/2017 Pr BELKHIR Abdelkader

Restes Chinois : un exemple numérique Résoudre z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 z mod 3 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 z mod 5 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 Le couple (2; 3) correspond à z = 8 Comment résoudre le problème sans calculer le tableau ? 08/04/2017 Pr BELKHIR Abdelkader

Restes Chinois : un exemple numérique Soient m et n premiers entre eux. On cherche toutes les solutions entières de : Théorème des restes chinois Soit u et v deux entiers tels que un + vm = 1. L'entier c défini par l'égalité c = aun + bvm est solution puisque c = a(1 − vm) + bvm = a + vm(b − a)  a (mod m), c = aun + b(1 − un) = b + un(a − b)  b (mod n). Il est facile de vérifier que pour tout entier k  Z, l'entier x = c + kmn est aussi solution 08/04/2017 Pr BELKHIR Abdelkader

Preuve du théorème Par un calcul direct on vérifie que x = bum + avn est bien une solution. On vérifie alors que pour tout entier k, x + kmn est aussi une solution. Si maintenant x et y sont deux solutions, par différence on obtient : ce qui nous permet de conclure : y = x + kmn grâce au théorème précédent Remarque: Il y a donc une solution unique y vérifiant 0≤y<mn; ce qui peut s’exprimer encore en disant qu’il y a une unique solution dans Z/mnZ. 08/04/2017 Pr BELKHIR Abdelkader

Généralisation Théorème Si les entiers n1,n2,..,nk sont deux à deux premiers entre eux, alors le système : a une solution unique modulo n = n1n2...nk. 08/04/2017 Pr BELKHIR Abdelkader

Le subset sum problem 08/04/2017 Pr BELKHIR Abdelkader

Séquence super-croissante 08/04/2017 Pr BELKHIR Abdelkader

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. 08/04/2017 Pr BELKHIR Abdelkader

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 sous- ensemble de E tel que la somme des éléments de sous ensemble donne s = 1221 ? L’algorithme évolue ainsi : 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 xi qui valent 1, nous avons : 781+386+37+15 = 1219 1221. 08/04/2017 Pr BELKHIR Abdelkader

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 : 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 xi qui valent 1, nous avons : 386+190+37+6 = 619. 08/04/2017 Pr BELKHIR Abdelkader

Merkle-Hellman Génération des clés Un entier n est fixé comme paramètre commun choisir une séquence super-croissante de n éléments bi et un modulus M tels que : M > b1 +. . .+bn choisir un entier W ∈ [1,M − 1] tel que W soit premier avec M calculer ∀i ∈ [1, n] : ai = W · bi mod M La clé publique est (a1, . . . , an) La clé secrète est (M,W, b1, . . . , bn) 08/04/2017 Pr BELKHIR Abdelkader

Merkle-Hellman (suite) Chiffrement Soit x un message à chiffrer de n bits Calculer y = x1 · a1 +. . .+xn · an Déchiffrement calculer d = W−1 · y mod M résoudre le « subset sum problem» sur la séquence des bi avec la somme égale à d le message clair x est tel que d = x1 · b1 +. . .+xn · bn 08/04/2017 Pr BELKHIR Abdelkader

Merkle-Hellman (exemple) 08/04/2017 Pr BELKHIR Abdelkader

Fonction d’Euler Définition La fonction d’Euler (n) représente le nombre d’éléments dans Zn* (n) est le nombre d’éléments de {0, …,n} qui sont premiers avec n (1) = 1 car Z1*= {0} 08/04/2017 Pr BELKHIR Abdelkader

Fonction d’Euler Théorème: 08/04/2017 Pr BELKHIR Abdelkader

Théorème d’Euler Pour tout a et n, si pgcd(a; n) = 1 alors 08/04/2017 Pr BELKHIR Abdelkader

Le chiffrement RSA Génération des clés choisir aléatoirement deux grands premiers distincts p et q approximativement de la même taille calculer n = p*q et (n) = (p − 1)(q − 1) choisir un entier e aléatoire ∈]1, (n)[ tel que pgcd(e, (n))=1 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 08/04/2017 Pr BELKHIR Abdelkader

RSA (suite) Chiffrement Soit le message x ∈ Zn à chiffrer. Calculer : y = xe mod n Déchiffrement y est déchiffré en calculant : x = yd mod n 08/04/2017 Pr BELKHIR Abdelkader

Déchiffrement de RSA Preuve : par définition et propriétés des opérations modulo n, on a : Dk(Ek(M)) = ((M)e mod n)d mod n = (Me)d mod n = Me∗d mod n Et donc : Me∗d = Mk∗(n)+1 = Mk∗(n).M mod n = 1.M mod n = M mod n 08/04/2017 Pr BELKHIR Abdelkader

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 = xe mod n = 97263533 mod 11413 = 5761 Bob déchiffre le message chiffré y en calculant : x = yd mod n = 57616597 mod 11413 = 9726 08/04/2017 Pr BELKHIR Abdelkader

RSA - Exemple Soient p = 101, q = 113 Donc n = p · q = 11413 Et (n) = 100 · 112 = 11200 (= 26 · 52 · 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 08/04/2017 Pr BELKHIR Abdelkader

RSA: Exemple 08/04/2017 Pr BELKHIR Abdelkader

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 ∈ Zn∗ nous avons : aed−1 ≡ 1 (mod n) Nous pouvons écrire ed−1 = 2st avec t entier impair Si 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 z2 ≡ 1 (mod n) et n divise z2 − 1, donc n divise (z − 1)(z +1) 08/04/2017 Pr BELKHIR Abdelkader

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 z2 − 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 08/04/2017 Pr BELKHIR Abdelkader

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 : 08/04/2017 Pr BELKHIR Abdelkader

Définition -L’ordre du groupe, |G|, est le nombre d’éléments dans G Définition -L’ordre du groupe, |G|, est le nombre d’éléments dans G. -L’ordre d’un élément a d’un groupe G est le plus petit t > 0 tel que at=e (élément neutre). Notation Ord(a;G) ou Ord(a) 08/04/2017 Pr BELKHIR Abdelkader

El Gamal Génération des clés choisir aléatoirement un grand premier p trouver un générateur  du groupe multiplicatif Z∗p choisir aléatoirement un entier a ∈ [1, p − 2] calculer  = a mod p La clé publique est (p,  , ) La clé secrète est a 08/04/2017 Pr BELKHIR Abdelkader

El Gamal Soit un entier premier p très grand et p − 1 doit avoir un grand facteur premier. On produit : – une clé secrète s, telle que s ∈ (1...p − 2), – une clé publique reposant sur l’entier p, un entier a premier avec p, et l’entier P tel que P = as mod p Le nombre a est pris tel que a ∈ (0...p − 1) et ∀ k ∈ (1...p − 2) : ak  1 mod p 08/04/2017 Pr BELKHIR Abdelkader

El Gamal (suite) Chiffrement Soit un message M, avec M < p. On détermine un nombre aléatoire k qui n’est connu que de celui qui chiffre et différent à chaque message. On calcule alors C1 = ak mod p C2 = M.Pk mod p On obtient alors le message chiffré C = (C1,C2) Déchiffrement Soient (C1, C2) représentant le chiffré : M = C1−s · C2 mod p 08/04/2017 Pr BELKHIR Abdelkader

El Gamal - Exemple Soient p = 2579, a = 2, s = 765. Il vient – Clé privée Sk = (765) – Clé publique Pk = (2579, 2, 949) car 2765 mod 2579 = 949 Pour chiffrer M = 1299, on choisit k = 853. Il vient C1 = 2853 mod 2579 = 435 C2 = 1299 ∗ 949853 mod 2579 = 2396 On peut effectivement vérifier que 2396/(435765) mod 2579 = 1299. 08/04/2017 Pr BELKHIR Abdelkader

Comparaison 08/04/2017 Pr BELKHIR Abdelkader