http://dimmik.livejournal.com/ (
dimmik.livejournal.com) wrote in
useless_faq2006-02-28 04:00 pm
![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
как работает md5sum?
Кто-нибудь может объяснить мне на словах (без математических и прочих терминов)
как именно работает md5sum?
И почему считается (и практикой, епрст, проверено - так и есть) что для любой последовательности данных md5sum уникальна?
Хотя разумом мы понимаем что не могут 128 бит быть уникальными для всех бОльших последовательностей данных, однако по этой самой md5 и в ослах разных идентифицируют и проверяют целостность файла и все такое - типа "отпечаток пальца".
Таки как она работает и почему она "уникальна"?
Объянсите на пальцах пожалуйста.
И еще - разум подсказывает что для любого X найдутся такие K и N что md5sum^K( X ) = md5sum^N( X ) - так ли это?
Просьба к технической инфе не отсылать. Я уверен что при должных усилиях я смогу все там понять и, может быть, даже потом объяснить, но хочется "на блюдечке" объяснения на пальцах.
как именно работает md5sum?
И почему считается (и практикой, епрст, проверено - так и есть) что для любой последовательности данных md5sum уникальна?
Хотя разумом мы понимаем что не могут 128 бит быть уникальными для всех бОльших последовательностей данных, однако по этой самой md5 и в ослах разных идентифицируют и проверяют целостность файла и все такое - типа "отпечаток пальца".
Таки как она работает и почему она "уникальна"?
Объянсите на пальцах пожалуйста.
И еще - разум подсказывает что для любого X найдутся такие K и N что md5sum^K( X ) = md5sum^N( X ) - так ли это?
Просьба к технической инфе не отсылать. Я уверен что при должных усилиях я смогу все там понять и, может быть, даже потом объяснить, но хочется "на блюдечке" объяснения на пальцах.
no subject
Ответ на основную часть вопроса - нет, md5 не уникален, конечно. Но целостность проверяется. Потому что эта хеш-функция устроена так, чтобы при небольшом изменении входных данных значение хеша изменялось сильно.
no subject
Я видел реализацию алгоритма, там дофига разных смещений битов туда-сюда, ротация и прочая фигня, в тонкости которой я лезть не стал.
А вот описание этого алгоритма более-менее понятным языком (а именно почему при небольшом изменении входных данных значение хеша изменяетсяс сильно) было бы интересно услышать.
Если таковое есть, конечно.
Ну, как пример того что я хочу услышать:
Скажем, вопрос: как получается так что самолеты не сталкиваются над аэродромом?
На самом деле подробное объяснение этого заняло бы много времени.
Однако можно вкратце сказать что-то типа "операторы определяют их очередность в соответствии с своей базой и командуют кому на какой курс лечь."
no subject
no subject
Принципиального отличия от "взять первый, седьмой, восемнадцатый, [еще 29 номеров байт]" и составить из них 128-битный хеш я не увидел.
Ну, некий сложный алгоритм.
Его "правильность" только практически определяется?
Кстати, md5sum(x) плотно заполняет область своих значений?
В смысле, верно ли что
Для любого Y, где Y - 128-битное число, найдется такой X что md5sum(X) = Y
?
no subject
Насчет плотности тоже не отвечу. Интуитивно думаю, что да.
no subject
ее скомпромитировали кетайцы... в прошлом или позапрошлом году
no subject
Просто появился способ получить текст с заданным хэшем
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Представим что мы имеем измеряющие инструменты абсолютной точности.
Как можно на стержень длиной один метр записать любое количество информации?
no subject
no subject
no subject
На самом деле, MD5 используются нелинейные бинарные и арифметические функции, с набором иррациональных чисел (которые, правда, жестко заданы таблицей). Но принцип тот же. Во всяком случае, на это надеятся.