SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
Ecole Nationale des Sciences Appliquées

                Tanger




            Rapport TP
Sé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
INTRODUCTION

        La cryptographie est une science permettant de convertir des informations "en clair" en
informations codées, c'est à 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’émetteur
jusqu’au récepteur en passant par le réseau de transport afin que chacune des entités offre une
garantie.
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 le
développement de l’informatique et du réseau internet qui est devenu un outil essentiel de
communication, l’on doit faire face à de nombreux problèmes qui ne cessent d’évolués tels que
l’interception, la suppression de données, leur modification ou encore la réception de ces données
par 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 cryptographie
qui s’en charge.


         L’objectif de ce TP est de se familiariser avec la cryptographie et plus précisément avec
l’algorithme RSA en créant une application client-serveur dans laquelle les conversations seront
crypté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
I.      ALGORITHME RSA

L'algorithme RSA a été proposé par Rivest, Shamir et Adleman en 1977, puis mis au point en
février 1988.

RSA est un exemple type d'algorithme asymétrique. Il consiste en ceci :

    L'utilisateur 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,
    L'envoi d'un 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 d'un 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
Etant donné un nombre entier n=p*q produit de 2 grands nombres premiers, il est très difficile de
retrouver les facteurs p et q.

Aussi, d'après la théorie des nombres, il existe toujours un nombre d (clé secrète) mais son calcul
est 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 une
attaque 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 donc
présumer que RSA est sûr sur cette base si la taille de la clé est suffisamment grande.

Le succès du RSA est qu'il n'existe pas d'algorithme connu du grand public pour réaliser une
attaque 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 chosen
ciphertext attacks)


L’analyse d’experts en cryptanalyse permet de casser aisément les clés RSA.




                                                                                                      3
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 d'abord être converti en un
nombre 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 qu'on retrouve ENSA DE TANGER.




         2) Deuxième test

On refait l'exemple 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
La suite des messages ASCII, Crypté et Décrypté :




                                                    5
3) Troisième test

On réalise maintenant notre application client-serveur.

Cette application peut fonctionner sur deux et plus de machines (l’une des machines étant le
serveur). Elle permet d’envoyer via un réseau des messages cryptés aux différents utilisateurs qui
ré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
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 :




                                                8
Et la réception nous donne :




On constate alors notre application client-serveur marche correctement !



CONCLUSION

Nous avons pu grâce à ce TP consolider nos connaissances théoriques sur la cryptographie et
surtout 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 application
client-serveur.

Nous avons donc pu mieux comprendre le mécanisme de fonctionnement de cet algorithme ainsi
toutes les procédures d’envoie, de réception et de signature d’un message. L’utilisation du langage
de programmation Java a été également un plus car ce TP nous a permis de cerner d’autres
fonctionnalités de ce langage utilisé dans la cryptographie.



                                                                                                      9

Contenu connexe

Tendances

Gestion et Suivi des Projets informatique
Gestion et Suivi des Projets informatiqueGestion et Suivi des Projets informatique
Gestion et Suivi des Projets informatique
Jihed Kaouech
 

Tendances (20)

Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
Présentation PFE "Refonte et déploiement d’une solution de messagerie en util...
 
Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique Rapport du Projet de Fin d'année Génie informatique
Rapport du Projet de Fin d'année Génie informatique
 
Rapport Projet de Fin d'Etudes
Rapport Projet de Fin d'EtudesRapport Projet de Fin d'Etudes
Rapport Projet de Fin d'Etudes
 
These
TheseThese
These
 
Uml
UmlUml
Uml
 
Gestion et Suivi des Projets informatique
Gestion et Suivi des Projets informatiqueGestion et Suivi des Projets informatique
Gestion et Suivi des Projets informatique
 
Installer et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linuxInstaller et configurer NAGIOS sous linux
Installer et configurer NAGIOS sous linux
 
Mehari
MehariMehari
Mehari
 
conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...conception et réalisation plateforme collaboratif basant sur la methode agile...
conception et réalisation plateforme collaboratif basant sur la methode agile...
 
