Skip to main content

[opensource]: Аппаратный криптодвижок ГОСТ 28147-89

Что такое движок по ГОСТ 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

(далее…)

читать...

[opensource]: генератор аппаратного движка ECC и SECDED

Что это?

Аппаратный (синтезируемый) кодер и декодер самокорректирующихся кодов им.Хэмминга, позволяющих исправлять одиночную ошибку (и находить двойную). Алгоритм коррекции ошибок Хемминга достаточно нетребователен к ресурсам и надёжен; он позволяет значительно повысить надежность передачи и/или хранения данных; также он используется в куче сфер для безотказного функционирования оборудования: отказоустойчивые сервера, аэрокосмическая электроника, радиационно-стойкая элементная база (как альтернатива мажорированию: для защиты RAM и параллельных шин данных).

Возможности

  • Шифратор и дешифратор стандартных кодов Хэмминга и кодов с дополнительным битом чётности (т.н. SECDED, который например используется в серверной DRAM: позволяет исправить одну ошибку и обнаружить две)
  • Поддерживается запуск  в MatLab и GNU Octave (используется функция hammgen())
  • Возможность задавать произвольную разрядность входных данных (переменная K)
  • Возможность задавать собственный полином (массив POLY)
  • Выходной формат: Verilog HDL 2001
  • Полностью комбинационная схема, минимальная latency (добавьте регистровый pipeline по своему вкусу, если гонитесь за макс.частотой работы схемы)
  • Сигнал с декодера, индицирующий статус:
    • отсутствие ошибки (сбойные биты отсутствуют)
    • исправимая ошибка (1 сбойный бит)
    • неисправимая ошибка (>1 сбойного бита)

(далее…)

читать...

[WiP][opensource]: Аппаратный криптодвижок ГОСТ P34.12-2015 aka «Кузнечик»

Что такое аппаратный Кузнечик (ГОСТ P34.12-2015)?

Реализация на верилоге свежего российского крипто-стандарта, который (почему-то?) получил второе имя «Кузнечик». О чём стандарт: симметричное шифрование, 256-битный ключ, 128-битный блок данных, 10 раундов.

 

Текущий статус

Написана и проверена поведенческая верилог-модель стадий S и R.

Особенности

  • Verilog HDL для RTL и тестовых стимулов
  • Реализация шифровщика/дешифровщика как единого блока
  • Поддержка режима EBC

Планируемые доработки

  • Поддержка следующих режимов поточного шифрования: CBC, CFB, OFB (возможно CTR)
  • Добавление AXI4-Stream для потокового шифрования
  • Добавление параллельной шины для конфигурации/статуса (АМВА АРВ-like?) в составе СнК
  • Возможность предзагрузки рассчитанного для всех раундов ключа
  • Параллельная сверка работы с моделью на Си (механизм DPI)
  • Различные реализации: критерии «минимальная площадь» и «максимальная производительность»

(далее…)

читать...