OVH Cloud OVH Cloud

untroll Md5 reverse

11 réponses
Avatar
Eric CHAPUZOT
Au matin du 5 ème jour
Untroll Md5 Legacity
---------------------------
On a beaucoup causé sur le Md5, il est temps de faire un petit résumé de ce
qui s'est dit et de l'état de l'art
---------------------------
Jour-7:Jeu 13: Tuyii veut un générateur de Mot-de-Passe
Jour-6:Ven 14: mon générateur ne plait pas
Jour-5:Samedi 15 Mai: un ptit tour au chalet Dynamo
Jour -4:Dimanche 16 Mai : un ptit tour au lac Blanc
Jour -3:Lundi 17 mai: suite à un social-enginiering d'enfer, je demande
comment marche réellement Md5
Jour-2:Mardi 18 Mai: Où il est vaguement évoqué oerth plutôt que la force
brute
Jour-1:Mercredi 19 Mai:un tour visite de malade à l'hôpital St Sauveur
Jour 0 :Jeudi 20 Mai : Ascension : Où l'on se pose des questions sur la
bijectivité de Md5
Jour 1:Ven 21: Où l'on dit STOP/Tour à Freiburg
Jour 2:Sam 22:Tour à Sierentz-Schwoben
Jour 3:Dim 23: Où il est évoqué 20 zéros d'affilé de pi/Tour au couvent
St-Marc
Jour 4:Lun 24: Où l'on démontre une certaine bijectivité de Md5
Jour 5:Mar 25: Où l'on tente de faire jouer la bijectivité de Md5
------------------------------
Faits marquants
Dim 16 :
Cedric Blancher demande si je peux craquer :
toto:$1$AYGe0odf$7X3Cwh8/wvqOqBrCza.7Z/:12553:0:99999:7:::
"Tout le monde n'est pas perméable à l'ingénierie sociale, alors qu'un
mauvais mot de passe se casse de manière systématique. "
"En conclusion, si tu pouvais éviter d'extrapoler ton expérience sur la
chariotte du système d'exploitation aux autres sytèmes (aux vrais), ça
éviterait de devoir systématiquement corriger tes élucubrations."

moi :"D'ailleurs, ce n'est pas un secret terrible, on sait tous qu'il existe
un
niveau 2 de la piraterie qui est bien le social-engeniering "
"ouep, ton affaire est contradistoire... on peut pas avoir sécurité et
partage..."
============ résultat ==============
Cedric Blancher : "le mot de passe était : TvLcAlEqAlFeSc"
Échap:'Tant va la cruche à l'eau qu'à la fin, elle se cache..."
ca sera ptêt plus difficile pour son prochain code secret

Lun 17: je m'interroge, je vais chercher sur internet
Nicob: "C'est ca la méthode d'accélération ?"
Guillermito:"Il faut se méfier des exponentielles, et des grands nombres."
"Je vous ai déjà expliqué, avec des chiffres, que votre intuition vous a
trompé d'un facteur 100000000000000000000000000000 dans un message
précédent."
"Mais par pitié, cessez de raconter n'importe quoi ici, ça en devient
génant. "

LE JOUR 0 : ASCENSION
Guillermito :
Le MD5 du texte "Guillermito" est ad33e1a0dddb4053f4cdf92e6c5d7b66.
Si vous, Eric Chapuzot, grâce à votre programme magique, trouvez n'importe
quel fichier, texte ou pas, qui a le même MD5 que ci-dessus dans le mois qui
vient, je vous donne 1000 dollars. Je le jure ici en public devant tout le
monde. Je ne les ai pas, mais je les trouverai.D'ailleurs, vous n'en aurez
pas besoin puisque vous deviendrez instantanément millionnaire avec une
telle découverte. "

Échap:
"vous me fatiguez à causer 1)du stockage 2) du calcul en force brute de
toutes les combinaisons"
"... normal qu'un problème qui a résisté 10 ans à des armadas de
cryptologues ne se résolve pas en deux ou trois cuillers à pot..."

Fabien Le Lez :
"AMHA, si.
Plus exactement, on n'est pas sûr que les 2^128 valeurs seront atteintes,
mais étant donné qu'on a une redondance importante (256 fois trop de
valeurs) et que l'encodage MD5 est a priori quasiment sans biais (sinon sa
force serait amoindrie), la probabilité que l'application ne soit pas
surjective est quand même très faible, peut-être même inférieure à la
probabilité de trouver une collision au premier essai."

Jour 1 : ca m'a pas passionné plus que ca, j'espérais même qu'un
rétro-ingénieur lui en mette 256 dans le sourire en moins de temps que ca,
c'est pas venu, tant mieux, tant pis... j'ai fait semblant de faire un peu
quelque chose. Un peu de code pour réverser FF,GG,HH,II..=>Fr,Gr,Hr,Ir

Jour2 : j'étais pas trop là et il s'en est raconté quelques âneries... je
conseille particulièrement la petite ferme de campagne à Schwoben dans le
Sündgau, ils font du lard et du jambon excellents.

Jour3:j'aurais dû faire une prière au couvent St Marc pour les pauvres âmes
égarées de la cryptographie et de la sécurité

Jour 4: On s'égare aussi, j'ai voulu la jouer un peu facon Rubik's Cube.

Jour 5 : la variation d'un octet entraine une variation "uniforme
compensatrice" de ses 16 successeurs
d'où une vilaine ligne de tension :
X fk0(X) ... fk16(X) où les fonctions fkn(X) sont des bijections de
[00..$ff] dans lui-même
reste plus qu'à tester tous les premiers entre 0 et 255... pour les kn
ca fait que p^16 au lieu de 256^16...
je pense pas qu'il faille espérer k0=k1=...=kn mais rien n'interdit
d'essayer en un premier temps

10 réponses

1 2
Avatar
Eric CHAPUZOT
ouep, quelle chance magnifique, des premiers avec 256 , y en a 128, en fait
tous les impairs entre 0 et 255...
ca ramène nos 256 ^16 à 128 ^16
formidable comme avancée

d'un autre côté avec ces genres de problèmes, comme avec le rubik's cube,
quand on tient une bonne solution, il suffit de tout mélanger pour avoir
tout à recommencer...

bon, admettons comme y a 256 hexuplets qui vérifient le truc ca fait que
128^16/256 à chercher
ou alors on est très fort, et on arrive directement à trouver dans le
programme les kn...
H(k0,...,kn) étant forcément premier avec 256^16
Avatar
Eric Razny
Eric CHAPUZOT wrote:

[Snap, emploi du temps, tout çaaaaa]

Jour 4:Lun 24: Où l'on démontre une certaine bijectivité de Md5


La bijectivite de md5?
Soit E l'ensemble des valeurs possibles prises par 136 bits (cardinal 2^136)
Soit F l'ensembles des valeurs md5(x) où x décrit E.
Le cardinal de F est inférieur ou égal à 2^128, car un md5 est sur 128 bits
(et à ma connaissance il n'est prouvé que chaque valeurs soit atteintes,
d'où le inférieur).

Comment definis-tu une bijection de deux ensembles *finis*[1], chaque
ensemble ayant un cardinal *différent*?
C'est bijectif ou pas, il n'y a pas de "certaine" (dans le sens que je
perçois ici de "un peu") bijectivité.

Jour 5:Mar 25: Où l'on tente de faire jouer la bijectivité de Md5


Relis ce qui précède...
Accessoirement, si md5 était bijectif tu pourrais passer encore plus de
temps :-/ à trouver une collision...


Jour 5 : la variation d'un octet entraine une variation "uniforme
compensatrice" de ses 16 successeurs


Une preuve *formelle* de cette plaisanterie? (sans compter la non précision
totale du vocabulaire, avec -en plus- des guillemets)

Eric.

[1] Précision histoire d'éviter une incursion délirante sur les infinis,
Cantor, tout ça... :)

--
L'invulnérable :
Je ne pense pas etre piratable, infectable par un trojen oui!
Vu sur fcs un jour de mars 2004.

Avatar
Eric CHAPUZOT
"Eric Razny" a écrit dans le message de
news:
Une preuve *formelle* de cette plaisanterie? (sans compter la non
précision

totale du vocabulaire, avec -en plus- des guillemets)

Eric.

j'ai au moins du faire 7 à 8 fois la démo dans tous les sens, vas lire

news.fr.comp.securite...

mais d'abord, assures-toi bien que tu sais faire l'opération +1, dès fois
qu'il y aie des trous dans sa table...

Avatar
Eric CHAPUZOT
allez, rien que pour toi, je vais faire une démo bien plus simple...
quand on additionne du n'importe quoi avec du n'importe quoi 64 fois
d'affilé, si le dernier nombre a bien la capacité d'être n'importe quoi
alors on peut atteindre n'importe quoi...

simple et efficace non, comme démo...
(x+00..99) mod 100-->[00..99]
Avatar
Eric CHAPUZOT
je vais quand même être précis car cette affaire mérite quand même une bonne
précision :
la dernière fonction d'addition est :
II(B,c,d,a, Block[9],21,$eb86d391);
il est manifeste que ce Block[9] peut être n'importe quoi puisque ce sont 4
octets consécutifs du fichier à coder.
Ce Block[9] intervient 4 fois dans nos 64 fonctions double-offset : une fois
pour décaler d(FF), une fois pour décaler a(GG), une fois pour décaler c(HH)
et finalement pour décaler b(II).
Je pense fortement, qu'il nous assure d'atteindre toutes les valeurs
possibles de B
J'estime qu'il en est de même pour l'avant dernier Block[2] qui assure
toutes les valeurs à C
de même Block[11] assure les valeurs de D et finalement Block[4] fait son
sort à A.

Au résultat, ABCD atteint toute les valeurs possibles de 16 octets...
le block qui aurait pu poser problème car contenant la longueur en bits
étant le block[15]
et l'on peut presque donc remonter ainsi de 4 opérations en 4 opérations
s'assurant que quelque soit le résultat des opérations d'avant, les 4
nouvelles opérations peuvent mener n'importe où sur l'espace des 16 octets
(sauf quand intervient le block[15])

donc tu as 12 fois l'assurance de tout parcourir...
Avatar
Eric Razny
Eric CHAPUZOT wrote:
je vais quand même être précis car cette affaire mérite quand même
une bonne précision :


Pas une "bonne" precision, une démonstration (oui oui, du type des matheux
qui semblent tant te poser de problèmes).

la dernière fonction d'addition est :
II(B,c,d,a, Block[9],21,$eb86d391);
il est manifeste que ce Block[9] peut être n'importe quoi puisque ce
sont 4 octets consécutifs du fichier à coder.


Je ne vérifie pas, je te fais confiance et je le prends donc comme acquis.

Ce Block[9] intervient 4 fois dans nos 64 fonctions double-offset :
une fois pour décaler d(FF), une fois pour décaler a(GG), une fois
pour décaler c(HH) et finalement pour décaler b(II).


Ce qui ne montre (et encore moins démontre!) qu'on parcours l'intégralité
d'un ensemble quelconque, et uniquement cet ensemble.

Je pense fortement,


Ce n'est *pas* une démonstration. Oops si : ça démontre que ce que tu
annonce est du pifomètre [1]

[Snap]

J'estime qu'il en est de même


Je ne recopie pas mon commentaire du dessus....

[Snap]

Au résultat, ABCD atteint toute les valeurs possibles de 16 octets...


Non! Il n'y a rien de démontré [1]

le block qui aurait pu poser problème car contenant la longueur en
bits étant le block[15]
et l'on peut
presque


On peut presque signifie, en français, qu'on ne peut pas!!!

[Snap]

donc tu as 12 fois l'assurance de tout parcourir...


Non, j'ai x fois l'assurance que tu n'as rien démontré! [1]

Eric

[1] Qu'on soit bien d'accord, je ne dis pas que tu as tord quand tu affirme
que md5 est en fait faible et qu'il est facile de trouver une collision.
Je dis simplement que tu n'as rien démontré, tu as juste affirmé.
Accessoirement, bien qu'un exemple de collision comme demandé sur fcs ne
soit pas une preuve ou une démonstration, ce serait un minimum pour accorder
du crédit à l'annonce que tu sais la trouver...

--
L'invulnérable :
Je ne pense pas etre piratable, infectable par un trojen oui!
Vu sur fcs un jour de mars 2004.

Avatar
Eric Razny
Désole pour ma réponse, mais je n'ai pas pu résister... :-/

Eric CHAPUZOT wrote:
allez, rien que pour toi, je vais faire une démo bien plus simple...
quand on additionne du n'importe quoi avec du n'importe quoi 64 fois
d'affilé, si le dernier nombre a bien la capacité d'être n'importe
quoi alors on peut atteindre n'importe quoi...


Je confirme : c'est du n'importe quoi!

