Rendre un message illisible pour tout le monde sauf un — principe, méthodes, et ce que cela ne protège pas
Chiffrer, c'est transformer un message en une suite de signes que seul celui qui détient la clé peut retrouver. Le principe est constant depuis l'Antiquité, mais tout se joue sur un point : l'ennemi connaît la méthode. Kerckhoffs l'écrivait en 1883 dans la Revue militaire, et Shannon l'a reformulé en 1949 : la sécurité doit reposer sur la seule clé, jamais sur le secret du procédé. Les quatre premières planches suivent cette exigence, du chiffre de César jusqu'aux algorithmes modernes ; la cinquième montre comment deux inconnus fabriquent une clé commune en public — puis rappelle qu'un message chiffré peut être falsifié par quelqu'un qui n'a jamais eu la clé.
Le plus ancien des chiffres : on décale l'alphabet d'un cran fixe. Suétone rapporte que César décalait de trois. Le disque ci-dessous fait tourner l'alphabet chiffré sous l'alphabet clair ; à droite, la page compte les lettres du texte chiffré et les compare à ce que donne le français ordinaire.
Ce que dit la planche. Le chiffre de César n'a que 26 clés : on les essaie toutes. Mais remplacer chaque lettre par une autre, librement, offre 26! ≈ 4·10²⁶ clés — et tombe tout aussi vite, car la substitution conserve les fréquences. La page calcule pour chaque décalage l'écart du khi-deux entre les fréquences observées et les fréquences du français, puis retient le minimum : la clé est retrouvée sans qu'on la lui ait dite. Leçon : un grand nombre de clés ne fait pas un bon chiffre. Ce qui compte est que le chiffré ne laisse filtrer aucune structure du clair.
La parade est connue depuis le XVIe siècle : changer de décalage à chaque lettre, en suivant les lettres d'un mot-clé répété. Les fréquences s'aplatissent, et le chiffre a passé trois siècles pour indéchiffrable. Il ne l'est pas : la clé étant périodique, une lettre sur L subit le même décalage.
Ce que dit la planche. L'indice de coïncidence mesure la probabilité que deux lettres tirées au hasard dans un texte soient identiques : environ 0,078 pour un texte français, 0,038 pour une suite parfaitement plate. Si l'on découpe le chiffré en L colonnes et que L est la bonne longueur de clé, chaque colonne redevient un simple César et retrouve l'indice du français. Les barres ci-dessus montrent ce pic ; la page découpe alors le texte et casse chaque colonne au khi-deux, ce qui lui rend la clé lettre par lettre. Aucune information sur la clé n'a été fournie : seule la comparaison finale la révèle.
Une clé aléatoire, aussi longue que le message, combinée bit à bit par un OU exclusif, et jamais réemployée : Shannon a démontré en 1949 que ce chiffre-là est parfait, au sens où le chiffré ne dit rigoureusement rien du clair. La démonstration tient en une ligne, et la page la rend palpable.
Ce que dit la planche. Pour un chiffré donné et n'importe quel texte visé de même longueur, il existe exactement une clé qui mène de l'un à l'autre : la page la fabrique et vérifie qu'elle marche. Le chiffré est donc compatible avec tous les messages possibles, et n'en désigne aucun : c'est cela, le secret parfait. Le prix est écrasant : autant de clé que de message, transportée à l'avance, et détruite après usage. Le téléphone rouge Moscou-Washington a fonctionné ainsi.
Le mot jetable n'est pas décoratif. Deux messages chiffrés avec la même clé, et la clé disparaît d'elle-même du calcul : c₁ ⊕ c₂ = m₁ ⊕ m₂. Le projet Venona a exploité pendant quarante ans cette seule faute, commise par un service qui avait dupliqué ses carnets.
Ce que dit le contrôle. La page calcule c₁ ⊕ c₂ de deux façons — à partir des chiffrés, puis à partir des clairs — et constate que le résultat est le même : la clé s'est bien annulée. Elle fait ensuite glisser le mot supposé sur toutes les positions, et note à chaque décalage combien de caractères obtenus sont des lettres ou des espaces plausibles. La bonne position ressort seule.
Shannon a nommé les deux ingrédients : la confusion, qui brouille le lien entre la clé et le chiffré, et la diffusion, qui répand l'influence de chaque bit du clair sur tout le bloc. On les obtient en répétant un tour simple. Le schéma ci-dessous est un réseau de Feistel de démonstration, sur des blocs de 32 bits — la structure de DES, en miniature.
Ce que dit la planche. Un réseau de Feistel a une propriété remarquable : quelle que soit la fonction de tour, même mauvaise, le déchiffrement se fait avec le même circuit parcouru à l'envers. La page le vérifie sur des milliers de blocs tirés au hasard. L'avalanche, elle, se mesure : on retourne un seul bit du clair et l'on compte combien de bits du chiffré changent. Au premier tour, presque rien ; après quatre ou cinq, la moitié — soit exactement ce qu'on attend d'une suite sans structure.
Un bon algorithme mal employé ne protège rien. Ci-dessous, une rosace de 64 × 64 pixels est chiffrée bloc par bloc avec le chiffre de la planche : à gauche telle quelle, chaque bloc indépendamment (mode ECB) ; à droite en chaînant chaque bloc au précédent (mode CBC).
Ce que dit le contrôle. En mode ECB, deux blocs identiques du clair donnent deux blocs identiques du chiffré : la page compte les blocs distincts avant et après, et trouve le même nombre. Le dessin traverse donc le chiffrement. En mode CBC, chaque bloc est mélangé au chiffré précédent avant d'être chiffré ; le nombre de blocs distincts explose et l'image devient un bruit. Le chiffre n'a pas changé — seule sa mise en œuvre.
Deux problèmes restent ouverts après quatre planches. D'abord : comment se mettre d'accord sur une clé quand on ne s'est jamais rencontré et que tout ce qu'on se dit est écouté ? Ensuite : une fois le message chiffré, qu'est-ce qui garantit qu'il arrive intact ? Les deux réponses sont indépendantes, et l'oubli de la seconde est l'erreur la plus fréquente.
Premier volet. Diffie et Hellman ont publié en 1976 le procédé que la page exécute : chacun choisit un exposant secret, publie g élevé à cet exposant modulo p, puis élève le nombre reçu à son propre exposant. Les deux arrivent au même résultat, parce que l'ordre des exposants ne compte pas. L'espion, lui, voit p, g, et les deux nombres publics ; pour remonter au secret il lui faut résoudre un logarithme discret. La page le résout vraiment, par pas de bébé et pas de géant, et compte les opérations : elles croissent comme la racine carrée de p, ce qui condamne l'écoute dès que p est grand.
Second volet. Avec un chiffrement par flot, le chiffré est le clair combiné à une suite pseudo-aléatoire ; retourner un bit du chiffré retourne exactement le même bit du clair, au même endroit. Un attaquant qui devine seulement la forme du message — pas la clé, qu'il n'aura jamais — calcule la différence entre le texte présent et le texte voulu, et l'applique au chiffré. Le destinataire déchiffre sans le moindre incident et lit le montant falsifié. La page le fait, puis vérifie caractère par caractère que le texte obtenu est exactement celui que l'attaquant visait. La parade n'est pas un meilleur chiffrement : c'est un sceau calculé avec une seconde clé, qui ne protège pas le secret mais l'intégrité. Chiffrer et authentifier sont deux besoins différents ; les protocoles modernes ne les séparent plus.