« Отговор #36 -: Aug 13, 2009, 17:45 »
Мисля, че разделителя може да се спести - все пак всяка входна стойност е с фиксирана дължина (32 бита) и всеки хеш тоже. Не че ще спестим кой знае колко - 4 гигабайта не са кой знае колко на фона на останалото.
В крайна сметка обаче мисля, че експериментът ще е неуспешен, защото 4 милиарда хеша са прекалено малко, за да си изградим някаква представа (на фона на множеството от 2^128 възможни стойности). Чисто статистически, вероятността да се получи колизия е 0.0000000000000000094%, това ако стойностите са разпределени равномерно разбира се. Трябва да са ужасно неравномерно разпределени, за да имаме вероятност примерно от 1% да имаме една колизия (един процент е 106 квадратилиона пъти по-висока вероятност). Това не означава, че ще ни трябват 106 квадратилиона пъти повече хешове, за да достигнем 1% вероятност, разбира се, защото според birthday paradox-a, зависимостта между броя хешове и вероятността за колизия не е линейна.
Имам ужасно силно усещане, че няма да открием нито една колизия за 4-те милиарда входни стойности. Ако открием, това ще бъде или невероятен късмет, или просто MD5 алгоритъмът ще излезе невероятно криво направен. Но за да се разбере кое от двете е, трябва да повторим същата операция за много по-голяма извадка от входни стойности и техните хешове.
Поне така си мисля де.
« Последна редакция: Aug 13, 2009, 17:52 от gat3way »
Активен
"Knowledge is power" - France is Bacon