Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 26-10-2020 15:18:43
- armandoV
- Invité
Aide décryptage
Bonjour,
Je participe à un challenge organisé par mon école et après plusieurs étape je suis arrivé sur un PDF avec le message suivant :
Message confidentiel d’Evil Chems pour Evil Gouv
La production de VX est bientôt achevée. Pour accéder aux détails sur la livraison, vous devez rentrer
un code d’accès. Pour plus de sécurité, il est chiffré par substitution mono-alphabétique de la manière
suivante : chaque caractère ASCII est remplacé par son inverse dans
GF(256)=Z_2[X]/X^8+X^4+X^3+X+1
Voici le mot de passe chiffré : 0xAF3A5E20A63AD0
Le texte clair est le code d’accès pour accéder aux informations voulues.
Salutations diaboliques,
Evil Chems
J'ai donc fait des recherches sur internet et je tombe sur les champs fini de Rinjdael. Et je ne sais pas par ou commencer et comment décrypter le message attendu.
Merci
#2 27-10-2020 19:24:09
- Rossignol
- Membre
- Inscription : 19-06-2015
- Messages : 290
Re : Aide décryptage
Bonjour armandoV,
Le corps fini $\mathbb{GF}(256)$ (Galois Field pour les Anglo-saxons) est très utilisé en cryptographie. L'idée est de définir les quatre opérations sur les octets ($256 = 2^{8}$) en utilisant les polynômes de $\mathbb{Z}/2\mathbb{Z}[X]$.
À chaque octet on peut associer bijectivement un polynôme. Par exemple à $(175)_{10}=(AF)_{16}=(10101111)_2$ on associe le polynôme $X^7+X^5+X^3+X^2+X+1$.
Pas de problème pour l'addition : l'addition des polynômes de deux octets est le polynôme associé au xor ($\oplus$) des deux octets.
Par contre, le produit de deux polynômes de degrés strictement inférieurs à 8 n'est pas toujours un polynôme de degré strictement inférieur à 8. On choisit donc un polynôme irréductible de degré 8 de $\mathbb{Z}/2\mathbb{Z}[X]$ comme module. Le reste de la division euclidienne du polynôme produit par ce module est un polynôme de degré strictement inférieur à 8 qui correspond, par définition, au produit des deux octets.
Il faut que le polynôme module soit irréductible pour que l'anneau quotient soit un corps.
Joan Daemen et Vincent Rijmen, les concepteurs de l'algorithme de chiffrement Rijndael (AES), ont choisi comme module le polynôme $X^8 + X^4 + X^3 + X + 1$.
(Si on choisit un autre polynôme irréductible de degré 8, les valeurs numériques sont différentes : il faut donc bien préciser le polynôme utilisé comme module. Néanmoins les corps obtenus avec des modules différents sont tous isomorphes).
Pour des exemples numériques voir Wikipédia.
Il existe des modules Python pour calculer dans ce corps, par exemple GF256.
Mais le plus simple est d'utiliser la table des inverses donnée à la fin de cette page.
Le mot de passe chiffré est 0xAF3A5E20A63AD0. On a donc 7 octets : AF 3A 5E 20 A6 3A D0
Pour le premier, AF, la table donne l'inverse 62 ce qui correspond au caractère ascii b.
Pour le deuxième, 3A, l'inverse est 20 ce qui correspond au caractère espace.
Et ainsi de suite.
Table des caractères ascii (utiliser la base 16).
@+
Hors ligne
#3 27-10-2020 20:08:47
- armandoV
- Invité
Re : Aide décryptage
Bonsoir,
Merci beaucoup pour cette explication et d'avoir pris le temps de me répondre
Si j'ai bien compris
AF => 61 donc b
3A => 20 donc espace
5E => 62 donc c
20 => 3a donc :
A6 => 65 donc e
D0 => 7a donc z
Je suis sassez bête car j'avais déjà trouver un des sites que vous mettez^^
Mais grâce à vous j'ai pu comprendre cette méthode de chiffrement
Merci
Pages : 1