Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#76 Re : Cryptographie » Aide décryptage » 27-10-2020 19:24:09

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

@+

#77 Re : Cryptographie » décryptage code » 17-10-2020 17:32:13

J'ai fait une page ipython-notebook pour expliquer ça avec quelques fonctions que j'utilise souvent.

@+

#78 Re : Cryptographie » décryptage code » 16-10-2020 16:18:00

Bonjour achtlos,

gielev a donné un indice rigolo !

Aujourd'hui, on est VENDREDI.

@+

#79 Re : Cryptographie » Décryptage d'un message » 09-09-2020 17:13:53

Bonjour Brazake,

Le codage est simplissime : 0 = A, 1 = B, 2 = C, ... 25 = Z.

La seule difficulté est dans le découpage de chaque nombre :

24 14 20 _ 2 0 13 19 _ 8 12 0 6 8 13 4 _ 7 14 22
 Y  O  U _ C A  N  T _ I  M A G I  N E _ H  O  W
   
12 20 2 7 _ 8 19 18 _ 7 20 17 19 8 13 6 _ 12 4
 M  U C H _ I  T  S _ H  U  R  T I  N G _  M E
 
22 7 4 13 _ 24 14 20 _ 3 8 18 15 11 0 24 _ 0 11 11
 W H E  N _  Y  O  U _ D I  S  P  L A  Y _ A  L  L
 
24 14 20 17 _ 18 20 2 2 4 18 18 _ 9 20 18 19
 Y  O  U  R _  S  U C C E  S  S _ J  U  S  T
 
20 13 3 4 17 _ 12 24 _ 4 24 4 18
 U  N D E  R _  M  Y _ E  Y E  S

@+

#81 Re : Cryptographie » La cryptographie moderne est trop ! » 30-06-2020 18:41:40

Le problème vient du fait que le module $P$ est trop petit.
La racine carrée $Y$ est "rabotée" modulo $P$ et au bout du compte tu ne peux pas retomber sur $6501$ qui est plus grand que $P = 751$.
Comme je le disais dans mon message précédent, il faut $P>12799$ si on veut des messages entre $0$ et $127$.

Python peut calculer sans problème avec des entiers de taille quelconque (dans la limite de la mémoire disponible).

Tu utilises l'algorithme d'Euclide étendu (Bézout) pour calculer l'inverse modulo $P$. Tu peux plus simplement utiliser une puissance modulaire : $n^{-1}\equiv n^{P-2} \pmod{P}$ si $n$ est premier avec $P$, d'après le petit théorème de Fermat.

@+

#82 Re : Cryptographie » La cryptographie moderne est trop ! » 21-06-2020 18:57:07

Bonjour gilles06270,

Dans le chiffrement de Massey-Omura la méthode qui permet d'associer à un message (un entier) un point de la courbe elliptique est cruciale. La méthode généralement utilisée est de compléter le nombre-message avec deux chiffres. Par exemple si le message est le caractère A de code ASCII 65, on cherche s'il existe un point de la courbe d'abscisse 6500, ou bien 6501, ou bien 6502 ...etc. On prend le premier qui marche.

for J in range(D):
    if enc: # Encode
        X = D*int(dm) + J  # pas de modulo P
        Y2 = self.curve_result(curve, X)
        ...

On peut simplifier en prenant D = 10. On a une chance sur deux de tomber sur un résidu quadratique. Si les dix essais échouent, c’est vraiment pas de bol !

Attention, pas de modulo P pour le calcul de X sinon ce n'est pas bijectif. Le plus grand code ASCII étant 127, il faut donc $P>12799$.

Pour retrouver le message à partir du point, il suffit de faire la division entière de l'abscisse du point par D.

@+

#83 Re : Cryptographie » Décryptage d'un message » 21-06-2020 15:30:13

Bonjour Gilles06270,

,'à}0¥ Ꮝ¥2ス¥于 ÿ~¥ 㒴à 㒴~2¥ ¥ス分 㒴ò 0㒿0¥ ス} í¥ 2¥ 㒴à 于¥因à于ú¥ Ꮝàスì
J'aime penser   que la  lune  est là  même  si je ne la  regarde   pas.

@+

#84 Re : Cryptographie » Décryptage d'un message » 15-06-2020 19:37:29

Bonsoir,

Le mieux que j'ai obtenu :

/9;!974
BONJOUR
 
(1(1(1 €3 « 18# 7; *3##1€3 +9&33
HAHAHA GE J AIS UN MESSAGE CODEE
 
437##8 1 &3+9&34 ?
REUSSI A DECODER ?
 
*1-3 »8@73 17€7#58;
MA-E »IQUE AUGUSTIN
 
/8#97#
BISOUS
 
!’3#0343 @73 57 5’1*7#341#
J’ESPERE QUE TU T’AMUSERAS

@+

#85 Re : Cryptographie » Enigma. Il y a du nouveau » 04-06-2020 17:06:18

Pour une analyse des documents des archives françaises cités dans la vidéo, lire l'article de Jean-François Bouchaudy paru dans Cryptologia (accès libre) : Enigma: the spoils of Gustave Bertrand, or “par où tout a commencé”

@+

#86 Cryptographie » Sur Auguste Kerckhoffs » 02-06-2020 18:04:41

Rossignol
Réponses : 1

Bonjour à tous,

Un article très fouillé sur un homme à principes :  Auguste Kerckhoffs.

(article en anglais écrit par des Français).

@+

#87 Re : Cryptographie » a » 04-05-2020 10:00:19

Bonjour Arthur49,

Quel est le contexte ? Qu'est qu'on cherche ?

Si on cherche un mot de 8 lettres, si les chiffres sont des lettres inconnues, si les lettres déjà présentes ont leur valeur réelle, si le mot est un mot commun ... on a 17 "solutions" :

6459A42E
INSTANTE
RUSTAUDE
EPITAPHE
LINEAIRE
ENGRANGE
BIENAIME
BILIAIRE
INCHANGE
MIGRAINE
ENGEANCE
SURSAUTE
ENCHANTE
PREPAREE
GUIMAUVE
ENTRANTE
INSTANCE
LIBRAIRE

Mais ça fait beaucoup de si !

@+

#88 Re : Cryptographie » Enigme complexe pour ma petite tête ! » 02-05-2020 17:02:56

Bonjour Anger,

J'ai utilisé un programme Python. Voir ma page Décrypter une substitution monalphabétique.

Mathématiquement, il s'agit d'un problème d'optimisation.

On peut aussi le faire à l'ancienne. La lettre la plus fréquente est B : on peut supposer B = e

A_BCD_EF_AGBFH_IB_JE_DBKLBDB_MF_NJ_BCD_NOINCLBOHEPJB
._e.._.._..e.._.e_.._.e..e.e_.._.. e.._......e.....e

On a deux fois un mot de trois lettres (BCD) commençant par e. On peut supposer BCD = est.
C'est le plus probable (les autres sont 'epi', 'ego', 'elu', 'eut', 'eux', 'eus', 'emu', 'ecu', 'eau', 'env', 'etc', 'erg').

A_BCD_EF_AGBFH_IB_JE_DBKLBDB_MF_NJ_BCD_NOINCLBOHEPJB
._est_.._..e.._.e_.._te..ete_.._.. est_....s.e.....e

On voit apparaître un mot de 7 lettres : 'te..ete'. La seule possibilité est 'tempete'.

A_BCD_EF_AGBFH_IB_JE_DBKLBDB_MF_NJ_BCD_NOINCLBOHEPJB
._est_.._..e.._.e_.._tempete_.._.. est_....spe.....e
 

On devine JE = la (tempete) :

A_BCD_EF_AGBFH_IB_JE_DBKLBDB_MF_NJ_BCD_NOINCLBOHEPJB
._est_.._..e.._.e_la_tempete_.._.l est_....spe....le

Maintenant on voit que NJ = il

A_BCD_EF_AGBFH_IB_JE_DBKLBDB_MF_NJ_BCD_NOINCLBOHEPJB
._est_.._..e.._.e_la_tempete_.._il est_i..ispe....le

et ainsi de suite. Un bon cruciverbiste résout le problème en quelques minutes !

Prévoir une grosse gomme quand même :-)

@+

#89 Re : Cryptographie » Enigme complexe pour ma petite tête ! » 02-05-2020 10:42:56

Bonjour fortinalexis,

Il semble évident que les traits de soulignement séparent les mots et que les points séparent les codes de chaque lettre.

Une translittération permet une résolution facile :

A_BCD_EF_AGBFH_IB_JE_DBKLBDB_MF_NJ_BCD_NOINCLBOHEPJB
c est au coeur de la tempete qu il est indispenrable

Il y a une erreur de chiffrement à la fin, le 36 (r) doit être un 39 (s).

@+

#90 Re : Cryptographie » Décrypter un Code / Voici une énigme à résoudre » 21-04-2020 12:00:28

Bonjour Jocelyne,

En décomposant les nombres donnés en facteurs premiers on devine le codage.

Chaque lettre de l'alphabet est associée à un nombre premier :

A : 2
B : 3
C : 5
D : 7
E : 11
F : 13
G : 17
H : 19
I : 23
J : 29
K : 31
L : 37
M : 41
N : 43
O : 47
P : 53
Q : 59
R : 61
S : 67
T : 71
U : 73
V : 79
W : 83
X : 89
Y : 97
Z : 101

et pour un mot on fait le produit des nombres associés à chaque lettre du mot :

DIEU : $7\times 23\times 11\times 73 = 129283$ 
ALLAH : $2\times 37\times 37\times 2\times 19 = 104044$ 
VIE : $79\times 23\times 11 = 19987$ 
ARBRE : $2\times 61\times 3\times 61\times 11 = 245586$

Comme $8506389 = 3\times 23\times 43\times 47\times 61$, le mot cherché est une anagramme de BINOR, sans doute ROBIN

@+

#91 Re : Cryptographie » Aide pour chiffrage avec des nombres » 19-04-2020 15:03:43

Bonjour Yoshi,

J'aurais dû commencer mon post par IMHO [ In My Humble Opinion ] !

yoshi a écrit :

La procédure que j'ai décrite fonctionne.

Je n'ai jamais dit le contraire. Tu décris très bien la procédure standard avec force détails. Et heureusement, car ce n'est pas évident pour un débutant (quel fichier choisir ?)

Pour un utilisateur $\lambda$ de Windows, la console et la ligne de commande ne sont pas naturelles. Ça lui pose déjà un problème. Ce que veut un utilisateur de Windows, c'est un cliquodrome !

C'est pourquoi je conseille la distribution Python Anaconda. Elle contient déjà les modules scientifiques préinstallés.
Et dans le menu démarrer, on a le programme Navigator ! Super cliquodrome :-)
On peut installer et mettre à jour les modules juste avec des clics de souris : le rêve des Windowsiens :-)). 

