On ne peut pas prendre n'importe quoi comme matrice de chiffrement. Ses composantes doivent tout d'abord être des nombres entiers positifs. Il faut aussi qu'elle ait une matrice inverse dans Z26.
existe si (ad-bc)-1 (mod 26) existe. Or (ad-bc)-1 (mod 26) existe si (ad-bc) et 26 sont premiers entre eux. Il faut donc contrôler que (ad-bc) est impair et n'est pas multiple de 13 (voir à ce sujet le chiffre affine).
L'instruction Mathematica PowerMod[k, -1, n] donne l'inverse de k (mod n). Par exemple PowerMod[43, -1, 26] retourne 23 comme résultat.
Il existe des algorithmes efficaces pour déterminer l'inverse de k (mod n), par exemple l'algorithme d'Euclide étendu. Mais quand n=26, la méthode "force brute" est sans doute la manière la plus simple:
| 43·1 (mod 26) = 43 (mod 26) = 17 (mod 26). | Donc 1 n'est pas le nombre cherché. |
| 43·3 (mod 26) = 129 (mod 26) = 25 (mod 26). | Donc 3 n'est pas le nombre cherché. |
| 43·5 (mod 26) = 215 (mod 26) = 7 (mod 26). | Donc 5 n'est pas le nombre cherché. |
| 43·7 (mod 26) = 301 (mod 26) = 15 (mod 26). | Donc 7 n'est pas le nombre cherché. |
| 43·9 (mod 26) = 387 (mod 26) = 23 (mod 26). | Donc 9 n'est pas le nombre cherché. |
| 43·11 (mod 26) = 473 (mod 26) = 5 (mod 26). | Donc 11 n'est pas le nombre cherché. |
| 43·15 (mod 26) = 645 (mod 26) = 21 (mod 26). | Donc 15 n'est pas le nombre cherché. |
| 43·17 (mod 26) = 731 (mod 26) = 3 (mod 26). | Donc 17 n'est pas le nombre cherché. |
| 43·19 (mod 26) = 817 (mod 26) = 11 (mod 26). | Donc 19 n'est pas le nombre cherché. |
| 43·21 (mod 26) = 903 (mod 26) = 19 (mod 26). | Donc 21 n'est pas le nombre cherché. |
| 43·23 (mod 26) = 989 (mod 26) = 1 (mod 26). | Donc 23 est le nombre cherché. STOP. |
Calculez à la main 15-1 mod 26, puis vérifiez votre résultat avec le programme ci-dessous.
Entrez votre matrice de chiffrement, après avoir vérifié qu'elle est valide.