![](/img/vague-bas-gauche.png) |
#1 - 06-04-2021 22:44:31
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1958
xryptage ardu
Hello
Voici un petit cryptage à casser. Je vous préviens, il n'est pas évident du tout. Je vous donne même l'algo ![big_smile](img/smilies/big_smile.png)
J'ai mon message (un texte), et ma clef, qui est une phrase dont les mots ne dépassent pas 8 lettres. Je prends chacun de mes mots de ma clef et je m'en sers successivement pour faire un vigenère sur mon texte, puis sur le résultat précédent, etc...
Plus formellement: Resultat = mon_texte pour chaque mot M de ma_clef : Resultat = vigenère(Resultat, M)
Et voilà le résultat
Tout ce que je peux vous dire, c'est que le texte clair contient quelque part le passage suivant : "la réponse à cette énigme c'est" (enfin plutôt LAREPONSEACETTEENIGMECEST, mais bref vous avez compris je pense)
Et bien entendu, la case réponse validera cette fameuse réponse (tout attaché, en majuscule)
⚠️Je préfère préciser, c'est pas introuvable, mais enfin c'est vraiment pas trivial ⚠️ Il ne s'agit pas de comprendre la logique du cryptage (c'est cadeau, je vous l'ai donnée) , ni de trouver la clef (elle est même plus longue que le texte lui-même...), mais de trouver les failles et de les exploiter. C'est à cheval entre une énigme mathématique et une énigme cryptée, mais bon il fallait bien la mettre quelque part 😁
Indice 1 Spoiler : [Afficher le message] A ma connaissance, cette méthode est très peu présente sur la toile. Mais, une fois n’est pas coutume, je vous sers du réchauffé, on en a déjà parlé sur P2T, il y a .... bien longtemps. Et l’article cité à l’époque n’existe plus. En gros : à combien de lettres (ou de décalages) puis-je condenser mon problème ? Mon idée c’est de dire « bah, une infinité » et votre boulot c’est de me casser les pieds en montrant qu’il y en a un certain nombre fini. C’est le deuxième indice pour ceux qui veulent savoir combien
Indice 2 Spoiler : [Afficher le message] il y a moyen de condenser ma clef à 26 décalages
#2 - 09-04-2021 22:32:26
- Migou
- Professionnel de Prise2Tete
- Enigmes résolues : 17
- Messages : 488
- Lieu: Ville 2/N près 2*i
ctyptage ardu
Salut, ça m'intéresse mais je n'ai pas eu le temps de me pencher dessus pour le moment.
#3 - 11-04-2021 11:34:03
- Migou
- Professionnel de Prise2Tete
- Enigmes résolues : 17
- Messages : 488
- Lieu: Ville 2/N près 2*i
cryptage arfu
Coucou
Il va peut être falloir se mettre à plusieurs pour débloquer la situation, alors je commence par un résultat intermédiaire.
Soit une phrase clé M1 M2 ... Mn composée de n mots de longueurs respectives L1, L2, ... Ln
Déjà, on remarque que l'opération de cryptage peut se rapporter à un vigénère unique avec une longueur de clé valant PPCM(L1,L2,...,Ln). J'appelle cette clé la "clé unique".
Par exemple si la phrase clé était uniquement constituée de mots de 1 2 4 et 8 lettres, il serait équivalent à un vigénère unique avec une clé de longueur 8.
Si j'ajoute la possibilité de mots de 3 et 6 lettres, la clé unique a une longueur PPCM(1,2,3,4,6,8) = 24
Et là on remarque que le fragment connu (LAREPONSEACETTEENIGMECEST) fait pas moins de 25 lettres, ce n'est pas un hasard... (enfin c'est ce que je me dis)
Malheureusement, ma tentative ci-dessous démontre au contraire que la phrase clé contient au moins un mot de 5 ou 7 lettres. Avec cette info, je m'attends du coup à une clé unique de taille bien au delà de la taille du texte.
La démonstration
Hypothèse: la phrase clé ne contient aucun mot de longueur 5 ou 7.
Dans ce cas, la longueur de la clé unique en de 24 (ou un sous multiple de 24 mais dans ce cas en répétant la clé plusieurs fois, on a bien également une clé de 24 qui marche). On dirait un mécano qui parle. "Passe moi la clé de 12 :-D"
Cherchons une telle clé.
Comme LAREPONSEACETTEENIGMECEST (que je nommerai "le fragment") fait 25 caractères L et T sont codés avec le même décalage. je commence par faire un césar et chercher les occurences de L.......................T
En testant les 26 décalages possibles, je ne trouve que 3 positions possibles pour le fragment
QLTJZEGETIHOHTCFPAXPFZYEFTMEFKTHHZXJXFBNDZBTIGHMIZUDUXKZI WRZPFKMKZONUNZILVGDVLFEKLZSKLQZNNFDPDLHTJFHZOMNSOFAJADQFO XSAQGLNLAPOVOAJMWHEWMGFLMATLMRAOOGEQEMIUKGIAPNOTPGBKBERGP
Je restitue la clé unique de 24 lettres en soustrayant le fragment.
QLTJZEGETIHOHTCFPAXPFZYEFTMEFKTHHZXJXFBNDZBTIGHMIZUDUXKZI -> ATSVPSRBEHMDAJBLNPJTVWAN A... WRZPFKMKZONUNZILVGDVLFEKLZSKLQZNNFDPDLHTJFHZOMNSOFAJADQFO -> AVPZGXSMGLXORSMVAFZRLBHP A... XSAQGLNLAPOVOAJMWHEWMGFLMATLMRAOOGEQEMIUKGIAPNOTPGBKBERGP -> AMJPWYEIKOEAXLIEHCAWWNJW A...
Je décale chaque clé unique candidate pour qu'elle s'aligne proprement sur le début du texte et j'applique cette clé à tout le texte :
QLTJZEGETIHOHTCFPAXPFZYEFTMEFKTHHZXJXFBNDZBTIGHMIZUDUXKZI avec la clé NATSVPSRBEHMDAJBLNPJTVWA => DLAREPONSEACETTEENIGMECESTTMKVBQGVQXUFSMSMMKPLLMVZBLZISIH (échec)
WRZPFKMKZONUNZILVGDVLFEKLZSKLQZNNFDPDLHTJFHZOMNSOFAJADQFO avec LXORSMVAFZRLBHPAVPZGXSMG => LULYNYRKUPWJMSTLAREPONSEACETTEENIGMECESTOQITRUBMDIMSIRVFJ (échec)
XSAQGLNLAPOVOAJMWHEWMGFLMATLMRAOOGEQEMIUKGIAPNOTPGBKBERGP avec MJPWYEIKOEAXLIEHCAWWNJWA => LJLUIHFBMLOYDSFFUHIAZXJLAREPONSEACETTEENIGMECESTDXMODAJWB (échec)
C'est un échec. En conclusion, mon hypothèse de départ est fausse
En conclusion: la phrase clé contient au moins un mot de longueur 5 ou 7.
#4 - 11-04-2021 17:10:28
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1958
Cryptage adru
Belle analyse. Et effectivement la clef contient des mots de taille 5 ou 7.
Et oui la taille 25 n’est pas un hasard.
Par contre, trouver la clef (ou la pseudo clef on va dire) n’est pas nécessaire. D’ailleurs comme tu l’as dit, elle sera forcément plus longue, et même plus que tout mon texte.
Du coup il faut trouver autre chose. Une autre méthode on va dire.
J’ajoute un indice
#5 - 12-04-2021 11:33:53
- Migou
- Professionnel de Prise2Tete
- Enigmes résolues : 17
- Messages : 488
- Lieu: Ville 2/N près 2*i
cryotage ardu
Salut scarta, grâce à ton deuxième indice, je vois la méthode à appliquer.
On remarque que la transformation est équivalente à quatre vigénères avec des clés de 5 6 7 et 8 lettres.
en effet, les longueurs inférieures ne comptent pas car elles sont sous-multiples soit de 8 (1 2 4) soit de 6 (3).
Partant de là on a 26 inconnues seulement et on peut écrire un système à 25 equations et 26 inconnues.
la complexite du problème se réduit donc a deux variables (la 26e inconnue + la position du fragment de texte) que l'on peut tester de façon exhaustive.
J'essaie de résoudre ça quand j'ai le temps.
#6 - 12-04-2021 13:40:50
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1958
Cryptgae ardu
oui voilà, en gros c'est ça ![big_smile](img/smilies/big_smile.png)
#7 - 19-04-2021 21:18:04
- scarta
- Elite de Prise2Tete
- Enigmes résolues : 49
- Messages : 1958
Cryptage aru
Allez c'est parti pour la réponse.
Le message en clair était "BRAVO C ETAIT PAS EVIDENT ! LA REPONSE A CETTE ENIGME C'EST EPIC FAILURE", en rapport avec l'idée d'obtenir un code plus performant en enchainant les cryptages.
La clef utilisée : "Maitre corbeau sur un arbre perche tenait dans son bec un fromage maitre renard par l'odeur alleche lui tint a peu pres ce langage"
La technique de crackage :
* la première étape est psychologique : il faut comprendre qu'il n'est pas nécessaire de connaitre la clef pour casser le cryptage ![big_smile](img/smilies/big_smile.png)
* la seconde étape est de déterminer le nombre d'inconnues. Si on cherche effectivement la clef, c'est.... beaucoup. Si on se focalise plutôt sur les cycles de décalages, c'est déjà moins : certains décalages se répètent tous les 8 caractères, d'autres tous les 7, d'autres tous les 6, etc... donc un cycle complet à PPCM(1,2,3,4,5,6,7,8) = 840 caractères.
En théorie, si mon texte est sensiblement plus grand que 840 caractères, je pourrais casser le code sans même en connaitre un morceau de texte clair. C'est comme casser du Vigénere tout court, avec une clef de taille 840.
En pratique, mon texte n'est pas aussi long, il va falloir réduire encore ce nombre.
* la troisième étape est de ne regarder que 4 clefs, de longueurs 5, 6, 7 et 8 En effet, toutes les autres (de 1 à 4) peuvent être répétées pour faire d'autres clefs de taille 5, 6, 7 ou 8 - et comme on l'a dit, les cycles se répèteront donc autant ne considérer que les 4 dernières clefs. Ca ne fait, somme toute, que 5+6+7+8 = 26 inconnues
* la quatrième étape est de considérer chaque décalage "effectif" comme une somme de 4 "mini-décalages" (un par clef) (Kij est le décalage de la clef de taille i, apporté par sa lettre j)
-> le décalage de la première lettre sera K51+K61+K71+K81 -> le décalage de la deuxième lettre sera K52+K62+K72+K82 -> le décalage de la septième lettre sera K52+K61+K77+K87 -> le décalage de la 12eme lettre sera K52+K66+K75+K84 etc...
* Et enfin, la dernière étape va être d'écrire un système de 26 équations à 26 inconnues (quand c'est possible), ou au moins "presque 26 équations" à 26 inconnues dans notre cas. Considérons le bout de texte en clair, il peut être en première position : on peut trouver les décalages correspondants, et comme on sait calculer un décalage sous la forme de 4 variables, on va trouver nos équations.
Voilà. Il ne reste plus qu'à résoudre ce système, pour chaque point de départ possible. Parfois, il n'y a aucune solution. Tant mieux ![big_smile](img/smilies/big_smile.png) Parfois, il y en a une, ou plusieurs : c'est rapide à analyser ceci dit. Et pour chaque point de départ, on boucle, et on trouve ![big_smile](img/smilies/big_smile.png)
Petite précision : les équations sont dans Z/26Z. Ca veut dire en gros que: * on travaille modulo 13 * seuls les nombres impairs autres que 13 admettent un inverse Ca aide aussi à la résolution ![smile](img/smilies/smile.png)
|
![](/img/vague-haut-droite.png) |