انتخاب زبان

شتاب‌دهنده FPGA برای الگوریتم 3DES مبتنی بر OpenCL

تحقیق در مورد شتاب‌دهنده FPGA با کارایی بالا برای رمزنگاری 3DES با استفاده از چارچوب OpenCL، دستیابی به توان عملیاتی 111.8 گیگابیت بر ثانیه با 372 برابر بهبود عملکرد نسبت به CPU
computepowercurrency.com | PDF Size: 1.0 MB
امتیاز: 4.5/5
امتیاز شما
شما قبلاً به این سند امتیاز داده اید
جلد سند PDF - شتاب‌دهنده FPGA برای الگوریتم 3DES مبتنی بر OpenCL

فهرست مطالب

111.8 گیگابیت/ثانیه

نرخ توان عملیاتی

372×

عملکرد نسبت به CPU

644×

بازده انرژی نسبت به CPU

20%

عملکرد نسبت به GPU

1. مقدمه

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

این تحقیق یک طراحی نوآورانه شتاب‌دهنده FPGA مبتنی بر OpenCL برای الگوریتم 3DES ارائه می‌دهد که این محدودیت‌ها را از طریق راهبردهای بهینه‌سازی پیچیده از جمله معماری موازی خط لوله، تنظیم ذخیره‌سازی داده، بهبود پهنای بیت، بهینه‌سازی جریان دستورالعمل، برداری کردن هسته و تکثیر واحد محاسباتی برطرف می‌کند.

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

2.1 الگوریتم DES

الگوریتم DES (استاندارد رمزنگاری داده) بر روی بلوک‌های 64 بیتی با استفاده از کلید 56 بیتی از طریق 16 دور عملیات شبکه فیستل عمل می‌کند. عملیات ریاضی اصلی را می‌توان به صورت زیر نشان داد:

$L_i = R_{i-1}$

$R_i = L_{i-1} \oplus f(R_{i-1}, K_i)$

که در آن $L_i$ و $R_i$ به ترتیب نیمه چپ و راست بلوک داده را نشان می‌دهند، $K_i$ کلید دور است و $f$ تابع فیستل است که شامل عملیات گسترش، ترکیب کلید، جایگزینی و جایگشت می‌شود.

2.2 ساختار الگوریتم 3DES

3DES امنیت را با اعمال سه باره DES با دو یا سه کلید مختلف افزایش می‌دهد. فرآیند رمزنگاری به صورت زیر است:

$C = E_{K3}(D_{K2}(E_{K1}(P)))$

که در آن $E$ نشان‌دهنده رمزنگاری، $D$ نشان‌دهنده رمزگشایی، $P$ متن آشکار، $C$ متن رمز شده است و $K1$، $K2$، $K3$ سه کلید 56 بیتی هستند. این ساختار 48 دور رمزنگاری با طول کلید موثر 168 بیتی ارائه می‌دهد.

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

3.1 مرور معماری

شتاب‌دهنده پیشنهادی از یک ساختار موازی خط لوله جامع با 48 تکرار به طور خاص برای الگوریتم 3DES استفاده می‌کند. معماری شامل دو ماژول اصلی است: ماژول انتقال داده و ماژول رمزنگاری الگوریتم که برای حداکثر توان عملیاتی روی FPGA اینتل استراتیکس 10 GX2800 بهینه‌سازی شده‌اند.

3.2 بهینه‌سازی انتقال داده

ماژول انتقال داده دو راهبرد کلیدی را پیاده‌سازی می‌کند:

  • تنظیم ذخیره‌سازی داده: الگوهای دسترسی به حافظه را برای کاهش تأخیر بهینه می‌کند
  • بهبود پهنای بیت داده: پهنای مسیر داده را برای حداکثر بهره‌برداری از پهنای باند افزایش می‌دهد

این بهینه‌سازی‌ها به بیش از 85٪ بهره‌برداری واقعی پهنای باند هسته دست می‌یابند که به طور قابل توجهی بالاتر از پیاده‌سازی‌های متعارف است.

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

ماژول رمزنگاری از بهینه‌سازی جریان دستورالعمل برای ایجاد یک معماری موازی خط لوله عمیق استفاده می‌کند. ویژگی‌های کلیدی شامل موارد زیر است:

  • خط لوله 48 مرحله‌ای برای دورهای 3DES
  • زمان‌بندی کلید موازی
  • پیاده‌سازی‌های بهینه‌شده جعبه‌های S
  • وابستگی‌های داده کمینه شده بین دورها

3.4 راهبردهای بهبود عملکرد

بهبودهای عملکرد اضافی از طریق موارد زیر حاصل می‌شود:

  • برداری کردن هسته: استفاده از عملیات SIMD برای پردازش موازی داده
  • تکثیر واحد محاسباتی: چندین واحد محاسباتی موازی برای افزایش توان عملیاتی
  • بهینه‌سازی دسترسی به حافظه: دسترسی‌های حافظه ادغام شده و استفاده از حافظه محلی

4. نتایج آزمایشی

ارزیابی آزمایشی دستاوردهای عملکردی قابل توجهی را نشان می‌دهد:

پلتفرم توان عملیاتی (گیگابیت/ثانیه) بهبود عملکرد بهبود بازده انرژی
پردازنده Intel Core i7-9700 0.3 1× (خط پایه) 1× (خط پایه)
پردازنده گرافیکی Nvidia GeForce GTX 1080 Ti 93.2 310× 71×
شتاب‌دهنده FPGA پیشنهادی 111.8 372× 644×

پیاده‌سازی FPGA به توان عملیاتی 111.801 گیگابیت بر ثانیه دست می‌یابد در حالی که به طور قابل توجهی انرژی کمتری نسبت به پیاده‌سازی‌های CPU و GPU مصرف می‌کند که بازده انرژی برتر را برای کاربردهای رمزنگاری نشان می‌دهد.

5. تحلیل فنی

تحلیل تخصصی: ارزیابی انتقادی چهار مرحله‌ای

بی‌پرده و صریح

این تحقیق یک بررسی واقعیت بی‌رحم برای پیاده‌سازی‌های رمزنگاری سنتی ارائه می‌دهد. بهبود عملکرد 372 برابری نسبت به پردازنده‌های مدرن فقط افزایشی نیست - این یک اختلال معماری است. نویسندگان اساساً نشان داده‌اند که برای بارهای کاری 3DES، پردازنده‌های همه‌منظوره اساساً ناکارآمد هستند و حتی پردازنده‌های گرافیکی نیز نمی‌توانند با بازده انرژی FPGA برای این کار خاص برابری کنند.

زنجیره منطقی

پیشرفت عملکرد از یک سلسله مراتب بهینه‌سازی واضح پیروی می‌کند: اول، آنها بهره‌برداری از پهنای باند حافظه را از طریق تنظیمات ذخیره‌سازی داده مورد هدف قرار دادند (رسیدگی به مشکل دیوار حافظه). دوم، آنها خط لوله عمیق را برای بهره‌برداری از ساختار 48 دوری 3DES پیاده‌سازی کردند. سوم، آنها برداری کردن و تکثیر واحد محاسباتی را برای حداکثر کردن پردازش موازی اعمال کردند. این رویکرد سیستماتیک بازتاب راهبردهای بهینه‌سازی مشاهده شده در ادبیات محاسبات با کارایی بالا است، به ویژه تحلیل مدل Roofline استفاده شده در پروژه ASPIRE برکلی.

نقاط قوت و محدودیت‌ها

نقاط قوت: بهبود بازده انرژی 644 برابری شگفت‌انگیز است و پیامدهای واقعی برای عملیات مراکز داده دارد. استفاده از OpenCL به جای HDL سنتی این رویکرد را برای مهندسان نرم‌افزار قابل دسترس می‌کند. مقایسه با هر دو CPU و GPU معیارگیری جامعی ارائه می‌دهد.

