Bonjour,
Je vous propose un nouvel élément à utiliser : Un algo de crypto qui peut s'exécuter de tête, même par des enfants !
Un algo de crypto qui peut s'exécuter de tête, même par des enfants ?
Je propose une suite chiffrante avec chaînage et lettre initiale.
Et c'est plus dur à craquer que la machine Enigma !
(Évidemment, il ne fait pas le poids face à un AES ou tout autre algo de pro)
Comment ça marche ?
On commence par se donner un alphabet, dans cet exemple : A,B,C,D,E
-> les messages ne devront comporter que ces lettres.
Puis on définit une addition et une soustraction sur cet alphabet.
On remplace simplement les lettres par leur indice, en commençant à 0.
A vaut 0, B vaut 1, ... E vaut 4.
Ensuite on fait de l'arithmétique "modulaire", c'est à dire que quand ça dépasse
on "reboucle" :
- on soustrait 5 tant que le résultat est plus grand que 4
- on additionne 5 tant que le résultat est plus petit que 0
Ex : 3+4 = 7 et 7 (qui "dépasse" 4) donne 7-5 = 2.
1-3 = -2 et -2 (qui est plus petit que 0) donne -2 + 5 = 3
Remarque : une arithmétique modulaire à laquelle on est déjà habitué :
les minutes sur une horloge : quand ça dépasse 60, on soustrait 60.
Pour aller plus vite, on peut se créer une table qui résume cette arithmétique.
- + A B C D E
A A A B C D E
E B B C D E A
D C C D E A B
C D D E A B C
B E E A B C D
On peut même l'imprimer, elle n'est pas secrète !
Comment ça se lit une table comme ça ?
On veut calculer x + y (où x et y sont des lettres de notre alphabet)
On prend la colonne de x, puis la ligne de y, où y est choisi dans la colonne "+"
Ex : D+B : 4ème colonne (celle du D) et 2ème ligne (celle du B dans la colonne "+")
on trouve E
Ex : E-D : 5ème colonne (celle du E) et 3ème ligne (celle du D dans la colonne "-")
on trouve B (comme on pouvait s'y attendre : D+B = E E-D = B )
Ariane veut envoyer un message à Béatrice :
son message : BAAACDBB (comme "Béa a assez des bébés")
elle choisit une clef qui ne doit être connue que de Ariane et Béatrice : CADE
elle choisit une lettre initiale au hasard : E
(elle n'est pas secrète, mais doit être changée à chaque chiffrement)
le chiffrement :
il s'effectue lettre après lettre : à chaque étape on additionne
- la lettre à chiffrer
- la lettre de la clef
- la lettre résultant de l'étape qui précède (sauf à la première étape où c'est la lettre initiale)
message
v-------------v
B A A A C D B B
C A D E C A D E
lettre initiale --> E ^-------------^
clef répétée autant de fois que nécessaire
étape 1 : on calcule ( B + C ) + E
^ ^ ^--- lettre initiale (car il s'agit de la première étape)
| +--------- lettre de la clef qui correspond
+------------- lettre qui va être chiffrée à cette étape
à l'aide de la table (en utilisant la colonne "+"), on trouve : B+C = D et D+E = C
donc la première lettre du message chiffré est "C"
étape 2 : ( A + A ) + C
^ ^ ^----- résultat de l'étape qui précède
| +----------- lettre de la clef qui correspond
+--------------- lettre qui va être chiffrée à cette étape
on trouve A+A = A et A+C = C, donc la deuxième lettre du message chiffré est "C"
étape 3 : (A+D)+C = A
étape 4 : (A+E)+A = E
étape 5 : (C+C)+E = D
étape 6 : (D+A)+D = B
étape 7 : (B+D)+B = A
étape 8 : (B+E)+A = A
Ariane va envoyer à Béatrice (qui connaît déjà la clef)
le message chiffré (cryptogramme) plus la lettre initiale : "ECCAEDBAA"
(par convention, on ajoute la lettre initiale en tête de message)
Pour le décodage, on effectue les opérations inverses (en utilisant la colonne "-" de la table) :
Chaque lettre déchiffrée = ( lettre chiffrée - lettre précédente ) - lettre de la clef
étape 1 : ( C - C ) - E
^ ^ ^--- la lettre initiale (car il s'agit de la première étape)
| +--------- la lettre de la clef
+------------- la lettre à déchiffrer
à l'aide de la table (en utilisant la colonne "-"), on trouve C-E = D et D-C = B
donc la première lettre du message déchiffré est "B"
étape 2 : ( C - A ) - C
^ ^ ^--- la lettre qui précède dans le message chiffré
| +--------- la lettre de la clef
+------------- la lettre à déchiffrer
on trouve C-A = C et C-C = A
donc la deuxième lettre du message déchiffré est "A"
étape 3 : (A-D)-C = A
étape 4 : (E-E)-A = A
étape 5 : (D-C)-E = C
étape 6 : (B-A)-D = D
étape 7 : (A-D)-B = B
étape 8 : (A-E)-A = B
Elle obtient "BAAACDBB" : Béatrice a bien déchiffré le message.
De tête, c'est peut-être un peu difficile, mais avec la table en anti-sèche, ça se fait !
Qu'en pensez-vous ?








Répondre avec citation
Partager