مجموعة تعليمات AES

مجموعة تعليمات معيار التشفير المتقدم ( مجموعة تعليمات AES ) هي مجموعة من التعليمات المصممة خصيصًا لتنفيذ عمليات التشفير وفك التشفير باستخدام معيار AES بكفاءة عالية. توجد هذه التعليمات عادةً في المعالجات الحديثة، ويمكنها تسريع عمليات AES بشكل كبير مقارنةً بالتطبيقات البرمجية. تتضمن مجموعة تعليمات AES تعليمات لتوسيع المفتاح ، والتشفير، وفك التشفير باستخدام أحجام مفاتيح مختلفة (128 بت، 192 بت، و256 بت).

غالبًا ما يتم تنفيذ مجموعة التعليمات كمجموعة من التعليمات التي يمكنها تنفيذ جولة واحدة من AES بالإضافة إلى إصدار خاص للجولة الأخيرة والتي لها طريقة مختلفة قليلاً.

عندما يتم تطبيق خوارزمية التشفير المتقدمة (AES) كمجموعة تعليمات بدلاً من برنامج، يمكن تحسين مستوى الأمان، حيث يتم تقليل مساحة هجوم القناة الجانبية . [ 1 ]

معالجات معمارية x86

كانت AES-NI (أو معيار التشفير المتقدم من إنتل - التعليمات الجديدة ؛ AES-NI ) أول تطبيق رئيسي لها. وهي عبارة عن امتداد لبنية مجموعة تعليمات x86 للمعالجات الدقيقة من إنتل و AMD، وقد اقترحتها إنتل في مارس 2008. [ 2 ]

توجد نسخة أوسع من AES-NI، وهي تعليمات AVX-512 Vector AES (VAES) ، في AVX-512 . [ 3 ]

تعليمات

تعليماتالوصف [ 4 ]
AESENCقم بتنفيذ جولة واحدة من عملية تشفير AES
AESENCLASTقم بتنفيذ الجولة الأخيرة من عملية تشفير AES
AESDECقم بتنفيذ جولة واحدة من عملية فك تشفير AES
AESDECLASTقم بتنفيذ الجولة الأخيرة من عملية فك تشفير AES
AESKEYGENASSISTالمساعدة في توليد مفتاح الجولة AES [ ملاحظة 1 ]
AESIMCالمساعدة في توليد مفاتيح الجولة لفك تشفير AES. تطبيق أعمدة المزج العكسي على مفاتيح الجولة.

إنتل

تدعم معالجات Intel التالية مجموعة تعليمات AES-NI: [ 5 ]

AMD

تدعم العديد من معالجات AMD تعليمات AES:

تسريع الأجهزة في بنى أخرى

يتوفر دعم خوارزمية التشفير المتقدمة (AES) باستخدام تعليمات المعالج غير المميزة في أحدث معالجات SPARC ( T3 ، T4 ، T5 ، M5، وما بعدها) وفي أحدث معالجات ARM . يحتوي معالج SPARC T4 ، الذي طُرح عام 2011، على تعليمات على مستوى المستخدم تُنفذ جولات AES. [ 13 ] تُضاف هذه التعليمات إلى أوامر التشفير ذات المستوى الأعلى. كما تحتوي بنية معالج ARMv8-A ، التي أُعلن عنها عام 2011، بما في ذلك ARM Cortex-A53 وA57 (ولكن ليس معالجات v7 السابقة مثل Cortex A5،     11،  15 )، على تعليمات على مستوى المستخدم تُنفذ جولات AES. [ 14 ]

معالجات x86 التي توفر واجهات تسريع غير AES-NI

تستخدم معالجات VIA x86 و AMD Geode معالجة AES مُسرّعة تعتمد على برامج التشغيل بدلاً من ذلك. (انظر واجهة برمجة تطبيقات التشفير (لينكس) ).

على الرغم من أن الرقاقات التالية تدعم تسريع الأجهزة بتقنية AES، إلا أنها لا تدعم تقنية AES-NI:

معمارية ARM

تتوفر معلومات البرمجة في دليل مرجع بنية ARM ARMv8، لملف تعريف بنية ARMv8-A (القسم A2.3 "امتداد التشفير Armv8") . [ 20 ]

