Parmi tous les systèmes cryptographiques disponibles à l’heure actuelle, RSA est considéré comme un des plus solides, si ce n’est le plus solide. Après presque trente ans de vie et d’attaques nombreuses mettant en jeu ce que la technologie fait de meilleur, il est encore jugé assez robuste pour protéger les échanges bancaires et autres données critiques du monde civil. Alors, qu’est-ce qui fait sa force ?
Avec vous, je vais aborder les théories mathématiques et cryptographiques qui constituent les fondements de ce système cryptographique et l’ont rendu possible. Il me sera alors possible de vous présenter l’algorithme en lui-même, comment on chiffre et comment on déchiffre. Mais cela ne suffit pas : aussi chaud que soit un manteau, vous mourrez de froid si vous le posez sur votre tête. C’est pourquoi je vous expliquerai comment il faut s’y prendre pour bien utiliser le système cryptographique RSA et bénéficier de toute sa robustesse. Enfin, pour nos amis programmeurs, un dernier chapitre permettra de voir, sans entrer dans les détails, comment on peut implémenter RSA pour l’utiliser dans un logiciel.
Pour suivre ce tutoriel, il vous faudra les outils suivants :
- des connaissances mathématiques de seconde environ : toutes les notions plus complexes seront expliquées de manière aussi détaillée que possible ;
- un papier et d’un crayon pour réaliser les quelques exercices présentés au long du tuto. Une calculette peut aider les plus flemmards ;
- absolument aucune connaissance en informatique, si vous ne souhaitez pas lire le dernier chapitre. Sinon, de simples connaissances théoriques sont suffisantes, puisque l’on parle d’algorithmique et non d’un langage en particulier ;
- un cerveau qui vous appartient, pas de zombi ici, ouste !
Prérequis
Connaissances de seconde en mathématiques, en particulier, bien maîtriser les fonctions.
Prérequis optionnel
Maîtriser les bases de la programmation est nécessaire pour le dernier chapitre.
Objectifs
Faire comprendre le fonctionnement de la cryptographie asymétrique.
Présenter le fonctionnement du système cryptographique RSA.
Montrer les failles liées à une mauvaise utilisation de RSA, et comment s’en prémunir.
Découvrir comment RSA peut être mis en place dans un programme informatique.
Un peu d'histoire et beaucoup de mathématiques
L'algorithme proprement dit
- Une grosse paire de clés
- Ainchi ffrons, ffrons, ffrons
- Eh bien, déchiffrez, maintenant !
- La démonstration
Un algorithme ne s'utilise pas n'importe comment
- La taille, ça compte
- Qui es-tu, belle inconnue ?
- Parce que Snowden n'était pas le premier
- Comment l'autorité publique reprit la main
- Bourrage papier
- Je n'ai pas les bonnes clés
- Autres attaques
Mise en pratique
Petite note concernant le droit d’auteur.
- Le texte est l’œuvre de Dominus Carnufex et placé sous licence BiPu L. Le logo de même.
- Les images sont l’œuvre de Vayel, utilisent uniquement des images du domaine public comme base, et sont placées sous licence BiPu. Seule la photo du premier chapitre n’est pas de son fait, mais nous ne sommes pas parvenus à retrouver l’auteur original.
- Le code en Python est l’œuvre de Vayel et placé sous licence CeCIll-B.
- Le reste du code est l’œuvre de Dominus Carnufex et placé sous licence CeCIll.
Pour ceux qui ne seraient pas familiers des licences françaises, cela équivaut respectivement et dans les grandes lignes à CC BY-SA-NC, CC 0, licence MIT/licence X11, GPL.
Enfin, sachez que ce tutoriel est la complète réécriture d’un tutoriel écrit par chabotsi, dont vous pouvez lire la première version sur feu le Site du Zéro.