Chiffrement asymétrique

Une clé massive et trois copies contournées d'une clé de forme différente, autour du même cadenas.

Imagine que tu achètes mille cadenas identiques, que tu les ouvres tous et que tu les distribues à tous ceux que tu connais. La seule clé qui va dessus, c'est toi qui la gardes. Si quelqu'un veut t'envoyer un secret, il le met dans une boîte, y clipse un de tes cadenas et la poste. À partir de ce moment-là, lui non plus n'arrive plus à la rouvrir — toi seul. Un tel cadenas n'existe pas en métal. En mathématiques, si — et c'est autre chose que ce que tu as fait au chapitre précédent : là, deux personnes se mettaient d'accord ensemble sur une clé ; ici, quelqu'un t'envoie directement un secret sans que vous ayez jamais rien convenu.

Les mots dont tu as besoin

Paire de clés
Deux clés qui vont mathématiquement ensemble et sont créées en même temps. Ce que l'une ferme, seule l'autre l'ouvre.
Clé publique
Un de ces cadenas ouverts. Tu en distribues autant que tu veux, et tu peux tranquillement la mettre sur ton profil. Qui veut t'envoyer un secret le met dans une boîte et y clipse ton cadenas.
Clé privée
La seule clé qui va sur tous ces cadenas. Elle reste chez toi, toujours, et sans cette clé plus aucune boîte ne s'ouvre — pas même pour celui qui l'a refermée lui-même.
Asymétrique
Deux clés différentes pour fermer et ouvrir. Le contraire de symétrique, où c'est la même clé.
RSA
Le premier système capable de faire ça, datant de 1977, nommé d'après ses trois inventeurs Rivest, Shamir et Adleman. Il utilise des nombres premiers longs de plusieurs centaines de chiffres.

À ne pas confondre avec le chapitre précédent

Tous les deux résolvent le même embarras — faire des secrets avec quelqu'un à qui tu n'as pas pu remettre une clé à l'avance — mais ils s'y prennent autrement, et cette différence, tout le monde la mélange. Y compris des gens qui devraient le savoir.

Se mettre d'accord sur une clé (chapitre 6)Chiffrement asymétrique (ici)
Ce qui se passevous aboutissez ensemble à un seul secretquelqu'un chiffre quelque chose pour toi
Qui participetous les deux, en même tempsl'expéditeur seul ; tu n'as pas besoin d'être là
Ce que tu obtiensune clé partagée, avec laquelle tu fais ensuite de l'AESun texte chiffré, tout de suite
La paire de clésappartient à cet échange-làest à toi, et le reste

Comment ça inverse les rôles

Symétrique (chapitre 5)Asymétrique (ce chapitre)
Clésune seule, et il faut la partagerdeux, et l'une peut être vue par tout le monde
Se mettre d'accord au préalableoui, via un canal sûrrien
Vitesseultra-rapidelent
Taille maximale du message ?illimitéetoute petite — plus petite que la clé

Deux usages, et ce ne sont pas la même opération

Une paire de clés s'utilise de deux façons, et ça vaut la peine de les distinguer — on les confond sans arrêt, y compris dans les manuels.

ChiffrerSigner
Qui commencetous ceux qui veulent t'envoyer quelque chosetoi seul
Avec quelle cléta publiqueta privée
Qui peut faire l'autre senstoi seul, avec ta privéetout le monde, avec ta publique
Ça s'appelledéchiffrervérifier, pas déchiffrer
À quoi ça sertgarder le secretprouver que c'était toi

La règle qu'on entend souvent — « ce que tu chiffres avec l'une des clés, tu ne peux le déchiffrer qu'avec l'autre » — est fausse. Elle vaut pour du RSA brut et nulle part ailleurs. Dans les systèmes sur courbes elliptiques, « chiffrer avec la clé privée » n'existe même pas : une signature est une paire de nombres dont on ne peut plus extraire le message. Vérifier n'est pas déchiffrer, c'est une égalité qui tombe juste ou pas.

La règle qui, elle, vaut partout, la voici : la clé privée fait quelque chose que seul son détenteur peut faire ; la clé publique permet à tout le monde de le viser ou de le contrôler. Signer, c'est l'objet du chapitre 8.1.

Deux familles, et une poignée de noms

Il existe plusieurs façons de fabriquer une paire de clés. Deux d'entre elles portent presque tout ce que tu utilises aujourd'hui, et chacune a droit à sa propre partie juste après.

FamilleRepose surSe mettre d'accord sur une cléSignerChiffrer
RSAla factorisation en nombres premiers—RSA-PSSRSA-OAEP
Courbes elliptiquesle comptage à rebours sur une courbeECDHECDSA, EdDSArarement
Nombres premiers mod ple logarithme discretDH (chapitre 6)DSA — retiré—
Réseauxla recherche du plus court vecteurML-KEMML-DSA—

Deux choses sautent aux yeux dans ce tableau. Aucune famille ne sait tout faire — chaque colonne demande son propre algorithme. Et DSA y figure comme retiré : le service américain de normalisation, le NIST, l'a sorti en 2023 de la norme pour les nouvelles signatures, et ne l'a laissé que pour continuer à contrôler les anciennes. La dernière ligne est la plus récente et concerne l'ordinateur quantique ; on en reparlera plus tard.

Ce qui reste accroché chez les gens. Demande à quelqu'un qui fait ce métier ce qui l'y a attiré, et la réponse porte étonnamment souvent sur ce chapitre-ci. Pas sur les formules, mais sur le déséquilibre : une carte SIM d'un demi-centimètre calcule quelque chose que tous les centres de données du monde réunis ne peuvent pas défaire. Qu'une chose si petite puisse arrêter une chose si grande n'a rien d'évident, et ce n'est pas une astuce de meilleures machines. C'est une propriété des mathématiques elles-mêmes.

Ça, c'est des maths : la complexité

Tout ce chapitre tient à un seul type de calcul : un calcul que tu fais à l'endroit en une fraction de seconde et à l'envers pas en mille ans. Un tel calcul s'appelle une fonction à sens unique. Tu en as déjà vu deux, multiplier des nombres premiers dans chapitre 7.1 et additionner des points dans chapitre 7.2, et elles ne se ressemblent en rien sauf par ce déséquilibre. La matière qui mesure le travail que coûte un calcul s'appelle la théorie de la complexité, et elle ne mesure pas en secondes mais en vitesse à laquelle le travail grandit quand l'entrée grandit. Double la clé et le travail de chiffrement double, tandis que le travail pour la casser devient quelques milliards de fois plus grand. C'est là que vit ta sécurité.

Et voici ce qui dérange. D'aucune fonction à sens unique on n'a prouvé qu'elle en est une. Personne n'a jamais montré que factoriser de grands nombres doit vraiment être difficile ; on sait seulement que personne n'y est arrivé jusqu'ici. Cette question tient au plus célèbre problème ouvert de l'informatique, P contre NP, doté d'un million de dollars depuis 2000. S'il est un jour résolu dans le mauvais sens, la moitié de ce site s'éteint. Ce n'est pas un scénario catastrophe à redouter, mais c'est bon à savoir : la cryptographie moderne ne repose pas sur une preuve, mais sur cinquante ans de tentatives ratées.