Аппаратное шифрование на ПЛИС — где оно даёт выигрыш
Защита конфигурации и шифрование потока данных — две разные задачи: первая решается встроенными средствами семейства, вторая требует проектирования. Разбираем механизмы защиты, параметры подбора кристалла и границу применения.
Под аппаратным шифрованием на ПЛИС понимают две разные задачи, и их нужно разделять до начала проекта. Первая — защита самой конфигурации, то есть битового потока, который загружается в кристалл при включении. Вторая — реализация шифрования данных в логике кристалла, когда ПЛИС обрабатывает поток и выдаёт его зашифрованным или расшифрованным. Первая задача решается средствами, встроенными в семейство кристаллов, и не требует разработки. Вторая требует проектирования и даёт выигрыш не всегда.
Ниже разобрано, что именно даёт каждый механизм, по каким параметрам подбирается кристалл и в каких случаях процессор общего назначения закрывает задачу дешевле. Оборудование собрано в разделах FPGA, платы разработки и платформы на базе SoC.
Защита конфигурации кристалла
Битовый поток, лежащий в микросхеме памяти рядом с ПЛИС, читается внешним устройством и переносится на другую плату. Это основной способ копирования изделия. Механизмы защиты конфигурации закрывают именно его.
- Шифрование битового потока. Поток шифруется на этапе сборки проекта, кристалл расшифровывает его при загрузке встроенным блоком. В семействах Cyclone V, Arria 10, Kintex UltraScale+ и близких к ним применяется AES с длиной ключа 256 бит. Логика проекта при этом не расходуется — блок расшифрования отдельный.
- Хранение ключа. Два варианта: однократно программируемые элементы на кристалле и энергозависимая память с питанием от батарейки. Первый вариант не требует обслуживания, но ключ не меняется. Второй позволяет стереть ключ при вскрытии корпуса, но требует батарейки на плате и её замены по регламенту.
- Проверка подлинности потока. Подпись проверяется до загрузки, подменённая конфигурация не запускается. В старших семействах Stratix 10 и Agilex 7 за это отвечает отдельный встроенный контроллер защищённой загрузки, который работает до запуска основной логики.
- Запрет чтения и отладочного доступа. Отключается обратное считывание конфигурации и доступ по отладочному порту. Это делается при производстве изделия, после чего отладка на месте невозможна — порядок обслуживания нужно определить заранее.
Все перечисленные механизмы относятся к свойствам кристалла и его средств разработки. При подборе платформы проверяется, поддерживает ли выбранное семейство нужный способ хранения ключа, а не только сам факт шифрования.
Шифрование данных в логике кристалла
Здесь ПЛИС выступает вычислителем. Выигрыш появляется там, где важна не средняя скорость, а предсказуемость и независимость от остальной нагрузки.
- Канальное шифрование на скорости линии. Блочный шифр в режиме счётчика разворачивается в конвейер, и шифрование перестаёт быть отдельным этапом обработки — данные идут сквозь кристалл без накопления в буфере.
- Постоянная задержка. У процессора задержка зависит от очереди задач и кэша, у конвейера в ПЛИС она определяется числом ступеней и тактовой частотой. Для задач реального времени это главный довод.
- Шифрование на границе интерфейса. Данные шифруются между интерфейсом связи и памятью, минуя процессор. Трансиверы кристалла при этом задействуются напрямую — для этого выбирают семейства с нужным числом и скоростью последовательных каналов.
- Нестандартные и отечественные алгоритмы. Процессор ускоряет только те шифры, под которые у него есть команды. Алгоритм, которого в наборе команд нет, в ПЛИС реализуется с той же эффективностью, что и любой другой.
- Разделение контуров. В системе на кристалле обработку можно развести: процессорные ядра ведут управление и протокол, логика — только преобразование данных и хранение ключей. Доступ к ключам из программной части закрывается на уровне схемы.
Чем ПЛИС отличается от других решений той же задачи
| Признак | ПЛИС или система на кристалле | Процессор с командами шифрования | Отдельная микросхема-ускоритель |
|---|---|---|---|
| Набор алгоритмов | Любой, включая нестандартные | Только поддержанные набором команд | Фиксирован производителем |
| Задержка обработки | Постоянная, задаётся схемой | Зависит от нагрузки и памяти | Постоянная в пределах интерфейса |
| Привязка к интерфейсу | Прямая, через трансиверы кристалла | Через контроллер и драйвер | Через шину платформы |
| Срок разработки | Месяцы, нужна проверка схемы | Недели, библиотеки готовы | Недели, нужен драйвер |
| Изменение алгоритма после выпуска | Новой конфигурацией | Обновлением программы | Невозможно |
| Защита от копирования изделия | Шифрование и подпись конфигурации | Средствами загрузчика | Не относится |
| Цена единичного изделия | Выше, кристалл и плата дороже | Ниже | Средняя |
| Цена тиража от тысяч штук | Снижается переходом на заказную микросхему | Не меняется | Не меняется |
По каким параметрам подбирается кристалл
- Ресурсы логики. Конвейерная реализация блочного шифра занимает ресурсы пропорционально числу развёрнутых ступеней. Один медленный блок укладывается в младший кристалл, шифрование на скорости линии требует старшего.
- Блоки памяти на кристалле. В них хранятся таблицы подстановки, развёрнутые ключи и буферы кадров. Нехватка внутренней памяти выводит обращения во внешнюю и снижает частоту.
- Число и скорость последовательных каналов. Задаётся интерфейсом, с которым работает изделие. Платы на Arria 10 и Stratix 10 отличаются от младших семейств прежде всего этим.
- Наличие процессорных ядер в кристалле. Если шифрованию нужен сетевой стек, управление ключами и журналирование, берут систему на кристалле — иначе процессор придётся ставить рядом отдельной микросхемой.
- Способ хранения ключа конфигурации и поддержка защищённой загрузки. Проверяется по семейству до выбора платы.
- Корпус, температурный диапазон и питание. Промышленное исполнение и диапазон температур определяют не производительность, а возможность применения в изделии.
Что из каталога берут под такие проекты
- Отладочные платформы среднего уровня — платы разработки Terasic DE10-Nano, DE1-SoC, DE10-Standard и Cyclone V GX Starter Kit. На них проверяют конвейер шифра, разделение контуров и работу с внешней памятью.
- Платформы со процессорными ядрами — платформы на базе SoC: Cyclone V SoC Development Kit, Arria 10 SX SoC Development Kit, Stratix 10 SX SoC Development Kit, Agilex 7 FPGA Starter Kit. Берут, когда управление и протокол остаются в программной части.
- Платы на кристаллах с большим числом трансиверов — Terasic DE5a-Net Arria 10, DE10-Pro, Alinx XCKU5P, AMD AXKU062. Это вариант для шифрования на скорости канала.
- Ускорительные платы в сервер — Terasic Mercury A2700 Accelerator Card и близкие исполнения из раздела FPGA, когда шифрование выносится из серверного процессора.
- Платы расширения и дочерние модули под нужный интерфейс — раздел платы расширения.
- Готовые наборы под задачу обработки видео и промышленных сетей — Terasic Cyclone V E Video Development System и Industrial Networking Kit.
Чего ПЛИС не даёт
- Готовых сертифицированных реализаций. Соответствие требованиям к средствам криптографической защиты подтверждается для изделия в целом и для конкретной реализации алгоритма, а не для кристалла. Выбор ПЛИС эту работу не отменяет и не сокращает.
- Защиты от извлечения ключа при доступе к работающей плате. Механизмы защиты конфигурации рассчитаны на копирование потока, а не на лабораторные методы.
- Экономии на единичных изделиях. При тираже в десятки штук кристалл и шестислойная плата обходятся дороже готового промышленного компьютера — тогда рассматривают одноплатные компьютеры.
- Возможности отладки на месте после закрытия отладочного доступа. Это решается заранее: либо раздельные конфигурации для производства и сервиса, либо регламент замены платы.
Частые вопросы
Нужно ли шифровать конфигурацию, если проект не содержит ключей? Шифрование конфигурации защищает не ключи, а саму разработку: без него поток копируется на другую плату и изделие повторяется. Решение принимается по тиражу и цене разработки, а не по наличию ключей в проекте.
Чем ключ в однократно программируемых элементах хуже ключа в энергозависимой памяти? Он не меняется в течение срока службы кристалла и не стирается при вскрытии изделия. Зато он не требует батарейки, а значит, и регламента её замены. Для изделий с длительным хранением на складе обычно выбирают первый вариант.
Можно ли реализовать отечественные алгоритмы шифрования на этих платформах? Да, в логике кристалла реализуется любой алгоритм — ограничение не в кристалле, а в наличии проверенного описания схемы и в требованиях к подтверждению соответствия готового изделия.
Сколько ресурсов занимает блочный шифр? Зависит от режима и требуемой скорости: один вычислительный блок с последовательной обработкой раундов укладывается в небольшую часть младшего кристалла, полностью развёрнутый конвейер на скорость линии занимает кратно больше и обычно требует среднего или старшего семейства. Точная цифра получается только после синтеза под выбранный кристалл.
Что прислать для подбора платформы? Алгоритм и режим, требуемую пропускную способность и допустимую задержку, интерфейсы, к которым подключается шифратор, требование к хранению и смене ключей, тираж изделия, диапазон температур и ограничения по питанию и габаритам.
Что мы делаем
Подбираем кристалл и отладочную платформу по ресурсам, числу трансиверов и способу защиты конфигурации, сверяем требования проекта с возможностями семейства, подбираем платы расширения под интерфейсы изделия и называем сроки поставки. Разделы — FPGA, платы разработки, платформы на базе SoC и платы расширения.
Пришлите требования к шифрованию и интерфейсам на server@tkasiatorg.ru — подберём кристалл по ресурсам и трансиверам, предложим платформу для проверки схемы и соберём комплект с платами расширения.
