Два различных микропрограммных файла могут иметь ту же сумму md5?

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

7
задан 9 October 2016 в 21:14

6 ответов

То, на что существующим ответам не удается указать, , почему коллизия, как считают, очень маловероятна в этом случае.

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

Так, если новая версия встроенного микропрограммного обеспечения не полностью отличающаяся , и , если Вы просто не засвидетельствовали once-in-a-million явление, разногласия огромны, что Вы просто получили старую версию снова. Поздравления, потому что это - процесс проверки хеша, работающий точно, как предназначено. :)

13
ответ дан 23 November 2019 в 06:07

Конечно. Уязвимость коллизии MD5 известна (см. Crypto. SE, Википедия ). Хотя это - все еще событие низкой вероятности, это может быть сделано. Однако в Вашем случае, я подозревал бы ошибку в копировании файлов.

18
ответ дан 23 November 2019 в 06:07

Обычно два файла могут иметь тот же md5 хеш, только если их содержание является точно тем же. Даже единственный бит изменения генерирует совершенно другое значение хэш-функции.

существует один протест, хотя: md5 сумма составляет 128 битов (16 байтов). Так как количество различного возможного содержания файла бесконечно, и количество различных возможных сумм md5 конечно, существует возможность (хотя маленькая вероятность в большинстве случаев) коллизии хешей. Другими словами, два различных файла могут производить ту же сумму при хешировании с md5.

из-за этого, лучше в некоторых случаях использовать более высокий разрядный хеш (более возможные различные выводы), уменьшить (уже низко) вероятность случайной хэш-коллизии и увеличить трудность создания преднамеренной хэш-коллизии через грубую силу.

Примеры более высоких разрядных хешей включают семейство SHA-2 хешей, особенно sha256, sha384, или sha512 (который является лучшим.) Число после sha указывает на число битов, которые генерирует соответствующий хеш-алгоритм.

11
ответ дан 23 November 2019 в 06:07

Как другие сказали, коллизия MD5 гипотетически возможна, но чрезвычайно неправдоподобна (1 в 2^128, только 1 в 340,282,366,920,938,463,463,374,607,431,768,211,456 шансах), и у Вас, скорее всего, есть копирующая файл ошибка.

я рекомендовал бы делать сравнение байта байтом этих двух файлов, с помощью одного из многих методов, описанных здесь: https://superuser.com/questions/125376/how-do-i-compare-binary-files-in-linux.

Или всего diff file1 file2 - и если Вы не получаете сообщение, "Двоичные файлы file1 и file2 отличаются", файлы являются тем же.

3
ответ дан 23 November 2019 в 06:07

Во всех приведенных выше ответах игнорируются самые важные детали:

Контрольная сумма MD5 определена так, чтобы иметь 128 битов. Это означает, что существует только 2 ^ 128 различных значений MD5. Сколько разных образов прошивок возможно? Ну, это зависит от того, насколько они велики, и от того, какой процент случайных байтовых последовательностей можно считать допустимой прошивкой. Однако есть вероятность, что существует более 2 ^ 128 возможных образов прошивок.

много больше, что означает, что должно быть дубликатами.

Но вероятность того, что любой данный образ прошивки соответствует данной контрольной сумме MD5, составляет только 1 из 2 ^ 128, что является очень небольшим числом.

ОЧЕНЬ маленький.

Например, вероятность того, что любые два разработчика случайно создадут разные образы с одинаковой контрольной суммой MD5 в любой момент существования человеческой цивилизации, слишком мала, чтобы о вас беспокоиться.

Это случайно . Умышленно это другой вопрос. Если вы работаете в АНБ, то 128 битов не будет достаточно, чтобы удовлетворить ваших боссов, и у MD5 есть известные уязвимости, которые делают его слабее 128 бит.

Но если вы работали в АНБ, то, вероятно, вы это уже знали.

1
ответ дан 23 November 2019 в 06:07

Очень маловероятный, но возможный. Проверьте размер файла и даты дополнительной информации. Если бы файлы отличаются, было бы еще более маловероятно, что у них были бы тот же размер и хеш.

0
ответ дан 23 November 2019 в 06:07

Другие вопросы по тегам:

Похожие вопросы: