Обрезает ли хеш sha-160 разумный хеш? - PullRequest
2 голосов
/ 23 марта 2011

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

Дает ли 64 младших бита вычисления хэша sha-160 достаточно случайный 64-битный хэш?

1 Ответ

5 голосов
/ 23 марта 2011

Для того, чтобы что-то было хорошим хэшем, это означает, что любое фиксированное подмножество его битов также (насколько это возможно, учитывая, сколько битов) является хорошим хэшем.Младшие 64 бита хэша SHA-160 должны быть хорошими 64-битными хэшами, поскольку такая вещь существует.

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

Что плохого случится, если вы просто используете все 160 бит?

...