1. مقدمه و مرور کلی

در حوزه‌های ارز دیجیتال، بلاک‌چین و رمزنگاری داده‌های ابری، روش‌های سنتی رمزنگاری و رمزگشایی مبتنی بر نرم‌افزار با چالش‌های قابل توجهی از جمله سرعت محاسباتی پایین، مصرف بالای منابع میزبان و نیازمندی‌های توان قابل توجه مواجه هستند. در حالی که پیاده‌سازی‌های مبتنی بر آرایه گیت‌های قابل برنامه‌ریزی میدانی (FPGA) با استفاده از Verilog/VHDL شتاب سخت‌افزاری ارائه می‌دهند، از چرخه‌های توسعه طولانی و دشواری در نگهداری و ارتقاء رنج می‌برند. این مقاله با ارائه یک طراحی جدید شتاب‌دهنده FPGA برای الگوریتم 3DES با استفاده از چارچوب OpenCL، به رفع این محدودیت‌ها می‌پردازد.

طراحی پیشنهادی یک ساختار خط لوله موازی 48-تکراره را پیاده‌سازی می‌کند. راهبردهای بهینه‌سازی شامل تنظیم ذخیره‌سازی داده و بهبود پهنای بیت داده در ماژول انتقال داده برای افزایش بهره‌وری پهنای باند هسته، همراه با بهینه‌سازی جریان دستورالعمل در ماژول رمزنگاری الگوریتم برای تشکیل یک معماری خط لوله موازی کارآمد است. دستاوردهای عملکردی اضافی از طریق برداری‌سازی هسته و تکثیر واحد محاسباتی حاصل می‌شود.

111.801 گیگابیت بر ثانیه

حداکثر توان عملیاتی روی Intel Stratix 10 GX2800

372 برابر

افزایش عملکرد نسبت به پردازنده Intel Core i7-9700

644 برابر

افزایش بهره‌وری انرژی نسبت به پردازنده

20% و 9 برابر

افزایش عملکرد و بهره‌وری نسبت به پردازنده گرافیکی NVIDIA GTX 1080 Ti

2. اصول الگوریتم 3DES

الگوریتم استاندارد رمزنگاری داده سه‌گانه (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) اعمال می‌کند: $Ciphertext = E_{K3}(D_{K2}(E_{K1}(Plaintext)))$. این ساختار مقاومت در برابر حملات جستجوی فراگیر را در مقایسه با DES تک‌گانه به میزان قابل توجهی افزایش می‌دهد.

3. طراحی شتاب‌دهنده FPGA مبتنی بر OpenCL

این شتاب‌دهنده از مدل محاسبات ناهمگن OpenCL بهره می‌برد و اجازه می‌دهد برنامه‌های هسته روی دستگاه‌های FPGA کامپایل و اجرا شوند. این رویکرد شکاف بین انعطاف‌پذیری نرم‌افزار و عملکرد سخت‌افزار را پر می‌کند.

3.1 معماری سیستم

معماری شامل یک میزبان (CPU) برای مدیریت جریان کنترل و انتقال داده، و یک دستگاه (FPGA) برای اجرای هسته محاسباتی سنگین 3DES است. هسته FPGA با ساختاری عمیقاً خط لوله‌ای طراحی شده تا چندین بلوک داده را به طور همزمان پردازش کند.

3.2 راهبردهای کلیدی بهینه‌سازی

  • تنظیم ذخیره‌سازی داده: بهینه‌سازی الگوهای دسترسی به حافظه برای کاهش تأخیر و بهبود بهره‌وری پهنای باند.
  • بهبود پهنای بیت داده: پردازش کلمات داده عریض‌تر در هر چرخه برای افزایش توان عملیاتی.
  • بهینه‌سازی جریان دستورالعمل: بازچینش و ساده‌سازی عملیات برای حداکثر کردن کارایی خط لوله و به حداقل رساندن توقف‌ها.
  • برداری‌سازی هسته: استفاده از عملیات تک دستورالعمل، چندین داده (SIMD) درون ساختار FPGA.
  • تکثیر واحد محاسباتی: نمونه‌سازی چندین واحد محاسباتی موازی برای پردازش جریان‌های داده مستقل.

3.3 ساختار خط لوله موازی

هسته طراحی یک خط لوله 48 مرحله‌ای است که با 48 تکرار 3DES مطابقت دارد. هر مرحله به دقت متعادل شده تا فرکانس کلاک بالا و استفاده کامل از خط لوله تضمین شود و تأخیر عملیات‌های فردی پنهان بماند.

4. جزئیات فنی پیاده‌سازی

