Chiffre affine double

Le chiffre affine double de l’agent K #

\(\) L’agent K n’en finit plus de vous surprendre avec ses méthodes de chiffrement customisées.

Sa dernière méthode en date est une sorte de chiffre affine double. Il commence par choisir une clé de chiffrement composée de 3 (petits) entiers strictement positifs : $(a_1, a_2, b)$. Par exemple : $(a_1, a_2, b) = (3, 5, 2)$.

Puis il utilise ce tableau :

0 1 2 3 4 5 6 7 8 9 10 11 12
A B C D E F G H I J K L M $a_1 = 3$
N O P Q R S T U V W X Y Z $a_2 = 5$

Pour chiffrer la lettre R, il faut relever le numéro de la colonne (ici c’est 4), puis, puisque R est sur la seconde ligne, calculer : $(4\times a_2 + b) \mod 13$, ce qui donne 9 (avec $a_2=5$ et $b=2$ et $x \mod 13$ qui vaut le reste de la division entière de $x$ par 13). Sur la seconde ligne, colonne 9, on a la lettre W. La lettre R sera donc chiffrée en W.

Pour chiffrer la lettre C qui est sur la première ligne colonne 2, on calculer $(2\times a_1 + b) \mod 13$ ce qui donne 8 (avec $a_1=3$ et $b=2$). Sur la ligne 1 colonne 8, on trouve le I, donc la lettre C sera chiffrée en I.

Les caractères autres que ceux du tableau sont laissés tels quels. Ainsi, le message VIVE PYTHON ! sera chiffré en QAQB ZSTKUP !

Vous avez réussi à intercepter un des messages de l’agent K, mais malheureusement, vous ne savez pas quelles sont les trois valeurs $(a_1, a_2, b)$ utilisées comme clé et vous ne connaissez pas non plus les détails du déchiffrement. Et en plus, l’agent K semble avoir supprimé les espaces de son message pour compliquer la tâche. Par contre, vous savez que le message en clair mentionne le mot AGENT

KLDNDKTDUDSYOTLEJDRUZ:S4NNSQUM0RN3KTDUX

Quel est le mot de passe donné dans le message ?

Pièces à fournir :

  • réponse à l’énigme ;
  • fichier contenant votre code source (.sb3 ou .py), pour que nous puissions tester ;
  • explications sur la manière dont vous avez procédé.