Какой хеш-алгоритм с 2011 года наиболее подходит для дайджеста сообщений? - PullRequest
4 голосов
/ 17 марта 2011

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

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

Я мог бы пойти дальше и использовать md5 в качестве моей первой подсказки для дайджеста сообщений (это правильно в названии), но потом я вспомнил, что там больше коллизий, чем более современных алгоритмов. Но тогда что делает эти новые алгоритмы более подходящими для дайджеста сообщений файла или короткой строки?

Итак, это мой вопрос, какой современный алгоритм дайджеста сообщений следует использовать?

Ответы [ 2 ]

2 голосов
/ 18 марта 2011

В случае сомнений используйте SHA-256 . Другие функции SHA-2 тоже хороши; однако SHA-384 и SHA-512 могут страдать от незначительного снижения производительности на небольших (только 32-разрядных) платформах. Это может иметь значение для некоторых конкретных приложений.

Для использования, не связанного с безопасностью (например, первый проход индексации в хеш-таблице или обнаружение случайного, не злонамеренного изменения данных - тип работы, где вы можете использовать CRC ), рассмотрим MD4 , предшественник MD5. MD4 даже более сломан, чем MD5, но также проще в реализации (с более коротким кодом) и быстрее (на самом деле, на некоторых платформах ARM он был измерен быстрее CRC32).

2 голосов
/ 17 марта 2011

С этой точки зрения, в зависимости от объема данных, с которыми вы работаете, SHA1 должен работать нормально - если вы будете работать с большими объемами данных, алгоритм SHA-2, такой как SHA-256, может быть более подходящимбоязнь коллизий в SHA1 возрастает из-за недостатка в его алгоритме, но он не очень серьезен при работе с небольшими объемами данных.

MD5 оказался слишком уязвимым для коллизий, так какбыли атаки на SSL-сертификаты, которые использовали MD5 для создания поддельного SSL-сертификата, поэтому я бы держался подальше от этого.Кроме того, в зависимости от вашего приложения, MD5 не совместим с FIPS 140, если это имеет какое-либо значение для вас.

SHA1 идеально подходит по сравнению с MD5, потому что он безопаснее, так как MD5 рискованно использовать, а SHA1 имеет лучшую производительностьНаиболее распространенные обстоятельства, чем ША-2.Алгоритмы SHA-2 отнюдь не медленны, но имеют преимущество.Тем не менее, SHA1 немного рискованнее, потому что вы, вероятно, замкнулись в его использовании - если столкновения начнут обнаруживаться, вам может быть сложно изменить его, поэтому лучше заранее инвестировать в алгоритм SHA-2.Наказание за использование SHA-256 над SHA-1 очень мало, в зависимости от того, как вы будете использовать алгоритм SHA.Алгоритмы SHA-2 производят намного больший выходной сигнал, чем SHA1, но благодаря уменьшенным шансам столкновения.

Так какой из них прав?Это зависит от того, что вы ищете и каков ваш вариант использования.Надеюсь, теперь вы можете принять решение.

...