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

Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Hadjer BENHADJ DJILALI
 
Kerberos authentication
Kerberos authenticationKerberos authentication
Kerberos authenticationSuraj Singh
 
Algorithme de chiffrement RC4, A5/1 & A5/2
Algorithme de chiffrement RC4, A5/1 & A5/2Algorithme de chiffrement RC4, A5/1 & A5/2
Algorithme de chiffrement RC4, A5/1 & A5/2Max Benana
 
Le cryptage et le décryptage
Le cryptage et le décryptageLe cryptage et le décryptage
Le cryptage et le décryptageSKYWARE COMPAGNY
 
Les systèmes de détection et prévention d’intrusion
Les systèmes de détection et prévention d’intrusionLes systèmes de détection et prévention d’intrusion
Les systèmes de détection et prévention d’intrusionIntissar Dguechi
 
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 RSAHouda Elmoutaoukil
 
WIlfried K. AGBO- Exposé sur la Cryptographie
WIlfried K. AGBO- Exposé sur la CryptographieWIlfried K. AGBO- Exposé sur la Cryptographie
WIlfried K. AGBO- Exposé sur la CryptographieWilfreid AGBO
 
Tp snmp-packet-tracer
Tp snmp-packet-tracerTp snmp-packet-tracer
Tp snmp-packet-tracerChris Dogny
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatiqueSouhaib El
 
applications-reparties
applications-repartiesapplications-reparties
applications-repartiesmourad50
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NETAziz Darouichi
 
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étectionManassé Achim kpaya
 
Message Authentication Requirement-MAC
Message Authentication Requirement-MACMessage Authentication Requirement-MAC
Message Authentication Requirement-MACSou Jana
 
Ch_1 - Généralités sur la sécurité informatique.pdf
Ch_1 - Généralités sur la sécurité informatique.pdfCh_1 - Généralités sur la sécurité informatique.pdf
Ch_1 - Généralités sur la sécurité informatique.pdfNafissa11
 
Introduction to TLS-1.3
Introduction to TLS-1.3 Introduction to TLS-1.3
Introduction to TLS-1.3 Vedant Jain
 
Cuda introduction
Cuda introductionCuda introduction
Cuda introductionHanibei
 

La actualidad más candente (20)

Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
 
Kerberos authentication
Kerberos authenticationKerberos authentication
Kerberos authentication
 
Présentation Cryptographie
Présentation CryptographiePrésentation Cryptographie
Présentation Cryptographie
 
Algorithme de chiffrement RC4, A5/1 & A5/2
Algorithme de chiffrement RC4, A5/1 & A5/2Algorithme de chiffrement RC4, A5/1 & A5/2
Algorithme de chiffrement RC4, A5/1 & A5/2
 
Le chiffrement
Le chiffrementLe chiffrement
Le chiffrement
 
Le cryptage et le décryptage
Le cryptage et le décryptageLe cryptage et le décryptage
Le cryptage et le décryptage
 
Les systèmes de détection et prévention d’intrusion
Les systèmes de détection et prévention d’intrusionLes systèmes de détection et prévention d’intrusion
Les systèmes de détection et prévention d’intrusion
 
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
 
WIlfried K. AGBO- Exposé sur la Cryptographie
WIlfried K. AGBO- Exposé sur la CryptographieWIlfried K. AGBO- Exposé sur la Cryptographie
WIlfried K. AGBO- Exposé sur la Cryptographie
 
Tp snmp-packet-tracer
Tp snmp-packet-tracerTp snmp-packet-tracer
Tp snmp-packet-tracer
 
IP Sec - Basic Concepts
IP Sec - Basic ConceptsIP Sec - Basic Concepts
IP Sec - Basic Concepts
 
Securite informatique
Securite informatiqueSecurite informatique
Securite informatique
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
RSA
RSARSA
RSA
 
Cours Visual Basic.NET
Cours Visual Basic.NETCours Visual Basic.NET
Cours Visual Basic.NET
 
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
 
Message Authentication Requirement-MAC
Message Authentication Requirement-MACMessage Authentication Requirement-MAC
Message Authentication Requirement-MAC
 
Ch_1 - Généralités sur la sécurité informatique.pdf
Ch_1 - Généralités sur la sécurité informatique.pdfCh_1 - Généralités sur la sécurité informatique.pdf
Ch_1 - Généralités sur la sécurité informatique.pdf
 
Introduction to TLS-1.3
Introduction to TLS-1.3 Introduction to TLS-1.3
Introduction to TLS-1.3
 
Cuda introduction
Cuda introductionCuda introduction
Cuda introduction
 

Similar a Tp rsa1

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.pdfdaniel896285
 
application SSL_TLS.pptx
application SSL_TLS.pptxapplication SSL_TLS.pptx
application SSL_TLS.pptxkohay75604
 
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 electroniqueMouna Slama
 
VPN site-to-site.pdf
VPN site-to-site.pdfVPN site-to-site.pdf
VPN site-to-site.pdfgorguindiaye
 
Fichecrypto 110
Fichecrypto 110Fichecrypto 110
Fichecrypto 110nabilo15
 
Fichecrypto 110
Fichecrypto 110Fichecrypto 110
Fichecrypto 110nabilo15
 
Présentation sécurité open_ssl
Présentation sécurité open_sslPrésentation sécurité open_ssl
Présentation sécurité open_ssldihiaselma
 
CryptographieRSA.pdf
CryptographieRSA.pdfCryptographieRSA.pdf
CryptographieRSA.pdfTrust22
 
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 ...Danaelmousawi
 
Crypto camer
Crypto camerCrypto camer
Crypto camerdilan23
 
CryptoChapitre1-2-3.ppt
CryptoChapitre1-2-3.pptCryptoChapitre1-2-3.ppt
CryptoChapitre1-2-3.pptSaraNamane
 
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éesAlphorm
 
Digital Signature Standard(DSS)_SAVADOGO_Tidiane.pdf
Digital Signature Standard(DSS)_SAVADOGO_Tidiane.pdfDigital Signature Standard(DSS)_SAVADOGO_Tidiane.pdf
Digital Signature Standard(DSS)_SAVADOGO_Tidiane.pdfdassise007
 
Strong Authentication with PKI
Strong Authentication with PKIStrong Authentication with PKI
Strong Authentication with PKISylvain Maret
 

Similar a Tp rsa1 (20)

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
 
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
 
Digital Signature Standard(DSS)_SAVADOGO_Tidiane.pdf
Digital Signature Standard(DSS)_SAVADOGO_Tidiane.pdfDigital Signature Standard(DSS)_SAVADOGO_Tidiane.pdf
Digital Signature Standard(DSS)_SAVADOGO_Tidiane.pdf
 
Strong Authentication with PKI
Strong Authentication with PKIStrong Authentication with PKI
Strong Authentication with PKI
 
Vpn
VpnVpn
Vpn
 

Más de ZIZI Yahia

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

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