MD5 má 32 znakov od 0-F to jest počet kombinácií 2 na 128 sa rovná 340 282 366 920 938 000 000 000 000 000 000 000 000.
16 znakov 0 1 2 3 4 5 6 7 8 9 A B C D E F
dĺžka MD5 32 znakov
=power(16;32)
Takýto počet výsledných kombinácií stačí pre súbor veľkosti 16Bajtov!
16 Bajtov 128 bitov =power(2;128)
- pokiaľ budeme kombinovať 0 a 1 v súbore o veľkosti 16B tak vyčerpáme MD5-ku a to ešte nerátame kombinácie u súborov dĺžky 15B, 14B, 13B, 12B, 11B atď až po 1BAJT.
Kolízia: 2004
SHA-1 má 40 znakov 0 až F
=power(16;40)
Takýto počet výsledných kombinácií stačí pre súbor veľkosti 20Bajtov!
20 Bajtov 160 bitov =power(2;160)
Kolízia: 2016
SHA-256 má 64 znakov 0 až F
=power(16;64)
Takýto počet výsledných kombinácií stačí pre súbor veľkosti 32Bajov!
32 Bajtov 256 bitov =power(2;256)
SHA-512 má 128 znakov 0 až F
=power(16;128)
Takýto počet výsledných kombinácií stačí pre súbor veľkosti 64Bajtov!
64 bajtov 512 bitov =power(2;512)
Existuje nejaký exe súbor o malej veľkosti napríklad ransomwar do 50kB.
Stačí meniť z 51 200 Bajtov iba 64 Bajtov a vieme napodobniť SHA-512 ľubovoľného súboru čisto teoreticky.
128 bitové MD5 - kolízia 2004
160 bitové SHA-1 - kolízia 2016
Rozdiel: 32 bit - trvá 12 rokov
Rozdiel medzi 160 a 256 bit je 96 bit cca 36 rokov ak by tempo výpočtového výkonu bolo také ako od roku 2004 do 2016 - lenže vývoj v IT nie je lineárny - nemôžeme aplikovať tú istú krivku vývoja - pretože vývoj je exponenciálny presne tak exponenciálny ako je zložitosť 160bitovej SHA-1 a 256bitovej SHA-256.. Snowden Thundra od NSA ????
MD5, SHA-1, ani SHA-2 nemají žádný počet znaků 0–F. MD5 má 128 bitů, SHA-1 má má 160 bitů, SHA-2244 má 224 bitů (všímejte si té shody počtu bitů a názvu), SHA-256 má 256 bitů, SHA-384 má 384 bitů, SHA-512 má 512 bitů. Ty prostocviky s hexadecimálními čísly jste předváděl úplně zbytečně, protože jste se akorát pracně dopracoval od podivného odvození k definici.
A ano, po n-bitový hash platí, že když vypočítáte příslušný hash po všechny možné n-bitové soubory a následně ještě jeden hash pro libovolný jiný soubor, mezi všemi vypočítanými hashi bude alespoň jedna kolize. To je princip hashování, to jste neobjevil nic nového.
Dál už jste se ale od reality odvrátil úplně. Protože praktické nalezení kolizí pro MD5 i SHA-1 právě nezáviselo na délce hashe (na počtu bitů), útok hrubou silou na MD5 i SHA-1 je stále zcela mimo naše možnosti. Útok na obě funkce je vedený tak, že se podařilo najít slabinu v těch funkcích, která umožní jakoby některé možné kombinace při zkoušení rovnou vynechávat. Má to tedy stejný efekt, jako kdyby se ta délka hashe zkrátila. Dokonce se jako ta „zkrácená“ délka hashe odhaduje sílá těch oslabených hashovacích algoritmů, takže MD5 by mělo mít sílu 128 bitů, ale je znám útok, který ho zkracuje na ekvivalent zhruba 18 bitů, což už se na běžném počítači spočítá za méně než sekundu. U SHA-1 bylo oslabení odhadováno někde okolo 60 bitů, ten včera představený útok má 63 bitů.