Licence CC BY-NC-SA

La cryptographie asymétrique avec RSA

Chiffrer ses données avec RSA

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

  1. Rendons à César ce qui est à César
  2. Faire du neuf…
  3. …avec du vieux

L'algorithme proprement dit

  1. Une grosse paire de clés
  2. Ainchi ffrons, ffrons, ffrons
  3. Eh bien, déchiffrez, maintenant !
  4. La démonstration

Un algorithme ne s'utilise pas n'importe comment

  1. La taille, ça compte
  2. Qui es-tu, belle inconnue ?
  3. Parce que Snowden n'était pas le premier
  4. Comment l'autorité publique reprit la main
  5. Bourrage papier
  6. Je n'ai pas les bonnes clés
  7. Autres attaques

Mise en pratique

  1. Conseils mathématiques
  2. Conseils informatiques
  3. Exemples


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.

3 commentaires

Coucou par ici !

J’ai une question : quand tu parles de cryptographie, tu parles de Diffie-Helman et de RSA. Je n’ai pas tout lu en détail, mais il me semble que tu ne fais pas du tout mention du fait qu’en tant que procédé d’échanges de clés symétriques, RSA est considéré comme unsafe (pour SSL/TLS typiquement, depuis TLSv1.3), et que uniquement ECDHE (Diffie-Helman avec courbes elliptiques) est utilisé (avec par dessus une communication via RSA grâce aux clés du certificat). Du coup, j’ai une petite branche en travers de la gorge quand tu dis que c’est "peu utilisé" :/

Source : les recommandations de Mozilla pour la config server side de SSL/TLS

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte