APPLICATIONS DES MATHEMATIQUES - Cryptographie Programmation en Python 3 AMOS / 2021-2022 - Collège Sismondi
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
APPLICATIONS DES MATHEMATIQUES Cryptographie Partie 2 Programmation en Python 3 Picchione Serge AMOS / 2021-2022
AVANT-PROPOS • Ce document a été conçu pour l’enseignement de l’applications des mathématiques dispensé au Collège de Genève. Cela dit, il peut servir de support de cours pour d’autres filières d’enseignement. • Vous trouverez dans ce chapitre de la théorie (définitions, théorèmes, démonstrations, etc.) et des exercices qui vous permettront progressivement de vous familiariser et de maîtriser les diverses notations et concepts en lien avec : les mathématiques, l’informatique et la physique. À la fin du chapitre se trouvent les corrections des exercices. • Des QR CODES apparaissent à certains endroits du cours. Une fois scannés avec vos smartphones, ils donnent (aux personnes ayant un compte EDUGE) accès à la lecture de vidéos dont le contenu est en lien avec certains sujets du cours. Vous pouvez télécharger ce document au format PDF à l’adresse suivante : https://www.sismondi.ch/disciplines/applications-des-mathematiques/cours-eleves Table des matières 2.3 Cryptographie et cryptanalyse 1 2.3.1 Rappels et résumé 1 2.3.2 Chiffrement symétrique et asymétrique 2 2.3.3 Le chiffrement RSA 6 2.3.4 Authentification par signature RSA 13 2.3.5 Programmes en Python 3 pour le chiffrement RSA 16 2.3.6 Attaque de l’homme du milieu 25 2.3.7 Certification des clés publiques RSA 27 2.3.8 Blockchain et Bitcoin 29 2.3.9 L’ordinateur quantique 30 2.4 Corrections des exercices et activités 33 Picchione Serge AMOS / 2021-2022
2.3 Cryptographie et cryptanalyse 2.3.1 Rappels et résumé La cryptologie et la stéganographie sont deux procédés visant à protéger des messages afin d'assurer notamment la confidentialité des échanges ou des données. Avec la cryptographie, la sécurité repose sur le fait que le message ne sera sans doute pas compris car il est rendu inintelligible. En revanche, avec la stéganographie, la sécurité repose sur le fait que le message ne sera sans doute pas détecté car il est dissimulé. Cryptologie Sténographie Cryptographie Cryptanalyse (chiffrer et déchiffrer des (déchiffrer les messages messages à l’aide de clé) sans en posséder la clé) Chiffrement Chiffrement symétrique asymétrique Clé privée partagée Clé publique : expéditeur par l’expéditeur + et le destinataire. Clé privée : destinataire • Mono-alphabétique : • Mono-alphabétique : - décalage (César), affine, substitution, etc. - RSA • Poly-alphabétique : • Par bloc : - Vigenère, Hill, etc. - RSA • Un système cryptographique doit posséder au minimum trois qualités : 1) la confidentialité ; garantir que seul l’expéditeur et le destinataire pourront lire le message. 2) l’authenticité du message ; garantir l’identité de l’expéditeur. 3) l’intégrité du message ; garantir qu’il n’a pas été modifié par une tierce personne. • Principe de Kerckhoffs : « La sécurité d’un système de chiffrement ne doit reposer que sur la clé. » Autrement dit : « L’ennemi peut avoir connaissance du système de chiffrement (fonction de chiffrement et de déchiffrement mais pas de la clé.» • Grâce au chiffrement asymétrique, la communication chiffrée est possible sur des réseaux informatiques non-sécurisé. Cela permet développer le commerce en ligne (vente en ligne). ________________________________________________________________________________ P.S. / 2021-2022 1 Cryptographie_p02 / AMOS
2.3.2 Chiffrement symétrique et asymétrique Définition Une méthode de chiffrement est dite symétrique ou encore à clé privée, si elle utilise une même clé pour chiffrer et déchiffrer un texte (message). Schéma ALICE (l’expéditrice) veut envoyer un texte à BOB (le destinataire) sur un canal non sécurisé. OSCAR est l’opposant (le hacker ou le cryptanalyste). Transmission de la clé privée K : ALICE BOB OSCAR ALICE BOB Canal non sécurisé. Ck et Dk sont bijectives et vérifient : Ck ( Dk ( y ) )= y= I d ( y ) et Dk ( Ck ( x ) ) = x = I d ( x ) ∀x ∈ A ∀y ∈ B Autrement dit, Ck et Dk sont réciproques l’une de l’autre. Exemple Le chiffrement par décalage (de César) est un chiffrement symétrique. Il peut être utilisé par ALICE et BOB que s’ils se sont transmis au préalable la même clé privée qui est un nombre entier K ∈ {0;1;2;........;24;25} représentant le décalage des lettres de l’alphabet. Remarques a) Un chiffrement symétrique présente deux inconvénients majeurs : 1) la transmission de la clé entre les interlocuteurs que sont ALICE et BOB. En effet, la clé qui doit rester totalement confidentielle, doit être transmise au correspondant et de façon sûre. Toute interception par OSCAR, détruit la confidentialité de l’échange d’information entre ALICE et BOB. 2) l’authentification par BOB de l’expéditrice qui est ici ALICE. Si OSCAR c’est emparé de la clé, il pourrait très bien fabriquer de faux messages ou changer subrepticement une partie d’un message intercepté ; l’intégrité du message n’est donc pas assuré. Ces falsifications demeurent indétectable pour BOB. ________________________________________________________________________________ P.S. / 2021-2022 2 Cryptographie_p02 / AMOS
Ces deux inconvénients sont illustrés par la situation concrète suivante : ALICE (l’expéditrice) communique avec sa banque via internet (e-banking) et donne un ordre de paiement à son banquier, BOB (le destinataire). Pour que leurs communications restent confidentielles ils utilisent un système de chiffrement symétrique dont la clé privée est K. 1) ALICE n’habite pas dans la même ville que le siège de la banque ou travaille BOB. Pour se transmettre la clé privée K ils doivent se déplacer. Il est exclu que BOB envoie la clé privée dans un mail non chiffré ou dans une lettre et par la poste à ALICE car OSCAR peut intercepter le mail (ou la lettre) et donc la clé. Il est inutile que BOB envoie la clé privée K dans un mail chiffré à ALICE car elle ne pourra pas déchiffrer le mail ; elle n’est pas encore en possession de la clé. 2) Supposons qu’OSCAR ait pu intercepter l’ordre de paiement chiffré par ALICE et qu’il arrive avec une méthode de cryptanalyse (par exemple la force brute) a obtenir l’ordre de paiement en clair et aussi la clé privée K. OSCAR décide de modifier le contenu de l’ordre de paiement par exemple, le montant ou le nom du destinataire. BOB ne sera pas en mesure de vérifier l’authenticité ou l’intégrité du message. En l’absence d’une signature de l’expéditeur, ces falsifications demeurent indétectables. b) Jusqu’à la veille des années 1970, toutes les méthodes de chiffrement étaient symétriques et ne possédaient pas de signatures : Chiffrement de César, affine, substitution, Vigenère, etc. ________________________________________________________________________________ P.S. / 2021-2022 3 Cryptographie_p02 / AMOS
Le problème de la transmission des clés et de l’authentification de l’expéditeur été résolu grâce au chiffrement asymétrique et en particulier grâce au chiffrement RSA dont nous allons décrire les étapes et les concepts mathématiques en détails dans les pages suivantes. Définition Une méthode de chiffrement est dite asymétrique ou encore à clé publique, si elle utilise deux clés : une clé publique pour chiffrer un texte (message) et une autre clé privée pour le déchiffrer. La clé privée ne doit pas pouvoir être déduite à partir de la clé publique. Schéma ALICE (l’expéditrice) veut envoyer un texte à BOB (le destinataire) sur un canal non sécurisé. OSCAR est l’opposant (le hacker ou le cryptanalyste). BOB génère deux clés. Canal non Clé publique transmise à ALICE sécurisé. Clé privée gardée secrète par BOB Canal sécurisé. OSCAR ALICE BOB Canal non sécurisé. C et D sont bijectives et vérifient : C ( D ( y ) )= y= I d ( y ) et D (C ( x )) = x = Id ( x ) ∀x ∈ A ∀y ∈ B Autrement dit, C et D sont réciproques l’une de l’autre. Remarques a) BOB génère deux clefs : • une clef publique qu’il diffuse largement (sur internet par exemple) et qui va permettre à à ALICE de chiffrer son texte. OSCAR peut lui aussi chiffrer des messages avec la clef publique. • une clef privée qu’il conserve et gardée secrète. Cette clef va permettre à BOB de déchiffrer le texte chiffré par ALICE ou par une autre personne ayant reçu la clef publique. Autrement dit, tout le monde peut chiffrer un texte destiné à BOB, mais il est le seul à pouvoir le déchiffrer. Il y a une condition cruciale pour que ce système fonctionne : il doit être impossible pour une tierce personne, par exemple OSCAR, de déduire la clé privée à partir de la clé publique ou à partir du texte chiffré intercepté. ________________________________________________________________________________ P.S. / 2021-2022 4 Cryptographie_p02 / AMOS
Le problème de la transmission des clés entre interlocuteurs distant est alors résolu : il n’est pas nécessaire de se voir au préalable pour partager une unique clé privée. La communication chiffrée est alors possible sur des réseaux informatiques non-sécurisé. Cela permet développer le commerce en ligne. b) OSCAR peut cependant intercepter le texte chiffré par ALICE et envoyé à BOB sur le canal peu sûr et le remplacer par son propre texte chiffré (la fonction de chiffrement étant publique). OSCAR peut ainsi se faire passer pour ALICE et BOB n’en sera rien. L’authenticité comme l’intégrité du message n’est alors pas assurée. On peut contourner ce problème grâce au concept d’authentification par signature que nous étudierons dans ce chapitre et basé sur le chiffrement RSA. c) Le système de chiffrement RSA parait résister encore à notre époque aux algorithmes de cryptanalyse les plus récents et à la puissance de calculs des supers ordinateurs moyennant certaines précautions . Les ordinateurs quantiques avec des « algorithmes quantiques » risquent peut-être de faire « tomber » ce chiffrement. Le principe de Kerckhoffs Auguste Kerckhoffs von Nieuwenhoff (1835-1903) est un cryptologue militaire néerlandais. Le principe de Kerckhoffs s’énonce ainsi : «La sécurité d’un système de chiffrement ne doit reposer que sur la clé.» Autrement dit : « L’ennemi peut avoir connaissance du système de chiffrement (fonction de chiffrement et de déchiffrement) mais pas de la clé.» Ce principe est novateur dans la mesure où intuitivement il semble opportun de dissimuler le maximum de choses possibles à l’ennemi : clé et système de chiffrement utilisés. Ce principe se base sur deux constats de Kerckhoffs : 1) le système de chiffrement sera forcément connu un jour ou l’autre de l’ennemi (secret vendu par un traître). 2) un système de chiffrement connu de tous sera testé, attaqué, étudié, et finalement utilisé s’il s’avère intéressant et robuste. Question 01 Quels concepts mathématiques faut-il utiliser pour « construire » deux clés, une privée et une publique, dont il n’est pas possible en un temps « raisonnable » de déduire la clé privée à partir de la clé publique sachant que le système de chiffrement est connu de tous ? ________________________________________________________________________________ P.S. / 2021-2022 5 Cryptographie_p02 / AMOS
2.3.3 Le chiffrement RSA En 1977, trois mathématiciens, Ronald Rivest, Adi Shamir et Leonard Adleman, inventent un système de chiffrement asymétrique qui reste le meilleur et le plus utilisé à ce jour : le système RSA (nommé à partir des initiales des trois auteurs). Le système RSA contourne les problèmes des chiffrements symétriques étudiés dans les chapitres précédents comme : l’échange préalable de la clé privée, la faiblesse de la clé face aux attaques par force brute, les problèmes d’authentifications, etc. Introduction Prenons deux nombres premiers distincts p = 11 et q = 13 . • Connaissant p et q, il est beaucoup plus rapide de multiplier (développer) ces deux nombres et d’obtenir p ⋅ q = 11 ⋅ 13 = 143 = n que connaissant n = 143 de le factoriser et d’obtenir ses facteurs p = 11 et q = 13 . Vous pouvez faire l’essai à la main et comparer les temps de calculs. • Connaître les facteurs p et q du nombre n apporte donc plus d’information utilisable que connaître uniquement le nombre n= p ⋅ q . • L’asymétrie de temps de calcul augmente lorsque les nombres p et q sont de plus en plus grands. • Le temps de calcul pour factoriser n= p ⋅ q va dépendre de l’algorithme utilisé et de l’ordinateur sur lequel on implémente l’algorithme. En se basant sur cette asymétrie de temps de calculs et d’information, décrivons dans un premier temps une idée simplifiée du chiffrement RSA : 1) BOB « choisit » deux nombres premiers distincts p et q , très grands qui vont constituer en partie sa clé privée qu’il conserve en secret. Dans les faits BOB utilise un programme sur un ordinateur afin de générer p et q. 2) BOB multiplie en un temps « raisonnable » avec un ordinateur ces deux nombres p et q et obtient un nombre n= p ⋅ q qui est très grand et n’est pas premier. Le nombre n= p ⋅ q est en partie la clé publique et il la transmet sans secret à ALICE. En faisant ce choix, BOB empêche l’opposant OSCAR (et ALICE) de factoriser en un temps « raisonnable » le nombre n= p ⋅ q (plusieurs centaines de chiffres et produits de deux grands nombres premiers distincts) et ainsi de retrouver les facteurs p et q qui sont en partie la clé publique même avec la puissance calculatoire des ordinateurs actuels. Question 02 (reformulation de la question 01) Existe-t-il un système de chiffrement asymétrique qui possède une fonction C de chiffrement qui dépend du nombre n= p ⋅ q et une fonction D de déchiffrement qui dépend des nombres p et q et qui sont de fait bijectives et réciproques l’une de l’autre ? ________________________________________________________________________________ P.S. / 2021-2022 6 Cryptographie_p02 / AMOS
Théorème de RSA (Rivest, Shamir, Adleman) (2.18) Soit • p et q sont deux nombres premiers distincts tel que n= p ⋅ q • d est l’inverse de e modulo ( p − 1) ⋅ ( q − 1) c-à-d e ⋅ d ≡ 1 mod ( p − 1) ⋅ ( q − 1) • 0 ≤ x < n et 0 ≤ y < n Si C ( x ) = x e mod n et D ( y ) = y d mod n Alors C ( x) = y ⇔ D ( y) =x ∀ x, y ∈ n Exemple Appliquons ce théorème à la cryptographie : ALICE (l’expéditrice) veut transmettre un message (un texte en français, une donnée numérique, etc.) à BOB (le destinataire) sur un canal non sécurisé (réseau internet, etc.). OSCAR est l’opposant (le hacker ou le cryptanalyste). Le chiffrement RSA se décompose ainsi : 1) BOB construit une clé privée qu’il conserve et une clé publique qu’il diffuse largement : 1.1) Il « choisit » deux nombres premiers p = 11 et q = 13 . 1.2) Avec les deux nombres premiers p et q, il calcule n = p ⋅ q = 143 (appelé modulo RSA) et le nombre ϕ ( p ⋅ q ) = ( p − 1) ⋅ ( q − 1) = 120 (ϕ est l’indicatrice d’Euler) 1.3) Il « choisit » un nombre e = 7 , en général le plus petit possible, tel que : 1 < e < ϕ ( pq ) et PGCD ( e ;ϕ ( pq ) ) = 1 (appelé l’exposant de chiffrement RSA) 1.4) Il calcule le nombre d = 103 qui est l’inverse de e modulo ϕ ( pq ) càd 7 ⋅ 103 ≡ 1 mod 120 . (appelé l’exposant de déchiffrement RSA) 1.5) La clef privée est constituée du triplet ( d ; p;q ) = ( 103;11;13 ) et connue que de BOB. La clef publique est constituée du couple ( e;n ) = (7 ;143 ) et connue de tous. 2) Pour chiffrer son message clair x , ALICE utilise la fonction C de chiffrement dont les paramètres de cette fonction est la clé publique connue de tous : C :n →n avec 0≤ x
Illustration du chiffrement RSA BOB Canal non sécurisé. Clé publique : Clé privée : OSCAR Canal sécurisé. ALICE BOB Canal non sécurisé. Remarques a) La fonction de chiffrement C( e,n ) ( x ) = x mod n et la fonction de déchiffrement e D( d ; p⋅q ) ( y ) = y d mod n sont des fonctions bijectives et réciproques l’une de l’autre. Autrement dit : D ( C ( x ) ) = x et C ( D ( y )) = y ∀x, y ∈ n b) La sécurité du système RSA, autrement dit la confidentialité des échanges d’informations entre ALICE et BOB repose principalement sur deux points : 1) BOB doit faire le « choix » de deux nombres premiers distincts p et q très grands. La société R.S.A. Data Security recommande des nombres n= p ⋅ q de 1024 bits (309 chiffres en base 10) voir 2048 bits (617 chiffres en base 10). En faisant ce choix, il empêche OSCAR (le cryptanalyste) de factoriser le nombre n= p ⋅ q et ainsi retrouver les facteurs p et q en un temps « raisonnable » même avec la puissance de calculs des ordinateurs actuels et tant que l’on ne découvre pas un algorithme rapide pour factoriser les entiers. Si OSCAR arrive a factoriser n et obtenir p et q il peut alors calculer rapidement le dernier paramètre de la clé privé c’est-à-dire d tel que e ⋅ d ≡ 1 mod ( p − 1) ⋅ ( q − 1) et ainsi utiliser la fonction D de déchiffrement pour déchiffrer les messages d’ALICE . Nous traiterons certaines situations de cryptanalyse du chiffrement RSA en exercice. ________________________________________________________________________________ P.S. / 2021-2022 8 Cryptographie_p02 / AMOS
2) BOB doit absolument garder secret les nombres : p , q , ϕ ( pq ) et d . Si OSCAR le hacker (ou tout autre personne) vole la clé privée à BOB (sur son ordinateur par exemple) il sera aussi en mesure de déchiffrer les messages d’ALICE . Lien vers le documentaire /vidéo : c) L’authenticité et l’intégrité des messages est-il garanti «Vous avez été hacké ». par le chiffrement RSA ? OSCAR , comme on l’a vu précédemment, peut intercepter le message chiffré par ALICE et envoyé à BOB sur le canal non sécurisé et le remplacer par son propre message chiffré (la fonction de chiffrement étant publique) ou bien le modifier. OSCAR peut ainsi se faire passer pour ALICE et BOB n’en sera rien. L’authenticité et l’intégrité des messages n’est pas encore assurée. Cependant, on peut résoudre ce problème grâce au concept d’authentification par signature que nous étudierons plus loin dans le cours et basé lui aussi sur le chiffrement RSA. Démonstration du théorème de RSA • Par hypothèse nous avons que : i) n= p ⋅ q ii) e ⋅ d ≡ 1 mod ( p − 1)( q − 1) ⇔ e ⋅ d= k ( p − 1)( q − 1) + 1 k ∈ 1.5 ) ( Alg) • Si p x alors x ≡ 0 mod p ⇒ x ed ≡ 0 ed mod p ⇒ x ed ≡ 0 mod p d’où p x e⋅ d 1.5 ) Comme x ≡ 0 mod p et x e⋅d ≡ 0 mod p ⇒ x e⋅d − x ≡ 0 mod p ⇒ p x e⋅d − x • Si p x alors x p −1 ≡ 1 mod p (voir 2.16 ; le petit thm. de Fermat) 1.5 ) ( Alg) D’où : x p −1 ≡ 1 mod p ⇒ (x ) p −1 k ( q −1) ≡ 1 k ( q −1) mod p ⇒ x k ( p −1)( q −1) ≡ 1 mod p 1.5 ) Comme x ≡ x mod p et x k ( p −1)( q −1) ≡ 1 mod p ⇒ x ⋅ x k ( p −1)( q −1) ≡ x ⋅ 1 mod p ( Alg) ( Hyp ii ) 1.5 ) ⇒ x k ( p −1)( q −1)+1 ≡ x mod p ⇒ x ed ≡ x mod p ⇒ x e⋅d − x ≡ 0 mod p ⇒ p x e⋅d − x • On constate donc que : p x e⋅d − x et q x e⋅d − x (étapes similaire à p car q est aussi premier) De plus par hypothèse nous avons que p et q sont des nombres premiers distincts donc ils sont premiers entre eux . Autrement dit : PGCD ( p;q ) = 1 Les hypothèses du corollaire du théorème de Gauss (voir 2.8) sont satisfaites ce qui implique ( Hyp i ) 1.5 ) que : p ⋅ q x e⋅d − x ⇒ n x e⋅d − x ⇒ x e⋅d − x ≡ 0 mod n ⇒ x e⋅d ≡ x mod n (I) • Finalement : 1.5 ) ( Alg) Si y ≡ x e mod n ⇒ y d ≡ ( x e ) mod n ⇒ y d ≡ x e⋅d mod n d 1.5 ) Ensuite y d ≡ x e⋅d mod n et x e⋅d ≡ x mod n ⇒ x ≡ y d mod n (I ) ________________________________________________________________________________ P.S. / 2021-2022 9 Cryptographie_p02 / AMOS
Exercice 1 Dans cet exercice, on n’utilisera pas de programme informatique pour résoudre les problèmes. Considérons la situation suivante : ALICE est professeur d’application des mathématiques et BOB est le gestionnaire des notes du Collège. Ils communiquent par mail (canal peu sûr). La passion d’OSCAR qui est un élève d’ALICE est de tester la sécurité des systèmes informatiques. L’objectif de cet exercice est : 1) de se mettre à la place de BOB et de créé « à la main » un protocole de chiffrement RSA c’est-à-dire une clé publique qui permettra à ALICE ou à d’autres enseignants de l’école de chiffrer les notes des examens et de les transmettre de manière sécurisée au bureau de gestion et une clé privée conservée uniquement par BOB et qui lui permettra de déchiffrer les messages. 2) de se mettre à la place d’OSCAR et de tester la sécurité du système de chiffrement RSA mis en place par BOB. Enoncé 1) BOB choisit deux nombres premiers distincts = p 11 = et q 17 . a) Calculer n= p ⋅ q b) Calculer ϕ ( p ⋅ q ) = ( p − 1)( q − 1) c) BOB choisit un nombre e = 7 • Montrer que le PGCD ( e ;ϕ ( pq ) ) = 1 à l’aide de l’algorithme d’Euclide. • Expliquer pourquoi BOB n’a pas choisi le nombre e = 8 . d) En utilisant l’algorithme précédant, en déduire d qui est un des coefficients de Bézout des nombres e et ϕ ( pq ) . e) Donner la clé publique et écrire la fonction de chiffrement C. Chiffrer la note x = 5 (le message clair) en utilisant l’algorithme d’exponentiation rapide. f) Donner la clé privée et écrire la fonction de déchiffrement D. Déchiffrer le message y précédemment chiffré en utilisant l’algorithme d’exponentiation rapide. g) Vérifier que les fonctions C et D sont bijectives et réciproques l’une de l’autre. Autrement dit vérifier que : D ( C ( x ) ) = x et C ( D ( y ) ) = y ∀x, y ∈ n Enoncé 2) a) OSCAR qui est en possession de la clé publique ( e;n ) diffusée sans secret veut obtenir la clé privée ( d ; p;q ) . Peut-il, en un temps « raisonnable », déchiffrer ou falsifier les messages d’ALICE destinés à BOB ? b) Que doit faire BOB pour améliorer la sécurité de son chiffrement RSA ? ________________________________________________________________________________ P.S. / 2021-2022 10 Cryptographie_p02 / AMOS
Exercice 2 Dans cet exercice, on n’utilisera pas de programme informatique pour résoudre les problèmes. Considérons la même situation que celle proposée dans l’exercice précédent entre ALICE , BOB et OSCAR . BOB a mis en place un protocole de chiffrement RSA dont le clé publique ( e;n ) = ( 13;253 ) a été transmise sans secret à tous les enseignants du Collège dont ALICE. Enoncé 1) Code ASCII a) En utilisant le code ASCII qui permet de traduire chaque caractère d’un message en un équivalent numérique et la clé publique, décrire et effectuer toutes les étapes de calculs qu’ALICE doit mettre en place pour chiffrer le message clair " 4.5" qui est la note d’OSCAR en application des mathématiques. Fonction Exponentiation ASCII chiffrement rapide Par exemple : " 4" → x= 52 → C ( 52 ) = 105 b) OSCAR qui est en possession de la clé publique ( e;n ) diffusée sans secret a aussi intercepté sur le serveur de la messagerie de l’école non sécurisé, le message chiffré par ALICE contenant sa note. • Décrire et effectuer toutes les étapes de calculs qu’OSCAR doit mettre en place pour déchiffrer le message. Indication : utiliser l’algorithme d’Euclide et de l’exponentiation rapide. • Quelle est la clé privée ? • Comment appelle-t-on le travail effectué par OSCAR ? c) Déterminer la fonction C de chiffrement et la fonction D de déchiffrement. Vérifier que les fonctions C de chiffrement et D de déchiffrement sont bijectives et réciproques l’une de l’autre. Enoncé 2) OSCAR se rend compte que le système cryptographique mis en place par l’école comporte trois failles de sécurité et compte en parler à BOB : a) la première faille : on obtient très facilement la clé privée ce qui donne accès au déchiffrement du message. Pourquoi ? et comment contourner cette première faille ? b) la deuxième faille : on peut se faire passer pour ALICE au près de BOB. Par exemple OSCAR peut falsifier sa note et envoyer la note " 6.0" au lieu de " 4.5" sans que BOB ne s’en aperçoive. Pourquoi ? et comment contourner cette deuxième faille ? c) Quel est la troisième faille surtout exploitable si le message chiffré comporte beaucoup de symboles ? Comment contourner cette troisième faille ? ________________________________________________________________________________ P.S. / 2021-2022 11 Cryptographie_p02 / AMOS
Exercice 3 Dans cet exercice, on n’utilisera pas de programme informatique pour résoudre les problèmes. ALICE est professeur d’application des Mathématiques et discute souvent de cryptographie avec BOB qui est le gestionnaire des notes de l’école. L’école décide d’utiliser un protocole de chiffrement RSA et BOB est responsable de générer : 1) une clé privée ( p;q;d ) avec n = pq qu’il conserve en secret. 2) une clé publique ( e;n ) qui est connue de tous les professeurs et même des élèves. OSCAR qui est un élève d’ALICE et passionné de sécurité informatique, intercepte un mail non-chiffré entre ALICE et BOB dont le contenu est le suivant : « Chère ALICE, si une personne est en possession de la clé publique ( e;n ) et de ϕ ( pq ) =( p − 1)( q − 1) peut-il obtenir rapidement la clé privée ( p;q;d ) ? » Aidez OSCAR à répondre à la question précédente en effectuant un certain nombre de calculs. Indication : Résoudre une équation du 2e degré dont l’inconnue est p. ________________________________________________________________________________ P.S. / 2021-2022 12 Cryptographie_p02 / AMOS
2.3.4 Authentification par signature RSA La cryptographie à clé publique permet également de résoudre le problème de l’authenticité et de l’intégrité des informations transmises. Imaginons par exemple qu’ALICE possède un compte dans une banque administrée par BOB . Elle veut envoyer par mail l’ordre de payer la somme de 100’000 francs à l’un de ses créanciers. La banque a deux problèmes à résoudre : 1) Comment convaincre BOB que c’est bien ALICE qui est l’expéditrice et non pas OSCAR (un escroc) qui aurait usurpé l’identité d’ALICE ? Ou encore, comment empêcher qu’ALICE nie après coup avoir donné un tel ordre ? 2) Comment BOB peut-il être sûr que c’est bien 100’000 francs qu’il faut verser à un tel et non 50’000 francs à tel autre ? Un intrus n’aurait-il pas pu modifier le message ? Montrons comment le système de chiffrement RSA permet de résoudre ces problèmes. L’idée va être de créer une signature numérique pour chaque message envoyé ; cela revient à confirmer que vous en êtes bien l'expéditeur. Exemple Phase 1 Création d’une double paire de clé privée et publique distinctes et échange des clés publiques ALICE BOB Clé privée : ( d A ; p A ;q A ) = ( 147;11;23 ) Clé privée : ( d B ; pB ;qB ) = ( 269;13;29 ) Fonction déchiffrement : DA ( x ) = x mod 253 Fonction déchiffrement : DB ( x ) = x mod 377 147 269 Clé publique : ( eA ;nA ) = ( 3;253 ) Clé publique : ( eB ;nB ) = ( 5;377 ) Fonction chiffrement : C A ( x ) = x mod 253 Fonction chiffrement : CB ( x ) = x mod 377 3 5 Phase 2 ALICE crée une signature numérique s du message clair m à l’aide de sa clé privée • Le message clair d’ALICE est : m = 4 . • La signature du message m = 4 =est : DA ( 4 ) 4= 147 mod 253 49 = s (exponentiation rapide) • Le couple ( 4 ;49 ) est le message signé. Phase 3 ALICE chiffre le message clair m et la signature s à l’aide de la clé publique de BOB • CB ( 4 ) 4= = 5 mod 377 270 (exponentiation rapide) • CB ( 49 ) 49 = = 5 mod 377 82 (exponentiation rapide) • Le couple ( 270;82 ) est le message signé et chiffré. Phase 4 ALICE envoie le message signé et chiffré sur un canal non sécurisé. OSCAR intercepte le message signé et chiffré et décide de le modifier. • Le message modifié d’OSCAR est :m = 2 . • OSCAR envoie à BOB le message signé et chiffré : ( 32;82 ) = CB ( 2 ) 2= 5 mod 377 32 (exponentiation rapide) ________________________________________________________________________________ P.S. / 2021-2022 13 Cryptographie_p02 / AMOS
Phase 5 BOB déchiffre le message et la signature chiffrée à l’aide de sa clé privée • Supposons qu’OSCAR n’a pas modifié le message d’ALICE et que BOB reçoit : ( 270;82 ) BOB déchiffre le message signé et obtient : ( 4 ;49 ) DB ( 270 )= 270 269 mod 377= 4= m (exponentiation rapide) DB ( 82= ) 82 269 mod 377 = 49 = s (exponentiation rapide) • Supposons qu’OSCAR a modifié le message et que BOB reçoit : ( 32;82 ) BOB déchiffre le message signé et obtient : ( 2;49 ) DB ( 32 )= 32 269 mod 377= 2= m (exponentiation rapide) DB ( 82= ) 82269 mod 377= 49= s (exponentiation rapide) Phase 6 BOB effectue une authentification du message reçu à l’aide de la signature numérique et de la clé publique d’ALICE BOB calcule : C A ( s ) =C A ( 49 ) =49 3 mod 253 =4 =m ≠ m =2 (exponentiation rapide) et obtient le message m . Le message m est bien celui d’ALICE et la signature s n’est pas celle du message m . En résumé (2.19) I) ALICE signe son message avec sa clé privée. II) ALICE chiffre son message et sa signature avec la clé publique de BOB. III) BOB déchiffre le message reçu avec sa clé privée. IV) BOB effectue une authentification du message reçu à l’aide de la signature numérique et de la clé publique d’ALICE. Conclusion Soit m un message en clair et s sa signature obtenue avec DA ( m ) = s Le message provient d’ALICE si et seulement si C A ( s ) = m . Remarques a) La signature numérique s dépend du signataire (clé privée) et du document car DA ( m ) = s . Seul le signataire est capable de produire sa signature. b) N’importe qui est capable de vérifier qu’une signature s est celle d’un signataire car C A ( s ) = m . Cette vérification dépend uniquement de la clé publique. c) Chaque partenaire n'utilise que des clés publiques et sa propre clef privée (secrète), qui n'est jamais transmise. d) Les systèmes de chiffrements modernes utilisés sur Internet comme le RSA, sont asymétriques et permettent de signer un message. L’authenticité du message (garantir l’identité de l’expéditeur) et l’intégrité du message (garantir qu’il n’a pas été modifié par une tierce personne) sont cette fois assuré. ________________________________________________________________________________ P.S. / 2021-2022 14 Cryptographie_p02 / AMOS
Exercice 4 Dans cet exercice, on n’utilisera pas de programme informatique pour résoudre les problèmes. BOB est en possession de la clé publique d’ALICE qui est ( eA ;nA ) = ( 3;253 ) . BOB reçoit deux messages signés qui sont censés provenir d’ALICE (qui sont déjà déchiffrés) : 1) ( m;s ) = ( 20;103 ) 2) ( m;s ) = ( 12;47 ) Quel sont les messages valides ? Justifier chaque réponse. Exercice 5 Dans cet exercice, on n’utilisera pas de programme informatique pour résoudre les problèmes. La clé publique d’ALICE qui est ( eA ;nA ) = ( 17;437 ) . Quel est la signature d’ALICE pour le message m = 100 ? ________________________________________________________________________________ P.S. / 2021-2022 15 Cryptographie_p02 / AMOS
2.3.5 Programmes en Python 3 pour le chiffrement RSA Tous les programmes cités ci-dessous se trouvent dans le fichier : CHIFFREMENT_RSA.py Rappel : ALICE (l’expéditrice) veut transmettre un message (un texte en français, une donnée numérique, etc.) à BOB (le destinataire) sur un canal non sécurisé (réseau internet, etc.). OSCAR est l’opposant (le hacker ou le cryptanalyste). Etape 1) BOB doit générer une clef privée et une clé publique. Il effectue les opérations suivantes en secret sur son ordinateur : Algorithme et/ou Description des étapes Programmes Python 3 1.1) Il détermine deux nombres premiers distincts On peut écrire une fonction qui génère un nombre premier : p et q très grands. premier_sup(n) La société R.S.A. Data Security recommande des nombres n= p ⋅ q de 1024 bits (309 chiffres en qui utilise le test de primalité : base 10) voir 2048 bits (617 chiffres en base 10). primalité_02(n) 1.2) Il calcule : n= p ⋅ q Il calcule : ϕ ( pq ) =( p − 1)( q − 1) 1.3) Il détermine un nombre e , en général le plus pgcd_euclide(a,b) petit possible tel que : On utilise l’algorithme d’Euclide 1 < e < ϕ ( pq ) et PGCD ( e ;ϕ ( pq ) ) = 1 pour calculer rapidement le PGCD. On peut écrire une fonction qui calcule le nombre d : 1.4) Il calcule l’unique nombre d qui est l’inverse de e modulo ϕ ( pq ) : d ⋅ e ≡ 1 mod ϕ ( pq ) inv_mod(a,n) qui utilise : pgcd_euclide(a,b) On utilise les coefficients de Bézout pour coeff_bezout(a,b) calculer d . L’algorithme d’Euclide est utilisé pour calculer rapidement le PGCD et les coefficients de Bézout. On peut écrire une fonction qui 1.5) La clef privée est constituée du triplet ( d ; p;q ) génère les deux clés ( d ; p;q ) et ( e ;n ) : et connue que de BOB. CLE_RSA(c) La clef publique est constituée du couple ( e ;n ) qui utilise : premier_sup(n) et connue de tous. pgcd_euclide(a,b) inv_mod(a,n) ________________________________________________________________________________ P.S. / 2021-2022 16 Cryptographie_p02 / AMOS
Etape 2) ALICE est en possession de la clé publique ( e ;n ) et veut chiffer son message clair. En secret sur son ordinateur, elle effectue dans cet ordre : 2.1) Elle convertit chaque caractère de son message clair en une liste de nombres entiers xi par blocs de longueurs On peut écrire une fonction b ≥ 2 à l’aide du code ASCII. tel que : 0 ≤ xi < n . qui effectue se travail : Exemples TXT_BLOC(texte,b) b=1 : qui utilise : Code ASCII message clair = " ESSAI " → blocs clairs = 69 ord( ) 83 83 .... 65 73 x1 x2 x5 str( ) b=2 : Code ASCII % message clair = " ESSAI *" → blocs clairs =6983 8365 73 42 // x1 x2 x3 b=3 : eval( ) Code ASCII message clair = " ESSAI *" → blocs clairs = 698383 657342 x1 x2 2.2) Elle effectue le chiffrement du message clair à l’aide de la fonction de chiffrement C qui est bijective : On peut écrire une fonction qui effectue ce travail : x → C (= x ) x e mod= n y exp_rapide(x,k,n) Remarques qui utilise : • Les nombres yi constituent le message chiffré. % • Les paramètres de la fonction de chiffrement sont les deux nombres de la clef publique ( e;n ) générée par BOB. // • On utilise l’algorithme d’exponentiation rapide pour calculer x e mod n . 2.3) On peut écrire une fonction qui effectue d’abord la conversion par bloc d’un texte puis le chiffrement RSA : TXT_RSA(texte,b,k,n) qui utilise : TXT_BLOC(texte,b) exp_rapide(x,k,n) ________________________________________________________________________________ P.S. / 2021-2022 17 Cryptographie_p02 / AMOS
Etape 3) Le message y, chiffré par ALICE, transite via un canal non sécurisé et peut-être intercepté par OSCAR. Il ne doit pas pouvoir déchiffrer le message y. La sécurité du système de chiffrement RSA repose sur le fait que OSCAR n’arrivera pas a factoriser n= p ⋅ q et obtenir p et q en un temps « raisonnable » même avec la puissance de calculs des ordinateurs actuels et tant qu’il ne découvre pas un algorithme rapide pour factoriser les entiers. 3.1) Pour factoriser un nombre n= p ⋅ q qui est le produit On peut écrire une fonction de deux nombres premiers distincts on peut utiliser qui effectue ce travail : l’algorithme qui consiste à déterminer tous les diviseurs d’un entier n . On obtient donc D ( n ) = {1; p;q; pq} ens_div_02(n) Pour obtenir ce résultat on a testé : qui utilise : ∀i ∈ ∗ tel que 1 ≤ i ≤ n on a que i n . math.sqrt(n) 3.2) On peut améliorer l’algorithme précédant en constatant que les diviseurs d’un nombre n= p ⋅ q qui est le produit On peut écrire une fonction qui effectue ce travail : de deux nombres premiers p et q distincts n’a que des diviseurs impairs. Il suffit de vérifier parmi ens_div_impair(n) les nombres impairs lesquels sont des diviseurs de n. qui utilise : Pour obtenir ce résultat on a testé : ∀ i ∈ ∗ et i impair tel que 1 ≤ i ≤ n on a que i n . math.sqrt(n) ________________________________________________________________________________ P.S. / 2021-2022 18 Cryptographie_p02 / AMOS
Etape 4) BOB en possession de sa clé privée ( p;q;d ) va déchiffrer le message chiffré par ALICE. En secret sur son ordinateur, il effectue dans cet ordre : 4.1) Il effectue le déchiffrement du message chiffé à l’aide de la fonction de déchiffrement D qui est bijective : On peut écrire une fonction D : y → D (= y ) y mod= n x d qui effectue ce travail : Remarques exp_rapide(x,k,n) • Les nombres xi constituent le message clair. qui utilise : • Les paramètres de la fonction de déchiffrement sont les % trois nombres de la clef privée ( p;q;d ) générée par BOB. // • On utilise l’algorithme d’exponentiation rapide pour calculer y d mod n . • D ( C ( x ) ) = x et C ( D ( y ) ) = y ∀x, y ∈ n 4.2) Le message clair obtenu est écrit comme une liste de nombres entiers xi par blocs de longueurs b ≥ 2 . Il faut « casser » les blocs et à l’aide du code ASCII retrouver chaque caractère du message clair . Exemples On peut écrire une fonction qui effectue se travail : b=1 : Code ASCII BLOC_TXT(L) blocs clairs = 69 83 83 65 73 → message clair = " ESSAI" .... x1 x2 x5 qui utilise : b=2 : Code str( ) ASCII blocs clairs = 69 83 8365 7 342 → message clair = " ESSAI *" // x1 x2 x3 b=3 : Code ASCII blocs clairs= 698383 657342 → message clair= " ESSAI * " x1 x2 On peut écrire une fonction 4.3) qui effectue d’abord le déchiffrement RSA puis la conversion des blocs en texte : RSA_TXT(L,k,n) qui utilise : exp_rapide(x,k,n) BLOC_TXT(L) ________________________________________________________________________________ P.S. / 2021-2022 19 Cryptographie_p02 / AMOS
Exercice 6 Résoudre cet exercice en vous aidant des programmes contenus dans le fichier : CHIFFREMENT_RSA.py a) Ci-dessous on donne 4 paires de clés publiques et privées du chiffrement RSA. 1) Clé privée : ( d ; p;q ) = ( 1321;31;67 ) Clé publique : ( e;n ) = ( 661;2043 ) 2) Clé privée : ( d ; p;q ) = ( 29199;211;431) Clé publique : ( e;n ) = ( 101;90941) 3) Clé privée : ( d ; p;q ) = ( 472001;1203;2411) Clé publique : ( e;n ) = ( 4001;2895611) 4) Clé privée : ( d ; p;q ) = ( 4563217;1511;3023 ) Clé publique : ( e;n ) = ( 6;4567753 ) Quels sont les paires de clés correctes ? Justifier. Dans le cas où la paire de clé n’est pas correcte modifiez-la afin qu’elle corresponde au protocole RSA. Il y a au plus une erreur. b) Comprendre et expliquer brièvement chaque partie (ligne de code) du programme Python 3 : CLE_RSA(c) c) Calculer le temps nécessaire à votre ordinateur pour obtenir CLE_RSA(c) avec : 1) c = 1015 2) c = 1016 3) c = 1017 4) c = 1018 5) c = 1019 6) c = 10 20 Rappel En Python 3 on peut calculer le temps d’exécution d’un programme à l’aide des commandes suivantes : import time as tm t1= tm.perf_counter() ……. ……. (programme) ……. t2= tm.perf_counter() print("Temps d'exécution=",t2-t1,"secondes") ________________________________________________________________________________ P.S. / 2021-2022 20 Cryptographie_p02 / AMOS
Exercice 7 Résoudre cet exercice en vous aidant des programmes contenus dans le fichier : CHIFFREMENT_RSA.py a) Comprendre et expliquer brièvement chaque Code ASCII partie (ligne de code) du programme Python 3 : TXT_BLOC(texte,b) b) Tester le programme ci-dessus avec : 1) texte = « ELEVE » et b=1 2) texte = « ELEVE » et b=2 3) texte = « ELEVE » et b=3 4) texte = « ELEVE » et b=4 c) Considérons un système de chiffrement RSA constitué des deux clés valides suivantes : Clé privée : ( d ; p;q ) = ( 10357;71;149 ) Clé publique : ( e;n ) = ( 3453;10579 ) Chiffrer, à l’aide de la clé publique ci-dessus, les nombres des listes suivantes : 1) L = [69, 76, 69, 86, 69] 2) L = [6976, 6986, 6942] 3) L = [697669, 866942] 4) L = [69766986, 69424242] d) Pour quelle(s) valeur(s) de b a-t-on effectué un chiffrement mono-alphabétique ? Quel est le risque de ce genre de chiffrement ? e) Pour quelle(s) valeur(s) de b a-t-on effectué un chiffrement par bloc ? Est-il plus efficace qu’un chiffrement mono-alphabétique ? ________________________________________________________________________________ P.S. / 2021-2022 21 Cryptographie_p02 / AMOS
Exercice 8 Résoudre cet exercice en vous aidant des programmes contenus dans le fichier : CHIFFREMENT_RSA.py a) Comprendre et expliquer brièvement chaque partie (ligne de code) du programme Python 3 : ens_div_impair(n) b) Calculer le temps nécessaire à votre ordinateur pour obtenir : 1) le produit de p = 71 avec q=149 . 2) l’ensemble des diviseurs de n = p ⋅ q = 71 ⋅ 149 = 10579 . 3) Comparer les temps d’exécutions. Que constatez-vous ? c) Calculer le temps nécessaire à votre ordinateur pour obtenir : 1) le produit p = 10000000000000061 avec q=20000000000000129 . 2) l’ensemble des diviseurs de n = p ⋅ q = 10000000000000061⋅ 20000000000000129 . 3) Comparer les temps d’exécutions. Que constatez-vous ? d) ALICE est professeur d’application des Mathématiques et discute souvent de cryptographie avec BOB qui est le gestionnaire des notes de l’école. L’école décide d’utiliser un protocole de chiffrement RSA et BOB est responsable de générer : • une clé privée ( d ; p;q ) qu’il conserve en secret. • une clé publique ( e;n ) = ( 101;1427247692705959880439315947500961989719490561) qui est connue de tous les professeurs et même des élèves. OSCAR qui est un élève d’ALICE et passionné de sécurité informatique, entend dans les couloirs une discussion entre ALICE et BOB dont le sujet sont les nombres de Mersenne premiers (voir Wikipédia). 1) Expliquer pourquoi, cette information va permettre à OSCAR de connaître la clé privée ( d ; p;q ) que BOB garde pourtant secrète et ainsi de rendre obsolète le protocole de chiffrement RSA mis en place par l’école. 2) En écrivant un programme Python 3 ou en utilisant des programmes Python 3 déjà écrits, déterminer la clé privée ( d ; p;q ) utilisée. Nom du fichier : ex_8__cryptanalyse_Mersenne ________________________________________________________________________________ P.S. / 2021-2022 22 Cryptographie_p02 / AMOS
Exercice 9 Résoudre cet exercice en vous aidant des programmes contenus dans le fichier : CHIFFREMENT_RSA.py a) Considérons le chiffrement RSA constitué des deux clés valides suivantes : Clé privée : ( d ; p;q ) = ( 10357;71;149 ) Clé publique : ( e;n ) = ( 3453;10579 ) Déchiffrer, à l’aide de la clé privée ci-dessus, les nombres des listes suivantes : 1) L = [7213, 4740, 7213, 2139, 7213] 2) L = [8294, 340, 3500] 3) L = [7139, 5426] 4) L = [6476 , 121] Code ASCII b) Comprendre et expliquer brièvement chaque partie (ligne de code) du programme Python 3 : BLOC_TXT (L) Tester le programme ci-dessus avec : 1) L = [69, 76, 69, 86, 69] 2) L = [6976, 6986, 6942] 3) L = [10034, 10043] 4) L = [9060, 4844] c) Expliquer pourquoi BLOC_TXT ([9060, 4844]) ne donne pas en sortie la chaîne de caractère "ELEVE" mais plutôt "Z
Exercice 10 Résoudre cet exercice en vous aidant des programmes contenus dans le fichier : ex_CHIFFREMENT_RSA.py ALICE (cliente d’une banque) veut transmettre le message clair m à BOB (banquier) sur un canal non sécurisé. Ils décident d’utiliser le chiffrement RSA et créent chacun une paire de clé privée et publique distinctes. Clé privée : ( d A ; p A ;q A ) Clé publique : ( eA ;nA ) La paire de clé d’ALICE est : Fonction déchiffrement : DA Fonction chiffrement : C A La paire de clé de BOB est : Clé privée : ( d B ; pB ;qB ) Clé publique : ( eB ;nB ) Fonction déchiffrement : DB Fonction chiffrement : CB De plus, chaque message envoyé par ALICE sera signé numériquement selon le procédé suivant : Soit m un message en clair et s sa signature obtenue avec DA ( m ) = s Le message provient d’ALICE si et seulement si C A ( s ) = m . a) Admettons qu’ALICE = choisisse nA 200000850000893 = ; d A 120000492000497 et que BOB = choisisse pB 100000007 = ; qB 200000033 = ; eB 3 . 1) Quelle est la clé publique et privée d’ALICE ? 2) Quelle est la clé publique et privée de BOB ? ALICE veut verser sur le compte de CHARLES la somme de 1000 francs. ALICE doit donc envoyer le message en clair m = " MILLEFRANCS " à BOB pour qu’il valide la transaction. 3) Convertir le message en clair m en 3 blocs de longueurs b = 4 à l’aide du code ASCII et signer chacun des blocs avec la clé privée d’ALICE. Autrement dit : ( mbloc1 ;sbloc1 ) , ( mbloc 2 ;sbloc 2 ) , ( mbloc3 ;sbloc3 ) 4) Chiffrer à l’aide de la clé publique de BOB chacun des blocs (message en clair) et la signature de chacun des blocs. Ces informations seront envoyées par ALICE à l’attention de BOB sur un canal non sécurisé. 5) Déchiffrer à l’aide de la clé privée de BOB les blocs chiffrés et la signature chiffrée de chacun des blocs. 6) Vérifiez l’authenticité du message reçu par BOB à l’aide de la clé publique d’ALICE. Indication : vous pouvez écrire un programme Python 3 pour vous aider dans cette tâche. b) BOB reçoit un message m possédant une signature s : ( m;s ) = (78698570;147014127544948 ) 1) Quel est le texte en français correspondant au message m ? 2) Ce message m a-t-il été envoyé par ALICE ? Justifier. Nom du fichier : ex_10_signature_RSA.py ________________________________________________________________________________ P.S. / 2021-2022 24 Cryptographie_p02 / AMOS
2.3.6 Attaque de l’homme du milieu (Man-in-the Middle Attack) On a étudié précédemment le système de chiffrement RSA qui garantit à la fois confidentialité, authenticité et intégrité. Malheureusement il existe une attaque qui détruit ses trois propriétés de sécurité de n'importe quelle communication ; c'est l'attaque qu'on appelle l'attaque de l'homme au milieu ou man in the middle attack. Comme son nom l'indique le principe de cette attaque est de se positionner entre les deux participants de la communication afin de pouvoir non seulement écouter les communications mais aussi intercepter n'importe quelle communication c’est-à-dire contrôler le canal pour décider ce qui passe et ce qui ne passe pas sur le canal. Nous allons maintenant décrire les étapes de cette attaque : • ALICE (l’expéditrice) possède une clé privée ( d A ; p A ;q A ) et une clé publique ( eA ;nA ) . BOB (le destinataire) possède aussi une clé privée ( d B ; pB ;qB ) et une clé publique ( eB ;nB ) . • OSCAR (l’opposant ou l’homme au milieu) est située entre ALICE et BOB et toutes les communications passe par lui. OSCAR ALICE BOB Canal non sécurisé. • ALICE envoie un message à BOB pour lui demander sa clé publique c’est-à-dire : ( eB ;nB ) . • OSCAR reçoit le message et décide de le laisser passer. • BOB reçoit le message et envoie sa clé publique ( eB ;nB ) en réponse. • OSCAR intercepte ce message et cette fois décide de le bloquer pour le modifier. • OSCAR crée aussi une clé privée ( dO ; pO ;qO ) et une clé publique ( eO ;nO ) . • L'étape cruciale est la suivante : OSCAR remplace la clé publique de BOB ( eB ;nB ) par sa propre clé publique ( eO ;nO ) . Il envoie ensuite le message à ALICE. • ALICE n’a aucune idée que le message a été modifié et crois que ( eO ;nO ) est la clé publique de BOB. ________________________________________________________________________________ P.S. / 2021-2022 25 Cryptographie_p02 / AMOS
Vous pouvez aussi lire