Вопрос по hash, cryptography, md5, sha512 – Причины, по которым SHA512 превосходит MD5

27

Мне было интересно, смогу ли я найти причины или ссылки на ресурсы, объясняющие, почему SHA512 является лучшим алгоритмом хеширования по сравнению с MD5.

Ваш Ответ

7   ответов
2

читая это

Тем не менее, было показано, что MD5 не является устойчивым к столкновениям

больше информации о столкновении здесь

10

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

SHA-512 (одна из хеш-функций семейства SHA-2) на данный момент достаточно безопасна, но, возможно, ненадолго в обозримом будущем. Тот'почему NIST начал конкурс на SHA-3.

Как правило, вы хотите, чтобы алгоритмы хеширования былив одну сторону функции. Они сопоставляют некоторый вход с некоторым выходом. Обычно выход имеет фиксированную длину, что обеспечивает "дайджеста» оригинального ввода. Общие свойства, например, заключаются в том, что небольшие изменения во входных данных приводят к большим изменениям в выходных данных (что помогает обнаруживать несанкционированное вмешательство) и что функция не является легко обратимой. Для последнего свойства длина вывода очень помогает, потому что она обеспечивает теоретическую верхнюю границу сложности атаки столкновения. Однако недостатки в дизайне или реализации часто приводят к снижению сложности атак. Как только те это знаютПришло время оценить, по-прежнему ли используется хеш-функция. Если сложность атаки падает достаточно далеко, практические атаки легко попадают в круг людей без специального компьютерного оборудования.

Примечание: ямы говорили только об одном виде нападения здесь. Реальность хоть и гораздо более нюансированная, но и гораздо сложнее понять. Поскольку хеш-функции очень часто используются для проверки целостности файла / сообщения, коллизия, вероятно, является самой простой для понимания и отслеживания.

Спасибо, юстиция. Включено :-) Joey
Обратите внимание, что SHA-512 является одним из алгоритмов в семействе SHA-2. (Объясняя ссылку на SHA-3.) yfeldblum
3

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

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

Это займет тысячи лет, и к тому времени все участвующие будут мертвы; Есть более важные вещи, о которых нужно беспокоиться.

Если вы заблокируете свой аккаунт с 20-й попытки ... проблема решена. 20 ударов на твоей стене = 0.0000000001% вероятности, что они пройдут. Есть буквально лучший статистический шанс, что вы на самом деле Иисус.

Это'Также важно отметить, что абсолютно любая хеш-функция будет уязвима для коллизий в силу того, что такое хеш-функция: "(маленький) уникальный идентификатор чего-то еще ".

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

Позволять'провести небольшой мысленный эксперимент ...

SHA-2, если бы он существовал, имел бы 4 возможных уникальных идентификатора для чего-то еще ... 00, 01, 10 & 11. Очевидно, это приведет к столкновениям. Вы видите проблему здесь? Хеш - это просто сгенерированный идентификатор того, что выпытаемся идентифицировать.

MD5 на самом деле действительно хорош в случайном выборе числа на основе входных данных. SHA на самом деле не намного лучше; У SHA просто намного больше места для идентификаторов.

Используемый метод составляет около 0,1% причины, по которой столкновения менее вероятны. Настоящая причина - большее битовое пространство.

Это буквально единственная причина, по которой SHA-256 и SHA-512 менее уязвимы для столкновений; потому что они используют большее пространство для уникального идентификатора.

Фактические методы SHA-256 и SHA-512, используемые для генерации хеша, на самом деле лучше, но не намного; те же самые радужные атаки будут работать на них, если у них будет меньше битов в их идентификаторах, а файлы и даже пароли могут иметь идентичные идентификаторы с использованием SHA-256 и SHA-512, это 'просто намного менее вероятно, потому что он использует больше битов.

НАСТОЯЩИЙ ВЫПУСК - как вы реализуете свою безопасность

Если вы разрешите автоматическим атакам достигать вашей конечной точки аутентификации 1000 раз в секунду, вы 'собираюсь взломать. Если вы дросселируете до 1 попытки за 3 секунды и заблокируете учетную запись на 24 часа после 10-й попытки, вынет.

Если вы храните пароли без соли (соль - это просто дополнительный секрет для генератора, усложняющий идентификацию плохих паролей, например "31337" или же "пароль") и у вас много пользователей, выбудет взломан. Если вы солите их, даже если вы используете MD5, вы 'нет.

Учитывая, что MD5 использует 128 бит (32 байта в HEX, 16 байтов в двоичном), а SHA 512 - это всего лишь 4-кратное пространство, но фактически исключает коэффициент коллизий, давая вам 2 ^ 384 дополнительных возможных идентификатора ... Идите с SHA-512, каждый время.

Но если ты'Вы беспокоитесь о том, что действительно произойдет, если вы используете MD5, и вы нене понимаю настоящие, реальные различия, вывсе еще вероятно будет взломан, имеет смысл?

0

Для отображения в обратном направлении требуется гораздо больший словарь, и вероятность столкновения ниже.

1

MD5 имеет шанс столкновения (http://www.mscs.dal.ca/~selinger/md5collision/) и в Интернете есть множество радужных таблиц MD5 для обратного поиска паролей, доступных для скачивания.

0

Это просто, MD5 сломан;) (см.Википедия)

Брюс Шнайер писал о нападении, что "[мы] уже знали, что MD5 - сломанная хеш-функция и это "никто не должен больше использовать MD5. "

60

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

Но есть области, где MD5 был сломан:

Для начала: MD5 старый и обычный. Есть множество радужных столов против них, и онилегко найти. Так что если выхеширование паролей (без соли - позор вам!) - используя md5 - вы можете не хэшировать их, онитак легко найти. Даже если ты'перемешивание с простыми солями действительно.Во-вторых, MD5 больше не защищен как криптографическая хеш-функция (на самом деле она даже не считается криптографической хеш-функцией, как указывает Forked One). Вы можете генерировать разные сообщения, которые хэшируют одно и то же значение. Так что если выу меня есть сертификат SSL с хешем MD5, я могу создать дубликат сертификата, который говорит, что я хочу, который производиттот же хеш, Это обычно то, что люди имеют в виду, когда говорят, что MD5сломанный» - такие вещи, как это.В-третьих, аналогично сообщениям, вы также можете генерировать разныефайлы этот хэш к тому же значению поэтому использование MD5 в качестве контрольной суммы файласломана.

Теперь SHA-512 являетсяСемья ША-2 алгоритм хеширования SHA-1 отчасти считаетсяа» в эти дни ябуду игнорировать это SHA-2, однако, имеет относительно мало атак против него. Главная википедия говорит о том,уменьшенная атака прообраза что означает, что если вы используете SHA-512 ужасно неправильно, я могу сломать его. Явно тывряд ли будет использовать его таким образом, но атаки становятся только лучше, и этоХороший трамплин для дальнейших исследований, чтобы сломать SHA-512 таким же образом, как ломается MD5.

Однако из всех доступных хэш-функций семейство SHA-2 в настоящее время является самым сильным и лучшим выбором с точки зрения общности, анализа и безопасности. (Ноне обязательно скорость. Если ты'Что касается встроенных систем, вам необходимо выполнить целый другой анализ.) "

+1 на полезную информацию WarmWaffles
потому что вы можете генерировать разные сообщения, которые хэшируют к одному значению. " - по этой причине он больше не считается критографическим хешем, так как он больше не отвечает всем требованиям (en.wikipedia.org/wiki/Cryptographic_hash_function) BlueRaja - Danny Pflughoeft

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