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

#26 27-01-2015 11:42:54

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 403

Re : Problème de cryptologie complexe sous Python

Re,

Moi, oui...
Mais je me suis mis à la place de hodgush...
Pour lui, j'écris ça :

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

Cle=[14,0,9,24]
Texte=""
Alpha=[chr(97+i) for j in range(2) for i in range(26)]
id=-1
with open("texte_code.txt","r") as f_r:
    Liste_lignes=f_r.readlines()
f_r.close()

with open("texte_decode.txt","w") as f_w:
    for ligne in Liste_lignes:
        for l in ligne:
            if l not in Alpha:
                Texte+=l
            else :
                id+=1
                if id > 3:
                    id =0
                pos=Alpha.index(l)
                car=Alpha[pos+Cle[id]]
                Texte+=car
       
        f_w.write(Texte)
        Texte=""        
f_w.close()

Pour moi, ça devient :

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

Cle, Texte,id=[14,0,9,24],"",-1
Alpha=[chr(97+i) for j in range(2) for i in range(26)]
with open("texte_code.txt","r") as f_r:
    Liste_lignes=f_r.readlines()
f_r.close()

with open("texte_decode.txt","w") as f_w:
    for ligne in Liste_lignes:
        for l in ligne:
            if l not in Alpha:
                Texte+=l
            else :
                id+=1
                id=id%4
                Texte+=Alpha[Alpha.index(l)+Cle[id]]
        f_w.write(Texte)
        Texte=""        
f_w.close()

Pas sûr que cela lui paraisse aussi clair...
Mais c'est plus rapide.

@+

Hors ligne

#27 27-01-2015 14:15:04

LeSingeMalicieux
Membre
Inscription : 18-01-2015
Messages : 84

Re : Problème de cryptologie complexe sous Python

Re,

Désolé yoshi, je ne souhaitais pas remettre tes compétences en cause, mais juste apporter ma pierre à l'édifice.
En tout cas, et même si je n'ai pas beaucoup fait de python dans ma vie, je trouve ton code vraiment optimisé (et c'est un compliment) !

D'autre part, je m'insurge contre le prof de hogdush. Ceci n'est absolument pas une substitution monoalphabétique.
Le principe de la substitution monoalphabétique est de toujours remplacer un même caractère par un autre (lettre, chiffre, symboles, etc.).
Dans notre cas il s'agit de substitution polyalphabétique, où un caractère du clair est substitué par un autre (là encore : lettre, chiffre, symboles, etc.) suivant une règle préétablie. Dans ce cas, un caractère du clair n'est pas forcément toujours substitué par le même caractère.
Rien de méchant dans cette précision, mais j'aime assez voir la vérité rétablie.

En plus hogdush pourra ainsi apprendre quelque chose à son prof ;)

@+

Hors ligne

#28 27-01-2015 14:32:45

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 403

Re : Problème de cryptologie complexe sous Python

Re,

Dans ce cas, un caractère du clair n'est pas forcément toujours substitué par le même caractère.

Sûr ! Ça m'a assez foutu dedans...
Et puis tant qu'à être "drôle" ^_^ je trouve regrettable qu'il n'ait pas eu l'idée d'une transfo du même acabit sur les majuscules !
Ça se fait ça : 2 clés ? C'est pas du surchiffrage comme le message de Pinto... D'ailleurs dans son cas, il faudrait déterminer qui de la poule ou de l’œuf était le 1er !

En plus hogdush pourra ainsi apprendre quelque chose à son prof ;)

En l'occurrence, si c'est comme certains profs de techno chargés d'enseigner l'informatique que j'ai pu voir à l’œuvre il y a un temps certain, ils n'en savaient plus que leurs élèves que pa

Je me demande dans la classe du jeune hodgush combien auront trouvé, et combien auront trouvé seuls !

En plus hogdush pourra ainsi apprendre quelque chose à son prof ;)

Hors ligne

#29 27-01-2015 14:37:24

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 403

Re : Problème de cryptologie complexe sous Python

Re,

Dans ce cas, un caractère du clair n'est pas forcément toujours substitué par le même caractère.

Sûr ! Ça m'a assez foutu dedans...
Et puis tant qu'à être "drôle"  je trouve regrettable ^_^ qu'il n'ait pas eu l'idée d'une transfo du même acabit sur les majuscules !
Ça se fait ça : 2 clés ? C'est pas du surchiffrage comme le message de Pinto... D'ailleurs dans son cas, il faudrait déterminer qui de la poule ou de l’œuf était le 1er !

En plus hogdush pourra ainsi apprendre quelque chose à son prof ;)

S'il repasse un jour par là, mais je suis pessimiste...

En l'occurrence, si c'est comme certains profs de techno chargés d'enseigner l'informatique que j'ai pu voir à l’œuvre il y a un temps certain, ils n'en savaient plus que leurs élèves que parce qu'ils avaient une leçon d'avance (maintenant, ils en baveraient !)...

Je me demande dans la classe du jeune hodgush combien auront trouvé, et combien auront trouvé seuls !

Vale tibi !

@+

Hors ligne

#30 27-01-2015 15:05:16

LeSingeMalicieux
Membre
Inscription : 18-01-2015
Messages : 84