De même, je conseille à un débutant de commencer à programmer dans un Jupiter notebook et non pas avec un éditeur+console ou un environnement intégré (à réserver pour les gros programmes).

Évidemment, il ne s'agit que de mon opinion et on a le droit de n'être pas d'accord avec.

@+

#92 Re : Cryptographie » Aide pour chiffrage avec des nombres » 18-04-2020 11:55:27

Bonjour à tous,

Je découvre qu'il y a des problèmes d'installation de modules Python !

Personnellement, je n'ai jamais eu ces problèmes. J'utilise la distribution Anaconda qui comprend de nombreux modules utiles aux scientifiques (Numpy, SciPy, ...etc). Pillow est installé par défaut.

Les modules scientifiques sont difficiles à installer, car ils sont liés à des bibliothèques écrites en langage C, C++, Fortran...etc. Avec les programmes Conda et Anaconda Navigator inclus, on peut installer facilement ces modules précompilés (même le célèbre module tensorflow en version basique ou gpu pour faire du machine learning).

Jupiter Notebook est installé par défaut. C'est pour moi l'application qui tue :-) Je suis passé de Perl à Python à cause de ça. On peut écrire du texte, des maths avec TeX et du code Python sur la même feuille. On se rapproche de la "programmation littéraire" de D. Knuth. On peut ensuite traduire la feuille en pdf ou en html.

HTH

@+

#93 Re : Cryptographie » Besoin d'aide pour image cryptée » 05-04-2020 10:23:50

Bonjour Crypto,

Dans le fil précédent, LeSingeMalicieux a donné l'alphabet utilisé :

00000 : _ (espace)
00001 : E
00010 : D
00011 : I
00100 : C
00101 : L
00110 : H
00111 : V
01000 : B
01001 : N
01010 : K
01011 : U
01100 : G
01101 : T
01110 : S
10000 : A
10001 : O
10010 : M
10100 : J
10101 : W
10110 : R
11000 : F
11010 : Q
11011 : Z
11100 : P
11101 : Y
11110 : X

On obtient :

10110 00001 10100 10001 00011 01100 01001 00001 11011 00000
  R     E     J     O     I     G     N     E     Z     _  
10010 10001 00011 00000 00010 10000 01001 01110 00000 00101
  M     O     I     _     D     A     N     S     _     L  
00001 01110 00000 00100 00011 00001 01011 10101 00000 00111
  E     S     _     C     I     E     U     W     _     V  
00011 10000 00000 00101 00001 00000 01110 11100 00001 00100
  I     A     _     L     E     _     S     P     E     C  
01101 10110 00001 00000 00010 10001 10110 00001 00000 00001
  T     R     E     _     D     O     R     E     _     E  
01101 00000 00010 00011 01101 00001 01110 00000 10010 10001
  T     _     D     I     T     E     S     _     M     O  
00011 00000 00011 01001 00010 00011 00100 00001 00000 00100
  I     _     I     N     D     I     C     E     _     C  
00001 01001 01101 01110 00000 10010 00011 00101 00101 00011
  E     N     T     S     _     M     I     L     L     I  
10001 01001 00000 01010 10000 10010 10000 01110
  O     N     _     K     A     M     A     S  

Il y a un problème entre W et X : erreur de chiffrement ?

@+

#94 Re : Cryptographie » Aide pour décrypter un message » 04-04-2020 11:14:15

Bonjour nafas,

