Re: Посоветовать алгор итм хэширования
От Serguei E. Leontiev (2:5020/400) к Alex Aka Parasite
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
From: leo@sai.msu.ru (Serguei E. Leontiev)
Здравствуй Alex,
Alex Aka Parasite -> All @ пн 17-авг-09 21:29 MSD:
...
AAP> 4. Там же, на винте - хранилище контента под проект. Контент представляет из
AAP> себя многие и многие *миллионы* мелких бинарных файлов, размером от десятков
AAP> байт до десятков килобайт, и их число постоянно растет. Каждый файлик уже
...
AAP> 1. *Очень критично* отсутствие коллизий (одинакового хэша на разные по составу
AAP> файлы). Учитывая количество единиц файлА - такое теоретически возможно...
Хм. Hе уверен, оценим "растущие миллионы" величиной 2^32, а десятки байт
величиной 80 бит, и тогда вероятность коллизии внутренности самих файлов
составит примерно 10^-2, что противоречит "очень критично" (это в
предположении случайности).
Таким образом, если мы оценим "очень критично" вероятностью 10^-9, то:
- надо, либо проверять, что содержимое файлов уникально, либо
добавлять уникальный идентификатор (например, имя файла);
- т.к. требований на необратимость не предъявлялось, то подойдёт любая
достаточно "случайная" функция с результатом размера больше 254-бит:
* CRC 256;
* ГОСТ Р 34.11-94;
* SHA-256;
* и т.п.
Для перечисленных алгоритмов добавлять длину не требуется, т.к. CRC не
требует выравнивания, а в ГОСТ и SHA она и так добавляется. Hо, при
выборе других алгоритмов, надо проверить нужна ли она.
...
AAP> 3. Желательно посоветовать быстрые, "нетяжелые" алгоритмы - работа с контентом
AAP> идет довольно плотная, в мультиюзер-моде, а перл сам по себе не самый
AAP> проворный.
Вызов внешних библиотек в perl вроде ещё никто не отменял, так что
рекомендую использовать готовые реализации, у хороших реализаций
производительность будет лучше, чем 50 тактов на байт.
--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru <http://www.cryptopro.ru>
--- ifmail v.2.15dev5.4
* Origin: ГАИШ, МГУ (2:5020/400)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким