Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Криптография на ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
BSV
Приходилось ли кому реализовывать ГОСТ 28147-89 (простая замена, гаммирование с обратной связью) и RC4 на Xilinx или Altera? Какое получалось быстродействие?
makc
Цитата(BSV @ May 1 2005, 21:22)
Приходилось ли кому реализовывать ГОСТ 28147-89 (простая замена, гаммирование с обратной связью) и RC4 на Xilinx или Altera? Какое получалось быстродействие?
*


Насчет RC4 ничего не скажу, а вот ГОСТ - было дело. Простую замену делал, если мне не изменяет память, за 35 тактов на блок при тактовой частоте около 66 МГц для Spartan-2.
Maksim
Цитата(BSV @ May 1 2005, 21:22)
Приходилось ли кому реализовывать ГОСТ 28147-89 (простая замена, гаммирование с обратной связью) и RC4 на Xilinx или Altera? Какое получалось быстродействие?
*

ГОСТ 28147-89 гаммирование с обратной связью 33 такта (110 МГЦ Spartan-3) smile.gif
admin
тоже самое на Altera реализовывал в полностью синхронной схеме.
1 такт - скорость под 10 МГц была вроде.
BSV
Цитата(udofun @ May 3 2005, 13:49)
тоже самое на Altera реализовывал в полностью синхронной схеме.
1 такт - скорость под 10 МГц была вроде.
*


А что есть полностью синхронная схема? Поправьте меня, если я ошибаюсь, предполагая, что это конвейер из 32 циклов ГОСТа. Но тогда не получится в чистом виде реализовать гаммирование с обратной связью, а вот простую замену - пожалуйста. Уточните пожалуйста на каком кристалле это хозяйство реализовывалось.
BSV
Цитата(Maksim @ May 2 2005, 00:06)
ГОСТ 28147-89 гаммирование с обратной связью 33 такта (110 МГЦ Spartan-3)  smile.gif


А как в 33 такта уложились? Я использовал 3 регистра - два из ГОСТа и один вспомогательный, на входе у каждого двухвходовой мультиплексор - получалось 34 такта и 66 МГц на Spartan-2E. На Virtex-II/Spartan-3 переложить пока некогда.
BSV
Цитата(makc @ May 1 2005, 21:39)
Насчет RC4 ничего не скажу, а вот ГОСТ - было дело. Простую замену делал, если мне не изменяет память, за 35 тактов на блок при тактовой частоте около 66 МГц для Spartan-2.


А вот простую замену по моему разумению можно и в 32 такта утоптать. Впрочем, нет, все-таки в 33.

Вопрос ко всем участникам обсуждения - а сколько ключей и подстановок одновременно можно было использовать в Ваших решениях?
makc
Цитата(BSV @ May 4 2005, 21:46)
Цитата(makc @ May 1 2005, 21:39)
Насчет RC4 ничего не скажу, а вот ГОСТ - было дело. Простую замену делал, если мне не изменяет память, за 35 тактов на блок при тактовой частоте около 66 МГц для Spartan-2.


А вот простую замену по моему разумению можно и в 32 такта утоптать.

Вопрос ко всем участникам обсуждения - а сколько ключей и подстановок одновременно можно было использовать в Ваших решениях?
*



Можно и в 32, но если считать такты от входа до выхода, то засчет наличия дополнительных регистров у меня получалось именно 35. Насчет количества подстановок - одна, а ключей можно было использовать две штуки, т.к. организация распределенной памяти у спартана 16x1 (старший бит адреса отвечает за выбор ключа).
Maksim
Цитата(BSV @ May 4 2005, 21:39)
Цитата(Maksim @ May 2 2005, 00:06)
ГОСТ 28147-89 гаммирование с обратной связью 33 такта (110 МГЦ Spartan-3)  smile.gif


А как в 33 такта уложились? Я использовал 3 регистра - два из ГОСТа и один вспомогательный, на входе у каждого двухвходовой мультиплексор - получалось 34 такта и 66 МГц на Spartan-2E. На Virtex-II/Spartan-3 переложить пока некогда.
*


32 такта алгоритм + 1 такт на загрузку данных (64 бита) и их одновременная выгрузка в другой регистр, откуда их с меньшей частотой перезаписываю в буфер данных.
admin
2 BSV
Это было EP20K200 под завязку.
BSV
2 udofun

Так, все-таки, что имелось ввиду под "синхронной схемой"? И режим какой ПЗ или ГОС?

Попытаюсь объяснить к чему вопросы. Я работаю (пока) только с Xilinx - есть некоторый опыт реализации криптоалгоритмов. Хотелось бы выянить, насколько Altera или что-то еще пригодно для данного вида приложений.

Немного посчитаем. В Вашем проекте 10МГц * 8 байт ~ 78МБайт/c. Очень хорошая производительность - мои 66 МГц и 34 такта отдыхают (~15МБайт/с). Но место!!! В моем проекте в XC2S300E таких ядер живет три штуки и еще место остается.
Так возможно ли какое-то компромиссное решение на Altera, например?
scheme_ru
Реализован ГОСТ 28147-89 простая замена, гаммирование и имитовставка в Altera Cyclone 12. Скорость 8-ка. Занимает чуть больше 1000 логических элементов. При забитости ПЛИС в 96% на частоте 50МГц тянет 90 с копейками Мбит/с.

Также удалось запихнуть хэш-функцию ГОСТ 3411. Места жрет много - 5000 элементов, почти половину Cyclone 12.
makc
Цитата(scheme_ru @ Jun 1 2005, 15:01)
Также удалось запихнуть хэш-функцию ГОСТ 3411. Места жрет много - 5000 элементов, почти половину Cyclone 12.
*


Можно узнать получившуюся скорость хэширования?
scheme_ru
Цитата(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 Мбит/с.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.