Cryptage

Cryptage - Algo - Programmation

Marsh Posté le 13-03-2010 à 04:16:58    

Bonjour à tous,
 
Afin de résoudre une énigme, je cherche la méthode de décryptage telle que:
"Rome" peut être crypté par "4890dq3d" ou par "a0023c1a"
"Alger" peut être crypté par "759d8d86f3"
"Bombay" peut être crypté par "e24a3cc5db86"
 
Si quelqu'un avait une idée, ou une idée de programme qui résout ça, ça serait vraiment génial!!!
 
 
Merci d'avance


Message édité par Profil supprimé le 24-03-2010 à 10:39:24
Reply

Marsh Posté le 13-03-2010 à 04:16:58   

Reply

Marsh Posté le 13-03-2010 à 11:26:05    

EDITED


Message édité par Profil supprimé le 15-03-2010 à 18:51:05
Reply

Marsh Posté le 15-03-2010 à 18:51:24    

EDITED


Message édité par Profil supprimé le 20-03-2010 à 18:22:55
Reply

Marsh Posté le 16-03-2010 à 09:12:53    

J'ai testé avec crypté XOR simple mais ce n'est pas ça. Je ne peux pas trouver un mode.
 
Qu'est-ce que vous avez essayé?


---------------
J'apprends parler en français alors je ferai des erreurs. S'il vous plaît corrigez-moi :)
Reply

Marsh Posté le 16-03-2010 à 09:42:34    

T'as essayé en regardant les coordonnées géodésiques?

Reply

Marsh Posté le 16-03-2010 à 09:53:30    

snafu8 a écrit :

T'as essayé en regardant les coordonnées géodésiques?


Ca n'a rien à voir, puisque là on a clairement une correspondance lettre et nb de groupe de 2 elements


---------------
Blablaté par Harko
Reply

Marsh Posté le 16-03-2010 à 10:18:05    

Agreed, c'est le fait qu'il y ait deux possibilités pour Rome qui m'a fait penser à ça.

Reply

Marsh Posté le 16-03-2010 à 10:59:06    

snafu8 a écrit :

Agreed, c'est le fait qu'il y ait deux possibilités pour Rome qui m'a fait penser à ça.


c'est ça qui est chelou comment peut on avoir 2 encryptage pour un même mot ??
ça signifie qu'on peut pas aller dans l'autre sens


---------------
Blablaté par Harko
Reply

Marsh Posté le 16-03-2010 à 11:16:35    

Qu'est-ce que tu sais de la personne qui a pondu ça ? Genre c'est un gros matheux, quelqu'un qui a de l'expérience en cryptographie, ou alors quelqu'un pour qui la cryptographie se résume à ce qu'il en a vu dans Julie Lescot et McGyver?

 

Ça donne pas mal d'indications sur les pistes à suivre... parce que si c'est un débutant, c'est simple et illogique, si c'est un bon, faut creuser les techniques générales de cryptographie : rotations, ou exclusif, modulo, substitution...

 

Bref, ça aiderait.

 

Et y'a quoi à gagner ? :o


Message édité par Kenelm le 16-03-2010 à 11:17:44
Reply

Marsh Posté le 16-03-2010 à 12:27:04    

Je fais ça de tête d'habitude....
 
Mais la, avec deux cryptage pour un même pattern...  :D

Reply

Marsh Posté le 16-03-2010 à 12:27:04   

Reply

Marsh Posté le 16-03-2010 à 22:18:59    

J'ai essayé de bidouiller un peu.., surtout dans le genre code de substitution puisque comme la fait remarquer snafu8, un même mot source peut être codé de 2 manières différentes.
Je ne connais pas les coordonnées géodésiques, mais je vais essayer de me renseigner un peu sur le sujet pour ma culture (puisque apparemment ce n'est pas dans ce sens qu'il faut chercher).
 
Puisque un même mot peut être coder de deux manière différentes, il est probablement nécessaire d'avoir une données supplémentaires (qui agirait un peu comme une clé) pour pouvoir décoder le mot.
 
