Jak udělat soubor s konkrétním kontrolním součtem

xmms

  • ***
  • 148
    • Zobrazit profil
    • E-mail
Jak udělat soubor s konkrétním kontrolním součtem
« kdy: 05. 01. 2012, 11:09:15 »
Potřebuju udělat soubor, aby měl konkrétní předem daný kontrolní součet md5 nebo sha.
Mějme např. original.exe s nějakým kontrolním součtem, já ho chci předělat na jiný original.exe a ten součet musí být nakonec stejný. Jsou na to nějaké tooly?


smoofy

  • *****
  • 1 032
    • Zobrazit profil
    • E-mail
Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #1 kdy: 05. 01. 2012, 11:10:21 »
Kdyby to bylo tak jednoduche tak by kontrolni soucet nebyl zrovna idealni volba ke kontrole souboru bych rekl.

Program

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #2 kdy: 05. 01. 2012, 11:54:30 »
Náhodně generujte exe soubory a počítejte hash. Během té doby budete mít dost času si nastudovat k čemu jsou vlastně tyto hashovací funkce.

v2kt0r

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #3 kdy: 05. 01. 2012, 12:01:42 »
Potřebuju udělat soubor, aby měl konkrétní předem daný kontrolní součet md5 nebo sha.
Mějme např. original.exe s nějakým kontrolním součtem, já ho chci předělat na jiný original.exe a ten součet musí být nakonec stejný. Jsou na to nějaké tooly?
Aneb: presne k ZABRANENI toho, co se chystate udelat, jsou hashovaci funkce navrzeny (na hashi se ma poznat, ze nekdo se souborem manipuloval. Kdyby kazdy mohl vytvorit svuj vlastni obsah, ktery bude mit predem dany hash, pozbyly by tyto funkce smyslu). Az se vam to povede, efektivne jste hashovaci funkci prolomil.

pandula

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #4 kdy: 05. 01. 2012, 12:10:32 »
Hhh a zamyslel si sa niekedy and tym co vlastne chces? :D Ved to je ako keby si sa nas opytal ze "prosim vas a ako sa to dostanem na ucet bila gatesa? je na to nejaky tool?"

hashovacie funkcie su presne od toho, keby nieco take ako pises bolo v realnom case mozne, tak by MD5 checksumy stratili vyznam ... ved od toho to je - overit ci 1 a 1 subor je ten isty :)

hhh velmi vtipny prispevok :) jo a az sa vam to podari v realnom case a nie len teoreticky (neviem ako je na tom dnes MD5) ale napriklad so SHA tak to postnite niekam na forum vedecke a nobelovka z matiky bude na ceste :)


stewe

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #5 kdy: 05. 01. 2012, 12:10:45 »
no to asi nepojde :D hashovacie funkcie su zalozene prave na tom, ze zmena co i len jedneho bitu na vstupe zmeni vystup na nepoznanie (akoze hash).

idealna hash funkcia by mala mat vlastnosti ako:
a) da sa pomerne efektivne vypocitat hash nejakych dat
b) je "nemozne" generovat data s konkretnym hashom
c) je "nemozne" modifikovat data s tym, ze hash zostane rovnaky
d) je "nemozne" najst dve rozlicne sady dat s tym, ze maju rovnaky hash

ty vlastne chces najst koliziu, tzv. "strong collision resistance", to je o tom, ze ked mas spravu message1, je nemozne najst spravu message2 taku, ze hashe budu rovnake.

to je proste princip na com hashovacie funkcie stoja, inak by boli uplne bezcenne.

takze nie, neda sa to. kolizie existuju ale pravdepodobnost je skoro nula cela nic a vysledne spravy su uplne ine. ked sa najdu kolizie, povazuje sa ta funkcia viac menej za bezpredmetnu a hlada sa dalsia.

_diehard


Karel

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #7 kdy: 05. 01. 2012, 13:03:06 »
Pokud požadavek změníte na "jak vytvořit dva různé .exe soubory, které budou mít stejné MD5", pak na to již nástroje jsou. Pokud ale chcete podstrčit svůj vlastní .exe tak, aby měl stejný MD5 nebo SHA jako program někoho jiného, pak stále ještě máte naštěstí smůlu. Také bych pak doporučil přeformulovat otázku na "jsou dnes již nástroje na falšování podpisů?" Protože jak vám již jiní psali, ono "kontrolní součet" je technickým opisem správnějšího termínu "podpis souboru" a ono "udělat soubor s konkrétním" není nic jiného než "falšování".

