Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 05-05-2016 01:35:28
- Jesuisperdu
- Invité
Décrypter
Voilà... J'ai reçu un message a décrypté mais j'ai aucune idée du langage utilisé mais j'ai reçu une info. Le tout le voici:
+e@(3(aj*ad*P3gg/d(uztV@ @geb (comportant une clé de cryptage entre 1 et 200)
J'ai essayé avec les Tests de César et Vigenere. Mais je suis par sûr du résultat...
Merci de m'orienter et d'y avoir passer du temps
#2 21-06-2016 19:03:38
- Rossignol
- Membre
- Inscription : 19-06-2015
- Messages : 290
Re : Décrypter
Bonjour à tous,
Il serait sympa que les honorables correspondants qui proposent des cryptogrammes à résoudre donnent le contexte et ne fassent pas de la rétention d'information.
La prière du cryptanalyste de nerosson est toujours actuelle !
Les lecteurs qui voudraient résoudre ce crypto doivent d'abord aller sur la page suivante Agorapolis pour avoir le problème complet.
Notre ami 'Jesuisperdu' veut pirater l'antenne de Altis Information :-) Voyou !
Hors ligne
#3 23-06-2016 16:15:50
- meublat
- Invité
Re : Décrypter
bonjour, dans le cadre du géocaching, une énigme pour pour trouver les coordonnées de la cache. indices trouves Charles Babbage, John Thwaites. le message codé :
WZUAWX ZAYYEPVW ILBNMS VSP ARRTXW PEA UPVZYZPW HR DMW GDRH NIQX VCDXKL RIVZX KXR UQCW XS H'WHH IM'IQ QHW HWTX XSHL GBRIMUEEI INRTTI IXI EOAIWIK NAJTITY KMFWVM, CI AVZQZPV, D GFAVIK JA CWWI VDHB BU WJZCVXHW VISIMO DG WE GCHYYXYJ VY CL GDX. LNG GDH HG SA CZRYGECJ LH NXFEI D XISFZZV VEEQX QI VSEBPIWG PS EFCI MYMS. PGJG LJSXZDCEB WE XOWZI XR NAHXE IL NE TTSAV GGUT HFMFLE VGZQ YM MY UXEIEYX ZX LY HHYC KHRM JENYNEFIY KYHU ZGN. HDIJ NSWVD EP XZYN RYNVXD UZCWQVWK LNG TZUEUL DV GSLDE TGO RH NBTPLWRRE PZ GYTJIVJ LH ZBNANMKI VDHB BU GGS MWGO NGXUI ODEWOS YS AWGHGSUBVFV.
merci de votre aide
#5 25-06-2016 19:31:46
- Rossignol
- Membre
- Inscription : 19-06-2015
- Messages : 290
Re : Décrypter
Bonjour à tous, bonjour meublat,
Votre message illustre parfaitement ce que je disais plus haut.
Avec les indications que vous donnez, on ne va pas très loin.
On se doute que le crypto est chiffré en Vigenère.
En 1853, un chirurgien dentiste du nom de John Hall Brock Thwaites a proposé à la Society of Arts un appareil cryptographique (semblable à se qu'on appelle en France une réglette de Saint-Cyr) qui permettait d'obtenir, prétendait-il, des cryptogrammes absolument indéchiffrables.
Charles Babbage, à qui on avait demandé son avis, a affirmé que le système était équivalent à un chiffrement de Vigenère et n'était pas indéchiffrable.
Thwaites a alors lancé un défi à Babbage : un cryptogramme chiffré avec son système.
Babbage a décrypté le message (un poeme de Tennyson, “The Vision of Sin”).
C'est la première trace que l'on ait du décryptement d'un message chiffré en Vigenère.
On ne sait pas comment Babbage s'y est pris.
On suppose qu'il a utilisé une technique semblable à celle décrite plus tard par Fridrich Wilhelm Kasiski, en 1863.
Si notre message est chiffré en Vigenère, la première chose à faire est de trouver la longueur de la clé. Curieusement, le test des indices de coïncidence ne donne rien : pas de résultat saillant. J'ai cherché par force brute toutes les clés de tailles 2 à 28, sans succès. J'ai cherché si le crypto n'était pas un autoclave sur le clair ou sur le crypto : négatif.
J'ai alors cherché la page d'où venait ce crypto : Geocaching
Et là, ça m'a sauté aux yeux :
Vous êtes sur les traces de Charles mais inutile de relever le défi de Thwaites puique vous possédez la clé...
Autrement dit, on a la clé sous les yeux ! La clé est, en supprimant les accents et les espaces :
'VOUSETESSURLESTRACESDECHARLESMAISINUTILEDERELEVERLEDEFIDETHWAITESPUIQUEVOUSPOSSEDEZLACLE'
Le programme Python suivant donne la solution :
def dechiffre_Vigenere(crypto, clef):
"""Déchiffrement Vigenère qui conserve les caractères non alphabétiques
"""
clair = ''
i = 0 # indice du premier car. de la clef
for c in crypto:
if c in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
clair += chr(ord('A')+(ord(c)-ord(clef[i]))%26)
i += 1 # indice du caractère suivant de la clef
i %= len(clef) # si à la fin de la clef, on revient au début
else:
clair += c # car. non alphabétique non traité
return clair
crypto = "WZUAWX ZAYYEPVW ILBNMS VSP ARRTXW PEA UPVZYZPW HR DMW GDRH NIQX \
VCDXKL RIVZX KXR UQCW XS H'WHH IM'IQ QHW HWTX XSHL GBRIMUEEI INRTTI IXI \
EOAIWIK NAJTITY KMFWVM, CI AVZQZPV, D GFAVIK JA CWWI VDHB BU WJZCVXHW \
VISIMO DG WE GCHYYXYJ VY CL GDX. LNG GDH HG SA CZRYGECJ LH NXFEI D \
XISFZZV VEEQX QI VSEBPIWG PS EFCI MYMS. PGJG LJSXZDCEB WE XOWZI XR NAHXE \
IL NE TTSAV GGUT HFMFLE VGZQ YM MY UXEIEYX ZX LY HHYC KHRM JENYNEFIY \
KYHU ZGN. HDIJ NSWVD EP XZYN RYNVXD UZCWQVWK LNG TZUEUL DV GSLDE TGO \
RH NBTPLWRRE PZ GYTJIVJ LH ZBNANMKI VDHB BU GGS MWGO NGXUI \
ODEWOS YS AWGHGSUBVFV."
clef = 'VOUSETESSURLESTRACESDECHARLESMAISINUTILEDERELEVERLEDEFIDETHWAITES\
PUIQUEVOUSPOSSEDEZLACLE'
print(dechiffre_Vigenere(crypto, clef))
Je vous laisse crapahuter dans les montagnes pour trouver la cache.
Quant à moi, je vais faire la sieste dans mon hamac, à l'ombre.
Bon courage :-)
Hors ligne
Pages : 1