4.1 ماژول انتقال داده

این ماژول جابجایی داده بین حافظه میزبان و حافظه سراسری FPGA را مدیریت می‌کند. راهبردهایی مانند انتقال‌های انفجاری و دسترسی‌های حافظه تراز شده برای دستیابی به پهنای باند نظری نزدیک به حداکثر به کار گرفته می‌شوند. استفاده از رابط‌های AXI عریض‌تر (مثلاً 512 بیتی) یک عامل کلیدی در بهبود پهنای باند مؤثر است.

4.2 ماژول رمزنگاری الگوریتم

این ماژول دورهای فیستل 3DES را پیاده‌سازی می‌کند. جعبه‌های S که به طور سنتی به عنوان جدول جستجو (LUT) پیاده‌سازی می‌شوند، برای عناصر منطقی FPGA بهینه شده‌اند. عملیات‌های جایگشت و گسترش به صورت سخت‌افزاری در مسیر داده تعبیه شده‌اند.

4.3 فرمول‌بندی‌های ریاضی

توان عملیاتی کلی $T$ شتاب‌دهنده را می‌توان به این صورت مدل کرد: $T = f_{clk} \times W \times N_{CU} \times \eta$ که در آن $f_{clk}$ فرکانس کاری، $W$ پهنای بیت پردازش شده در هر چرخه، $N_{CU}$ تعداد واحدهای محاسباتی و $\eta$ ضریب کارایی خط لوله است (برای یک طراحی متعادل نزدیک به 1).

5. نتایج آزمایشی و تحلیل عملکرد

5.1 معیارهای عملکرد

شتاب‌دهنده روی یک FPGA مدل Intel Stratix 10 GX2800 پیاده‌سازی شد. نتایج اصلی عبارتند از:

  • توان عملیاتی: 111.801 گیگابیت بر ثانیه
  • تأخیر: [مقدار تأخیر از عمق خط لوله و فرکانس کلاک استخراج می‌شود].
  • مصرف توان: [مصرف توان FPGA معمولاً به طور قابل توجهی کمتر از GPUهای با عملکرد معادل است].

5.2 تحلیل مقایسه‌ای

در مقابل CPU (Intel Core i7-9700): شتاب‌دهنده FPGA بهبود عملکرد 372 برابری و بهبود خیره‌کننده 644 برابری در بهره‌وری انرژی (عملکرد بر وات) را نشان می‌دهد. این موضوع برتری FPGA را برای هسته‌های ثابت و محاسباتی سنگین برجسته می‌کند.

در مقابل GPU (NVIDIA GeForce GTX 1080 Ti): FPGA به توان عملیاتی 20% بالاتر و بهره‌وری انرژی 9 برابر بهتر دست می‌یابد. در حالی که GPUها در موازی‌سازی انبوه روی داده‌های منظم عالی عمل می‌کنند، FPGAها می‌توانند در عملیات‌های سطح بیتی و خطوط لوله سفارشی، همانطور که در الگوریتم‌های رمزنگاری مشاهده می‌شود، بهره‌وری بالاتری کسب کنند.

5.3 استفاده از منابع

طراحی به طور کارآمد از منابع FPGA استفاده می‌کند. معیارهای کلیدی شامل:

  • مصرف ALM (ماژول منطقی تطبیقی): [درصد]
  • مصرف بلوک‌های DSP: [احتمالاً برای 3DES کم است]
  • مصرف بلوک حافظه (M20K): [برای جعبه‌های S و بافرها]
استفاده از منابع به خوبی در ظرفیت دستگاه Stratix 10 باقی می‌ماند و امکان مقیاس‌پذیری یا ادغام با سایر عملکردها را فراهم می‌کند.

6. چارچوب تحلیل و مطالعه موردی

چارچوب ارزیابی شتاب‌دهنده‌های رمزنگاری سخت‌افزاری:

  1. مناسب بودن الگوریتم: آیا الگوریتم دارای موازی‌سازی ذاتی است (مثلاً حالت‌های رمز بلوکی مانند ECB، CTR)؟ 3DES در حالت ECB به شدت قابل موازی‌سازی است.
  2. انتخاب پلتفرم: مقایسه ASIC (بالاترین عملکرد/توان، بدون انعطاف)، FPGA (عملکرد/توان بالا، مقداری انعطاف)، GPU (توان عملیاتی بالا روی دسته‌های بزرگ، توان بالا) و CPU (انعطاف‌پذیری، عملکرد پایین‌تر).
  3. معیارهای پیاده‌سازی: ارزیابی توان عملیاتی (گیگابیت بر ثانیه)، تأخیر (چرخه)، توان (وات)، انرژی بر بیت (ژول بر بیت) و استفاده از منابع (منطق، حافظه، DSP).
  4. تلاش توسعه: در نظر گرفتن زمان تا راه‌حل با استفاده از HDL (طولانی) در مقابل HLS/OpenCL (کوتاه‌تر).