محدودیت‌ها: مقاله منحصراً بر روی 3DES تمرکز دارد که در بسیاری از کاربردها در حال حذف به نفع AES است. بحث محدودی در مورد مقیاس‌پذیری به الگوریتم‌های دیگر وجود دارد. اینتل استراتیکس 10 GX2800 یک FPGA رده بالا است که مقرون به صرفه بودن آن برای استقرارهای کوچکتر را مورد سوال قرار می‌دهد.

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

برای ارائه‌دهندگان ابری و مؤسسات مالی که هنوز از 3DES استفاده می‌کنند، این تحقیق یک مسیر مهاجرت واضح به سمت شتاب FPGA ارائه می‌دهد. رویکرد OpenCL به طور قابل توجهی مانع ورود را در مقایسه با توسعه سنتی FPGA کاهش می‌دهد. سازمان‌ها باید شتاب رمزنگاری مبتنی بر FPGA را برای پردازش تراکنش‌های با حجم بالا در نظر بگیرند و این معماری را به عنوان یک الگو برای شتاب‌دهی به سایر الگوریتم‌های رمزنگاری متقارن در نظر بگیرند.

تحلیل اصلی (400 کلمه)

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

توان عملیاتی 111.8 گیگابیت بر ثانیه حاصل شده، اثربخشی معماری موازی خط لوله را برای بارهای کاری رمزنگاری نشان می‌دهد. این عملکرد با روندهای مشاهده شده در سایر معماری‌های خاص دامنه، مانند TPU گوگل برای شبکه‌های عصبی یا پردازنده‌های هوش مصنوعی اینتل Habana Labs همسو است. بینش کلیدی در اینجا این است که الگوریتم‌های رمزنگاری، با ساختار منظم و الگوهای اجرای قطعی آنها، به ویژه برای شتاب FPGA مناسب هستند.

در مقایسه با رویکردهای سنتی مبتنی بر HDL مستند شده در IEEE Transactions on VLSI Systems، پیاده‌سازی OpenCL مزایای کارایی توسعه قابل توجهی ارائه می‌دهد. با این حال، همانطور که تحقیقات گروه FPGA دانشگاه تورنتو نشان داده است، معمولاً هنگام استفاده از سنتز سطح بالا در مقایسه با RTL بهینه‌سازی دستی، جریمه عملکردی وجود دارد. این واقعیت که این پیاده‌سازی هنوز هم عملکرد برتر نسبت به هر دو CPU و GPU را به دست می‌آورد، نشان‌دهنده راهبردهای بهینه‌سازی فوق‌العاده مؤثر است.

نتایج بازده انرژی (بهبود 644 برابری نسبت به CPU) با توجه به اهمیت فزاینده پایداری محاسباتی به ویژه قانع‌کننده هستند. با مواجهه مراکز داده با محدودیت‌های فزاینده انرژی، رویکردهایی که بهبودهای عظیم عملکرد بر وات ارائه می‌دهند ضروری خواهند شد. این تحقیق نشان می‌دهد که برای الگوهای محاسباتی خاص مانند الگوریتم‌های رمزنگاری، FPGAها می‌توانند مزایای مرتبه بزرگی نسبت به معماری‌های همه‌منظوره ارائه دهند.

با این حال، تمرکز بر 3DES سوالاتی را در مورد ارتباط بلندمدت مطرح می‌کند. با کنار گذاشتن 3DES توسط NIST برای بسیاری از کاربردها و انتقال به AES، قابلیت اعمال این بهینه‌سازی‌های خاص به استانداردهای رمزنگاری مدرن شایسته بررسی بیشتر است. با این حال، الگوهای معماری و راهبردهای بهینه‌سازی احتمالاً به AES و سایر الگوریتم‌های رمزنگاری متقارن قابل انتقال هستند.

6. پیاده‌سازی کد

مثال هسته OpenCL

