1. Введение и обзор

В областях цифровой валюты, блокчейна и шифрования облачных данных традиционные программные методы шифрования и дешифрования сталкиваются со значительными проблемами, включая низкую скорость вычислений, высокое потребление ресурсов хоста и существенные требования к энергопотреблению. В то время как реализации на программируемых пользователем вентильных матрицах (ПЛИС) с использованием Verilog/VHDL предлагают аппаратное ускорение, они страдают от длительных циклов разработки и сложностей в обслуживании и обновлении. Данная статья устраняет эти ограничения, предлагая новую конструкцию акселератора на ПЛИС для алгоритма 3DES с использованием фреймворка OpenCL.

Предлагаемая конструкция реализует 48-итерационную конвейерную параллельную структуру. Стратегии оптимизации включают корректировку хранения данных и улучшение разрядности данных в модуле передачи данных для повышения использования пропускной способности ядра, а также оптимизацию потока команд в модуле шифрования алгоритма для формирования эффективной конвейерной параллельной архитектуры. Дополнительное повышение производительности достигается за счёт векторизации ядра и репликации вычислительных блоков.

111.801 Гбит/с

Пиковая пропускная способность на Intel Stratix 10 GX2800

372x

Прирост производительности по сравнению с CPU Intel Core i7-9700

644x

Прирост энергоэффективности по сравнению с CPU

20% & 9x

Прирост производительности и эффективности по сравнению с GPU NVIDIA GTX 1080 Ti

2. Принципы алгоритма 3DES

Алгоритм Triple Data Encryption Standard (3DES) построен на основе алгоритма DES, повышая безопасность за счёт трёх последовательных операций DES. В то время как DES использует 56-битный ключ и 16 итераций, 3DES использует 168-битный ключ и 48 итераций.

2.1 Основы алгоритма DES

Алгоритм DES работает с 64-битными блоками открытого текста. Его основная функция, сеть Фейстеля, может быть представлена как: $L_i = R_{i-1}$ $R_i = L_{i-1} \oplus F(R_{i-1}, K_i)$ Где $L_i$ и $R_i$ — левая и правая половины блока данных в раунде $i$, $K_i$ — раундовый ключ, а $F$ — раундовая функция, включающая расширение, подстановку S-блока и перестановку.

2.2 Структура алгоритма 3DES

3DES применяет DES три раза с двумя или тремя независимыми ключами (режим EDE): $Шифротекст = E_{K3}(D_{K2}(E_{K1}(Открытый\ текст)))$. Эта структура значительно повышает устойчивость к атакам полного перебора по сравнению с одиночным DES.

3. Проектирование акселератора на ПЛИС на основе OpenCL

Акселератор использует гетерогенную вычислительную модель OpenCL, позволяя программам-ядру компилироваться и выполняться на устройствах ПЛИС. Этот подход устраняет разрыв между гибкостью программного обеспечения и производительностью аппаратного обеспечения.

3.1 Архитектура системы

Архитектура состоит из хоста (ЦПУ), управляющего потоком управления и передачей данных, и устройства (ПЛИС), выполняющего ресурсоёмкое ядро 3DES. Ядро ПЛИС спроектировано с глубоко конвейерной структурой для параллельной обработки нескольких блоков данных.

3.2 Ключевые стратегии оптимизации

  • Корректировка хранения данных: Оптимизация шаблонов доступа к памяти для снижения задержки и улучшения использования пропускной способности.
  • Улучшение разрядности данных: Обработка более широких слов данных за цикл для увеличения пропускной способности.
  • Оптимизация потока команд: Переупорядочивание и упрощение операций для максимизации эффективности конвейера и минимизации простоев.
  • Векторизация ядра: Использование операций с одной инструкцией и множеством данных (SIMD) в структуре ПЛИС.
  • Репликация вычислительных блоков: Создание нескольких параллельных вычислительных блоков для обработки независимых потоков данных.

3.3 Конвейерная параллельная структура

Основой конструкции является 48-ступенчатый конвейер, соответствующий 48 итерациям 3DES. Каждая ступень тщательно сбалансирована для обеспечения высокой тактовой частоты и полной загрузки конвейера, скрывая задержку отдельных операций.

4. Детали технической реализации

4.1 Модуль передачи данных

Этот модуль обрабатывает перемещение данных между памятью хоста и глобальной памятью ПЛИС. Используются такие стратегии, как пакетные передачи и выровненный доступ к памяти, для достижения близкой к пиковой теоретической пропускной способности. Использование более широких интерфейсов AXI (например, 512-битных) является ключевым фактором в повышении эффективной пропускной способности.

4.2 Модуль шифрования алгоритма

Этот модуль реализует раунды Фейстеля 3DES. S-блоки, которые традиционно реализуются как таблицы поиска (LUT), оптимизированы для логических элементов ПЛИС. Операции перестановки и расширения встроены в тракт данных.

4.3 Математические формулировки

Общую пропускную способность $T$ акселератора можно смоделировать как: $T = f_{clk} \times W \times N_{CU} \times \eta$ Где $f_{clk}$ — рабочая частота, $W$ — обрабатываемая разрядность за цикл, $N_{CU}$ — количество вычислительных блоков, а $\eta$ — коэффициент эффективности конвейера (близок к 1 для хорошо сбалансированной конструкции).

5. Результаты экспериментов и анализ производительности

5.1 Метрики производительности

Акселератор был реализован на ПЛИС Intel Stratix 10 GX2800. Основные результаты:

  • Пропускная способность: 111.801 Гбит/с
  • Задержка: [Значение задержки будет выведено из глубины конвейера и тактовой частоты].
  • Потребляемая мощность: [Потребляемая мощность ПЛИС, как правило, значительно ниже, чем у GPU с эквивалентной производительностью].

5.2 Сравнительный анализ

По сравнению с ЦПУ (Intel Core i7-9700): Акселератор на ПЛИС демонстрирует 372-кратное улучшение производительности и ошеломляющее 644-кратное улучшение энергоэффективности (Производительность/Ватт). Это подчёркивает превосходство ПЛИС для фиксированных, ресурсоёмких ядер.

По сравнению с ГПУ (NVIDIA GeForce GTX 1080 Ti): ПЛИС достигает на 20% более высокой пропускной способности и в 9 раз лучшей энергоэффективности. В то время как ГПУ превосходно справляются с массовым параллелизмом на регулярных данных, ПЛИС могут достичь более высокой эффективности на битовых операциях и пользовательских конвейерах, как видно в криптографических алгоритмах.

5.3 Использование ресурсов

Конструкция эффективно использует ресурсы ПЛИС. Ключевые метрики включают:

  • Использование ALM (Адаптивных логических модулей): [Процент]
  • Использование блоков DSP: [Вероятно, низкое для 3DES]
  • Использование блоков памяти (M20K): [Для S-блоков и буферов]
Использование ресурсов остаётся в пределах возможностей устройства Stratix 10, что позволяет масштабировать или интегрировать другие функции.

6. Фреймворк анализа и пример использования

Фреймворк для оценки аппаратных крипто-акселераторов:

  1. Пригодность алгоритма: Обладает ли алгоритм внутренним параллелизмом (например, режимы блочного шифра, такие как ECB, CTR)? 3DES в режиме ECB обладает высокой степенью распараллеливания.
  2. Выбор платформы: Сравнение ASIC (максимальная производительность/мощность, отсутствие гибкости), ПЛИС (высокая производительность/мощность, некоторая гибкость), ГПУ (высокая пропускная способность на больших партиях, высокое энергопотребление) и ЦПУ (гибкость, более низкая производительность).
  3. Метрики реализации: Оценка пропускной способности (Гбит/с), задержки (циклы), мощности (Вт), энергии на бит (Дж/бит) и использования ресурсов (Логика, Память, DSP).
  4. Трудозатраты на разработку: Учёт времени на решение с использованием HDL (долго) vs. HLS/OpenCL (быстрее).