كان معالج Marvell Kirkwood النواة المدمجة لمجموعة من أنظمة SoC من شركة Marvell Technology ، وتستخدم وحدات المعالجة المركزية هذه (ARM، mv_cesa في Linux) معالجة AES مُسرّعة تعتمد على برامج التشغيل. (انظر واجهة برمجة تطبيقات التشفير (Linux) ).

بنية RISC-V

تمت المصادقة على امتدادات مجموعة تعليمات التشفير العددية والمتجهة لبنية RISC-V على التوالي في عامي 2022 و2023، مما سمح لمعالجات RISC-V بتنفيذ تسريع الأجهزة لـ AES و GHASH و SHA-256 و SHA-512 و SM3 و SM4 .

قبل توفر تعليمات AES الخاصة على معالجات RISC-V، احتوت العديد من رقاقات RISC-V على معالجات AES مساعدة مدمجة. ومن الأمثلة على ذلك:

  • يدعم معالج Sipeed-M1 ثنائي النواة RISC-V 64 بت كلاً من AES و SHA256. [ 26 ]
  • يدعم معالج ESP32 -C القائم على معمارية RISC-V (وكذلك معالج ESP32 القائم على Xtensa [ 27 ] )، خوارزميات التشفير AES وSHA وRSA وRNG وHMAC والتوقيع الرقمي وXTS 128 للذاكرة الفلاشية. [ 28 ]
  • يدعم معالج Bouffalo Labs BL602/604 ذو 32 بت RISC-V العديد من متغيرات AES وSHA. [ 29 ]

بنية الطاقة

منذ إصدار Power ISA v.2.07 ، أصبحت التعليمات vcipherتُنفذ vcipherlastجولة واحدة من AES مباشرةً. [ 30 ]

بنية IBM z

تدعم معالجات IBM z9 أو أحدث منها خوارزمية AES كتعليمات أحادية العملية (KM، KMC) من نوع AES ECB/CBC عبر جهاز CryptoExpress من IBM . [ 31 ] ولذلك، فإن هذه الإصدارات أحادية التعليمات من AES أسهل استخدامًا من تلك التي تعمل مع Intel NI، ولكن لا يمكن توسيعها لتنفيذ خوارزميات أخرى تعتمد على دوال جولات AES (مثل دوال التجزئة Whirlpool و Grøstl ).

بنى معمارية أخرى

  • Atmel XMEGA [ 32 ] (مسرع مدمج مع تنفيذ متوازٍ، وليس تعليمة)
  • تتمتع معالجات SPARC T3 والمعالجات اللاحقة بدعم الأجهزة للعديد من خوارزميات التشفير، بما في ذلك AES.
  • Cavium Octeon MIPS [ 33 ] جميع المعالجات القائمة على Cavium Octeon MIPS لديها دعم للأجهزة للعديد من خوارزميات التشفير، بما في ذلك AES باستخدام تعليمات المعالج المساعد 3 الخاصة.

أداء

في دراسة بعنوان "تحليل أداء AES-NI" ، وجد باتريك شميد وأخيم روس "نتائج مبهرة من عدد قليل من التطبيقات المُحسّنة مسبقًا للاستفادة من إمكانيات AES-NI من إنتل". [ 34 ] وأظهر تحليل الأداء باستخدام مكتبة الأمان Crypto++ زيادة في الإنتاجية من حوالي 28.0 دورة لكل بايت إلى 3.5 دورة لكل بايت مع AES / GCM مقارنةً بمعالج Pentium 4 بدون تسريع. [ 35 ] [ 36 ]

البرامج الداعمة

تستطيع معظم المترجمات الحديثة إصدار تعليمات AES.

يدعم الكثير من برامج الأمان والتشفير مجموعة تعليمات AES، بما في ذلك البنية التحتية الأساسية البارزة التالية:

تطبيقات تتجاوز معيار AES

يُستخدم جزءٌ من مجموعة تعليمات AES في تشفير الكتل باستخدام صندوق استبدال (S-box) ذي بنية مماثلة ، وذلك باستخدام التحويل الخطي للتحويل بينهما. وقد تم تسريع خوارزميات SM4 و Camellia و ARIA باستخدام AES-NI. [ 52 ] [ 53 ] [ 54 ] وتتيح تعليمات AVX -512 Galois Field New Instructions (GFNI) تنفيذ صناديق الاستبدال هذه بطريقة أكثر مباشرة. [ 55 ]

تم تطوير خوارزميات تشفير جديدة تستخدم أجزاءً من خوارزمية AES تحديدًا، بحيث يمكن استخدام مجموعة تعليمات AES لزيادة السرعة. تعمل عائلة AEGIS، التي توفر تشفيرًا موثقًا ، بسرعة تفوق سرعة AES بمرتين على الأقل. [ 56 ] وتُعدّ AEGIS من بين المرشحين النهائيين الإضافيين لتطبيقات الأداء العالي في مسابقة CAESAR . [ 57 ]

انظر أيضاً

ملحوظات

  1. تحسب هذه التعليمة 4 تعبيرات فرعية متوازية لتوسيع مفتاح AES على 4 كلمات 32 بت في كلمة رباعية مزدوجة (المعروفة أيضًا باسم سجل SSE) على البتات X[127:96] لـأنا=3{\displaystyle i=3}و X[63:32] لـأنا=1{\displaystyle i=1}فقط. عمليتا استبدال متوازيتان لصندوق S الخاص بتقنية AESY0=Suبدبليوoرد(X1){\displaystyle Y_{0}=SubWord(X_{1})}وY2=Suبدبليوoرد(X3){\displaystyle Y_{2}=SubWord(X_{3})}تُستخدم في AES-256 وتعبيرين فرعيينY1=Roتدبليوoرد(Suبدبليوoرد(X1))رجoن{\displaystyle Y_{1}=RotWord(SubWord(X_{1}))\oplus rcon}وY3=Roتدبليوoرد(Suبدبليوoرد(X3))رجoن{\displaystyle Y_{3}=RotWord(SubWord(X_{3}))\oplus rcon}تُستخدم في AES-128 و AES-192 و AES-256.

