SHA1 по-прежнему безопасен для использования в качестве хэш-функции в PBKDF2? - PullRequest
10 голосов
/ 09 февраля 2011

Поскольку были достигнуты значительные успехи в криптоанализе SHA1, он должен быть свернут в пользу SHA2 ( wikipedia ).

Однако для использования в качестве основной хеш-функции в PBKDF2это в основном используется в качестве PRNG.Таким образом, все еще должно быть безопасно использовать SHA1 в качестве хэша для PBKDF2, верно?

Ответы [ 3 ]

20 голосов
/ 09 февраля 2011

Ни один из известных в настоящее время недостатков SHA-1 не влияет на его безопасность при использовании в HMAC, a fortiori при использовании в PBKDF2. В этом отношении MD5 тоже подойдет (но не MD4).

Однако SHA-1 не подходит для связей с общественностью: если в 2011 году вы используете SHA-1, вы должны подготовиться к тому, чтобы оправдать этот выбор. С другой стороны, SHA-256 - это прекрасная «функция по умолчанию», и никто не будет подвергать ее сомнению.

В PBKDF2 нет проблем с производительностью (PBKDF2 включает в себя «счетчик итераций», предназначенный для того, чтобы сделать его настолько медленным, насколько это необходимо), поэтому нет особой причины для предпочтения SHA-1, а не SHA-256. Однако, если у вас есть существующая , развернутая система, которая использует PBKDF2-with-SHA-1, то нет никакой необходимости "исправлять" ее.

0 голосов
/ 09 февраля 2011

Конечно.SHA-256 или больше может быть более эффективным, если вы хотите генерировать больше ключевого материала.Но PBKDF2-HMAC-SHA1 в порядке.Также стандартное использование HMAC не было скомпрометировано, но, опять же, более длинные хеши в принципе более безопасны в этом сценарии.

0 голосов
/ 09 февраля 2011

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

С точки зрения «обеспечения целостности сообщения» это можно рассматривать как катастрофу.

С другой стороны, для генерации случайных чисел это абсолютно не имеет значения.

...