مطالعه موردی - دروازه رمزنگاری داده ابری: یک سرویس ذخیره‌سازی ابری امن را تصور کنید که تمام داده‌های ذخیره شده را با استفاده از 3DES رمزنگاری می‌کند. یک راه‌حل صرفاً نرم‌افزاری روی یک سرور Xeon ممکن است به یک گلوگاه تبدیل شود. با انتقال بار رمزنگاری 3DES به یک کارت شتاب‌دهنده FPGA (مانند یک Intel PAC با Stratix 10)، سرویس می‌تواند به توان عملیاتی کلی بالاتر، تأخیر کمتر برای درخواست‌های فردی به دلیل خطوط لوله سخت‌افزاری دست یابد و مصرف توان سرور و بار CPU را کاهش دهد و منابع را برای سایر وظایف آزاد کند.

7. کاربردهای آتی و جهت‌های توسعه

  • رمزنگاری پسا-کوانتومی (PQC): روش‌شناسی OpenCL به FPGA برای شتاب‌دهی به الگوریتم‌های جدید و محاسباتی سنگین PQC (مانند مبتنی بر شبکه، مبتنی بر کد) که در حال حاضر توسط NIST استانداردسازی می‌شوند، بسیار مرتبط است.
  • رمزنگاری درون خطی شبکه: ادغام چنین شتاب‌دهنده‌هایی در SmartNICها یا سوئیچ‌های شبکه برای رمزنگاری با نرخ خط در 100 گیگابیت بر ثانیه و فراتر از آن.
  • شتاب‌دهنده‌های چابک چند-الگوریتمی: توسعه هسته‌های FPGA قابل پیکربندی مجدد پویا که بتوانند بر اساس نیازهای بار کاری بین AES، 3DES، ChaCha20 و الگوریتم‌های PQC جابجا شوند.
  • امنیت تقویت شده: پیاده‌سازی نسخه‌های مقاوم در برابر حملات کانال جانبی (مانند با پوشش یا پنهان‌سازی) از الگوریتم‌ها مستقیماً در سخت‌افزار.
  • بلوغ زنجیره ابزار: بهبود مستمر کامپایلرهای OpenCL برای FPGAها (مانند 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 نیست؛ بلکه یک نقشه راه استراتژیک برای بازپس‌گیری کارایی در عصر پسا-قانون مور است. در حالی که صنعت مجذوب فلاپ‌های خام GPU برای شتاب‌دهی شده است، نویسندگان یادآوری تندی ارائه می‌دهند: برای هسته‌های خاص و به‌خوبی تعریف شده مانند توابع اولیه رمزنگاری، قابلیت برنامه‌ریزی سطح بیتی و قطعی FPGAها می‌تواند معماری‌های همه‌منظوره و پر مصرف CPUها و GPUها را پشت سر بگذارد. افزایش 644 برابری بهره‌وری انرژی نسبت به یک CPU مدرن، یک بهبود تدریجی نیست—بلکه یک تغییر پارادایم برای اپراتورهای مراکز داده است که در آن توان، مرکز هزینه نهایی است. این کار با روند گسترده‌تری که در ابرمقیاس‌هایی مانند مایکروسافت و آمازون مشاهده می‌شود همسو است، که FPGAها (و اکنون ASICها) را در مقیاس برای وظایفی مانند مجازی‌سازی شبکه و ترانس‌کدینگ ویدیو مستقر می‌کنند و عملکرد بر وات را بر حداکثر توان عملیاتی نظری اولویت می‌دهند.

جریان منطقی

منطق نویسندگان قانع‌کننده و روشمند است. آنها به درستی مشکل دوگانه را شناسایی می‌کنند: نرم‌افزار بسیار کند و ناکارآمد است، در حالی که توسعه سنتی FPGA مبتنی بر HDL بسیار کند و سفت و سخت است. راه‌حل آنها، استفاده از OpenCL به عنوان یک ابزار سنتز سطح بالا (HLS)، به طور ظریفی به هر دو جبهه حمله می‌کند. راهبردهای بهینه‌سازی از یک سلسله‌مراتب واضح پیروی می‌کنند: اول، اطمینان حاصل کنید که داده می‌تواند به طور کارآمد به واحدهای محاسباتی جریان یابد (ذخیره‌سازی داده، پهنای بیت). دوم، اطمینان حاصل کنید که خود واحدهای محاسباتی حداکثر استفاده می‌شوند (بهینه‌سازی دستورالعمل، خط لوله). در نهایت، مقیاس‌گذاری بیرونی (برداری‌سازی، تکثیر). این فرآیند بهینه‌سازی برای هسته‌های GPU را منعکس می‌کند اما روی ساختاری اعمال می‌شود که در آن «هسته‌ها» دقیقاً برای همان وظیفه سفارشی ساخته شده‌اند. مقایسه با GTX 1080 Ti به ویژه گویاست—نشان می‌دهد که حتی در برابر یک پردازنده به شدت موازی، یک مسیر داده سفارشی روی یک FPGA می‌تواند هم در عملکرد و هم، به طور قاطعانه، در کارایی برنده شود.

نقاط قوت و ضعف

نقاط قوت: نتایج عملکرد و کارایی استثنایی و به طور دقیق کمّی شده‌اند. استفاده از OpenCL دسترسی‌پذیری حیاتی برای توسعه‌دهنده و آینده‌نگری را فراهم می‌کند، همانطور که در مشخصات OpenCL Khronos که قابلیت حمل بین فروشندگان را امکان‌پذیر می‌کند، ذکر شده است. تمرکز بر 3DES، یک استاندارد قدیمی اما هنوز به طور گسترده مستقر شده (مثلاً در سیستم‌های مالی)، به یک نیاز واقعی برای نوسازی می‌پردازد نه یک تمرین صرفاً آکادمیک.

نقاط ضعف و شکاف‌های انتقادی: نقطه ضعف اصلی مقاله، محدوده باریک آن است. 3DES در حال حذف تدریجی به نفع AES-256 برای سیستم‌های جدید است، طبق دستورالعمل‌های NIST. این کار اگر چابکی رویکرد OpenCL را با پیاده‌سازی AES یا یک نامزد پسا-کوانتومی نیز نشان می‌داد، تأثیر بسیار بیشتری داشت و ارزش چارچوب را فراتر از یک الگوریتم نشان می‌داد. علاوه بر این، تحلیل فاقد بحث درباره آسیب‌پذیری کانال جانبی است. یک پیاده‌سازی سخت‌افزاری، به ویژه پیاده‌سازی‌ای که هدف آن توان عملیاتی بالا است، می‌تواند در برابر حملات تحلیل زمان یا توان آسیب‌پذیر باشد. نادیده گرفتن این بعد امنیتی برای یک مقاله رمزنگاری یک غفلت قابل توجه است. کار محققانی مانند Mangard و همکاران در مورد مقاومت کانال جانبی سخت‌افزاری، زمینه ضروری است که در اینجا مفقود است.

بینش‌های قابل اجرا

برای مدیران محصول در شرکت‌های ابری یا سازندگان تجهیزات امنیتی: این تحقیق یک اثبات مفهوم برای استقرار کارت‌های شتاب‌دهنده مبتنی بر FPGA برای انتقال بار کاری رمزنگاری (پایان‌دهی TLS، رمزنگاری ذخیره‌سازی) است. تنها صرفه‌جویی در انرژی یک پروژه پایلوت را توجیه می‌کند. برای معماران امنیت: به فروشندگان خود فشار بیاورید. تقاضا کنید که شتاب‌دهنده‌های سخت‌افزاری، چه FPGA و چه ASIC، طراحی‌های مقاوم در برابر کانال جانبی را به عنوان یک ویژگی استاندارد، نه یک فکر بعدی، شامل شوند. برای محققان و توسعه‌دهندگان: در 3DES متوقف نشوید. از این روش‌شناسی OpenCL به عنوان یک پایه استفاده کنید. گام بحرانی بعدی ساخت یک کتابخانه از هسته‌های OpenCL بهینه‌شده، مقاوم در برابر کانال جانبی و متن‌باز برای مجموعه‌ای از الگوریتم‌ها (AES-GCM، ChaCha20-Poly1305، SHA-3، Kyber، Dilithium) است. جامعه به بلوک‌های سازنده قابل حمل، کارآمد و امن نیاز دارد، نه فقط نمایش‌های تک‌باره. بلوغ زنجیره ابزار که توسط oneAPI اینتل و Vitis زایلینکس برجسته شده است، سرانجام این را امکان‌پذیر می‌سازد. رقابت فقط برای سرعت نیست؛ برای شتاب‌دهی ایمن، کارآمد و سازگار است.