C'est un chiffrement de Vigenère. La clé est un peu longue pour un message aussi court !

Je vous donne le début :

Clé :    ZY XW VUTSR QPONML ...
crypto : IC KA KYKVJ ZPANUD ...
clair :  JE NE PERDS JAMAIS ...

Vous voyez la clé ?

@+

#96 Re : Cryptographie » Décrypter du grec » 28-03-2020 13:03:35

Bonjour Noopy,

Voilà un cryptogramme original, un peu court toutefois !

On peut essayer les décalages de lettres de l'alphabet grec (ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ) comme pour le chiffre de César.

J'ai écrit un petit bout de code Python pour déterminer les 24 déchiffrements possibles.

Comme pour moi, le grec c'est du chinois (et réciproquement), j'ai passé la liste à Google Trad qui m'a fourni la liste suivante :

 0  ΣΗΑ-ΨΙΡΙΘΣ  DRAPEAUX-ZIRITS
 1  ΤΘΒ-ΩΚΣΚΙΤ  TTB-OKSKIT    
 2  ΥΙΓ-ΑΛΤΛΚΥ  YIG-ALTLKY    
 3  ΦΚΔ-ΒΜΥΜΛΦ  FKM-BMMLF      
 4  ΧΛΕ-ΓΝΦΝΜΧ  HLE-WNMX      
 5  ΨΜΖ-ΔΞΧΞΝΨ  HMZ-EXCHANGE  
 6  ΩΝΗ-ΕΟΨΟΞΩ  ONY-EOXOXO    
 7  ΑΞΘ-ΖΠΩΠΟΑ  ATHÈNES-ZAPOA  
 8  ΒΟΙ-ΗΡΑΡΠΒ  BIO-HERAPPB    
 9  ΓΠΚ-ΘΣΒΣΡΓ  GKS-TSVSG      
10  ΔΡΛ-ΙΤΓΤΣΔ  Drs            
11  ΕΣΜ-ΚΥΔΥΤΕ  IMP-DID        
12  ΖΤΝ-ΛΦΕΦΥΖ  ZTN-LIEFYZ    
13  ΗΥΞ-ΜΧΖΧΦΗ  HUX-MAZHFI    
14  ΘΦΟ-ΝΨΗΨΧΘ  THO-NICHIPH    
15  ΙΧΠ-ΞΩΘΩΨΙ  Puissance      <-- ???
16  ΚΨΡ-ΟΑΙΑΩΚ  KIR-OAIAK      
17  ΛΩΣ-ΠΒΚΒΑΛ  LOS-PBKVAL    
18  ΜΑΤ-ΡΓΛΓΒΜ  MAT-Pro        
19  ΝΒΥ-ΣΔΜΔΓΝ  NBY-SDSM      
20  ΞΓΦ-ΤΕΝΕΔΞ  CFP-TENEDX    
21  ΟΔΧ-ΥΖΞΖΕΟ  OXX-YZZEO      
22  ΠΕΨ-ΦΗΟΗΖΠ  PEF-FZZZP      
23  ΡΖΩ-ΧΘΠΘΗΡ  RZO-CHPTHIR    

Apparemment, une seule traduction fait sens. Mais bon, c'est Google qui le dit, pas moi :-)

@+

#97 Cryptographie » RSA-250 factorisé » 13-03-2020 19:13:09

Rossignol
Réponses : 0

Bonjour à tous,

La même équipe qui avait factorisé le nombre RSA-240 au mois de décembre dernier vient de factoriser RSA-250 (250 chiffres décimaux, 829 bits).

Le logiciel utilisé est téléchargeable ici : CADO-NFS.

@+

#99 Re : Cryptographie » Le chiffre de Grandpré » 14-02-2020 19:47:43

Bonsoir LeSingeMalicieux

Tu as raison, j'ai fait une erreur dans la numérotation des lignes.

J'ai écrit un bout de code pour éviter les erreurs de chiffrement : j'ai bien traité les numéros de colonnes, mais j'ai oublié de faire la même chose pour les lignes. L'erreur est humaine, mais pour un vrai désastre il faut un ordinateur !

J'ai corrigé les codes, le nouveau cryptogramme suit la numérotation de Grandpré.

Je suis désolé de t'avoir coupé dans ton élan.
Bon courage

@+

#100 Re : Cryptographie » AIde pour une chasse au trésor » 13-02-2020 12:25:11

La C-38 est plus connue sous le nom de M-209.

Il existe un très bon simulateur graphique de la M-209.

D'après le mode opératoire de cette machine, les "marquants" sont constitués de deux groupes de 5 lettres, ce qui n'est pas le cas pour le crypto de l'énigme.

De plus, la clé interne est plus compliquée : il y a non seulement les picots sur les roues, mais aussi les curseurs sur les barres de la cage d'écureuil.

@+

Pied de page des forums