Méthodes de chiffrement Poly-alphabétique
Chiffre de Vernam (One-Time Pad)
La seule méthode prouvablement incassable. Clé parfaitement aléatoire, aussi longue que le message, utilisée une seule fois.
- Famille :
- Poly-alphabétique
- Difficulté :
- Avancé
- Époque :
- 1917, Gilbert Vernam
- Inventeur :
- Gilbert Vernam (perfectionné par Joseph Mauborgne)
Aussi appelé : OTP · masque jetable · chiffre jetable
Le chiffre de Vernam, aussi appelé One-Time Pad (OTP) ou masque jetable, a été inventé en 1917 par l’ingénieur américain Gilbert Vernam pour sécuriser les communications télégraphiques. Amélioré par Joseph Mauborgne qui y ajouta la condition d’une clé parfaitement aléatoire et jamais réutilisée, il est devenu le seul chiffrement prouvablement incassable — théorème démontré par Claude Shannon en 1949.
Principe
Le principe est d’une simplicité radicale. La clé K est une suite parfaitement aléatoire d’entiers de longueur égale à celle du message P. Le ciphertext est :
C_i = (P_i + K_i) mod 26
(Dans la version binaire de Vernam, l’addition modulaire est remplacée par un XOR bit à bit.)
Trois conditions sont absolues :
- Aléatoire vrai — pas de générateur pseudo-aléatoire déterministe.
- Aussi longue que le message — pas de répétition, pas de cycle.
- Jamais réutilisée — chaque clé est détruite après usage (d’où le nom one-time).
Si l’une de ces conditions est violée, tout s’effondre.
Pourquoi c’est incassable
Shannon a démontré que face à un OTP, un attaquant obtient aucune information sur le clair au-delà de sa longueur. Pour tout ciphertext de longueur n, tous les plaintext de longueur n sont également probables : chacun correspond à une clé valide.
Exemple : le ciphertext ZJFQODBCGZJJZIYC peut venir de CIPHERCHRONICLE avec la clé XBQJKMZVPLWRGNY, ou de ATTACKATDAWNOWX avec une autre clé, ou de n’importe quel texte imaginable. Sans informations supplémentaires, l’attaquant est bloqué.
Exemple
Clair CIPHERCHRONICLE avec clé aléatoire XBQJKMZVPLWRGNY :
C+X=Z I+B=J P+Q=F H+J=Q E+K=O
R+M=D C+Z=B H+V=C R+P=G O+L=Z
N+W=J I+R=Z C+G=I L+N=Y E+Y=C
Résultat : ZJFQODBCGZJZIYC.
Variantes
- Stream cipher — approximation moderne d’OTP où la clé est produite par un générateur pseudo-aléatoire à partir d’une clé courte. Pas prouvablement sûre mais largement utilisée (RC4, ChaCha20).
- Vernam binaire — version originale sur bande perforée, XOR sur chaque bit. Encore utilisée pour le téléphone rouge et certaines liaisons diplomatiques.
Faiblesses pratiques
Le Vernam est théoriquement parfait mais pratiquement difficile :
- Distribuer une clé aussi longue que tous les messages futurs est un cauchemar logistique.
- Générer du vrai aléatoire en grande quantité est non trivial (bruit thermique, décohérence quantique).
- Une seule réutilisation de clé permet à l’attaquant de XORer deux ciphertexts et de retrouver la différence des plaintexts — attaque célèbre qui a cassé le projet VENONA.
C’est pourquoi les États — et quasi personne d’autre — utilisent l’OTP : l’armée et la diplomatie peuvent assumer le coût logistique.
Dans CipherChronicle
Le Vernam est l’occasion pédagogique par excellence pour expliquer la différence entre sécurité pratique et sécurité prouvable. Les grilles associées peuvent mettre en scène le paradoxe : même avec toute la puissance de calcul imaginable, l’attaquant échoue — parce qu’il n’y a littéralement rien à deviner.
Grille
- 1
Texte chiffré
Distribution parfaitement uniforme — aucune structure à exploiter.
- 2
Ni Kasiski ni fréquence
La clé est aussi longue que le message et aléatoire : aucune périodicité, aucun biais.
- 3
La seule attaque possible
Force brute sur la clé — mais tout plaintext de la bonne longueur est un candidat valide.
- 4
Application du masque
On XORe (ou additionne mod 26) chaque lettre avec la clé correspondante.
- 5
Message révélé
Le texte clair apparaît si et seulement si on possède la clé exacte.