alexanderwdark

|
Posted: Sun Aug 23, 2009 03:57 Post subject: |
|
|
Любой хэш по определению не уникален. Нельзя однозначно представить большой объем информации гораздо меньшим. Криптографически стойкий хэш только тем и отличается, что довольно сложно найти коллизии, т.е. такие совпадения исходных данных, при которых значения хэша одинаковы.
Длина самой хэш суммы здесь только косвенно влияет на надежность и стойкость. Есть определенный минимум, конечно. Скажем, 80-128 бит. Короче - сликом мало вариантов.
Но, сам алгоритм подсчета может быть уязвим для совпадений / коллизий. Сейчас на конкурсе SHA3 уже тьма новых, хороших на первый взгляд, хэшей были отсеяны - хотя и давали на выходе 512 и выше бит (64 байта). Приничой были именно коллизии, а у кого и возможность частично предсказать исходную информацию на основе хэша.
MD5 уже давно сломали, SHA1 так же не надежен. От SHA2 уже отказываются. Скоро уже будет известен SHA3, финалистов уже совсем не много осталось.
Уже можно выделить отличные алгоритмы: Keccak и Skein. Что особенно у них интересно - они гибкие, длина хэша может быть любой, не фиксирована до типовых 128, 256, 384, 512 бит.
Последний заточен под 64-битные системы, поэтому на 32-разрядных ОС довольно медлителен. Keccak в этом плане интереснее, если победит, у нас будет отличный алгоритм для самых различных целей.
Впрочем, никто не мешает для TC использовать абсолютно любой алгоритм подсчета хэш суммы файла. Это если по каким либо причинам нужна гарантия подлинности файла (неизменности).
Хотя и сейчас есть способ: считайте сразу две хэш-суммы. Вероятность подмены / совпадения сразу двух хэшей практически нереальна. |
|