2013-05-06 3 views
4

Я знаю, что список всех функций хэша слишком длинный. Я просто хочу знать самые популярные, которые используются в повседневных ИТ-практических задачах. Я знаю, что MD5, SHA1, SHA2 (256 и 512) действительно популярны. Есть ли другая хэш-функция, которую я могу добавить к этим 5 алгоритмам?Хеш-функции, которые используются и используются более популярны

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

+0

Это почти все из них, но вы можете добавить http://en.wikipedia.org/wiki/SHA-3 http : //en.wikipedia.org/wiki/Blowfish_ (шифр) http://en.wikipedia.org/wiki/Bcrypt, и если вам все еще нужно больше, http://en.wikipedia.org/wiki/Tiger_(cryptography) http://en.wikipedia.org/wiki/Whirlpool_(cryptography) – Patashu

+1

Список функций один не имеет смысла. Хеши, кроме различной длины, имеют другие особенности, такие как скорость расчета и целевое назначение. Поэтому я голосую, чтобы закрыть этот вопрос как не полезный. –

+1

В каком контексте? Хеширование файлов? Хеширование паролей? Эти две области используют совершенно разные функции. – CodesInChaos

ответ

2

Наиболее широко используется (и определено в стандартах для SSL/TLS, SSH, OpenPGP) являются:

  • CRC32 - простая контрольная сумма, используется в ZIP, OpenPGP и ряд других стандартов.
  • MD2, MD5 - слишком старый и слабый MD5 - старый и считается слабым.
  • SHA1 - стандарт де-факто, используемый почти везде (алгоритм DSA - используется только с SHA1, это также широкая область использования).
  • SHA224/256/384/512 - должен вытеснить SHA1, и используется с DSA ключей размером более 1024 бит, и подписи ECDSA
  • ripemd160 - используется в OpenPGP, а также некоторых сертификатов X.509.

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

-2

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

+1

Ни DES, ни 3DES не поддерживают шифрование данных с помощью открытого/закрытого ключа. Это симметричные алгоритмы. –

+0

Кроме того, DES и TDES не являются хэш-функциями. –

+0

Triple DES использует «пучок ключей», который содержит три ключа DES, K1, K2 и K3, каждый из 56 бит (исключая биты четности). –

0
  • В случае, если вы просто хотите добавить хеш-функции в свой инструмент, независимо от безопасности, то финалисты конкурса MD-4 и NIST SHA-1 и SHA-2 могут быть реализованы.
  • Для более новых и более безопасных хэш-функций может быть реализован победитель SHA-3 (Keccak).

NIST hash function competition

SHA-3

+0

Знаете ли вы какую-либо программную реализацию SHA-3? – ehsun7b

+0

@ ehsun7b Пока нет окончательной спецификации SHA-3. NIST, вероятно, применит некоторые незначительные хитрости к Keccak, прежде чем называть его SHA3. Поэтому я бы подождал, пока он официально не будет указан до его реализации. – CodesInChaos

2

bcrypt и scrypt. Они предназначены для хэширования паролей.

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

+3

В контексте хэширования паролей можно также использовать алгоритмы шифрования на основе PBKDF2 и SHA-2. В устаревшем контексте есть также криптография MD5Crypt и DES. – CodesInChaos

+1

bcrypt не является хеш-функцией, это алгоритм дешифрования пароля, основанный на шифре Blowfish –

+0

@NickolayOlshevsky - Если вы хотите быть точным, мы должны называть его «ключ-деривационная функция», хотя BCrypt обычно называют хэш-функцией для пароли. Часто вам приходится объяснять, что пароли должны быть хэшированы, а не зашифрованы, поэтому это только смущает людей больше, если вы скажете, что это не хеш-функция. – martinstoeckli

5
  • MD5, SHA-1 - Обычно используется, используется, чтобы быть безопасным, но уже не столкновение устойчивы
  • SHA-2 - Обычно используется, безопасный. Это семейство функций с различным размером вывода.
  • SHA-3 - Пока не указано, но, вероятно, станет популярным после этого. Дождитесь спецификации. Будет семейство функций.
  • CRC32 - Небезопасный, но очень распространенный как контрольная сумма
  • MD4, RIPEMD160 - Не видели файлы для хэширования, но они все еще существуют в некоторых других контекстах. MD4 сломан, некоторые более старые члены семейства RIPEMD сломаны, но RIPEMD160 по-прежнему безопасен. Единственное место, где я видел водоворот, - это KDF от TrueCrypt.
  • TTH/TigerTreeHash - Используется в некоторых файлообменных контекстах, по-прежнему в безопасности, но безопасность запас худеет
  • ed2k - Используется в некоторых файлообменных контекстах на основе MD4, сломанный сопротивление столкновения
  • Лялька, Blake2 - Лялька является SHA-3 финалист, Блейк2 происходит от одного. Относительно быстро в программном обеспечении и иногда используется, но не очень распространено. Как вклад в Blake2 я надеюсь, что он становится все более популярным :)

За хэшей вы назвали CRC32 действительно общие, и TTH/ED2K используются в контексте файлообмен, но редко в других местах. Не видели много других хэшей в контексте хэширования файлов.

0

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

Из них лучший в настоящее время:

  • Быстро: CRC32 на SSE4.2/ARMv7 HW, Murmur3, CityHash, FNV
  • Secure: SHA-3 (Keccak), SHA-2, BLAKE2

См. https://code.google.com/p/smhasher/w/list для системы тестирования некоторых популярных моделей.

[Редактировать Примечание: пред. имел bcrypt, scrypt как безопасные + медленные хеш-функции, но они - только хэш-функции пароля]

+0

Bcrypt и scrypt - это хэши паролей, они не защищены от криптографических хэшей, и они намеренно замедляются. SHA-2 и BLAKE2, с другой стороны, являются безопасными криптографическими хешами, причем последние немного быстрее. На самом деле нет смысла перечислять их в том же списке. – CodesInChaos

+0

Вы правы. Улучшено. Вопрос был слишком широк. – rurban

Смежные вопросы