Les Principes de Shannon. Si ton chiffrement est aussi transparent qu’une vitre, inutile d’être Alan Turing pour le casser : un simple stagiaire armé d’Excel peut lire ton message.
C’est là qu’intervient Claude Shannon (le vrai gourou de la théorie de l’information). En 1949, il a posé deux principes qui tiennent encore aujourd’hui debout comme des piliers de béton armé : la diffusion et la confusion.
Sans ces deux ingrédients, ta crypto, c’est une passoire. Avec eux, c’est un labyrinthe infernal pour tout attaquant.
🔀 Diffusion : semer les bits dans le vent
La diffusion, c’est l’art de propager l’influence d’un seul bit d’entrée sur un maximum de bits de sortie. En gros : quand tu changes 1 bit dans ton message, il faut que la sortie devienne méconnaissable.
💡 Exemple jouet (que tu peux refaire chez toi)
On prend un bloc de 4 bits.
Message original : 1010
On définit une permutation simple :
- Le bit 1 → position 3
- Le bit 2 → position 1
- Le bit 3 → position 4
- Le bit 4 → position 2
En clair, on mélange les positions.
Résultat pour 1010
:
- Bit 1 =
1
→ en 3e position - Bit 2 =
0
→ en 1re position - Bit 3 =
1
→ en 4e position - Bit 4 =
0
→ en 2e position
Soit :0101
👉 Maintenant, change juste le premier bit du message (0010
au lieu de 1010
).
Après permutation, tu obtiens : 0001
.
⚡ Résultat : un seul bit changé en entrée → 2 bits changés en sortie. Tu vois la diffusion en action.
🎭 Confusion : embrouiller l’ennemi
La confusion, c’est brouiller la relation entre la clé et le message chiffré. En clair, il faut éviter que l’attaquant puisse deviner comment la clé agit sur le texte.
L’arme fatale ? Les S-boxes (substitution boxes).
🧩 Exemple S-box jouet
Voici une S-box 4 → 4 (tu peux t’amuser à la coder en tableau).
Entrée | Sortie |
---|---|
0000 | 1110 |
0001 | 0100 |
0010 | 1101 |
0011 | 0001 |
0100 | 0010 |
0101 | 1111 |
0110 | 1011 |
0111 | 1000 |
1000 | 0011 |
1001 | 1010 |
1010 | 0110 |
1011 | 1100 |
1100 | 0101 |
1101 | 1001 |
1110 | 0000 |
1111 | 0111 |
👉 Testons avec notre message : 1010
.
Entrée = 1010
(soit 10 en décimal).
Dans la table → sortie = 0110
.
💡 Remarque : impossible de deviner un modèle simple. C’est non linéaire, chaotique, parfait pour brouiller la piste.
⚡ Cocktail explosif : diffusion + confusion
Tout l’art de Shannon, c’est d’avoir compris qu’il fallait mélanger les deux.
- La diffusion s’assure que chaque bit se répand comme une rumeur dans un open-space.
- La confusion rend la relation clé ↔ message illisible.
🧮 Mini-exemple combiné
Message de départ : 1010
- S-box →
1010
→0110
- Permutation (celle de tout à l’heure) →
1001
👉 Maintenant, change juste un bit à l’entrée (1011
au lieu de 1010
).
- Avec S-box →
1100
- Avec permutation →
0011
⚡ Résultat : en changeant 1 bit au départ, tu te retrouves avec 3 bits différents à l’arrivée. On commence à voir poindre le fameux effet avalanche (qu’on a développé dans un autre article).
🧑🔬 À toi de jouer !
Petit exercice maison (pas besoin d’ordi, mais tu peux le coder en Python si ça te démange) :
- Prends une S-box jouet (celle ci-dessus, ou invente la tienne).
- Applique-la à un bloc de 4 bits.
- Fais une permutation derrière.
- Change 1 bit du message initial et compare le résultat.
👉 Objectif : vérifier que ton schéma maison diffuse et confond correctement.
Si au final, ton résultat ne change que sur 1 ou 2 bits, c’est que ta crypto est aussi fragile qu’un mot de passe “1234”.
🏁 Conclusion
Claude Shannon l’avait compris dès 1949 : la sécurité en cryptographie, ce n’est pas de cacher la recette, mais d’avoir une recette tellement bien mélangée que personne ne peut la deviner.
La diffusion et la confusion sont les deux épices essentielles de ce cocktail mathématique.
⚡ Sans elles, ton algorithme, c’est du jus de fruit.
Avec elles, c’est un Mojito chiffré que même un attaquant à jeun ne saura pas reproduire.
👉 Prochain épisode : Le schéma de Feistel. Comment rendre un chiffrement réversible même si la fonction interne est un bazar total ? Spoiler : ça tient en 3 lignes de maths.