Soutenance
Soutenance Soutenance
Soutenance
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Conception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIREConception et Réalisation d’une application de Gestion SCOLAIRE
Conception et Réalisation d’une application de Gestion SCOLAIRE
 
Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...Conception et réalisation d’un Système d’information des étudiants du départe...
Conception et réalisation d’un Système d’information des étudiants du départe...
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Architectures des applications pour l internet des objets : les files de mess...
Architectures des applications pour l internet des objets : les files de mess...Architectures des applications pour l internet des objets : les files de mess...
Architectures des applications pour l internet des objets : les files de mess...
 
Modèle en v
 Modèle en v Modèle en v
Modèle en v
 
Projet sur le Cloud Computing
Projet sur le Cloud ComputingProjet sur le Cloud Computing
Projet sur le Cloud Computing
 
Rapport du stage
Rapport du stageRapport du stage
Rapport du stage
 

En vedette (6)

Cours Authentication Manager RSA
Cours Authentication Manager RSACours Authentication Manager RSA
Cours Authentication Manager RSA
 
Rsa
RsaRsa
Rsa
 
Rapport tp RSA
Rapport  tp  RSARapport  tp  RSA
Rapport tp RSA
 
Principe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSAPrincipe de fonctionnement du cryptage RSA
Principe de fonctionnement du cryptage RSA
 
Cryptographie
CryptographieCryptographie
Cryptographie
 
Technique de Cryptographie AES, DES et RSA
Technique de Cryptographie AES, DES et RSATechnique de Cryptographie AES, DES et RSA
Technique de Cryptographie AES, DES et RSA
 

Similaire à Tp rsa1

application SSL_TLS.pptx
application SSL_TLS.pptxapplication SSL_TLS.pptx
application SSL_TLS.pptx
kohay75604
 
la sécurité dans la commerce electronique
la sécurité dans la commerce electroniquela sécurité dans la commerce electronique
la sécurité dans la commerce electronique
Mouna Slama
 
Fichecrypto 110
Fichecrypto 110Fichecrypto 110
Fichecrypto 110
nabilo15
 

Similaire à Tp rsa1 (20)

Rapport sécurité
Rapport sécuritéRapport sécurité
Rapport sécurité
 
Le cryptage et le décryptage
Le cryptage et le décryptageLe cryptage et le décryptage
Le cryptage et le décryptage
 
SSL/TSL Protocols
SSL/TSL ProtocolsSSL/TSL Protocols
SSL/TSL Protocols
 
0673-la-securite-des-reseaux-informatique.pdf
0673-la-securite-des-reseaux-informatique.pdf0673-la-securite-des-reseaux-informatique.pdf
0673-la-securite-des-reseaux-informatique.pdf
 
application SSL_TLS.pptx
application SSL_TLS.pptxapplication SSL_TLS.pptx
application SSL_TLS.pptx
 
SSL.TLS.pptx
SSL.TLS.pptxSSL.TLS.pptx
SSL.TLS.pptx
 
la sécurité dans la commerce electronique
la sécurité dans la commerce electroniquela sécurité dans la commerce electronique
la sécurité dans la commerce electronique
 
IPsec
IPsecIPsec
IPsec
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdf
 
Fichecrypto 110
Fichecrypto 110Fichecrypto 110
Fichecrypto 110
 
Fichecrypto 110
Fichecrypto 110Fichecrypto 110
Fichecrypto 110
 
Présentation sécurité open_ssl
Présentation sécurité open_sslPrésentation sécurité open_ssl
Présentation sécurité open_ssl
 
Mise en place d’un système de détection
Mise en place d’un système de détectionMise en place d’un système de détection
Mise en place d’un système de détection
 
CryptographieRSA.pdf
CryptographieRSA.pdfCryptographieRSA.pdf
CryptographieRSA.pdf
 
Etude des Vulnérabilités dans les réseaux 3G,4G et simulation d’attaques des ...
Etude des Vulnérabilités dans les réseaux 3G,4G et simulation d’attaques des ...Etude des Vulnérabilités dans les réseaux 3G,4G et simulation d’attaques des ...
Etude des Vulnérabilités dans les réseaux 3G,4G et simulation d’attaques des ...
 
Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
Le protocole tls
Le protocole tlsLe protocole tls
Le protocole tls
 
Crypto camer
Crypto camerCrypto camer
Crypto camer
 
