Chiffre de Hill (compléments)


Matrice de chiffrement - Comment trouver l'inverse de k (mod 26)? - Calcul de la matrice de déchiffrement

Matrice de chiffrement

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).

Vérifiez votre matrice de chiffrement:


         ad-bc =       Verdict:   


Comment trouver l'inverse de k (mod 26)?

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:

  1. Multiplier successivement k par les entiers m de l'ensemble {1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25}
  2. Stopper quand le produit k·m est égal à 1 (mod 26); k-1 modulo 26 = m.

Exemple

Soit k=43. Trouvons k-1 (mod 26).

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.

Calculez l'inverse de k (mod 26):

  k=           Inverse:   


Calcul de la matrice de déchiffrement

Entrez votre matrice de chiffrement, après avoir vérifié qu'elle est valide.



chiffrement
    

déchiffrement


Référence


  Didier Müller, 25.1.21