SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPng
Max Benana
 
lettre de recommandation
lettre de recommandationlettre de recommandation
lettre de recommandation
Catherine B
 
Confort et ensoleiillement
Confort et ensoleiillementConfort et ensoleiillement
Confort et ensoleiillement
Sami Sahli
 
La culture et les traditions algéroise
La culture et les traditions algéroiseLa culture et les traditions algéroise
La culture et les traditions algéroise
sabrina-ben
 

La actualidad más candente (20)

Encryption and Key Distribution Methods
Encryption and Key Distribution MethodsEncryption and Key Distribution Methods
Encryption and Key Distribution Methods
 
Rapport de stage - La Value-at-Risk ou la quantification du risque de marché ...
Rapport de stage - La Value-at-Risk ou la quantification du risque de marché ...Rapport de stage - La Value-at-Risk ou la quantification du risque de marché ...
Rapport de stage - La Value-at-Risk ou la quantification du risque de marché ...
 
LA CRIPTOGRAFIA
LA CRIPTOGRAFIALA CRIPTOGRAFIA
LA CRIPTOGRAFIA
 
Lire les tables de routage
Lire les tables de routageLire les tables de routage
Lire les tables de routage
 
Allwyn ospf ppt
Allwyn ospf pptAllwyn ospf ppt
Allwyn ospf ppt
 
Morcelment
MorcelmentMorcelment
Morcelment
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPng
 
Présentation expérience Tchad.pptx
Présentation expérience Tchad.pptxPrésentation expérience Tchad.pptx
Présentation expérience Tchad.pptx
 
lettre de recommandation
lettre de recommandationlettre de recommandation
lettre de recommandation
 
Cour 02-projet-urbain
Cour 02-projet-urbainCour 02-projet-urbain
Cour 02-projet-urbain
 
Mpls (3)
Mpls (3)Mpls (3)
Mpls (3)
 
Oncf
OncfOncf
Oncf
 
Sdatw setif tome iv
Sdatw setif tome ivSdatw setif tome iv
Sdatw setif tome iv
 
Tp1 20206
Tp1 20206Tp1 20206
Tp1 20206
 
Etude de la WIFI sur NS2
Etude de la WIFI sur NS2Etude de la WIFI sur NS2
Etude de la WIFI sur NS2
 
Modulo II: Tecnología Criptográfica
Modulo II: Tecnología CriptográficaModulo II: Tecnología Criptográfica
Modulo II: Tecnología Criptográfica
 
Confort et ensoleiillement
Confort et ensoleiillementConfort et ensoleiillement
Confort et ensoleiillement
 
Cours: Un monde de plus en plus urbain
Cours: Un monde de plus en plus urbainCours: Un monde de plus en plus urbain
Cours: Un monde de plus en plus urbain
 
Partie 4 analyse comptable
Partie 4 analyse comptablePartie 4 analyse comptable
Partie 4 analyse comptable
 
La culture et les traditions algéroise
La culture et les traditions algéroiseLa culture et les traditions algéroise
La culture et les traditions algéroise
 

Destacado (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
 

Similar a 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
 

Similar a 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
 

Más 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