Акселератор 3DES на базе FPGA с использованием OpenCL: проектирование и анализ производительности
Анализ высокопроизводительного FPGA-акселератора для шифрования 3DES на OpenCL с конвейерной параллельной архитектурой и стратегиями оптимизации для высокой пропускной способности и энергоэффективности.
Главная »
Документация »
Акселератор 3DES на базе FPGA с использованием OpenCL: проектирование и анализ производительности
1. Введение и обзор
В областях цифровых валют, блокчейна и облачного шифрования данных критически важна потребность в высокоскоростной и энергоэффективной криптографической обработке. Традиционные программные реализации алгоритмов, таких как 3DES, страдают от значительных узких мест в производительности, высокого потребления ресурсов ЦП и повышенного энергопотребления. В то время как программируемые пользователем вентильные матрицы (FPGA) предлагают решение аппаратного ускорения, разработка с использованием низкоуровневых языков описания аппаратуры (HDL), таких как Verilog/VHDL, является трудоемкой и сложной.
В данной статье представлена новая конструкция акселератора алгоритма 3DES на FPGA с использованием фреймворка Open Computing Language (OpenCL). Предлагаемая архитектура использует высокоуровневый синтез (HLS) для преодоления разрыва в производительности разработки, реализуя 48-итерационную конвейерную параллельную структуру. Благодаря стратегическим оптимизациям — включая настройку хранения данных, увеличение разрядности, оптимизацию потока инструкций, векторизацию ядра и репликацию вычислительных блоков — конструкция демонстрирует значительное улучшение производительности и энергоэффективности по сравнению с платформами на базе ЦП и ГП.
111.8 Гбит/с
Пиковая пропускная способность на Intel Stratix 10
372x
Производительность относительно Intel Core i7-9700
9x
Энергоэффективность относительно NVIDIA GTX 1080 Ti
2. Технические основы
2.1 Алгоритм 3DES
Тройной стандарт шифрования данных (3DES) — это симметричный блочный шифр, основанный на более старом алгоритме DES. Для повышения безопасности от атак полного перебора 3DES применяет шифр DES трижды к каждому блоку данных. Стандарт определяет три варианта использования ключей, причем самый безопасный использует три независимых ключа (Вариант 1): $C = E_{K3}(D_{K2}(E_{K1}(P)))$, где $E$ — шифрование, $D$ — расшифрование, $K1, K2, K3$ — ключи, $P$ — открытый текст, а $C$ — шифротекст. Это приводит к эффективной длине ключа в 168 бит и 48 раундам вычислений.
2.2 OpenCL для программирования FPGA
OpenCL — это открытый, бесплатный стандарт для параллельного программирования на гетерогенных платформах (ЦП, ГП, FPGA, ЦОС). Для FPGA такие инструменты, как Intel FPGA SDK for OpenCL, выступают в роли компилятора высокоуровневого синтеза (HLS), преобразующего код ядра, написанный на языке, подобном C, в эффективные аппаратные схемы. Эта абстракция значительно сокращает время и сложность разработки по сравнению с проектированием на уровне RTL, делая FPGA-ускорение доступным для разработчиков программного обеспечения и предметных экспертов.
3. Архитектура и проектирование акселератора
3.1 Конвейерная параллельная структура
Основой акселератора является глубокая конвейерная архитектура, которая разворачивает 48 раундов алгоритма 3DES. Такая конструкция позволяет одновременно обрабатывать несколько блоков данных на разных стадиях конвейера шифрования, максимизируя использование аппаратных ресурсов и пропускную способность. Конвейер тщательно сбалансирован, чтобы избежать простоев и обеспечить непрерывный поток данных.
3.2 Оптимизация передачи данных
Для преодоления узкого места пропускной способности памяти, характерного для проектов акселераторов, применяются две ключевые стратегии:
Настройка хранения данных: Оптимизация размещения данных в памяти хоста и устройства для обеспечения эффективных пакетных передач и минимизации задержек доступа.
Увеличение разрядности данных: Увеличение ширины путей передачи данных между памятью и ядром для соответствия возможностям внутренней шины FPGA, тем самым повышая эффективное использование пропускной способности.
3.3 Стратегии оптимизации ядра
Ядро OpenCL оптимизировано с использованием нескольких методов:
Оптимизация потока инструкций: Переупорядочивание и упрощение операций для создания эффективного расписания конвейера, уменьшение зависимостей и простоев.
Векторизация ядра: Использование операций с одной инструкцией и множеством данных (SIMD) для параллельной обработки нескольких элементов данных в рамках одного экземпляра ядра.
Репликация вычислительных блоков: Создание нескольких копий оптимизированного ядра (Вычислительных блоков) на кристалле FPGA для параллельной обработки независимых потоков данных, масштабируя производительность в зависимости от доступных ресурсов.
4. Результаты экспериментов и производительность
Акселератор был реализован и протестирован на Intel Stratix 10 GX2800 FPGA. Ключевые показатели производительности следующие:
Пропускная способность: Достигнута пиковая пропускная способность 111.801 Гбит/с.
По сравнению с ЦП (Intel Core i7-9700): Производительность улучшилась в 372 раза, а энергоэффективность стала лучше в 644 раза.
По сравнению с ГП (NVIDIA GeForce GTX 1080 Ti): Превзошел по обоим показателям, обеспечив на 20% более высокую производительность и в 9 раз лучшую энергоэффективность.
Описание диаграммы (подразумеваемое): Столбчатая диаграмма эффективно визуализирует этот сравнительный анализ. На оси X будут перечислены три платформы (Stratix 10 FPGA, Core i7 CPU, GTX 1080 Ti GPU). Можно использовать две оси Y: левую для Пропускной способности (Гбит/с), показывающую один очень высокий столбец для FPGA; правую для Нормированной производительности (CPU=1), показывающую столбец FPGA на уровне 372 и столбец GPU чуть выше 1. Отдельная сгруппированная столбчатая диаграмма может показать Энергоэффективность (Операций/Дж или аналогичный показатель), подчеркивая огромное преимущество FPGA в 644 раза над ЦП и в 9 раз над ГП.
5. Ключевая идея и аналитическая перспектива
Ключевая идея: Эта статья не только о том, как сделать 3DES быстрым на FPGA; это убедительный план по демократизации аппаратного ускорения. Авторы демонстрируют, что стратегически применяя HLS на базе OpenCL, можно достичь производительности, которая не только превосходит универсальные ЦП, но и превосходит высокопроизводительные ГП в целевой области, при этом избегая непомерных инженерных затрат традиционного RTL-проектирования.
Логическая последовательность: Аргументация методична. Она начинается с выявления критических проблем в программном обеспечении (медленно) и традиционной разработке для FPGA (сложно). Путь решения ясен: использовать OpenCL/HLS для производительности разработки, а затем применить последовательность хорошо известных, но критически важных оптимизаций (конвейеризация, векторизация, репликация) для извлечения максимальной аппаратной эффективности. Сравнения производительности с установленными базовыми уровнями ЦП и ГП подтверждают весь подход.
Сильные стороны и недостатки: Сильная сторона неоспорима: заявленное преимущество в 372/644 раза по сравнению с современным ЦП ошеломляет и подчеркивает огромный потенциал специализированных аппаратных решений. Использование OpenCL является важным практическим преимуществом, соответствующим отраслевым тенденциям в сторону доступных гетерогенных вычислений, как видно в таких фреймворках, как TensorFlow для машинного обучения или OneAPI. Однако критическим недостатком является отсутствие сравнительного базового уровня с ручной оптимизацией ядра 3DES на Verilog/VHDL на том же Stratix 10 FPGA. Хотя сравнение с ГП/ЦП отлично подходит для позиционирования на рынке, сообществу HLS необходимо знать "разрыв в эффективности" между HLS и экспертным RTL-проектированием для этой конкретной задачи. Более того, как отмечается в исследованиях Университета Торонто о производительности HLS, абстракция иногда может скрывать низкоуровневое управление, потенциально оставляя часть производительности на столе по сравнению с оптимальной RTL-реализацией.
Практические выводы: Для продуктовых команд сообщение ясно: для высоконагруженных, фиксированных криптографических задач (не только 3DES) FPGA-акселератор на базе OpenCL должен быть серьезным претендентом на этапе оценки архитектуры, особенно там, где энергоэффективность является ключевым ограничением (например, периферийные ЦОД, сетевые устройства). Методология переносима. Главный вывод — это набор методов оптимизации: размещение данных, разрядность, конвейеризация, векторизация, репликация. Это не новые концепции, но их последовательное применение в контексте OpenCL для превосходства над флагманским ГП является убедительным доказательством. Следующий шаг — применить этот же план к алгоритмам постквантовой криптографии, таким как Kyber или Dilithium, которые требуют интенсивных вычислений и являются идеальными кандидатами для такого ускорения.
6. Технические детали и математическая формализация
Процесс шифрования 3DES с тремя независимыми ключами (режим EDE) формально определяется как:
Где функция одного раунда DES $F(R, K)$, применяемая в каждом из 16 раундов каждой операции DES, является центральной для вычислений. Она включает:
Расширение: 32-битная правая половина $R$ расширяется до 48 бит с помощью фиксированной таблицы перестановок $E$.
Смешивание с ключом: Расширенный $R$ складывается по модулю 2 (XOR) с 48-битным раундовым ключом $K$, полученным из основного ключа.
Замена (S-блоки): 48-битный результат делится на восемь 6-битных фрагментов, каждый из которых преобразуется в 4-битный выход с помощью нелинейного блока замены (S-блок). Это основная нелинейная операция: $S(B) = S_i(B)$, где $B$ — 6-битный вход, а $S_i$ — таблица $i$-го S-блока.
Перестановка (P-блок): 32-битный выход из S-блоков переставляется фиксированной функцией $P$.
Выход функции раунда: $F(R, K) = P(S(E(R) \oplus K))$.
Конвейер акселератора эффективно вычисляет эту функцию $F$ 48 раз на блок данных, причем стадии конвейера соответствуют операциям расширения, XOR, поиска в S-блоках и перестановки, все оптимизировано для параллельного выполнения.
7. Структура анализа и пример использования
Структура для оценки акселераторов на базе HLS:
При анализе подобной статьи мы применяем многомерную структуру:
Производительность: Абсолютная пропускная способность (Гбит/с) и задержка. Сравнение с релевантными базовыми уровнями (ЦП, ГП, другие работы на FPGA).
Эффективность: Производительность на ватт (Энергоэффективность). Использование ресурсов (логические элементы, BRAM, DSP-блоки на FPGA).
Производительность разработки: Подразумеваемое сокращение времени разработки за счет использования OpenCL по сравнению с HDL. Переносимость кода между семействами FPGA.
Валидность методологии: Четко ли объяснены и обоснованы стратегии оптимизации? Воспроизводима ли экспериментальная установка (инструменты, версии, тестовые данные)?
Универсальность: Можно ли применить основные архитектурные стратегии (конвейер, векторизация) к другим алгоритмам (например, AES, SHA-3)?
Пример использования: Применение структуры
Применим пункт №5 (Универсальность) к алгоритму AES. Стратегия статьи легко переносима:
Конвейерная параллельная структура: AES-128 имеет 10 раундов. Можно построить 10-стадийный (или более глубокий за счет развертывания) конвейер.
Оптимизация передачи данных: Те же оптимизации разрядности и размера данных применимы для загрузки ядра AES.
Векторизация ядра: Операции AES над 128-битной матрицей состояния высоко параллелизуемы внутри одного блока.
Репликация вычислительных блоков: Можно создать несколько независимых ядер AES.
Основным архитектурным изменением будет замена пути данных функции $F$ DES на преобразование раунда AES (SubBytes, ShiftRows, MixColumns, AddRoundKey). Принципы оптимизации остаются идентичными. Аналогичное исследование ученых из ETH Zurich по ускорению AES на FPGA на базе OpenCL достигло сопоставимых скачков производительности, подтверждая универсальность этого подхода.
8. Будущие применения и направления исследований
Успех этой конструкции открывает несколько перспективных направлений:
Постквантовая криптография (PQC): Идет процесс стандартизации алгоритмов PQC (например, NIST). Алгоритмы, такие как CRYSTALS-Kyber (инкапсуляция ключа) и CRYSTALS-Dilithium (подписи), включают сложную полиномиальную арифметику, которая высоко параллелизуема и требует интенсивных вычислений, что делает их идеальными целями для данного плана FPGA-ускорения.
Ускорение гомоморфного шифрования: Выполнение вычислений над зашифрованными данными требует огромных вычислительных ресурсов. Оптимизированные FPGA-акселераторы могут сделать некоторые гомоморфные схемы практичными для реального использования.
Интегрированные блоки безопасной обработки данных: Объединение этого криптографического акселератора с сетевыми контроллерами (SmartNIC) или контроллерами хранения для обеспечения прозрачного шифрования/расшифрования на скорости линии для данных в покое и в движении внутри центров обработки данных.
Улучшение инструментария: Будущие исследования могут быть сосредоточены на автоматизации представленных здесь стратегий оптимизации. Может ли компилятор OpenCL автоматически определять оптимальную разрядность данных или предлагать репликацию вычислительных блоков на основе анализа ядра и ресурсов целевой FPGA?
Многозадачные гибкие акселераторы: Проектирование переконфигурируемых ядер, способных поддерживать несколько симметричных шифров (3DES, AES, ChaCha20) в зависимости от потребностей рабочей нагрузки, используя возможность частичной реконфигурации современных FPGA.
9. Список литературы
WU J., ZHENG B., NIE Y., CHAI Z. (2021). FPGA Accelerator for 3DES Algorithm Based on OpenCL. Computer Engineering, 47(12), 147-155, 162.
National Institute of Standards and Technology (NIST). (1999). Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher. NIST Special Publication 800-67.
Ismail, A., & Shannon, L. (2019). High-Level Synthesis for FPGA-Based Cryptography: A Survey. In Proceedings of the International Conference on Field-Programmable Technology (FPT).
Zhuo, L., & Prasanna, V. K. (2005). High-Performance Designs for Linear Algebra Operations on Reconfigurable Hardware. IEEE Transactions on Parallel and Distributed Systems.