Re : Problème de cryptologie complexe sous Python

Re,

yoshi a écrit :

Et puis tant qu'à être "drôle"  je trouve regrettable ^_^ qu'il n'ait pas eu l'idée d'une transfo du même acabit sur les majuscules !
Ça se fait ça : 2 clés ? C'est pas du surchiffrage comme le message de Pinto... D'ailleurs dans son cas, il faudrait déterminer qui de la poule ou de l’œuf était le 1er !

Ah oui tiens ça c'est une excellente idée ! Un chiffrement sur les minuscules, et un autre sur les majuscules !
Effectivement ce n'est pas un surchiffrement (surchiffrage ? On dit comment ?) puisqu'un même caractère du clair n'est pas chiffré une fois, puis une seconde fois. Mais c'est une excellente idée (je me répète) dans le sens ou casser un tel chiffre serait intéressant.

Dans mon cas je connais quelques méthodes qui utilisent plusieurs clefs (chiffrements à deux carrés, trois carrés ou quatre carrés), mais je n'ai jamais été confronté à un crypto qui utilise, selon une règle bien entendu, deux méthodes de chiffrement différentes à appliquer sur différents caractères du clair (ou du crypto).

Pour ce qui est du crypto de Pinto, j'ai déjà pas mal travaillé dessus, mais j'attends d'affiner mes résultats avant de vous en faire part, afin de ne pas apporter plus de questions que de réponses. En tout cas il est probable que tes talents en italien (si j'ai bien compris tu maîtrises cette langue) nous soient utiles.

@+

Hors ligne

#31 27-01-2015 19:55:03

totomm
Membre
Inscription : 25-08-2011
Messages : 1 093

Re : Problème de cryptologie complexe sous Python

Bonsoir,

hogdush post #1 a écrit :

je dois essayer de trouver un programme sous python permettant de déchiffrer un texte crypté sans en connaitre la clé.

On ne sait donc pas si hogdush devait écrire un programme genre test de Kasiski comme proposé par gielev au post #22
Ou écrire un programme type yoshi donnant le texte en clair…connaissant les 3 substitutions à effectuer.

Je ne suis pas féru de cryptanalyse, mais j'ai déchiffré assez vite ce texte en comprenant (dans les parties dialogues) qu'il y avait plusieurs substitutions de type "César" (mono-alphabétique), ce qui est donc bien du poly… et wikipedia m'a fourni la table de Vigenère qui m'a fait comprendre la clé "Marc" ("marc" en fait) citée par gielev.

Le professeur a dû se donner du mal pour éliminer les caractères accentués du texte original  !
Il voulait rester sur une table de Vigenère à 26 caractères et une clé de 4 caractères. S'il n'avait pas converti ces caractères accentués, ils seraient restés inchangés dans le texte crypté qui aurait été immédiatement déchiffrable. Il a simplement oublié les û, ô et â.
Je ne comprend donc pas pourquoi on pourrait mettre en doute les compétences de ce professeur qui a certainement voulu donner un exercice pas trop difficile…

Personellement c'est gielev qui m'a amené à comprendre comment le procédé Vigenère a été cassé par Kasiski…Mais je ne suis pas plus attiré pour autant par les devinettes dont se jouent gielev et LeSingeMalicieux

Hors ligne

#32 27-01-2015 22:45:49

gielev
Membre
Inscription : 08-03-2007
Messages : 426

Re : Problème de cryptologie complexe sous Python

totomm a écrit :

Personellement c'est gielev qui m'a amené à comprendre comment le procédé Vigenère a été cassé par Kasiski…Mais je ne suis pas plus attiré pour autant par les devinettes dont se jouent gielev et LeSingeMalicieux

T'es trop bon Totomm. A tout seigneur tout honneur.
Je dois te dire que c'est toi qui a déchiffré le truc en premier. Sur ce coup là je n'ai rien vu.
C'est en lisant ton post que j'ai été amené à vouloir tester une petite "moulinette" que j'ai écrite il y a de nombreuses années déjà.
J'ai donc extrait un morceau de phrase sans majuscules et pas trop court. Et ma moulinette m'a livré "marc" et ses permutations, fonctions de la position dans le texte où je prenais mon morceau de phrase.
Bien sûr j'aurai pu trouver marc tout de suite d'après tes indications numériques. Mon P.S. à propos du nom du prof était aussi le clin d'oeil que je faisais à ce sujet.
Donc encore une fois bravo à toi qui a trouvé le système employé par le prof de hogdush.
Je ne m'en suis pas joué de celui là.
Quant à mon intérêt pour certaines devinettes, je fais un tri assez strict. Actuellement c'est le crypto de Pinto qui m'intéresse. Et la raison en est qu'il s'agit de plus qu'une devinette puisque c'est un crypto réel issu d'une archive historique...
Enfin je suis content si j'ai pu te rendre service en te permettant de comprendre la méthode de Kasiski.
Il y a encore d'autres trucs pour trouver les longueurs de clé des Vigenère (quand elle ne sont pas trop longues par rapport au texte)
Mais ici on n'a pas du Vigenère "pur" alors je ne sais pas si elles marcheraient.
gielev

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt dix-sept moins soixante treize
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums