Doka avatar

Журнал Эмбеддед-Инженера

О микроэлектронике, радиотехнике и хобби

Dmitry Murzinov

2 минут чтения

Входные данные

  • 9 [честных] раундов
  • 128 бит [16 байт] блок данных
  • 100 МГц частота ПЛИС [при реализации криптоалгоритма]

Оценки

В некоторых докладах, например Рудской В. Российские криптографические стандарты: функции хэширования, блочные шифры и режимы их работы слышны цифры что на Си под 64битный линукс удаётся достичь скорости шифрования до 130 МБайт/с. Теперь подсчитаем экономную реализацию (некий tradeoff между утилизацией логики и скорострельностью алгоритма), притом примем для прстоты все фазы расчета ключа выполненными:

  1. XOR с ключом - 1 такт
  2. S-преобразование - 1 такт (реализация в виде ROM)
  3. L-преобразование (по сути - 16 раз повторённое R-преобразование):
    • 16 раз х 8 тактов (обычное)
    • 16 тактов + 1 такт (скоростное, реализация R-преобразования не на LFSR, а на ROM)

Итого

  1. tradeoff + обычный:      16 байт * 100 МГц : (130 тактов * 9 раундов) = 1.4 МБайт/с
  2. tradeoff + скоростной:    16 байт * 100 МГц : ( 19 тактов * 9 раундов) = 9.3 МБайт/с

негусто…  предшественник “Кузнечика” (тот, который сейчас “Магма” (ех. ГОСТ 28147-89)) да или тот же AES не такие прожорливые до ресурсов… Конечно, можно сделать конвейер и “гнать” результаты каждый такт, это будет:

16 байт * 100 МГц : (1 такт) = **1600 МБайт/с**

..но, это 9 * (16 (ROM 8x8 для S-преобразования) +  16 * 13 (ROM 8x8 для R-преобразования)) = 2016 шт ROM 8x8, что для ПЛИС как-то уже жирновато, даже если участь что двухпортовые BlockRAM на 18К можно использовать как две независимые ROM, т.о. это около ~1000 BlockRAM. Истина явно где-то посередине….

Исходники

Все работы по реализации ГОСТ 34.12-2015 “Кузнечик” на HDL ведутся тут.

https://github.com/iDoka/GOST-R34.12-2015

Последние записи

Разделы