2012-03-07 2 views
0

У меня есть вопрос о безопасности следующего использования SHA512:Безопасное использование SHA512

Если у меня есть две строки, х и у. Можно ли получить SHA (x) и SHA (y) от SHA (x + y) или наоборот? x + y is string x объединено с y.

Заранее благодарен!

+3

Может http://security.stackexchange.com/ бы лучше форум на этот вопрос. –

ответ

4

SHA512 является предварительным, вторичным и префикс-провидным.

Следовательно:

  • Обнаружение любого X дано SHA512 (X) трудно.
  • Поиск любого X при условии, что SHA512 (X + Y) и Y являются твердыми
  • Поиск любого X с учетом SHA512 (Y + X) и Y является трудным.

Учитывая SHA512 (X) и SHA512 (Y), также сложно вычислить SHA512 (X + Y), поскольку SHA512 не является линейной функцией.

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

В общем случае, если X трудно догадаться, SHA512 (X) не выявили каких-либо особенностей X.

3

Короткий ответ - «нет». Это сделало бы хеш-функцию (например, SHA512) бесполезной для схем хеширования с ключами, таких как HMAC.

+0

Немного более обширный: алгоритмы хэша должны быть неуязвимыми для * расширений длины *, которые, как вам кажется, ищут как функцию ... –