Discussion:Chiffre de Hill

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • Admissibilité
  • Neutralité
  • Droit d'auteur
  • Article de qualité
  • Bon article
  • Lumière sur
  • À faire
  • Archives
  • Commons

Erreur dans le paragraphe "Illustration sur un exemple simple"[modifier le code]

Dans le paragraphe "Illustration sur un exemple simple", il me semble qu'il y a une erreur. Ce n'est pas "a" qui doit être premier avec 26 mais det(A). Par exemple : A=[2,3/5,4] convient pour effectuer un cryptage de Hill. Avec a=2, b=3, c=5, d=4 L'inverse de A est: B = A-1 = [18,19/23,22] et a=2 n'est pas premier avec 26. Jérôme Hascoët --81.251.57.71 (d) 18 juin 2013 à 11:34 (CEST)[répondre]

Merci pour votre remarque pertinente ! Toutefois, attention à la formulation de la phrase qui est« Pour construire cette matrice, il suffit de choisir trois entiers (a, b, c ) au hasard mais tel que a soit premier avec 26, le dernier terme d doit être choisi tel que ad - bc soit premier avec 26. ». L'emploi de l'expression "il suffit" n'est pas une condition nécessaire, ni une équivalence mais une condition suffisante. Cela dit, cette phrase ne me semble guère utile pour la construction de la matrice, puisque le choix du a n'influe pas sur la suite, comme vous le faites remarquer, contrairement à dét(A). De plus, le choix d'un a premier avec 26 n'est d'aucune aide puisque la fin de la phrase impose que de choisir un d tel que dét(A) soit premier avec 26. À noter qu'il faut et il suffit (équivalence) que dét(A) soit premier avec 26 pour que le décodage soit possible, me semble-t-il. Toto Azéro suivez le guide ! 18 juin 2013 à 11:51 (CEST)[répondre]
Quelle curieuse réponse (le cours sur le "il suffit" était un peu suffisant et pas vraiment nécessaire). Cependant je persiste: il s'agit pour moi d'une erreur. Une condition inutile ne peut que perturber le lecteur essayant de comprendre ce cryptage. Que det(A) soit inversible est effectivement utile pou obtenir un codage valide (inversible), que le coefficient a le soit est inutile. Je crois que cette condition devrait disparaître de l'article pour le rendre plus clair. Sinon, pourquoi ne pas mettre aussi "il suffit que a soit premier" ou "il suffit que a soit différent de b" ou "il suffit que a soit égal à 7" et le lecteur sera encore plus perplexe. Bref, il me semble que l'article gagnerait en clarté en remplaçant "a" par "det(A)" --81.251.57.71 (d) 18 juin 2013 à 12:22 (CEST)[répondre]
Mathématiquement, il n'y a pas d'erreur visiblement. Mais comme je le disais, je suis totalement d'accord sur le fait que cette phrase ne présente pas un grand intérêt a priori (à moins que l'on puisse trouver un a non premier avec 26 tel qu'aucun d n'existe afin que dét(A) soit premier avec 26). Si vous voulez corriger cette phrase dans l'article, vous pouvez donc le faire sans problèmeToto Azéro suivez le guide ! 18 juin 2013 à 12:48 (CEST)[répondre]
Je réponds un peu tard à l'objection mais, en écrivant cette phrase, j'en avais en fait bien pesé chaque mot. Il s'agissait pour moi de répondre implicitement à la question « comment construire une matrice inversible dans Z/26Z ? »; la réponse étant, vous pouvez choisir a, b, et c, comme vous voulez à condition que a soit premier avec 26, la seule contrainte se portera alors sur le choix de d. La condition « a premier avec 26» n'est pas nécessaire mais permet de choisir ensuite b et c quelconque. Je ne m'offusquerai pas si on la supprime mais je n'irai pas jusqu'à m'autocensurer. HB (discuter) 12 novembre 2013 à 17:50 (CET)[répondre]

Erreur calcul matrice B[modifier le code]

Bonjour,

Je ne suis pas expert en mathématiques, n'ai pas compris à 100 % l'article mais j'ai constaté une erreur dans le calcul de la matrice B pour l'exemple du chiffrement de Hill : un moment, il est écrit que B doit être congru à k*transposee(comatrice(A)) avec k un inverse modulaire de det(A) pour la multiplication modulo 26. Or, après avoir calculé transposee(comatrice(A)), il y a une division par det(A), i.e une multiplication par 1/21 ce qui donnait [[17/21, -5/21],[-6/21,3/21]]. Je n'ai pas compris sur le moment et quand j'ai essayé de déchiffrer les résultats ne tombent pas justes. En fait, il fallait multiplier non pas par l'inverse "classique" de det(A), mais par l'inverse modulaire (k = 5) trouvé précédemment, sinon ça n'a aucun sens.

Donc en réalité B = [[17*5, -5*5],[-6*5, 3*5]] = [[85,-25],[-30, 15]] = [[7, 1],[22,15]] mod 26. J'ai trouvé la même matrice avec le calculateur de cette page (en bas de la page web) : https://www.apprendre-en-ligne.net/crypto/hill/compl.html Et là pour le déchiffrement ça marche beaucoup mieux. Pour X = [19, 4] (digramme TE), la multiplication par la matrice de chiffrement A donnait Y = AX = [25, 0] (digramme codé ZA) et si on multiplie ce vecteur par la bonne matrice B, on retombe sur nos pattes : BY = [175, 550] = [19, 4] mod 26 (en vecteur colonne).

Cordialement,

Orodoth. — Le message qui précède, non signé, a été déposé par Orodoth (discuter), le 13 novembre 2019 à 23:52 (CET)[répondre]

Merci pour la correction de cette erreur introduite en mai 2017 et passée inaperçue. HB (discuter) 14 novembre 2019 à 14:57 (CET)[répondre]