Eric
--
L'invulnérable :
Je ne pense pas etre piratable, infectable par un trojen oui!
Vu sur fcs un jour de mars 2004.

Avatar
Eric CHAPUZOT
[1] Qu'on soit bien d'accord, je ne dis pas que tu as tord quand tu
affirme

que md5 est en fait faible et qu'il est facile de trouver une collision.
Je dis simplement que tu n'as rien démontré, tu as juste affirmé.
ouep, tu as vu les sombres recoins que j'ai comme un peu occultés...

il eut fallu pister tout au travers des 64 équations combien de fois étaient
auto-multiplié chacun des blocks... y a un trou imense donc dans cette démo,
si block[9] est multiplié par un multiple de 2 au travers de ce système
alors c'est foutu, la moitié d'un quart du compteur ne renverra que des
valeurs paires...
md5(valeurs)—fdbc71 1f3bf988 4a12f1b7 86c21b53
md5(paires)R8fce14 fa50a400 377ad903 d78bb0a3
md5(zut alors)Ýa44f1b c4e06b40 0b8a4323 35e4a765
md5(pas de chance ?)‡43b2d2 a111d30fe 0d97aee e1a5698d
md5(stat 1/16) 1af83e dd6b97aa 0504de15 3fb209ba
à partir de ce moment, un doute plane, je suis mal, j'ai peur d'avoir
annoncé trop vite une ânerie plus grosse que moi car B semble toujours pair
mais, heureusement, surgit du fond de l'espace le sauveur de tous les temps
:
md5(Guillermito)­33e1a0 dddb4053 f4cdf92e6 c5d7b66
qui après 5 tirages à pair me fourni l'impair tant espéré...
et ma démo est complète, ouf, ouf, ouf,... j'ai eu très chaud... devoir
faire des plates excuses m'aurait tellement embêté...

Accessoirement, bien qu'un exemple de collision comme demandé sur fcs ne
soit pas une preuve ou une démonstration, ce serait un minimum pour
accorder

du crédit à l'annonce que tu sais la trouver...

non, pas ca, je crois que jamais je ne pourrais y arriver...

je sais pas, je cherche... y a un truc qui m' échap-pe encore
mais comment diantre je pourrais y arriver, il faudrait être un Dieu, un
super-héros, je sais pas quoi encore...
pôv Guillou, on lui en veut des misères...
AU FAIT, si avec ce que j'ai dit avant sur
II(b,c,d,a,Block[9],21,$eb86d391); c'est lui qui annonce les résultats, il
me doit encore les $1000 ?

Avatar
Eric CHAPUZOT
"Eric Razny" a écrit dans le message de
news:

Je confirme : c'est du n'importe quoi!

tu sais construire des ponts au fur et à mesure de ton angoisse d'avancer

dans le vide, c'est pas toujours très simple...
... j'ai beaucoup hésité avant de te présenter deux n'importe quoi
ensembles... parce que n'importe quoi risquait de se présenter comme
contre-exemple

Avatar
Eric CHAPUZOT
remarque du matin : d'ailleurs ca prouve pas que j'aie la solution car
le fait de pouvoir certainement aller d'un Ici à un La-bas quelconque
n'implique pas qu'on sache aller du La-Bas au Ici.
et si le chemin T-1 (je rappelle La-bas=T(ici) donc ici=T-1(la-bas))
ne ramène pas à la maison ($0123456789abcdeffedcba9876543210)
et bien c'est surtout que T-1 c'est du n'importe quoi...

le côté progrès de la chose, c'est qu'on sait qu'après les 4 premières FF
on peut se retrouver absolument n'importe où (bijection 16^256 dans 16
octets
et ne contiennent pas le block[15])
et qu'une variation judicieuse des 16 octets
Block[0],block[1],block[2],block[3]
peut nous ramener à ici...
( d'autant plus que le md5 final est déjà le calcul d'un md5 si tu n'es
toujours pas
convaincu de la bijection, on a droit de ne pas l'être mais la démo, comme
celle
qui est proposée dans un des liens, s'était appuyée sur trop de faits
mathématiques
n'ayant cours que dans des infinis comme sin(EE(x)) <>sin(EE(y))
or ici l'espace est modulo 256^16 )

normalement, une souris ca sort pas de son écran sauf... si y a plusieurs
cartes graphiques prévues pour dans l'unité centrale (elle est vieille en
plus)
1 2