__kernel void triple_des_encrypt(
    __global const uint8_t *input,
    __global uint8_t *output,
    __constant uint32_t *key_schedule,
    const uint num_blocks)
{
    int gid = get_global_id(0);
    if (gid >= num_blocks) return;
    
    // بارگذاری بلوک 64 بیتی
    uint64_t block = *((__global uint64_t*)(input + gid * 8));
    
    // رمزنگاری 3DES: E_K3(D_K2(E_K1(P)))
    block = des_encrypt(block, key_schedule, 0);      // اولین DES با K1
    block = des_decrypt(block, key_schedule, 16);     // دومین DES با K2  
    block = des_encrypt(block, key_schedule, 32);     // سومین DES با K3
    
    // ذخیره نتیجه
    *((__global uint64_t*)(output + gid * 8)) = block;
}

uint64_t des_encrypt(uint64_t block, __constant uint32_t *keys, int key_offset)
{
    // جایگشت اولیه
    block = initial_permutation(block);
    
    uint32_t left = (uint32_t)(block >> 32);
    uint32_t right = (uint32_t)block;
    
    // 16 دور فیستل
    #pragma unroll
    for (int i = 0; i < 16; i++) {
        uint32_t temp = right;
        right = left ^ feistel_function(right, keys[key_offset + i]);
        left = temp;
    }
    
    // جایگشت نهایی
    return final_permutation(((uint64_t)right << 32) | left);
}

7. کاربردهای آینده

رویکرد معماری نشان داده شده در این تحقیق کاربرد گسترده‌ای فراتر از رمزنگاری 3DES دارد:

  • بلاک‌چین و ارز دیجیتال: پلتفرم‌های معاملاتی با فرکانس بالا و عملیات ماینینگ می‌توانند از شتاب FPGA مشابه برای عملیات رمزنگاری استفاده کنند.
  • امنیت 5G: معماری خط لوله می‌تواند برای استانداردهای رمزنگاری 5G در پردازش ایستگاه پایه تطبیق داده شود.
  • رایانش لبه: پیاده‌سازی‌های FPGA کم‌مصرف می‌توانند شتاب رمزنگاری را برای دستگاه‌های اینترنت اشیاء و سرورهای لبه ارائه دهند.
  • رمزنگاری پسا کوانتومی: راهبردهای بهینه‌سازی می‌توانند برای الگوریتم‌های رمزنگاری پسا کوانتومی در حال ظهور اعمال شوند.
  • شتاب‌دهنده‌های چند الگوریتمی: کار آینده می‌تواند طراحی‌های FPGA قابل پیکربندی مجدد پویا را که از چندین الگوریتم رمزنگاری پشتیبانی می‌کنند، بررسی کند.

جهت‌های تحقیقاتی شامل بررسی کاربرد این تکنیک‌های بهینه‌سازی برای AES-GCM، ChaCha20-Poly1305 و سایر استانداردهای رمزنگاری مدرع، و همچنین بررسی ابزارهای بهینه‌سازی خودکار است که می‌توانند تبدیل‌های مشابهی را به الگوریتم‌های رمزنگاری دلخواه اعمال کنند.

8. مراجع

  1. K. Group, "The OpenCL Specification," Khronos Group, 2020.
  2. National Institute of Standards and Technology, "Recommendation for Triple Data Encryption Algorithm (TDEA) Block Cipher," NIST SP 800-67Rev2, 2017.
  3. J. Cong et al., "High-Level Synthesis for FPGAs: From Prototyping to Deployment," IEEE Transactions on CAD, 2011.
  4. M. Papadonikolakis et al., "Performance Comparison of GPU and FPGA Architectures for Cryptography," SAMOS, 2010.
  5. A. M. et al., "FPGA-based Accelerators of Cryptographic Algorithms," IEEE Transactions on Computers, 2013.
  6. Intel Corporation, "Intel FPGA SDK for OpenCL Programming Guide," 2020.
  7. Xilinx, "SDAccel Development Environment User Guide," 2019.
  8. W. Jiang et al., "A Survey of FPGA-Based Cryptographic Computing," ACM Computing Surveys, 2021.