Sécurité, chiffrement et cryptographie

[2] Chiffrement symétrique, asymétrique

next

Je ne vous parlerai pas de l'historique des algorithmes de chiffrement, des gens ont écrit des bouquins très bien là-dessus.

Je vais simplement vous introduire les éléments de base à connaitre concernant les algorithmes modernes de chiffrement, symétriques et asymétriques.

On aimerait ces algorithmes totalement incassables, c'est-à-dire que personne dans l'univers ne soit capable de retrouver le message chiffré original en clair quand il ne connait pas la clé.

Ça, on a du mal à le prouver, et on voit bien qu'avec des machines et du temps, par force brute = en essayant toutes les combinaisons possibles, on finira par y arriver. Du coup on se contente de résistant après un temps suffisamment long en utilisant le meilleur matériel possible disponible.

Le futur avènement des ordinateurs quantiques va venir mettre la zone dans l'univers des algorithmes actuels de chiffrement: c'est pour ça qu'on étudie les algorithmes de chiffrement post-quantique.

Chiffrement symétrique

Alice et Bob Kirk et Spock sur mon vieux schéma anglais, et puis comme ça vous apprenez les mots anglais au passage possèdent chacun une clé: une pour chiffrer chez Alice, et une pour déchiffrer chez Bob.

principe fondamental de cryptographie
Clé de chiffrement chez Spock, clé de déchiffrement chez Kirk
et je sais ils n'opèrent pas dans la même galaxie.

C'est le schéma fondamental. Evidemment, Eve Vador la méchante, cherchera à connaitre le message secret, mais comme elle n'a pas la clé de déchiffrement, Eve fera de la cryptanalyse pour essayer de décrypter le message.

Le chiffrement symétrique correspond au schéma suivant:

clés symétriques

Alice et Bob possèdent exactement la même clé —secrète— pour chiffrer et déchiffrer: elle est symétrique.

C'était le cas du fameux téléphone rouge entre la Maison Blanche et le Kremlin, où on pouvait se permettre de transporter la clé sous bonne garde et bien voilà, vous avez déjà appris un truc.

Il existe beaucoup d'algorithmes de chiffrement?
Evidemment, mais on vit très bien sans connaitre le DES, l'AES et leurs petits amis.
Ce doit être long à chiffrer, un message?
Meuh non, exécuter du chiffrement symétrique sur nos puces électroniques et nos PCs, c'est très rapide, on a su faire des choses efficaces.
Et les clés, elles sont grosses?
On parle de centaines ou milliers de bits.
C'est toujours le même adage: plus c'est long, plus c'est bon.
Et tu le sais déjà, on t'enquiquine assez avec la longueur de tes mots de passe.
Et les messages chiffrés, ils sont plus gros que l'original?
Non, ils sont quasiment de la même longueur que le message original, que ce soit du texte, une photo, une vidéo... on se fiche du contenu.
On ne fait que "mélanger" les bits du message.
La distribution des clés
Donc on a juste à échanger discrètement une petite clé entre nous deux?
Ben oui. Sous le manteau.
Et je peux utiliser la même clé pour discuter avec un autre copain?
Ben non, c'est crétin.
Sers-toi de ton bon sens.
Si on utilise tous la même clé, bonjour le secret!
Il va me falloir une clé différente avec chacune de mes copines?
Ben oui. Pour un groupe de 4 personnes, il faudra 3+2+1=6 clés différentes.
Ah oui, et pour 100000?
Ben vraiment beaucoup de clés.

C'est là qu'on met le doigt sur un des problèmes de base en chiffrement et en sécurité: il faut pouvoir créer et distribuer de manière sécurisée toutes ces clés, et ça, c'est vraiment pénible. Généralement les gens se font avoir là-dessus, surtout quand il s'agit de millions de puces électroniques... Faites une petite erreur quelque part, et vous êtes bon pour tout remplacer et refaire depuis le début!

Et puis je ne me vois pas avec un trousseau de clés gros comme le nombre de mes abonnés.
Sans compter que pour chaque application, il faudra un trousseau différent...
Le chiffrement asymétrique
Ce n'est pas pratique ton truc de clé symétrique!
C'est vrai.
On peut limiter le problème de la distribution de clé.
Comment ça?
Imagine que je t'envoie un coffre-fort ouvert.
Et que je garde la clé secrète. Le coffre est public.
Ah ben oui, j'ai juste à mettre mon message dedans et claquer la porte!
Et je te renvoie ton coffre-fort.
Seul moi pourra ouvrir le coffre, puisque j'ai gardé la clé.