>Kenelem, je ne connais pas trop les compétences en maths de la personne qui a réalisé ce code (c'est un informaticien, donc je pense pas forcément matheux pur et dure);
 
Merci pour vos réponses!


Message édité par Profil supprimé le 26-03-2010 à 19:08:35
Reply

Marsh Posté le 17-03-2010 à 10:03:05    

Ben un programme qui fait ça, oui ça existe, mais ça ne fera que te pondre des milliards de solutions, et ça sera à toi de faire le tri à la main parmi les milliards de résultats :D
 
Sinon j'ai pu remarquer que certaines lettres pouvaient être retrouvées par des rotations, inversions, et additions de quelques valeurs, mais rien qui n'aie vraiment un ordre logique.

Reply

Marsh Posté le 18-03-2010 à 13:13:58    

Salut!
 
Quel type de rotations as tu détecté?


Message édité par Profil supprimé le 26-03-2010 à 19:07:34
Reply

Marsh Posté le 18-03-2010 à 14:15:20    

Niveau programme, ben tu le ponds toi même :o
Ça prend 5 minutes à faire, mais comme je te le dis, impossible de synthétiser ce que tu recherches, donc tout ce que tu auras c'est un listing de toutes les possibilités mais ça restera à toi de trouver la bonne.

 

Côté rotation, genre le "R" majuscule a pour valeur 0x52, rot de 2 à droite ça fait 0x49, soit l'équivalent d'après un chiffrement de Rome. Bref, le genre de truc qui tient plus de la coïncidence qu'autre chose, y'a forcément des tas de liens qu'on peut trouver entre les différentes lettres, mais rien qui ne suive une logique particulière, car si tu appliques le même raisonnement aux deux autres mots, c'est pas du tout bon.

 

Moi je suis d'avis qu'on se fout de ta gueule, rien que le coup des deux possibilités pour un même truc ça en dit long.


Message édité par Kenelm le 18-03-2010 à 14:15:30
Reply

Marsh Posté le 19-03-2010 à 09:26:46    

gatsu35 a écrit :


c'est ça qui est chelou comment peut on avoir 2 encryptage pour un même mot ??
ça signifie qu'on peut pas aller dans l'autre sens

 

En fait ça signifierait plutot qu'il y a plusieurs algorithmes pour le cryptage et que le cryptage n'est pas une bijection mais une injection (plusieurs cryptages possibles pour un mot mais un unique décryptage possible pour un mot crypté)

 

A priori, ca tient debout puisque le mot crypté possède 2x plus de lettres que le mot à crypter: il pourrait autoriser jusqu'à (26+10)^len(mot) cryptages pour un unique mot (26 lettres + 10 chiffres).

 

Ca signifie que tu peux écarte toute relation linéaire (type ax+b), elles sont toutes bijectives.

 

Sinon, tu as essayé un simple masque ?

Message cité 1 fois
Message édité par leo++ le 19-03-2010 à 09:26:58
Reply

Marsh Posté le 19-03-2010 à 11:47:34    

leo++ a écrit :


 
En fait ça signifierait plutot qu'il y a plusieurs algorithmes pour le cryptage et que le cryptage n'est pas une bijection mais une injection (plusieurs cryptages possibles pour un mot mais un unique décryptage possible pour un mot crypté)
 
A priori, ca tient debout puisque le mot crypté possède 2x plus de lettres que le mot à crypter: il pourrait autoriser jusqu'à (26+10)^len(mot) cryptages pour un unique mot (26 lettres + 10 chiffres).
 
Ca signifie que tu peux écarte toute relation linéaire (type ax+b), elles sont toutes bijectives.
 
Sinon, tu as essayé un simple masque ?


si le mot crypté possède 2x plus de lettre c'est parce que chaque caractère résultant est représenté par une valeur héxadécimale [:petrus75]


---------------
Blablaté par Harko
Reply

Marsh Posté le 19-03-2010 à 12:49:46    

c'est pas sûr, c'est pas parce que dans les 3,5 exemples, on n'a que a,b,c,d,e,f  qu'on ne pourrait pas trouver un mot codé avec d'autres lettres.

Reply

Marsh Posté le 19-03-2010 à 13:49:43    

pourtant ça me parait évident sur les exemple donnés :  
des chiffres entre 0-9 et des lettres entre A et F -> hexa
les lettres sont représentable en hexa par exemple si on se base sur leur valeur dans la table ascii par exemple.
Et au final si on regarde bien on a réellement -> 1 lettre pour 2 items chiffres ou lettre.


---------------
Blablaté par Harko
Reply

Marsh Posté le 19-03-2010 à 13:51:52    

gatsu35 a écrit :


si le mot crypté possède 2x plus de lettre c'est parce que chaque caractère résultant est représenté par une valeur héxadécimale [:petrus75]


 
Si c'est de l'hexadécimal, il faudrait qu'il le précise, mais j'avais pas vu ça je pense que tu as raison.
 
Dans ce cas là, il y a 2^len(mot) possibilités (1 bit de libre par octet sur de l'ASCII). Et, il demeure que le cryptage est injectif (2 possibilités de cryptage pour Rome dans tous les cas)

Reply

Marsh Posté le 19-03-2010 à 14:09:05    

Citation :

pourtant ça me parait évident sur les exemple donnés :  
des chiffres entre 0-9 et des lettres entre A et F -> hexa
les lettres sont représentable en hexa par exemple si on se base sur leur valeur dans la table ascii par exemple.
Et au final si on regarde bien on a réellement -> 1 lettre pour 2 items chiffres ou lettre.


 
ouais je sais, mais j'encule un peu les mouches.

Reply

Marsh Posté le 20-03-2010 à 13:10:50    

gatsu35 a écrit :


c'est ça qui est chelou comment peut on avoir 2 encryptage pour un même mot ??


chiffrement avec 2 clé de chiffrement différentes

gatsu35 a écrit :


ça signifie qu'on peut pas aller dans l'autre sens


ça, c'est le principe des chiffrements asymétrique. Avec la même clé, tu peux chiffré, mais pas déchiffré (enfin, pas dans un temps résonable)


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-03-2010 à 16:57:21    

zapan666 a écrit :

chiffrement avec 2 clé de chiffrement différentes

Si en plus y'a des clés, ça veut dire qu'on est pas prêt de trouver l'algo, et que ce jeu serait complètement stupide.


Message édité par Kenelm le 20-03-2010 à 16:57:54
Reply

Marsh Posté le 20-03-2010 à 18:22:13    

A mon avis, il s'agit de caractère ASCII, car aucune lettre supérieur à F n'est présente dans les quelques exemples que j'ai.
 
Par ailleurs, la première étape n'était en fait pas de trouver la méthode de cryptage, mais de comprendre que c'était impossible parce qu'il manquait une donnée...une clé..

Message cité 1 fois
Message édité par Profil supprimé le 24-03-2010 à 10:40:00
Reply

Marsh Posté le 20-03-2010 à 20:52:33    


 [:haha fail]  
pas ascii, mais hexadeximal.
 
 
bah stadire avec 3 exemples, c'est un peu light pour casser un algo de chiffrement :o
 
 


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 20-03-2010 à 21:27:50    

La plupart des vraies attaques cryptanalytiques nécessitent au moins un bon méga de textes clairs, donc oui c'est sûr qu'avec trois exemples on fait que dalle.
 
Dans ce genre de jeu à la con, on s'amuse généralement à faire un truc pas trop dur à trouver, parce que le fun des énigmes, c'est de se creuser la tête en se disant qu'on finira par trouver.
 
Si ça se trouve le mec y t'a passé ça au MD5, TEA, voire un p'tit Blowfish.

Reply

Marsh Posté le 24-03-2010 à 10:37:57    

Ouais c'est pas faux !!!!
 
Merci en tout cas pour votre aide!
 
++


Message édité par Profil supprimé le 26-03-2010 à 19:09:28
Reply

Marsh Posté le 24-03-2010 à 10:59:10    

A vrai dire, c'est possible.
 
L'algo de décryptage le plus simple serait (en python, la flemme de le faire en C):

Code :
  1. def decrypte(motADecrypter):
  2.     codes = {"4890dq3d": "Rome", "a0023c1a":"Rome", "759d8d86f3":"Alger", "e24a3cc5db86" :"Bombay"}
  3.     # Le mot est crypte
  4.     if motADecrypter in codes:
  5.         return codes[motADecrypter]
  6.     else: # Le mot n'est pas crypte
  7.         return motADecrypter


 
En fait on part du principe que l'algorithme de cryptage ne fonctionne que sur l'ensemble des exemples donnés. Tu as donc un algorithme de décryptage qui y correspond !  :D  
 
C'est un peu comme le problème suivant:
Quel algorithme de compression me permet de faire tenir l'ensemble des tomes de "La guerre et la paix" de Tolstoï sur un seul bit ?
 

Spoiler :


Si le premier bit des données = 1:
    retourner le texte de "La guerre et la paix"
Sinon:
   retourner la donnée d'entrée à laquelle on a enlevé le premier bit
 
 [:smapafote]  


Reply

Marsh Posté le 24-03-2010 à 11:01:49    

Complètement con ce jeu :(


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-03-2010 à 13:12:41    

leo++ a écrit :

A vrai dire, c'est possible.
 
L'algo de décryptage le plus simple serait (en python, la flemme de le faire en C):

Code :
  1. def decrypte(motADecrypter):
  2.     codes = {"4890dq3d": "Rome", "a0023c1a":"Rome", "759d8d86f3":"Alger", "e24a3cc5db86" :"Bombay"}
  3.     # Le mot est crypte
  4.     if motADecrypter in codes:
  5.         return codes[motADecrypter]
  6.     else: # Le mot n'est pas crypte
  7.         return motADecrypter


 
En fait on part du principe que l'algorithme de cryptage ne fonctionne que sur l'ensemble des exemples donnés. Tu as donc un algorithme de décryptage qui y correspond !  :D  
 
C'est un peu comme le problème suivant:
Quel algorithme de compression me permet de faire tenir l'ensemble des tomes de "La guerre et la paix" de Tolstoï sur un seul bit ?
 

Spoiler :


Si le premier bit des données = 1:
    retourner le texte de "La guerre et la paix"
Sinon:
   retourner la donnée d'entrée à laquelle on a enlevé le premier bit
 
 [:smapafote]  



J'ai pas osé la faire :D
 
Mais en effet, d'un point de vue purement cryptographique, cet méthode de déchiffrement est correcte.

Reply

Marsh Posté le 26-03-2010 à 19:06:56    

TOPIC CLOSED


Message édité par Profil supprimé le 26-03-2010 à 19:09:55
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed