Является ли любая 64 -битная часть 128 -битного хэша доказательством коллизии -как 64 -битного хэша?

Мы пытаемся урегулировать внутренние споры в нашей команде разработчиков :

. Мы ищем 64 -битную хэш-функцию PHP. Мы нашли PHP-реализацию MurmurHash3 , но MurmurHash3 имеет либо 32 -бит, либо 128 -бит, а не 64 -бит.

Co -рабочий #1 считает, что для создания 64 -битного хэша из MurmurHash3 мы можем просто нарезать первый (или последний, или любые )64 бита 128 -битного хэша. и что это будет таким же доказательством коллизий -, как и собственная 64-битная -хэш-функция.

Co -worker #2 считает, что мы должны найти нативную 64 -битную хеш-функцию, чтобы уменьшить коллизии, и что 64 -битные фрагменты 128 -битного хэша не будут такими защищенными от коллизий, как родной 64 -битный хеш.

Кто прав?

Изменится ли ответ, если мы возьмем первый (или последний, или любые )64 -бит криптографического хэша, такого как SHA1, вместо Murmur3?

17
задан richardkmiller 13 July 2012 в 17:28
поделиться