Цитата(makc @ Jun 1 2005, 16:21)
Цитата(scheme_ru @ Jun 1 2005, 15:01)
Также удалось запихнуть хэш-функцию ГОСТ 3411. Места жрет много - 5000 элементов, почти половину Cyclone 12.
Можно узнать получившуюся скорость хэширования?
Удельная скорость хэширования зависит от длины сообщения. Если Вы в курсе, как работает алгоритм, то там все строится на функции перемешивания, которая помимо диких сдвигов и xor'ов использует в своей основе 4 операции ГОСТ 28147 простой замены.
Так вот, при использовании двух блоков ГОСТ 28147 параллельно (можно бы и 4 штуки - было бы быстрее, да место пожалел), вычисление одной функции перемешивания у меня занимает 78 тактов на одно 256-разрядное слово сообщения.
По алгоритму для всех 256-разрядных слов сообщения функция перемешивания вычисляется однократно, для последнего 256-разрядного слова сообщения функция вычисляется трижды.
Значит, скорость хэширования получается от
(256/78) = 3.28 бита за такт для сообщения очень большой длины
до
(256/(78*3)) = 1.09 бита за такт для сообщения длины <= 256 бит.
При частоте 50 МГц получается от 55 Мбит/с до 165 Мбит/с.