مراجع

  1. "تأمين المؤسسة باستخدام Intel AES-NI" (ملف PDF) . شركة إنتل . مؤرشف (ملف PDF) من الأصل بتاريخ 31 مارس 2013. تم الاطلاع عليه بتاريخ 26 يوليو 2017 .
  2. "شبكة برامج إنتل" . إنتل. مؤرشف من الأصل في 7 أبريل 2008. تم الاسترجاع في 5 أبريل 2008 .
  3. "مرجع برمجة امتدادات مجموعة تعليمات معمارية إنتل والميزات المستقبلية" . إنتل . تم الاطلاع عليه في 16 أكتوبر 2017 .
  4. شاي غيرون (2010). "ورقة بيضاء حول مجموعة تعليمات معيار التشفير المتقدم (AES) من إنتل" (ملف PDF) . إنتل . تم الاطلاع عليه بتاريخ 20 سبتمبر 2012 .
  5. "بحث متقدم عن مواصفات منتجات إنتل" . إنتل آرك .
  6. شيمبي، أناند لال. "مراجعة ساندي بريدج: اختبار معالجات إنتل كور i7-2600K و i5-2500K و كور i3-2100" . مؤرشف من الأصل في 6 يناير 2011.
  7. "مقارنة مواصفات منتجات إنتل" .
  8. "دعم AES-NI في TrueCrypt (مشكلة Sandy Bridge)" . 27 يناير 2022.
  9. "بعض المنتجات تدعم تعليمات AES الجديدة بعد تحديث إعدادات المعالج، وتحديدًا المعالجات التالية: i7-2630QM/i7-2635QM، i7-2670QM/i7-2675QM، i5-2430M/i5-2435M، i5-2410M/i5-2415M. يُرجى التواصل مع الشركة المصنعة الأصلية للحصول على BIOS الذي يتضمن آخر تحديث لإعدادات المعالج . "
  10. "مواصفات المنتج لمعالج Intel Core i3-2115C (ذاكرة تخزين مؤقتة 3 ميجابايت، 2.00 جيجاهرتز)" .
  11. "مواصفات المنتج لمعالج Intel Core i3-4000M (ذاكرة تخزين مؤقتة 3 ميجابايت، 2.40 جيجاهرتز)" .
  12. "اتباع التعليمات" . AMD. 22 نوفمبر 2010. مؤرشف من الأصل في 26 نوفمبر 2010. تم الاسترجاع في 4 يناير 2011 .
  13. دان أندرسون (2011). "محرك SPARC T4 OpenSSL" . أوراكل . تم الاسترجاع في 20 سبتمبر 2012 .
  14. ريتشارد غريسنثويت (2011). "معاينة تقنية ARMv8-A" (ملف PDF) . ARM. مؤرشف من الأصل (ملف PDF) بتاريخ 10 يونيو 2018. تم الاطلاع عليه بتاريخ 20 سبتمبر 2012 .
  15. "المواصفات الفنية لعائلة معالجات AMD Geode LX" . AMD.
  16. "محرك أمان قفل VIA" . VIA. مؤرشف من الأصل بتاريخ 15-05-2011 . تم الاسترجاع بتاريخ 14-11-2011 .
  17. 1 2 مُسرّعات الأجهزة التشفيرية على OpenWRT.org
  18. "معالجات VIA Eden-N" . VIA. مؤرشف من الأصل بتاريخ 11-11-2011 . تم الاطلاع عليه بتاريخ 14-11-2011 .
  19. "معالجات VIA C7" . VIA. مؤرشف من الأصل بتاريخ 19-04-2007 . تم الاطلاع عليه بتاريخ 14-11-2011 .
  20. "دليل مرجعي لهندسة معمارية Armv8، لملف تعريف هندسة معمارية Armv8-A" . ARM. 22 يناير 2021.
  21. "حالة برنامج تشغيل نظام الأمان/محرك التشفير" . sunxi.montjoie.ovh .
  22. "تسريع التشفير في لينكس على معالج i.MX6" (ملف PDF) . مؤسسة لينكس. فبراير 2017. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 26 أغسطس 2019. تم الاطلاع عليه بتاريخ 2 مايو 2018 .
  23. "وحدة التشفير في معالج سنابدراغون 805 حاصلة على شهادة FIPS 140-2" . كوالكوم .
  24. "RK3128 - ويكي روكشيب" . ويكي روكشيب . مؤرشف من الأصل بتاريخ 28 يناير 2019. تم الاطلاع عليه بتاريخ 2 مايو 2018 .
  25. "نظرة معمقة على معالج سامسونج إكسينوس 7420 - نظرة داخلية على نظام حديث بتقنية 14 نانومتر" . موقع AnandTech . مؤرشف من الأصل بتاريخ 30 يونيو 2015.
  26. "ورقة بيانات Sipeed M1 الإصدار 1.1" (ملف PDF) . kamami.pl . 2019-03-06 . تم الاطلاع عليه بتاريخ 2021-05-03 .
  27. "ورقة بيانات سلسلة ESP32" (ملف PDF) . www.espressif.com . 19-03-2021 . تاريخ الاطلاع: 03-05-2021 .
  28. "معالج ESP32-C3 بتقنية WiFi وBLE RISC-V متوافق تمامًا مع ESP8266 من حيث التوصيلات . " CNX-Software . تاريخ الاسترجاع: 22 نوفمبر 2020 .
  29. "BL602-Bouffalo Lab (Nanjing) Co., Ltd" . www.bouffalolab.com . مؤرشف من الأصل بتاريخ 18 يونيو 2021. تم الاطلاع عليه بتاريخ 3 مايو 2021 .
  30. "Power ISA الإصدار 2.07 B" . تم الاطلاع عليه بتاريخ 2022-01-07 .
  31. "تشفير نظام IBM z10" . شركة IBM. مؤرشف من الأصل في 13 أغسطس 2008. تم الاطلاع عليه في 27 يناير 2014 .
  32. "استخدام مُسرِّع AES المدمج في XMEGA" (ملف PDF) . تم الاطلاع عليه بتاريخ 2014-12-03 .
  33. "أطلقت شركة Cavium Networks أوسع مجموعة في الصناعة من معالجات OCTEON أحادية وثنائية النواة القائمة على معمارية MIPS64، والموجهة لشبكات الجيل القادم الذكية" . مؤرشف من الأصل بتاريخ 7 ديسمبر 2017. تم الاطلاع عليه بتاريخ 17 سبتمبر 2016 .
  34. ب. شميد وأ. روس (2010). "تحليل أداء AES-NI" . موقع Tom's Hardware . تاريخ الاسترجاع: 10 أغسطس 2010 .
  35. تي. كروفيتز، دبليو. داي (2010). "كيفية الحصول على استدعاءات AES سريعة؟" . مجموعة مستخدمي Crypto++ . تم الاسترجاع في 11 أغسطس 2010 .
  36. "معايير أداء Crypto++ 5.6.0 على معالج Pentium 4" . موقع Crypto++ الإلكتروني . 2009. مؤرشف من الأصل في 19 سبتمبر 2010. تاريخ الاطلاع: 10 أغسطس 2010 .
  37. "دليل مرجعي لبرنامج NonStop SSH" . تم الاطلاع عليه بتاريخ 2020-04-09 .
  38. "دليل مرجعي لمكتبة NonStop cF SSL" . تم الاطلاع عليه بتاريخ 2020-04-09 .
  39. "خيار تشفير الشريط في BackBox H4.08" . تم الاطلاع عليه بتاريخ 2020-04-09 .
  40. "تعليمات معيار التشفير المتقدم من إنتل (AES-NI)" . إنتل. 2 مارس 2010. مؤرشف من الأصل في 7 يوليو 2010. تم الاطلاع عليه بتاريخ 11 يوليو 2010 .
  41. "تحسينات AES-NI على NSS في أنظمة Sandy Bridge" . 2012-05-02 . تم الاطلاع عليه بتاريخ 2012-11-25 .
  42. "دليل إدارة النظام: خدمات الأمان، الفصل 13: إطار عمل التشفير في سولاريس (نظرة عامة)" . أوراكل. سبتمبر 2010. تم الاطلاع عليه بتاريخ 27 نوفمبر 2012 .
  43. "ملاحظات إصدار FreeBSD 8.2" . FreeBSD.org. 24 فبراير 2011. مؤرشف من الأصل بتاريخ 12 أبريل 2011. تم الاطلاع عليه بتاريخ 18 ديسمبر 2011 .
  44. OpenSSL: واجهة ويب CVS
  45. "الواجهة الخلفية للتشفير (GnuTLS 3.6.14)" . gnutls.org . تم الاطلاع عليه بتاريخ 26-06-2020 .
  46. "AES-GCM في libsodium" . libsodium.org .
  47. "تسريع الأجهزة" . www.veracrypt.fr .
  48. "aes - لغة برمجة Go" . golang.org . تم الاطلاع عليه بتاريخ 26-06-2020 .
  49. شيمبي، أناند لال. "مراجعة كلاركدايل: معالجات إنتل كور i5 661، وi3 540، وi3 530" . www.anandtech.com . تاريخ الاسترجاع: 26 يونيو 2020 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )
  50. "جدار الحماية الذكي للتخزين Bloombase StoreSafe" .
  51. "يضيف تشفير Vormetric دعمًا لتقنية تسريع Intel AES-NI" . 15 مايو 2012.
  52. سارينين، ماركو-يوهاني أو. (17 أبريل 2020). "mjosaarinen/sm4ni: إثبات إمكانية استخدام تعليمات AES-NI لتطبيق معيار التشفير الصيني SM4" . GitHub .
  53. كيڤيلينا، جوسي (2013). تشفير الكتل: تطبيقات سريعة على معمارية x86-64 (ملف PDF) (رسالة ماجستير). جامعة أولو . ص 33، 42. تاريخ الاسترجاع: 22 يونيو 2017 . 
  54. ^ يو تاي هي. كيفيلينا، جوسي؛ تشو تشونغ هي (2023). "التسريع القائم على AVX لخوارزمية ARIA Block Cipher" . الوصول إلى IEEE . 11 : 77403– 77415. بيب كود : 2023IEEEA..1177403Y . دوى : 10.1109/ACCESS.2023.3298026 .
  55. كيڤيلينا، جوسي (19 أبريل 2023). "camellia-simd-aesni" . جيت هاب . تدعم معالجات x86-64 الأحدث أيضًا تعليمات Galois Field New Instructions (GFNI) التي تسمح بتنفيذ Camellia s-box بطريقة أكثر مباشرة وتؤدي إلى أداء أفضل.
  56. وو، هونغجون؛ برينيل، بارت (2016-09-15). "إيجيس: خوارزمية تشفير سريعة وموثقة (الإصدار 1.1)" (ملف PDF) .
  57. دينيس، فرانك. "عائلة خوارزميات التشفير الموثقة AEGIS" . cfrg.github.io .