Ben oui, c'est tout con. Mais le coffre fait alors l'aller-retour, c'est un peu pénible dans le monde physique, alors qu'informatiquement, c'est juste un message à envoyer.

Ce sont les clés dites asymétriques. Le mécanisme a été proposé par Diffie et Hellman.

clés asymétriques

Au lieu d'envoyer un coffre ouvert, on envoie une clé publique, que n'importe qui peut utiliser pour envoyer un message, et sans problème de secret puisque c'est public, c'est écrit dessus.

En 2022, il existe un algorithme de chiffrement asymétrique universellement utilisé de partout et c'est un problème de mettre tous ses oeufs dans le même panier, basé sur un problème difficile de factorisation du produit de deux grands nombres premiers: c'est l'algorithme RSA (de Rivest, Shamir et Adleman).

Re-distribution de clés, clé de session
Asymétrique, certes, mais c'est toujours une clé.
Mais comment ça réduit le nombre de clé, et que ça facilite la distribution?
Et bien c'est simple: tu n'as besoin que d'une seule clé publique à distribuer à tout le monde.
Et pas une différente pour chacun de tes abonnés.
Et de plus, ce n'est pas un secret, tu peux l'envoyer dans un message normal.
Ah! Ce doit être plus pratique, surtout la première fois.
Cela facilite salement la distribution!

Sauf que.

L'algorithme de chiffrement asymétrique actuel n'est pas rapide à exécuter. C'est même un vrai veau. Impossible en pratique de chiffrer des gros messages avec ça.

Si j'envoie le même message secret à 100 abonnés, il faudra que je chiffre 100 fois le message avec 100 clés différentes?
Et si j'envoie une photo d'un mégaoctet, non seulement c'est long à chiffrer, mais en plus ça va faire des centaines de mégaoctets, ça va bouffer tout mon forfait!
Ah, parce que t'envoies le même secret à 100 personnes à la fois?
Ça ne doit pas être bien secret...
Gna, gna, gna!
Mais tu as raison. Les cryptographes sont plus malins que ça.

La ruse consiste à créer une clé symétrique dite de session, qui va servir une seule fois. Vous chiffrez votre message avec cette cle symétrique, rapide, efficace, et tout et tout, puis, pour chaque destinataire, vous chiffrez la clé de session avec sa clé publique asymétrique, un truc petit et pas long à faire. Et le tour est joué: un seul fichier chiffré -le corps du message- et chacun aura la clé symétrique de déchiffrement qui sera accessible avec sa clé secrète, jalousement gardée chez lui.

Astucieux, non?

Et si jamais quelqu'un casse le code et trouve la clé symétrique, et bien il en sera pour ses frais car cette clé de session ne servira qu'une seule fois. Il faudra tout recommencer pour un autre message...

Algorithme de chiffrement post-quantique

Sauf que.

Un dénommé Shor a trouvé le moyen de factoriser rapidement le produit de deux grands nombres premiers.

De facto, il a dézingué le bel édifice cryptographique que nous avions construit: le chiffrement RSA est cassé. Mais heureusement: il a besoin d'un ordinateur quantique pour faire ça. Et celui-ci n'est pas encore vraiment prêt de marcher, z'avez qu'à lire ma section sur le sujet sur les ordinateurs quantiques quand elle sera disponible pour vous faire une idée.

Nos chercheurs ne sont pas resté les bras ballants à ne rien faire: en ce moment, un nouvel algorithme dit post-quantique, est en train d'être laborieusement sélectionné. L'idée est que cet algorithme soit résistant aux futurs ordinateurs quantiques.

Pas besoin de se dépêcher, ces ordinateurs quantiques ne marchent pas encore!
Sauf que le jour où ils marcheront, alors on pourra déchiffrer tous les messages secrets actuellement envoyés. Genre secrets d'état.
Nous avons une sorte de bombe à retardement en main.
Et ces nouveaux algorithmes post-quantiques ne se feront pas dézinguer comme le RSA?
C'est l'idée.
Enfin, croisons les doigts et espérons-le, car rien n'est prouvé.

Sauf que oui, je sais, encore.

Et bien il existe le problème de la première fois: la première fois que vous distribuer votre clé, peu importe qu'elle soit symétrique, asymétrique, quantique ou ce que vous voulez, vous n'êtes pas sûr de l'avoir envoyé à la bonne personne.

C'est le problème de l'homme du milieu, man in the middle en anglais.


back
[1] Introduction
[3] Man in the middle
next