Пример использования — Шлюз шифрования облачных данных: Представьте безопасную службу облачного хранения, которая шифрует все хранимые данные с помощью 3DES. Решение только на программном обеспечении на сервере Xeon может стать узким местом. Переложив шифрование 3DES на карту акселератора ПЛИС (например, Intel PAC со Stratix 10), служба может достичь более высокой общей пропускной способности, снизить задержку для отдельных запросов благодаря аппаратным конвейерам, а также уменьшить энергопотребление сервера и нагрузку на ЦПУ, освободив ресурсы для других задач.

7. Будущие приложения и направления развития

  • Постквантовая криптография (PQC): Методология OpenCL-to-FPGA крайне актуальна для ускорения новых, ресурсоёмких алгоритмов PQC (например, на основе решёток, кодов), которые в настоящее время стандартизируются NIST.
  • Встроенное сетевое шифрование: Интеграция таких акселераторов в SmartNIC или сетевые коммутаторы для шифрования на линейной скорости 100 Гбит/с и выше.
  • Многоалгоритмические гибкие акселераторы: Разработка динамически переконфигурируемых ядер ПЛИС, способных переключаться между алгоритмами AES, 3DES, ChaCha20 и PQC в зависимости от требований рабочей нагрузки.
  • Повышенная безопасность: Реализация версий алгоритмов, устойчивых к атакам по побочным каналам (например, с маскированием или скрытием), непосредственно в аппаратном обеспечении.
  • Зрелость инструментария: Постоянное улучшение компиляторов OpenCL для ПЛИС (таких как Intel oneAPI) будет и далее сокращать разрыв в производительности между HLS и рукописным HDL, делая этот подход доступным для большего числа разработчиков.

8. Ссылки

  1. K. I. Wong, M. S. B. A. Halim, et al. "A Survey on FPGA-Based Cryptosystems." IEEE Access, 2019.
  2. National Institute of Standards and Technology (NIST). "Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher." SP 800-67 Rev. 2, 2017.
  3. Khronos Group. "The OpenCL Specification." Version 3.0, 2020. [Online]. Available: https://www.khronos.org/registry/OpenCL/
  4. J. Zhu, V. K. Prasanna. "High-Performance and Energy-Efficient Implementation of MD5 on FPGAs using OpenCL." FPL, 2017.
  5. Intel Corporation. "Intel FPGA SDK for OpenCL." [Online]. Available: Intel FPGA SDK for OpenCL
  6. Xilinx. "Vitis Unified Software Platform." [Online]. Available: Xilinx Vitis Platform
  7. W. Jiang, G. R. G. et al. "A Comparative Study of High-Level Synthesis and OpenCL for FPGA-Based Accelerators." TRETS, 2021.
  8. J. Zhu, V. K. Prasanna. "High Performance and Energy Efficient Implementation of AES on FPGAs using OpenCL." FCCM, 2018.

9. Оригинальный анализ и экспертное заключение

Ключевая идея

Эта статья не просто о том, как сделать 3DES быстрым; это стратегический план по возвращению эффективности в эпоху после закона Мура. В то время как индустрия была загипнотизирована сырыми FLOPs ГПУ для ускорения, авторы напоминают: для конкретных, чётко определённых ядер, таких как криптографические примитивы, детерминированная, битовая программируемость ПЛИС может превзойти универсальные, энергоёмкие архитектуры ЦПУ и ГПУ. 644-кратный выигрыш в энергоэффективности по сравнению с современным ЦПУ — это не постепенное улучшение, а смена парадигмы для операторов центров обработки данных, где энергопотребление является конечным центром затрат. Эта работа соответствует общей тенденции, наблюдаемой у гиперскейлеров, таких как Microsoft и Amazon, которые массово развертывают ПЛИС (а теперь и ASIC) для таких задач, как виртуализация сетей и транскодирование видео, отдавая приоритет производительности на ватт над пиковой теоретической пропускной способностью.

Логическая последовательность

Логика авторов убедительна и методична. Они правильно определяют двойную проблему: программное обеспечение слишком медленное и неэффективное, в то время как традиционная разработка на ПЛИС с использованием HDL слишком медленная и негибкая. Их решение, использующее OpenCL в качестве инструмента высокоуровневого синтеза (HLS), элегантно атакует оба фронта. Стратегии оптимизации следуют чёткой иерархии: во-первых, обеспечить эффективный поток данных к вычислительным блокам (хранение данных, разрядность). Во-вторых, обеспечить максимальную загрузку самих вычислительных блоков (оптимизация инструкций, конвейеризация). Наконец, масштабирование (векторизация, репликация). Это зеркально отражает процесс оптимизации ядер ГПУ, но применяется к структуре, где «ядра» созданы на заказ для конкретной задачи. Сравнение с GTX 1080 Ti особенно показательно — оно демонстрирует, что даже против высокопараллельного процессора пользовательский тракт данных на ПЛИС может выиграть как по производительности, так и, решительно, по эффективности.

Сильные стороны и недостатки

Сильные стороны: Результаты производительности и эффективности исключительны и тщательно количественно оценены. Использование OpenCL обеспечивает критически важную доступность для разработчиков и защиту от устаревания, как отмечено в спецификациях Khronos OpenCL, которые обеспечивают переносимость между вендорами. Фокус на 3DES, устаревшем, но всё ещё широко используемом стандарте (например, в финансовых системах), удовлетворяет реальную потребность в модернизации, а не является чисто академическим упражнением.

Недостатки и критические пробелы: Ахиллесова пята статьи — её узкая направленность. 3DES выводится из употребления в пользу AES-256 для новых систем согласно рекомендациям NIST. Работа была бы гораздо более значимой, если бы продемонстрировала гибкость подхода OpenCL, также реализовав AES или постквантового кандидата, показав ценность фреймворка за пределами одного алгоритма. Более того, в анализе отсутствует обсуждение уязвимости к побочным каналам. Аппаратная реализация, особенно нацеленная на высокую пропускную способность, может быть подвержена атакам по времени или анализу мощности. Игнорирование этого аспекта безопасности является серьёзным упущением для криптографической работы. Исследования таких учёных, как Mangard и др., по устойчивости аппаратного обеспечения к побочным каналам — это важный контекст, отсутствующий здесь.

Практические выводы

Для Продукт-менеджеров в облачных или компаниях по производству защищённых устройств: Это исследование является доказательством концепции для развертывания карт акселераторов на базе ПЛИС для разгрузки криптографических рабочих нагрузок (завершение TLS, шифрование хранилища). Только экономия энергии оправдывает пилотный проект. Для Архитекторов безопасности: Давите на своих поставщиков. Требуйте, чтобы аппаратные акселераторы, будь то ПЛИС или ASIC, включали устойчивые к побочным каналам конструкции в качестве стандартной функции, а не запоздалой мысли. Для Исследователей и разработчиков: Не останавливайтесь на 3DES. Используйте эту методологию OpenCL в качестве основы. Следующий критический шаг — создание библиотеки оптимизированных, устойчивых к побочным каналам ядер OpenCL с открытым исходным кодом для набора алгоритмов (AES-GCM, ChaCha20-Poly1305, SHA-3, Kyber, Dilithium). Сообществу нужны переносимые, эффективные и безопасные строительные блоки, а не разовые демонстрации. Зрелость инструментария, подчёркнутая Intel oneAPI и Xilinx Vitis, наконец делает это возможным. Гонка идёт не только за скоростью; она идёт за безопасное, эффективное и адаптируемое ускорение.