Опубликован: 04.08.2025 | Доступ: свободный | Студентов: 6 / 0 | Длительность: 01:52:00
Лекция 5:

Разбор демонстрационного примера, выдача индивидуальных заданий

< Лекция 4 || Лекция 5: 12 || Лекция 6 >
Аннотация: Тема занятия: Разбор демонстрационного примера, ознакомление с требованиями и соглашениями разработки, выдача индивидуальных заданий, обсуждение индивидуальных заданий.

Разбор демонстрационного примера

Дан готовый IP-блок, предназначенный для криптопреобразования входных данных с разрядностью 128 бит и ключом разрядностью 256 бит в соответствии с алгоритмами, изложенными в [3].

Детали поддерживаемых режимов криптопреобразований изложены в [4].

Упрощённая структурная схема блока показана на рисунке 4.1.

Упрощенная структура демонстрационного примера

Рис. 4.1. Упрощенная структура демонстрационного примера

Узел зашифрования реализует следующие режимы работы:

  • простой замены;
  • режим гаммирования;
  • режим гаммирования с обратной связью по выходу;
  • режим простой замены с зацеплением;
  • режим гаммирования с обратной связью по шифртексту.

В блоке отсутствуют средства внешнего доступа (запись или чтение) к итерационным ключам преобразования. Ключ преобразования может быть только записан.

Узел расшифрования включается только в режимах простой замены и простой замены с зацеплением. В остальных режимах в нём нет необходимости в силу обратимости преобразований. В случае синтеза для условий использования какого-либо одного режима (кроме простой замены или простой замены с зацеплением) этот узел исключается из потока обработки данных и может быть удален синтезаторами логики при оптимизации.

Требуется выбрать интерфейсы для подключения к процессорному ядру RISC-V, реализовать аппаратные средства подключения (обертку IP блока), проверить работу на тренировочной плате.

В качестве интерфейсов были выбраны AMBA APB - для управления режимами работы и загрузки ключей шифрования в IP блок; и AXI Stream для потока данных на шифрование. Дополненная структура IP блока (обертка) приведена на рисунке 4.2.

Дополненная структура демонстрационного примера

Рис. 4.2. Дополненная структура демонстрационного примера

APB Control Port. Узел управления режимами через интерфейс APB [5]. Используется для загрузки ключей шифрования, начальных значений блоков (IV), смены режима зашифровывания, проверки текущего состояния IP- блока. В узле физически отсутствуют каналы пересылок информации, которые могли бы быть использованы для чтения информации об уже загруженном ключе.

AXI Stream Front End. Узел отработки протокола интерфейса AXI Stream [6] при приеме данных. Дополнительный функционал - преобразование ширины шины данных из допустимых в AXI Stream (от 8 бит до 128) в шину данных Кузнечик IP (128 бит, фиксированная).

AXI Stream Back End. Узел преобразования потока данных от узла зашифровывания/расшифровывания в интерфейс AXI Stream, с разрешенной шириной шины данных (от 8 до 128 бит).

AXI Stream Control FSM. Узел управления пересылками данных. Конечный автомат обеспечивает чтение данных из буферов Front End, обработку служебных сигналов Кузнечик IP, размещение данных в FIFO Back End и отработку протокола обмена по выходной шине AXI Stream.

Кузнечик IP - ГОСТ Р 34.13-2015 - узел зашифровывания и расшифровывания данных в соответствии с алгоритмами ГОСТ Р 34.13-2015. Условное графическое отображение IP-блока представлено на рисунке 4.3.

УГО демонстрационного примера

Рис. 4.3. УГО демонстрационного примера

Назначения сигналов представлены в таблице 4.1:

Таблица 4.1. Назначения сигналов демонстрационного примера
Название Направление Акт. уровень Описание
Системные сигналы
ACLK in \uparrow Тактовый сигнал интерфейса AXI Stream (Slave и Master), тактовый сигнал узла криптопреобразования (Кузнечик IP)
PCLK in \uparrow Тактовый сигнал интерфейса APB
nRst in '0' Системный сигнал перезапуска
PRESETn in '0' Сигнал перезапуска интерфейса APB
IRQ out '1' Сигнал прерывания для инициатора запроса по шине APB, активный уровень формируется при некоторых изменениях состояния IP-блока
Сигналы интерфейса APB
PAddr in Addr Адрес элемента доступа. Адресация побайтная, Потенциально доступно для доступа 256 байт
PWDATA in Data Данные для записи. Ширина шины данных зависит от параметра синтеза и может быть 8, 16 или 32 байта
PRDATA out Data Данные при чтении. Ширина шины данных зависит от параметра синтеза и может быть 8, 16 или 32 байта
PENABLE in '1' Активный уровень означает прохождение второго и последующих циклов тактового сигнала при обращении к устройству
PSEL in '1' Источник запроса генерирует активный уровень индивидуального сигнала PSEL при обращении к каждому устройству
PWRITE in '1' Активный уровень означает обращение к устройству для записи.
PSTRB in '1' Строб разрешения пересылки отдельного байта в составе шины данных.
PREADY out '1' Сигнал готовности к обмену в данном обращении от устройства - приемника запроса
PSLVERR in '1' Активный уровень означает ошибку доступа - не разрешенная для обмена зона адресного пространства
Сигналы интерфейса AXI Stream (Slave)
ASF_TDATA in Data AXI Stream Front End Transmission Data. Данные, пересылаемые по интерфейсу AXI Stream. Допустимая ширина шины данных может быть 8,16,32,64 или 128 бит.
ASF_TVALID in '1' Признак валидности пересылаемых данных
ASF_TREADY out '1' Признак готовности устройства к приёму данных
ASF_TDEST in -

Назначение пересылаемого пакета данных. Может принимать следующие значения:

  • '0' - пересылается открытый текст, который будет зашифрован;
  • '1' - пересылается зашифрованный текст, который будет расшифрован.
ASF_TKEEP in '1' Индикатор валидности содержимого соответствующего байта, пересылаемого по шине. [6, page 2-24]
ASF_TSTRB in '1' Индикатор валидности содержимого соответствующего байта, пересылаемого по шине. [6, page 2-24]
ASF_TLAST in '1' Признак последнего слова в пересылаемом пакете.
Сигналы интерфейса AXI Stream (Master)
ASB_TDATA out Data AXI Stream Back End Transmission Data. Данные, пересылаемые по интерфейсу AXI Stream. Допустимая ширина шины данных может быть 8,16,32,64 или 128 бит.
ASB_TVALID out '1' Признак валидности пересылаемых данных
ASB_TREADY in '1' Признак готовности внешнего приемника устройства к приёму данных
ASB_TDEST out '1'

Назначение пересылаемого пакета данных. Может принимать следующие значения:

  • '0' - пересылается открытый текст;
  • '1' - пересылается зашифрованный текст.
ASB_TKEEP out '1' Индикатор валидности содержимого соответствующего байта, пересылаемого по шине. [6, page 2-24]
ASB_TSTRB out '1' Индикатор валидности содержимого соответствующего байта, пересылаемого по шине. [6, page 2-24]
ASB_TLAST out '1' Признак последнего слова в пересылаемом пакете
< Лекция 4 || Лекция 5: 12 || Лекция 6 >