Bonjour,
Je voudrais savoir votre avis sur le texte que je vais (presque) reciter lors de mon grand oral.
La problématique est : Comment fonctionne le chiffrement RSA ?
Intro :
Aujourd'hui, en particulier avec le développement d'internet, transmettre des informations confidentielles de façon sécurisée est devenu un besoin primordial. Aussi, bien qu'il s'agisse d'une science très ancienne, la cryptographie est toujours d'actualité.
Celle-ci désigne l'ensemble des techniques permettant de chiffrer des messages, c'est-à-dire permettant de les rendre inintelligibles sans une action spécifique. Une de ces techniques serait l?application de l?algorithme RSA.
Inventé par Rivest, Shamir et Adleman en 1977, il permet de sécuriser des informations hautement confidentielles tels que vos coordonnes bancaires. Ainsi l?Internet fait un usage systématique du RSA pour assurer la confidentialité du courrier électronique et authentifier les utilisateurs.
On peut se demander donc comment fonctionne le système RSA ?
On verra dans un premier temps le fonctionnement de cet algorithme, nous expliquerons ensuite comment ce-dernier nous permet-il de transmettre des informations en toutes sécurité.
A- Une cryptographie asymétrique
L?algorithme RSA est un système cryptographique dit asymétrique. Cela signifie que lors d?un échange, chaque interlocuteur possède une paire de clés composée d?une clé publique et d?une clé privée. Ces deux dernières sont étroitement liées à l?aide d?un algorithme mathématiques, elles assurent le fait que les données cryptées grâce à la clé publique peuvent uniquement être décryptées par la clé privée. Ainsi pour garantir la protection des données et le fonctionnement sans entrave de la cryptographie asymétrique, il est indispensable que la clé privée reste privée et ne soit connue de personne, pas même des autres interlocuteurs ...
Prenons un exemple :
On suppose que Bob veuille envoyer un message à Alice qui possède ses deux clés : La clé publique qu?elle envoie à Bob et la clé privée qu?elle conserve précieusement sans la divulguer à quiconque. Cela peut se faire par un simple transport, par une autorité de certification ou par des « Key Server » (c?est-à-dire des serveurs de clés) sur lesquels la clé peut être stockée. Bob utilise donc cette clé publique pour encoder son message et l?envoie au destinataire sous forme de « texte chiffré ». À ce stade, le message n?est plus déchiffrable que par Alice lui assurant une conversation totalement confidentielle. Et c?est pour cette raison que le choix du canal de communication est en principe libre : si le message chiffré est intercepté, la personne qui récupère le message ne pourra pas accéder à son contenu... (Pause)
2- Présentation du code
Connaissant à présent le fonctionnent d?une cryptographie asymétrique, voyons comment l?algorithme RSA nous permet de créer ses deux clés.
1- Tout d?abord Alice génère deux nombres premiers p et q, ainsi qu?un nombre
d premier avec le produit w = (p ? 1) (q ? 1)
2- Elle calcule ensuite n = p*q et e tel que d*e ? 1[w], qui est donc l?inverse modulaire de d.
3-Alice diffuse n et d et garde le nombre e
4- Pour chiffrer son message, Bob le crypte comme le suivant : M = Md[n] et envoie le résultat à Alice.
(n,d) est donc la clé publique.
5- Enfin, Alice décode alors le message crypté par C= Ce [n]
(n,e) est la clé privée du destinaire.
C?est ainsi donc que l?algorithme RSA nous permets de créer les deux clés voulues à l?aide d?un simple algorithme. Cette simplicité nous pousse à nous demander comment ce-dernier assure-t-il une total confidentialité.
3- Sécurité
En effet on peut se demander si un attaquant ne peut pas obtenir e car celle-ci est uniquement contenue dans la clé privée, il peut obtenir p et q à partir de N. Ainsi à partir de p, q et d il peut calculer e comme a fait le récepteur initialement et pourrait donc déchiffrer le message.
Or toute la sécurité du protocole RSA repose sur l?idée selon laquelle trouver les nombres premiers d?un nombre cryptographiquement grand tel que N, est un problème impossible à résoudre en temps raisonnable.
On dit que l?usage du système RSA est polynomial : le temps de calcul se comporte comme un polynôme de la longueur de la clé ; en revanche, on fait l?hypothèse que casser le RSA nécessiterait des algorithmes bien plus longs que polynomiaux. Certains en déduisent que plus les machines seront puissantes, plus l?écart se creusera entre la puissance de calcul disponible mise en ?uvre pour créer et utiliser des clés plus longues et la puissance requise pour casser le RSA. Autrement dit, plus le temps passe, plus le RSA devient robuste et plus il devient sûr...
4- Angles d?attaques
Malgré cela, des chercheurs tentent toujours de trouver une manière de casser l?algorithme.
Ainsi des arguments proposés indiquent que les difficultés pour casser le RSA ne sont pas nécessairement liées à la factorisation de n. En effet, en 1998, Dan Boneh, de l?université de Stanford, et Ramarathnam Venkatesan, de la société Microsoft, ont établi que pour des exposants e petits, casser le RSA n?est pas équivalent à factoriser n.
Une autre attaque très astucieuse du RSA, proposée par Paul Kocher, consiste à mesurer minutieusement le temps mis par des cartes à puce pour décrypter les messages qu?on leur soumet, et à exploiter ces résultats pour retrouver la clé secrète. Mais on se prémunit aisément de cette attaque en faussant le temps de calcul apparent en attendant un certain temps (variable) à la fin du décodage.
Enfin, il faut savoir que plusieurs fois dans l?histoire de l?espionnage, un système de codage a été considéré comme inviolable par ses utilisateurs alors qu?un service ennemi lisait tranquillement tous les messages qui tombaient entre ses mains. Ainsi, pendant la première guerre mondiale, les services français décodaient les messages destinés aux sous-marins allemands et agissaient en conséquence.
Il faut donc envisager le fait que des spécialistes, quelque part, connaissent une façon de casser le RSA et se taisent.
Conclusion :
Nous avons vu donc comment l?algorithme RSA nous permet de transmettre des informations de façon sécurisée. Celui-ci se basait sur la difficulté de factoriser n en deux facteurs premiers, cette-dernière nécessitant une capacité de calcul très importante.
Afin de répondre à notre question, on peut dire que le principe de l?algorithme RSA est proche de celui d?un coffre a deux serrures. Lorsque l?une des deux serrures est fermée, la seule façon d?ouvrir la boîte est d?utiliser l?autre serrure. La clé d?une des deux serrures est publique, c?est-à-dire que tout le monde peut l?obtenir, tandis que l?autre est privée, et seule une personne la possède...
Aujourd?hui aucun algorithme permet de trouver la clé privée dans un temps raisonnable ; cependant Peter Shor a montré qu?avec un ordinateur quantique, on peut factoriser très efficacement les nombres entiers en temps proportionnel à la longueur de la clé. Même si aujourd?hui ce-dernier est encore du domaine de la fiction, cela nous rappelle que l?algorithme RSA n?est pas infaillible.