CryptoChapitre1-2-3.ppt
CryptoChapitre1-2-3.pptCryptoChapitre1-2-3.ppt
CryptoChapitre1-2-3.ppt
 
Alphorm.com Formation OpenSSL : Cryptage des données
Alphorm.com Formation OpenSSL : Cryptage des donnéesAlphorm.com Formation OpenSSL : Cryptage des données
Alphorm.com Formation OpenSSL : Cryptage des données
 

Plus de ZIZI Yahia (7)

Fanvil configuration guides_en
Fanvil configuration guides_enFanvil configuration guides_en
Fanvil configuration guides_en
 
Epissurage des fibres optiques
Epissurage des fibres optiquesEpissurage des fibres optiques
Epissurage des fibres optiques
 
2G optimization_with_optima
2G optimization_with_optima2G optimization_with_optima
2G optimization_with_optima
 
Irat handover basics
Irat handover basicsIrat handover basics
Irat handover basics
 
Kpi analysis guideline
Kpi analysis guidelineKpi analysis guideline
Kpi analysis guideline
 
Optimization guidelines accessibility-ericsson-rev01
Optimization guidelines accessibility-ericsson-rev01Optimization guidelines accessibility-ericsson-rev01
Optimization guidelines accessibility-ericsson-rev01
 
Nemo server manual_v1
Nemo server manual_v1Nemo server manual_v1
Nemo server manual_v1
 

Tp rsa1

  • 1. Ecole Nationale des Sciences Appliquées Tanger Rapport TP Sé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. INTRODUCTION La cryptographie est une science permettant de convertir des informations "en clair" en informations codées, c'est à 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’émetteur jusqu’au récepteur en passant par le réseau de transport afin que chacune des entités offre une garantie. 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 le développement de l’informatique et du réseau internet qui est devenu un outil essentiel de communication, l’on doit faire face à de nombreux problèmes qui ne cessent d’évolués tels que l’interception, la suppression de données, leur modification ou encore la réception de ces données par 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 cryptographie qui s’en charge. L’objectif de ce TP est de se familiariser avec la cryptographie et plus précisément avec l’algorithme RSA en créant une application client-serveur dans laquelle les conversations seront crypté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. I. ALGORITHME RSA L'algorithme RSA a été proposé par Rivest, Shamir et Adleman en 1977, puis mis au point en février 1988. RSA est un exemple type d'algorithme asymétrique. Il consiste en ceci :  L'utilisateur 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,  L'envoi d'un 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 d'un 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. Etant donné un nombre entier n=p*q produit de 2 grands nombres premiers, il est très difficile de retrouver les facteurs p et q. Aussi, d'après la théorie des nombres, il existe toujours un nombre d (clé secrète) mais son calcul est 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 une attaque 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 donc présumer que RSA est sûr sur cette base si la taille de la clé est suffisamment grande. Le succès du RSA est qu'il n'existe pas d'algorithme connu du grand public pour réaliser une attaque 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 chosen ciphertext attacks) L’analyse d’experts en cryptanalyse permet de casser aisément les clés RSA. 3
  • 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 d'abord être converti en un nombre 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 qu'on retrouve ENSA DE TANGER. 2) Deuxième test On refait l'exemple 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. La suite des messages ASCII, Crypté et Décrypté : 5
  • 7. 3) Troisième test On réalise maintenant notre application client-serveur. Cette application peut fonctionner sur deux et plus de machines (l’une des machines étant le serveur). Elle permet d’envoyer via un réseau des messages cryptés aux différents utilisateurs qui ré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
  • 9. Et à la réception on obtient : Si on effectue l’opération inverse, on aura : A l’émission du message : 8
  • 10. Et la réception nous donne : On constate alors notre application client-serveur marche correctement ! CONCLUSION Nous avons pu grâce à ce TP consolider nos connaissances théoriques sur la cryptographie et surtout 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 application client-serveur. Nous avons donc pu mieux comprendre le mécanisme de fonctionnement de cet algorithme ainsi toutes les procédures d’envoie, de réception et de signature d’un message. L’utilisation du langage de programmation Java a été également un plus car ce TP nous a permis de cerner d’autres fonctionnalités de ce langage utilisé dans la cryptographie. 9