branchman2

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #8 kdy: 05. 01. 2012, 13:04:37 »
U MD5 je take nieco mozne, ak mas povodny subor (pisal o tom Klima aj tu na root.cz: http://www.root.cz/clanky/tunely-v-hasovacich-funkcich-kolize-md5-do-minuty/). Preto sa MD5 nepovazuje za kryptograficky bezpecny.

U SHA1 sa tusim nasla zatial len zranitelnost, ze je mozne predpovedat 2 bity a teda sa to da stihnut v stvrtinovom case (co je stale dost; chce to skusit radovo 2^126 retazcov)

Inak pre ostatnych posterov: ak nie je kontrolny sucet brany ako kryptograficky bezpecny, tak je uplne v pohode, ze ide spravit iny retazec, ktory ma rovnaky kontrolny sucet. Podstata kontrolneho suctu je, aby to nenastavalo nahodne.

xmms

  • ***
  • 148
    • Zobrazit profil
    • E-mail
Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #9 kdy: 05. 01. 2012, 13:21:43 »
No vida, tak možné to je. Jen jsem nevěděl, co mám hledat. Takže je to MD5 collision. Dokonce na to existuje program evilize.
Já myslel na něco takového, jako na konec k hotovému souboru (a nemusí to být nutně jenom exe) přidat přebytečná data a jejich generováním postupně zkoušet a hledat stejný součet.

A hlavně zařídit, aby byl stejný pro všechny možné typy kontrolních součtů současně :-)

Karel

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #10 kdy: 05. 01. 2012, 13:54:18 »
To evilize ale funguje právě tím způsobem, že generuje více různých souborů se stejným MD5. Důraz je na to generuje. Pokud už jeden soubor existuje a má nějaký MD5, pak k němu stále ještě nebudete umět vygenerovat dvojníka se stejným MD5. Evilize a podobné SW totiž fungují tak, že k souborům přidají data, díky kterým "sterilizují" kontrolní součet, který pak závisí jen na tom přídavku a ne na původním souboru. Přidáním tohoto přívěsku k vícero souborům tak dostanete vícero souborů se stejným MD5, který bude záviset jen na to přívěsku. Což je k ničemu, pokud se snažíte udělat kopii souboru, který má MD5 spočítanou a zveřejněnou bez vašeho přívěsku.

DgBd

  • ****
  • 279
    • Zobrazit profil
    • E-mail
Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #11 kdy: 05. 01. 2012, 14:00:47 »
A hlavně zařídit, aby byl stejný pro všechny možné typy kontrolních součtů současně :-)

No, něco takového by bylo asi na nějakou Turingovu cenu nebo Fieldsovu medaili.

JS

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #12 kdy: 05. 01. 2012, 14:19:49 »
A hlavně zařídit, aby byl stejný pro všechny možné typy kontrolních součtů současně :-)

No, něco takového by bylo asi na nějakou Turingovu cenu nebo Fieldsovu medaili.

Spis na poukazku do blazince. :-)

DgBd

  • ****
  • 279
    • Zobrazit profil
    • E-mail
Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #13 kdy: 05. 01. 2012, 14:26:50 »
A hlavně zařídit, aby byl stejný pro všechny možné typy kontrolních součtů současně :-)

No, něco takového by bylo asi na nějakou Turingovu cenu nebo Fieldsovu medaili.

Spis na poukazku do blazince. :-)

Čistě matematicky: používají se hashovací funkce, které mají nějaké rozumné rozložení kolizí, těch kolizí je pro každý otisk tedy  nekonečné množství. Pokud nejsou dvě hashovací funkce nějak "podobné", tak by měl být průnik těchto kolizí neprázdný. Ale dokazovat bych to tedy nechtěl :-)

sdfgsdfg

Re:Jak udělat soubor s konkrétním kontrolním součtem
« Odpověď #14 kdy: 05. 01. 2012, 14:33:50 »
Jde to, ale budes to mit na dlouho. V kazdym hashovacim algoritmu je z principu nekonecne mnoho kolizi, takze tobe proste staci, abys pridaval nedulezity data tak dlouho, az to prijde. A ono to prijde. Nicmene treba za stovky let.