Ecole Nationale des Sciences Appliquées                Tanger            Rapport TPSécurité des Systèmes Informatiques    ...
INTRODUCTION        La cryptographie est une science permettant de convertir des informations "en clair" eninformations co...
I.      ALGORITHME RSALalgorithme RSA a été proposé par Rivest, Shamir et Adleman en 1977, puis mis au point enfévrier 198...
Etant donné un nombre entier n=p*q produit de 2 grands nombres premiers, il est très difficile deretrouver les facteurs p ...
II.      PARTIE PRATIQUE         1) Premier test         On va envoyer le message secret: ENSA DE TANGER.D’abord, on code ...
La suite des messages ASCII, Crypté et Décrypté :                                                    5
3) Troisième testOn réalise maintenant notre application client-serveur.Cette application peut fonctionner sur deux et plu...
Ainsi, à l’émission on a :                             7
Et à la réception on obtient :Si on effectue l’opération inverse, on aura :A l’émission du message :                      ...
Et la réception nous donne :On constate alors notre application client-serveur marche correctement !CONCLUSIONNous avons p...
Prochain SlideShare
Chargement dans…5
×

Tp rsa1

923 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
923
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
31
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Tp rsa1

  1. 1. Ecole Nationale des Sciences Appliquées Tanger Rapport TPSécurité des Systèmes Informatiques Réalisé par : A N N E P A U L E YAO Y A H I A ZIZI Proposé et Encadré par : Mme S A I I D A LAZAAR Année Universitaire : 2010/2011
  2. 2. INTRODUCTION La cryptographie est une science permettant de convertir des informations "en clair" eninformations codées, cest à dire non compréhensibles, puis, à partir de ces informations codées,de restituer les informations originales.Cette discipline concerne la protection des messages durant la communication depuis l’émetteurjusqu’au récepteur en passant par le réseau de transport afin que chacune des entités offre unegarantie.La cryptographie assure alors la confidentialité, l’authenticité et l’intégrité des messages transmisà l’aide de clés. En effet, l’homme a depuis toujours ressenti de dissimuler les informations et avec ledéveloppement de l’informatique et du réseau internet qui est devenu un outil essentiel decommunication, l’on doit faire face à de nombreux problèmes qui ne cessent d’évolués tels quel’interception, la suppression de données, leur modification ou encore la réception de ces donnéespar un utilisateur différent du récepteur prévu.Il devient donc indispensable de garantir la sécurité de ces informations et c’est la cryptographiequi s’en charge. L’objectif de ce TP est de se familiariser avec la cryptographie et plus précisément avecl’algorithme RSA en créant une application client-serveur dans laquelle les conversations serontcryptées à l’aide de l’algorithme RSA ; ceci en utilisant le langage de programmation Java.Ce rapport est divisé en deux grandes parties :La première présente l’algorithme RSA et son mécanisme de fonctionnement avec les clés.La deuxième partie traite d’une série de tests afin de valider notre algorithme et notre application. 1
  3. 3. I. ALGORITHME RSALalgorithme RSA a été proposé par Rivest, Shamir et Adleman en 1977, puis mis au point enfévrier 1988.RSA est un exemple type dalgorithme asymétrique. Il consiste en ceci :  Lutilisateur choisit deux grands nombres premiers p et q ; ces nombres doivent être géants.  Il calcule n = p q.  Il choisit ensuite un autre nombre e inférieur à n (e < (p – 1)*(q – 1)) ; e et (p – 1)*(q – 1) doivent être premiers entre eux.  Il publie le couple (e, n) qui constitue sa clé publique et garde secrets p et q.  À partir de là, il calcule sa clé secrète en cherchant le nombre d tel que e*d=1 mod ((p-1)*(q-1)).  Il garde secret sa clé privée (d, n). 1) Comment utiliser les clés RSA ?  Pour crypter un message m : M = me (modulo(n))  Pour le décrypter le message, on applique : m = Md (modulo(n)).Ainsi,  Lenvoi dun message m se fait donc en calculant : M = me (modulo n)  La lecture du message en calculant : m = Md (modulo(n)) = (me (modulo n))d (modulo n).  La signature dun message se fait en envoyant : M = md (modulo n) 2) Avantages et limitations de l’algorithme RSA Le chiffrement RSA comporte plusieurs avantages :C’est un algorithme de cryptographie asymétrique ainsi chaque utilisateur comporte deux clés :  Une clé privée qui doit être gardée secrète.  Une clé publique qui est disponible pour tous les autres utilisateurs. 2
  4. 4. Etant donné un nombre entier n=p*q produit de 2 grands nombres premiers, il est très difficile deretrouver les facteurs p et q.Aussi, daprès la théorie des nombres, il existe toujours un nombre d (clé secrète) mais son calculest impossible si on ne connaît pas p et q.Avec une clé de 128 bits qui peut paraître petite, RSA offre une protection suffisante pour uneattaque exhaustive, en essayant toutes les clés : on a 2128 possibilités ce qui est déjà un nombreénorme (tous les ordinateurs du monde ne peuvent tester 2128 clés).Les clés RSA sont habituellement de longueur comprise entre 1 024 et 2 048 bits. On peut doncprésumer que RSA est sûr sur cette base si la taille de la clé est suffisamment grande.Le succès du RSA est quil nexiste pas dalgorithme connu du grand public pour réaliser uneattaque force brute (consiste à retrouver p et q sur base de la connaissance de n uniquement)avec des ordinateurs classiques. Cependant, cet algorithme présente également de nombreuses lacunes :C’est un algorithme lent avec des clés de très grandes tailles.Avec des logiciels, on peut trouver la factorisation d’une clé de taille inférieure à 512 bits.Il existe plusieurs types d’attaques de l’algorithme RSA : Attaque de Wiener, Attaque de Håstad,Attaque par chronométrage (timing attacks), Attaque par « chiffrement choisi » (Adaptive chosenciphertext attacks)L’analyse d’experts en cryptanalyse permet de casser aisément les clés RSA. 3
  5. 5. II. PARTIE PRATIQUE 1) Premier test On va envoyer le message secret: ENSA DE TANGER.D’abord, on code le message : pour crypter un message, celui-ci doit dabord être converti en unnombre M. On va donc traduire tout d’abord les mots en bits selon le code ASCII.Ensuite, on attribue des valeurs aléatoirement à p, q et on calcule n, e et d.On lance la procédure de cryptage sur le code ASCII obtenu afin d’aboutir au texte chiffré.Finalement, on décrypte le message obtenu et on vérifie bien quon retrouve ENSA DE TANGER. 2) Deuxième testOn refait lexemple précédent en changeant les clés et en codant notre propre message« On crypte notre message avec l’algorithme RSA ». On retrouve bien le même message. 4
  6. 6. La suite des messages ASCII, Crypté et Décrypté : 5
  7. 7. 3) Troisième testOn réalise maintenant notre application client-serveur.Cette application peut fonctionner sur deux et plus de machines (l’une des machines étant leserveur). Elle permet d’envoyer via un réseau des messages cryptés aux différents utilisateurs quirécupèrent le message envoyé et crypté ‘en clair’.Ainsi, on crée sur la machine serveur plusieurs fichiers à chaque fois qu’on envoie un message:  On récupère nos clés publiques (e, n) dans des fichiers test ‘cle_E’ et ‘cle_N’ qui seront dans un dossier partagé sur le réseau.  On place également notre message crypté dans un autre fichier ‘MsgC’ test sous forme de tableau de BigInteger.Procédure d’envoie d’un message :Lorsqu’un utilisateur écrit un message et clique sur Envoyer :  Les nombres premiers p et q sont générés automatiquement et aléatoirement.  On calcule ensuite les clés publiques (e, n) et privées (d, n).  On crée les fichiers ‘cle_E’ et ‘cle_N’.  On traduit le message texte en code ASCII qui sera par la suite crypté à l’aide de la clé privée (d, n)  Le message crypté obtenu est placé dans le fichier ‘MsgC’.Il y a aussi le bouton Crypter qui permet d’afficher en caractères non décimales le message cryptéafin de vérifier avant d’envoyer que la procédure a été effectuée correctement.Procédure de réception du message :L’utilisateur à qui est destiné le message va dans sa boite de réception et clique sur Lire :  Le programme récupère sur la machine serveur le message crypté envoyé.  Il récupère aussi la clé publique (e, n) partagée.  Il parcourt alors ces fichiers et effectue l’opération de décryptage.  Puis, il affiche le message décrypté sous forme de lettres.  Le message obtenu est bien le message envoyé et crypté par l’émetteur. 6
  8. 8. Ainsi, à l’émission on a : 7
  9. 9. Et à la réception on obtient :Si on effectue l’opération inverse, on aura :A l’émission du message : 8
  10. 10. Et la réception nous donne :On constate alors notre application client-serveur marche correctement !CONCLUSIONNous avons pu grâce à ce TP consolider nos connaissances théoriques sur la cryptographie etsurtout sur l’algorithme RSA et de les mettre en pratique.En effet, l’algorithme RSA permet d’avoir une conversation sécurisée et fiable dans une applicationclient-serveur.Nous avons donc pu mieux comprendre le mécanisme de fonctionnement de cet algorithme ainsitoutes les procédures d’envoie, de réception et de signature d’un message. L’utilisation du langagede programmation Java a été également un plus car ce TP nous a permis de cerner d’autresfonctionnalités de ce langage utilisé dans la cryptographie. 9

×