اختر اللغة

مسرّع FPGA لخوارزمية 3DES المعتمد على OpenCL: التصميم وتحليل الأداء

تحليل مسرّع FPGA عالي الأداء لتشفير 3DES باستخدام OpenCL، يتميز بهندسة خطوط أنابيب متوازية واستراتيجيات تحسين للحصول على إنتاجية وكفاءة طاقة فائقتين.
computepowercurrency.com | PDF Size: 1.0 MB
التقييم: 4.5/5
تقييمك
لقد قيمت هذا المستند مسبقاً
غلاف مستند PDF - مسرّع FPGA لخوارزمية 3DES المعتمد على OpenCL: التصميم وتحليل الأداء

1. المقدمة والنظرة العامة

في مجالات العملات الرقمية وسلسلة الكتل (بلوك تشين) وتشفير بيانات السحابة الإلكترونية، يعد الطلب على معالجة تشفيرية عالية السرعة ومنخفضة الطاقة أمرًا بالغ الأهمية. تعاني التطبيقات البرمجية التقليدية لخوارزميات مثل 3DES من اختناقات أداء كبيرة، واستهلاك مرتفع لموارد وحدة المعالجة المركزية، واستهلاك طاقة مرتفع. بينما تقدم مصفوفات البوابات القابلة للبرمجة في الميدان (FPGAs) حلاً للمعالجة المتسارعة بالأجهزة، فإن التطوير باستخدام لغات وصف الأجهزة (HDLs) منخفضة المستوى مثل Verilog/VHDL يستغرق وقتًا طويلاً ومعقدًا.

تقدم هذه الورقة تصميمًا مبتكرًا لمسرّع خوارزمية 3DES على FPGA باستخدام إطار عمل لغة الحوسبة المفتوحة (OpenCL). تستفيد الهندسة المقترحة من التوليف عالي المستوى (HLS) لسد فجوة الإنتاجية، وتنفذ هيكل خطوط أنابيب متوازية مكون من 48 تكرارًا. من خلال استراتيجيات تحسين مدروسة - تشمل ضبط تخزين البيانات، وتحسين عرض البت، وتحسين تدفق التعليمات، وتوجيه النواة، وتكرار وحدات الحساب - يحقق التصميم مكاسب ملحوظة في الأداء وكفاءة الطاقة مقارنة بمنصات وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU).

111.8 جيجابت/ثانية

الحد الأقصى للإنتاجية على Intel Stratix 10

372 ضعفًا

الأداء مقارنة بـ Intel Core i7-9700

9 أضعاف

كفاءة الطاقة مقارنة بـ 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 هو معيار مفتوح وخالٍ من الرسوم الملكية للبرمجة المتوازية عبر المنصات غير المتجانسة (وحدات المعالجة المركزية، وحدات معالجة الرسومات، مصفوفات البوابات القابلة للبرمجة، معالجات الإشارات الرقمية). بالنسبة لمصفوفات البوابات القابلة للبرمجة، تعمل أدوات مثل Intel FPGA SDK for OpenCL كمترجم توليف عالي المستوى (HLS)، حيث تقوم بترجمة كود النواة المكتوب بلغة شبيهة بـ C إلى دوائر أجهزة فعالة. يقلل هذا التجريد بشكل كبير من وقت التطوير والتعقيد مقارنة بتصميم مستوى تسجيل النقل (RTL)، مما يجعل تسريع مصفوفات البوابات القابلة للبرمجة في متناول مطوري البرمجيات وخبراء المجال.

3. هندسة وتصميم المسرّع

3.1 هيكل خطوط الأنابيب المتوازية

جوهر المسرّع هو هندسة خطوط أنابيب عميقة تقوم بفك تشابك الـ 48 جولة من خوارزمية 3DES. يسمح هذا التصميم بمعالجة كتل بيانات متعددة في وقت واحد في مراحل مختلفة من خط أنابيب التشفير، مما يزيد من استخدام الأجهزة والإنتاجية إلى أقصى حد. يتم موازنة خط الأنابيب بعناية لتجنب التوقف وضمان تدفق مستمر للبيانات.

3.2 تحسين نقل البيانات

للتغلب على اختناق عرض النطاق الترددي للذاكرة الشائع في تصميمات المسرعات، يتم استخدام استراتيجيتين رئيسيتين:

  • ضبط تخزين البيانات: تحسين تخطيط البيانات في ذاكرة المضيف والجهاز لتمكين عمليات النقل الانفجارية الفعالة وتقليل زمن الوصول إلى الحد الأدنى.
  • تحسين عرض بت البيانات: زيادة عرض مسارات البيانات بين الذاكرة والنواة لتتناسب مع قدرات الناقل الداخلي لمصفوفة البوابات القابلة للبرمجة، وبالتالي تحسين استخدام عرض النطاق الترددي الفعال.

3.3 استراتيجيات تحسين النواة

يتم تحسين نواة OpenCL باستخدام عدة تقنيات:

  • تحسين تدفق التعليمات: إعادة ترتيب وتبسيط العمليات لإنشاء جدول زمني فعال لخط الأنابيب، مما يقلل من التبعيات ودورات الخمول.
  • توجيه النواة: استخدام عمليات تعليمة واحدة، بيانات متعددة (SIMD) لمعالجة عناصر بيانات متعددة في وقت واحد داخل مثيل نواة واحد.
  • تكرار وحدة الحساب: إنشاء نسخ متعددة من النواة المحسنة (وحدات الحساب) على نسيج مصفوفة البوابات القابلة للبرمجة لمعالجة تدفقات بيانات مستقلة بالتوازي، مما يزيد الأداء مع الموارد المتاحة.

4. النتائج التجريبية والأداء

تم تنفيذ المسرّع واختباره على مصفوفة البوابات القابلة للبرمجة Intel Stratix 10 GX2800. مقاييس الأداء الرئيسية هي كما يلي:

  • الإنتاجية: حقق حدًا أقصى للإنتاجية بلغ 111.801 جيجابت/ثانية.
  • مقارنة بوحدة المعالجة المركزية (Intel Core i7-9700): تحسن الأداء بمقدار 372 ضعفًا، مع كفاءة طاقة أفضل 644 مرة.
  • مقارنة بوحدة معالجة الرسومات (NVIDIA GeForce GTX 1080 Ti): تفوق في كلا المقياسين، حيث حقق أداءً أعلى بنسبة 20% و كفاءة طاقة أفضل بتسع مرات.

وصف الرسم البياني (ضمني): يمكن لرسم بياني شريطي أن يصور هذا التحليل المقارن بشكل فعال. سيسرد المحور السيني المنصات الثلاث (مصفوفة البوابات القابلة للبرمجة Stratix 10، وحدة المعالجة المركزية Core i7، وحدة معالجة الرسومات GTX 1080 Ti). يمكن استخدام محورين صاديين: الأيسر للإنتاجية (جيجابت/ثانية)، يظهر شريط واحد مرتفع جدًا لمصفوفة البوابات القابلة للبرمجة؛ والأيمن للأداء المعياري (وحدة المعالجة المركزية = 1)، يظهر شريط مصفوفة البوابات القابلة للبرمجة عند 372 وشريط وحدة معالجة الرسومات أعلى قليلاً من 1. يمكن أن يُظهر رسم بياني شريطي منفصل ومجمع كفاءة الطاقة (عمليات/جول أو ما شابه)، مسلطًا الضوء على تقدم مصفوفة البوابات القابلة للبرمجة الهائل البالغ 644 مرة على وحدة المعالجة المركزية و 9 مرات على وحدة معالجة الرسومات.

5. الرؤية الأساسية ومنظور المحلل

الرؤية الأساسية: هذه الورقة ليست مجرد جعل 3DES سريعًا على مصفوفة البوابات القابلة للبرمجة؛ إنها مخطط مقنع لإضفاء الطابع الديمقراطي على التسريع بالأجهزة. يوضح المؤلفون أنه من خلال التطبيق الاستراتيجي للتوليف عالي المستوى المعتمد على OpenCL، يمكن تحقيق أداء لا يسحق فقط وحدات المعالجة المركزية للأغراض العامة، بل يتفوق أيضًا على وحدات معالجة الرسومات المتطورة في مجال مستهدف، كل ذلك مع تجنب التكلفة الهندسية الباهظة لتصميم مستوى تسجيل النقل التقليدي.

التدفق المنطقي: الحجة منهجية. تبدأ بتحديد النقاط الحرجة في البرمجيات (البطء) والتطوير التقليدي لمصفوفات البوابات القابلة للبرمجة (الصعوبة). مسار الحل واضح: استخدام OpenCL/HLS للإنتاجية، ثم تطبيق سلسلة من استراتيجيات التحسين المفهومة جيدًا ولكنها حاسمة (خطوط الأنابيب، التوجيه، التكرار) لاستخراق أقصى كفاءة للأجهزة. تؤكد المقارنات الأدائية مع المعايير القياسية لوحدات المعالجة المركزية ووحدات معالجة الرسومات صحة النهج بأكمله.

نقاط القوة والضعف: القوة لا يمكن إنكارها: المكاسب المبلغ عنها البالغة 372/644 مرة مقارنة بوحدة معالجة مركزية حديثة مذهلة وتسلط الضوء على الإمكانات الخام للأجهزة المتخصصة في المجال. يعد استخدام OpenCL قوة عملية كبيرة، متوافقًا مع اتجاهات الصناعة نحو الحوسبة غير المتجانسة المتاحة، كما يظهر في أطر عمل مثل TensorFlow للتعلم الآلي أو OneAPI. ومع ذلك، فإن نقطة ضعف حرجة هي عدم وجود خط أساس مقارن مع نواة 3DES محسنة يدويًا باستخدام Verilog/VHDL على نفس مصفوفة البوابات القابلة للبرمجة Stratix 10. بينما تعد مقارنة وحدة معالجة الرسومات/وحدة المعالجة المركزية ممتازة للتسويق، يحتاج مجتمع التوليف عالي المستوى إلى معرفة "فجوة الكفاءة" بين التوليف عالي المستوى وتصميم مستوى تسجيل النقل الخبير لهذه المشكلة المحددة. علاوة على ذلك، كما لوحظ في بحث من جامعة تورنتو حول إنتاجية التوليف عالي المستوى، يمكن أن يحجب التجريد أحيانًا التحكم منخفض المستوى، مما قد يترك بعض الأداء على الطاولة مقارنة بتنفيذ مستوى تسجيل النقل الأمثل.

رؤى قابلة للتنفيذ: بالنسبة لفرق المنتجات، الرسالة واضحة: لأحمال العمل التشفيرية الوظيفية الثابتة عالية الحجم (أكثر من مجرد 3DES)، يجب أن يكون مسرّع مصفوفة البوابات القابلة للبرمجة المعتمد على OpenCL مرشحًا جادًا في مرحلة تقييم الهندسة، خاصةً حيث تكون كفاءة الطاقة قيدًا رئيسيًا (مثل مراكز البيانات الطرفية، أجهزة الشبكة). المنهجية قابلة للنقل. الوجبة الجاهزة الحقيقية هي دليل التحسين - تخطيط البيانات، عرض البت، خطوط الأنابيب، التوجيه، التكرار. هذه ليست مفاهيم جديدة، لكن رؤيتها مطبقة بشكل متماسك في سياق OpenCL للتغلب على وحدة معالجة رسومات راقية هو دليل قوي. الخطوة التالية هي تطبيق نفس هذا المخطط على خوارزميات التشفير ما بعد الكمومية مثل Kyber أو Dilithium، والتي تتطلب كثافة حسابية عالية وتعد مرشحة رئيسية لمثل هذا التسريع.

6. التفاصيل التقنية والصياغة الرياضية

يتم تعريف عملية تشفير 3DES بثلاثة مفاتيح مستقلة (وضع EDE) رسميًا على النحو التالي:

$Ciphertext = E_{K_3}(D_{K_2}(E_{K_1}(Plaintext)))$

حيث تكون دالة الجولة الواحدة لـ DES $F(R, K)$، المطبقة خلال كل من الجولات الـ 16 لكل عملية DES، مركزية في الحساب. وهي تشمل:

  1. التوسيع: يتم توسيع النصف الأيمن 32 بت $R$ إلى 48 بت عبر جدول تبديل ثابت $E$.
  2. مزج المفتاح: يتم تطبيق عملية XOR على $R$ الموسع مع مفتاح الجولة 48 بت $K$ المشتق من المفتاح الرئيسي.
  3. الاستبدال (صناديق S): يتم تقسيم النتيجة 48 بت إلى ثماني مجموعات من 6 بتات، يتم تحويل كل منها إلى إخراج 4 بت بواسطة صندوق استبدال غير خطي (S-Box). هذه هي العملية غير الخطية الأساسية: $S(B) = S_i(B)$، حيث $B$ هو إدخال 6 بت و $S_i$ هو جدول صندوق S $i^{th}$.
  4. التبديل (صندوق P): يتم تبديل الإخراج 32 بت من صناديق S بواسطة دالة ثابتة $P$.
إخراج دالة الجولة هو: $F(R, K) = P(S(E(R) \oplus K))$.

يحسب خط أنابيب المسرّع هذه الدالة $F$ 48 مرة لكل كتلة بيانات بشكل فعال، حيث تتوافق مراحل خط الأنابيب مع عمليات التوسيع، و XOR، والبحث في صندوق S، والتبديل، وكلها محسنة للتنفيذ المتوازي.

7. إطار التحليل ومثال تطبيقي

إطار عمل لتقييم المسرعات المعتمدة على التوليف عالي المستوى:

عند تحليل ورقة مثل هذه، نطبق إطار عمل متعدد الأبعاد:

  1. الأداء: الإنتاجية المطلقة (جيجابت/ثانية) وزمن الوصول. المقارنة مع الخطوط الأساسية ذات الصلة (وحدة المعالجة المركزية، وحدة معالجة الرسومات، أعمال مصفوفة البوابات القابلة للبرمجة الأخرى).
  2. الكفاءة: الأداء لكل واط (كفاءة الطاقة). استخدام الموارد (عناصر المنطق، ذاكرة BRAM، كتل DSP على مصفوفة البوابات القابلة للبرمجة).
  3. الإنتاجية: وقت التطوير الضمني الذي تم توفيره باستخدام OpenCL مقابل لغات وصف الأجهزة. قابلية نقل الكود عبر عائلات مصفوفات البوابات القابلة للبرمجة.
  4. صلاحية المنهجية: هل استراتيجيات التحسين موضحة ومبررة بوضوح؟ هل الإعداد التجريبي (الأدوات، الإصدارات، بيانات المعيار) قابل للتكرار؟
  5. العموض: هل يمكن تطبيق الاستراتيجيات الهندسية الأساسية (خطوط الأنابيب، التوجيه) على خوارزميات أخرى (مثل AES، SHA-3)؟

مثال تطبيقي: تطبيق الإطار

لنطبق النقطة رقم 5 (العموض) على خوارزمية AES. استراتيجية الورقة قابلة للنقل بدرجة كبيرة:

  • هيكل خطوط الأنابيب المتوازية: AES-128 لديها 10 جولات. يمكن إنشاء خط أنابيب مكون من 10 مراحل (أو أعمق عبر الفك).
  • تحسين نقل البيانات: نفس تحسينات عرض وتخطيط البيانات ستنطبق على تغذية نواة AES.
  • توجيه النواة: عمليات AES على مصفوفة الحالة 128 بت قابلة للتوجيه بدرجة عالية داخل كتلة واحدة.
  • تكرار وحدة الحساب: يمكن إنشاء نوى AES مستقلة متعددة.
سيكون التغيير الهندسي الأساسي هو استبدال مسار بيانات دالة $F$ لـ DES بتحويل جولة AES (SubBytes، ShiftRows، MixColumns، AddRoundKey). تبقى مبادئ التحسين متطابقة. أكدت دراسة مماثلة لباحثين في ETH Zurich حول تسريع AES المعتمد على OpenCL على مصفوفات البوابات القابلة للبرمجة تحقيق قفزات أداء مماثلة، مما يؤكد عمومية هذا النهج.

8. التطبيقات المستقبلية واتجاهات البحث

يفتح نجاح هذا التصميم عدة مسارات واعدة:

  • التشفير ما بعد الكمومي (PQC): جارٍ توحيد معايير خوارزميات التشفير ما بعد الكمومي (مثلًا من قبل NIST). تتضمن خوارزميات مثل CRYSTALS-Kyber (تغليف المفتاح) و CRYSTALS-Dilithium (التوقيعات) عمليات حسابية متعددة الحدود معقدة وقابلة للتوجيه بدرجة عالية ومكثفة حسابيًا، مما يجعلها أهدافًا مثالية لهذا المخطط التسريعي لمصفوفات البوابات القابلة للبرمجة.
  • تسريع التشفير المتجانس: إجراء العمليات الحسابية على البيانات المشفرة مقيد بالحوسبة بشكل كبير. يمكن للمسرعات المحسّنة لمصفوفات البوابات القابلة للبرمجة جعل مخططات التشفير المتجانس معينة عملية للاستخدام في العالم الحقيقي.
  • وحدات معالجة البيانات الآمنة المتكاملة: دمج مسرّع التشفير هذا مع وحدات تحكم واجهة الشبكة (SmartNICs) أو وحدات تحكم التخزين لتوفير تشفير/فك تشفير شفاف بمعدل الخط للبيانات المخزنة والبيانات المتحركة داخل مراكز البيانات.
  • تحسين سلسلة الأدوات: يمكن أن يركز البحث المستقبلي على أتمتة استراتيجيات التحسين المقدمة هنا. هل يمكن لمترجم OpenCL أن يستنتج تلقائيًا عرض البت الأمثل للبيانات أو يقترح تكرار وحدة الحساب بناءً على تحليل النواة وموارد مصفوفة البوابات القابلة للبرمجة المستهدفة؟
  • مسرعات رشيقة متعددة الخوارزميات: تصميم نوى قابلة لإعادة التكوين يمكنها دعم تشفيرات متماثلة متعددة (3DES، AES، ChaCha20) بناءً على طلب حمل العمل، والاستفادة من قدرة إعادة التكوين الجزئي لمصفوفات البوابات القابلة للبرمجة الحديثة.

9. المراجع

  1. WU J., ZHENG B., NIE Y., CHAI Z. (2021). FPGA Accelerator for 3DES Algorithm Based on OpenCL. Computer Engineering, 47(12), 147-155, 162.
  2. National Institute of Standards and Technology (NIST). (1999). Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher. NIST Special Publication 800-67.
  3. Khronos Group. (2024). OpenCL Overview. https://www.khronos.org/opencl/
  4. Intel Corporation. (2023). Intel FPGA SDK for OpenCL. https://www.intel.com/content/www/us/en/software/programmable/sdk-for-opencl/overview.html
  5. 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).
  6. University of Toronto, Department of Electrical & Computer Engineering. (2022). Research in High-Level Synthesis and FPGA Architectures. https://www.eecg.utoronto.ca/~jayar/research/hls.html
  7. ETH Zurich, Secure & Reliable Systems Group. (2021). Hardware Acceleration of Modern Cryptography. https://srs.group.ethz.ch/research.html
  8. Zhuo, L., & Prasanna, V. K. (2005). High-Performance Designs for Linear Algebra Operations on Reconfigurable Hardware. IEEE Transactions on Parallel and Distributed Systems.