Что такое движок по ГОСТ 28147-89?
Реализация на верилоге советсткого стандарта симметричного шифрования, который был рассекречен в 1989г. В стандарте применяется шифрование с 256-битным ключом над 64-битным блоком данных за 32 раунда.
Текущая реализация являет собой некий компромисс между используемыми ресурсами и производительностью с целью демонстрации возможности размещения криптодвижка в низкобюджетных ПЛИС (оставаясь при этом относительно быстрым), как видно из отчета по использованию ресурсов — цель была достигнута.
Возможности
- RTL и тесты написаны на верилоге
- Реализация шифровщика/дешифровщика как единого блока
- Поддержка режима EBC
- Реализация алгоритма ГОСТ 28147-89 оптимизированная по использованию минимума ресурсов
- Реализация криптования/декриптования 1 блока за 32 такта
- Поддержка следующих типов S-box (имена даны в соответствии с RFC4357):
id-GostR3411-94-TestParamSet
id-Gost28147-89-CryptoPro-A-ParamSet
id-Gost28147-89-CryptoPro-B-ParamSet
id-Gost28147-89-CryptoPro-C-ParamSet
id-Gost28147-89-CryptoPro-D-ParamSet
id-tc26-gost-28147-param-Z
- также поддерживается S-box из ГОСТ Р34.11-94 из CryptoPro
Планируемые доработки
- Поддержка следующих режимов поточного шифрования: CBC, CFB, OFB (возможно CTR)
- Добавление AXI4-Stream для потокового шифрования
- Добавление параллельной шины для конфигурации/статуса (АМВА АРВ-like?) в составе СнК
- Возможность предзагрузки рассчитанного для всех раундов ключа
- Параллельная сверка работы с библиотекой Botan на Си, используемой как Golden Model (механизм DPI)
- Сделать реализацию по критерию «максимальная производительность»