La cryptographie asymétrique : RSA Par Simon Chabot (TuxWeb) www.siteduzero.com

La cryptographie asymétrique : RSA Par Simon Chabot (TuxWeb) www.siteduzero.com Licence Creative Commons 7 2.0 Dernière mise à jour le 18/09/2010 Sommaire 2 Sommaire ........................................................................................................................................... 1 Partager .............................................................................................................................................. 3 La cryptographie asymétrique : RSA .................................................................................................. 4 Partie 1 : La théorie ............................................................................................................................. 4 RSA ? Qu'est-ce donc ? .................................................................................................................................................... 4 Les inventeurs du système RSA ................................................................................................................................................................................. 4 Comment ça fonctionne ? ........................................................................................................................................................................................... 5 Comment Bob fait-il pour envoyer un message chiffré à Alice ? ................................................................................................................................. 5 Comment Alice déchiffre-t-elle le message reçu ? ...................................................................................................................................................... 5 Qu'est-ce que l'attaque du milieu ? ............................................................................................................................................................................. 7 Comment crée-t-on nos clés ? .......................................................................................................................................... 7 Création de la clé publique .......................................................................................................................................................................................... 7 Création de la clé privée ............................................................................................................................................................................................. 7 Comment trouver U ? .................................................................................................................................................................................................. 9 U = -713 n'est pas acceptable ! ................................................................................................................................................................................... 9 Ca y est ! ..................................................................................................................................................................................................................... 9 Des clés sécurisées .................................................................................................................................................................................................... 10 Et le chiffrage, comme ça se passe ? ............................................................................................................................. 11 Tout fonctionne avec des chiffres ! ............................................................................................................................................................................ 11 Quelle solution prendre ? .......................................................................................................................................................................................... 11 Un programme de calcul ........................................................................................................................................................................................... 12 Le chiffrage proprement dit ....................................................................................................................................................................................... 12 Etape 1 : remplacement des caractères par leurs valeurs ASCII .............................................................................................................................. 12 Etape 2 : Premier calcul, la puissance ...................................................................................................................................................................... 13 Etape 3 : Deuxième et dernier calcul : le modulo ...................................................................................................................................................... 13 On a fini .................................................................................................................................................................................................................... 14 Effectuer le chiffrage grâce à une seule et unique fonction ...................................................................................................................................... 14 Le déchiffrage .................................................................................................................................................................. 15 L'utilisation de la clé privée ....................................................................................................................................................................................... 15 Etape 1 : Premier calcul, la puissance ...................................................................................................................................................................... 15 Etape 2 : Le modulo .................................................................................................................................................................................................. 15 Etape 3 : Le remplacement ....................................................................................................................................................................................... 15 Le tout en une fonction .............................................................................................................................................................................................. 16 Partie 2 : La pratique ......................................................................................................................... 16 GMP - "Arithmetic without limitation" ............................................................................................................................... 16 L'intérêt de cette bibliothèque ................................................................................................................................................................................... 16 Installation sous Windows ......................................................................................................................................................................................... 16 Préparation... ............................................................................................................................................................................................................. 17 Compilation... ............................................................................................................................................................................................................ 17 Installation sous GNU/Linux ...................................................................................................................................................................................... 18 Créer un projet avec notre nouvelle bibliothèque ...................................................................................................................................................... 18 Notre premier programme ......................................................................................................................................................................................... 18 Compiler notre code .................................................................................................................................................................................................. 19 Comment utiliser GMP ? ................................................................................................................................................. 20 L'objet mpz_class ...................................................................................................................................................................................................... 20 Les opérateurs usuels ............................................................................................................................................................................................... 20 Sommes, différences, produits, quotients. ................................................................................................................................................................ 21 Les divisions .............................................................................................................................................................................................................. 22 Quelques fonctions mathématiques... ....................................................................................................................................................................... 22 La fonction "modulo" ................................................................................................................................................................................................. 23 La fonction "puissance" ............................................................................................................................................................................................. 23 Une fonction idéale pour RSA ! ................................................................................................................................................................................. 2/24 www.siteduzero.com La cryptographie asymétrique : RSA Par Simon Chabot (TuxWeb) Mise à jour : 18/09/2010 Difficulté : Intermédiaire Durée d'étude : 20 jours 612 visites depuis 7 jours, classé 196/797 Bonjour chers Zéros ! Il est sans doute probable que vous vous soyez demandés comment faisait-on pour chiffrer des données confidentielles (par exemple, les paiements par cartes bleues, ou bien les paiements en lignes, etc..). Et bien je vais tenter d'y répondre en vous présentant le fonctionnement du système RSA. Et par la suite la création d'un programme en C++ qui permet de chiffrer des messages grâce à ce système tant utilisé. Sommaire 3/24 www.siteduzero.com Partie 1 : La théorie Dans cette partie, nous allons voir comment il est possible de chiffrer (et de déchiffrer) un message grâce au système RSA. RSA ? Qu'est-ce donc ? Le système RSA est un moyen puissant de chiffrer des données personnelles. Aujourd'hui, il nous entoure sans même que nous le sachions. Il est dans nos cartes bancaires, nos transactions, nos messageries, nos logiciels... Pour commencer, voyons d'abord par qui il a été inventé. Nous finirons par étudier son fonctionnement général. Les inventeurs du système RSA Le système de chiffrement RSA a été inventé par trois mathématiciens : Ron Rivest, Adi Shamir et Len Adleman, en 1977 (On retrouve le sigle RSA dans les noms des inventeurs). V oici une photo des trois mathématiciens en question Ce système de chiffrement est beaucoup utilisé dans le e-commerce (paiement en ligne, etc...), mais aussi dans les cartes bleues, dans les logiciels (exemple : OpenSSH), etc... Comment ça fonctionne ? Dans l'univers de la cryptographie, on distingue deux types de chiffrement : le chiffrement asymétrique et symétrique. Les systèmes symétriques utilisent une seule clé pour chiffrer et déchiffrer (exemple : Chiffre de César). On peut utiliser la métaphore du coffre fort : le coffre fort dispose d'une seule clé qui est la même pour ouvrir et fermer le coffre. En revanche, les systèmes asymétriques utilisent deux clés. Une pour chiffrer et une autre pour déchiffrer. On appelle clé publique la clé servant à chiffrer et clé privée la clé servant à déchiffrer. La clé publique est visible par tout le monde dans une espèce d'annuaire qui associe à chaque personne sa clé publique. La clé privée n'est visible et connue que par son propriétaire. Il ne faut en aucun cas que quelqu'un d'autre que le propriétaire entre en possession de celle-ci. Si une quelconque personne obtenait une clé privée qui n'est pas la sienne, elle serait alors en mesure de lire les messages chiffrés qui ne lui sont pas destinés. On peut ainsi voir la clé publique comme une espèce de boite aux lettres (où n'importe qui peut mettre - chiffrer - des messages) et seul le propriétaire de la clé de la boite (clé privée) peut lire - déchiffrer - les messages) Le système de chiffrement RSA est un système de chiffrement dit asymétrique. Pour la suite du tutoriel, on va prendre deux personnages : Alice et Bob. (Ce sont les personnages que l'on utilise très souvent quand on parle de cryptographie, alors je ne vais pas changer ) La cryptographie asymétrique : RSA 4/24 www.siteduzero.com J'ai donc l'honneur de vous présenter nos chers compagnons, en chair et en os, Alice : et Bob : Alice et Bob possèdent tout deux une clé publique et une clé privée. Comment Bob fait-il pour envoyer un message chiffré à Alice ? Nous avons vu précédemment que pour chiffrer un message, on utilisait la clé publique. Bob va donc aller sur un annuaire et prendre la clé publique d'Alice. Une fois qu'il la possède, il chiffre le message qu'il veut envoyer à Alice, puis le lui envoie. Comment Alice déchiffre-t-elle le message reçu ? Alice vient de recevoir le message chiffré de Bob, grâce à sa clé privée (qu'elle seule possède), elle peut déchiffrer et lire le message que Bob a envoyé. Où réside la force du système RSA ? 1. Contrairement à de nombreux systèmes de chiffrement, tel que le chiffrement affine, qui sont des systèmes de chiffrement symétriques, dit à clé secrète, le système RSA ne nécessite pas de transfert de clé entre l'expéditeur et le destinataire. C'est un point de sécurité qui n'est nullement négligeable puisqu'ainsi personne d'autres que les concernés ne peuvent comprendre le message chiffré. 2. Le système RSA, comme tous les systèmes asymétriques, est basé sur les fonctions à sens uniques. (C'est à dire qu'il est simple d'appliquer la fonction, mais extrêmement difficile de retrouver l'antécédent la fonction à partir de son image seulement). Pour inverser cette fonction, il faut un élément supplémentaire, une aide : la clé privée. Mais, ce genre de système, ce n'est pas infaillible, si ? Eh non, malheureusement, ce n'est pas infaillible... Il existe plusieurs attaques contre le système RSA. Notamment les attaques de Wiener, Hastad, par chronométrage, ou encore l'attaque du milieu. Pour ma part, je vais détailler l'attaque du milieu, car c'est une attaque "type" des systèmes asymétriques (Pour plus d'explications sur les autres types d'attaques cliquez ici) Qu'est-ce que l'attaque du milieu ? Afin d'expliquer le plus clairement possible ce qu'on appelle "attaque du milieu", je vais faire intervenir un troisième personnage, "l'espion" : Le rôle de l'espion est de se faire passer pour Bob aux yeux d'Alice, et de se faire passer pour Alice aux yeux de Bob. L'espion va se placer "au milieu" d'Alice et Bob. Il va récupérer dans l'annuaire la clé publique d'Alice. Puis va s'arranger pour que Bob prenne sa clé publique au lieu de celle d'Alice (sans que Bob ne s'en aperçoive, évidement). Bob va donc chiffrer le message avec la clé publique de l'espion. Lors de l'envoi du message chiffré de Bob à Alice, l'espion va l'intercepter, et grâce à sa propre clé privée le déchiffrer et le lire. Une fois qu'il aura le message en clair, il peut éventuellement le re-chiffrer avec la clé publique d'Alice et lui envoyer le message afin de passer inaperçu... Partie 1 : La théorie 5/24 www.siteduzero.com V oilà, normalement vous devriez avoir compris comment on pouvait, en théorie, chiffrer et déchiffrer des messages avec un système asymétrique. Dans le prochain chapitre, on va voir comment créer les clés privée, et publique ! (Là, il y aura un peu de mathématiques ) Partie 1 : La théorie 6/24 www.siteduzero.com Comment crée-t-on nos clés ? Dans cette partie nous allons apprendre à créer les clés privée et publique qui nous servirons plus tard à chiffrer et déchiffrer les messages. Il faut quelques notions en mathématiques, mais je vais faire de mon mieux pour être le plus explicite possible. Création de la clé publique Pour créer notre clé publique il nous faut choisir deux nombres premiers. Un nombre premier est un nombre supérieur ou uploads/Geographie/ 2170-la-cryptographie-asymetrique-rsa-pdf.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager