Aller au contenu

TP - Chiffrement asymétrique RSA

Le sujet original de ce TP a été conçu par Jean DIRAISON, enseignant de l'académie de Rennes. Qu'il en soit ici remercié.

Ce TP a pour but de vous faire manipuler un programme de chiffrement RSA.

  1. Téléchargez le fichier RSA.py puis enregistrez-le dans votre répertoire de travail [C03-Securisation].

  2. Ce fichier contient les fonctions nécessaires pour réaliser un chiffrement asymétrique RSA. Cependant ces fonctions sont très peu documentées. Lisez le contenu de ce fichier et essayez de comprendre le rôle de chacune des fonctions, en particulier les fonctions :

    1. genere_cles() ;
    2. crypter() ;
    3. decrypter().
  3. Dans ce même répertoire, créez le fichier TPC03.20.py et importez le module RSA.py dans l'en-tête.

  4. Écrire un programme qui réalise les étapes suivantes :

    • Arthur génère un couple (clef publique ; clef privé).
      On rappelle que sa clef publique est connue de tous.

    • Il utilise sa clef privée pour chiffrer le message « Hello World! », qu'il envoie à Béa.

    • Béa et un espion (qui a intercepté le message) lisent le message d'Arthur en utilisant la clef publique.

    • Béa utilise la clef publique d'Arthur pour chiffrer le message « OK », qu'il envoie à Arthur.

    • Arthur lit le message de Béa en utilisant sa clef privée.
      Un espion, qui a intercepté le message, lit le message de Béa en utilisant la clef publique d'Artur.

    Affichages à obtenir

    Les clefs publiques et privées d'Arthur seront bien évidemment différentes à chaque exécution du programme...

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Arthur communique sa clef publique : (65537, 9705674945439557716306944596338538911163407726981859236518698159963176062780935086337082195164913512240231521392821455284812321920605079203206920006144403)
    
    Arthur envoie le message chiffré par sa clef privée : [5036821990462260634651281352465866084897248261663576389057838422980446251049980145611957456845051528735647317460021922980880735576833115565495954998958810]
    Béa lit : Hello World!
    L'espion lit : Hello World!
    
    Béa envoie un message chiffré par la clef publique : [8174174215440155169835485811921388729869407773204552897971214965586976418673998911302209843769438977110576069888385879959133436703408156222245871397708152]
    Arthur lit : OK
    L'espion lit : ‹V(.ÚÜGV5HÎ?ßY¾—\WhþP?9êÛbIëÕu]=ÍãÝDXð;w8TÑBF°y}…UG#