http://dimmik.livejournal.com/ ([identity profile] dimmik.livejournal.com) wrote in [community profile] useless_faq2006-02-28 04:00 pm

как работает md5sum?

Кто-нибудь может объяснить мне на словах (без математических и прочих терминов)
как именно работает md5sum?
И почему считается (и практикой, епрст, проверено - так и есть) что для любой последовательности данных md5sum уникальна?
Хотя разумом мы понимаем что не могут 128 бит быть уникальными для всех бОльших последовательностей данных, однако по этой самой md5 и в ослах разных идентифицируют и проверяют целостность файла и все такое - типа "отпечаток пальца".

Таки как она работает и почему она "уникальна"?
Объянсите на пальцах пожалуйста.

И еще - разум подсказывает что для любого X найдутся такие K и N что md5sum^K( X ) = md5sum^N( X ) - так ли это?


Просьба к технической инфе не отсылать. Я уверен что при должных усилиях я смогу все там понять и, может быть, даже потом объяснить, но хочется "на блюдечке" объяснения на пальцах.

[identity profile] neoromantic.livejournal.com 2006-02-28 01:04 pm (UTC)(link)
"Как именно" - вы хотите знать алгоритм?

Ответ на основную часть вопроса - нет, md5 не уникален, конечно. Но целостность проверяется. Потому что эта хеш-функция устроена так, чтобы при небольшом изменении входных данных значение хеша изменялось сильно.

[identity profile] neoromantic.livejournal.com 2006-02-28 01:16 pm (UTC)(link)
http://www.x-hack.ru/forum/index.php?s=bdaba193eb28795853a7daab03380ec1&act=Print&client=printer&f=22&t=391

[identity profile] neoromantic.livejournal.com 2006-02-28 01:44 pm (UTC)(link)
Ну а как вы хотите, чтобы я доказал "правильность"? Алгоритм не за 5 минут придумывался. И придумывался именно для этих целей.

Насчет плотности тоже не отвечу. Интуитивно думаю, что да.

[identity profile] http://users.livejournal.com/_dilbert_/ 2006-02-28 01:12 pm (UTC)(link)
уже не считается что уникальная
ее скомпромитировали кетайцы... в прошлом или позапрошлом году

[identity profile] rannor_ru.livejournal.com 2006-02-28 01:16 pm (UTC)(link)
Она никогда не могла быть уникальной. Число комбинаций 128 бит ограничено, а количество различных строк - бесконечно ^_^

Просто появился способ получить текст с заданным хэшем

[identity profile] g0mez.livejournal.com 2006-02-28 01:21 pm (UTC)(link)
И вы не совсем правы. Способ был всегда - полный перебор. Появился быстрый способ создания коллизий.

[identity profile] rannor_ru.livejournal.com 2006-02-28 01:22 pm (UTC)(link)
Ну да, я имел ввиду достаточно быстрый способ ^_^

[identity profile] binaryanimal.livejournal.com 2006-02-28 01:20 pm (UTC)(link)
Просто вероятность такого совпадения ~ 2^(-128) это очень мало, поверьте ;)

[identity profile] http://users.livejournal.com/_greek_/ 2006-02-28 01:20 pm (UTC)(link)
не уникален он. суть сводится к тому, что фиг найдешь второй текст с такой же суммой, поэтому считается надежным. кстати грубо говоря есть еще и другие "суммы", в которых используется пароль, т.е. даже если подобрать текст, то не зная пароля совпадение это не узнаешь.

[identity profile] binaryanimal.livejournal.com 2006-02-28 01:21 pm (UTC)(link)
Если бы сума была уникальна для каждой последовательности, то существовала бы обратная операция извлечения из 128 бит информации чего угодно - напирмер дистрибутива виндов =)))))

[identity profile] http://users.livejournal.com/_bigbrother_/ 2006-02-28 05:55 pm (UTC)(link)
Ну, там не только измерительные инструменты нужны :). Там ещё сплошная среда нужна. Тот факт, что стержень состоит из атомов, убивает возможность неограниченного кодирования даже без учёта их (атомов) теплового движения :).

[identity profile] alex-rex.livejournal.com 2006-02-28 03:47 pm (UTC)(link)
eDonkey — крупнейший восстанавливатель файла по его md5 (http://alex-rex.livejournal.com/242185.html)

[identity profile] kray-zemli.livejournal.com 2006-02-28 03:42 pm (UTC)(link)
Этот алгоритм очень сложный. Основан на математической модели развития некоторого дискретного сверхнеустойчивого процесса. Вас в школе про рост энтропии учили? Вот вам простейший алгоритм генерации хеша: берем объем, берем входную информацию в качестве координат и скоростей частиц газа, моделируем процесс в объеме во времени достаточно долго по сравнению со временем релаксации, затем берем координаты нескольких первых молекул в качестве хеша. Представляете, какая каша получится?

На самом деле, MD5 используются нелинейные бинарные и арифметические функции, с набором иррациональных чисел (которые, правда, жестко заданы таблицей). Но принцип тот же. Во всяком случае, на это надеятся.