مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو

مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته در حال حاضر با پردازنده‌های بسیاری اجماع شده‌است. هدف از این مجموعه دستورالعمل، افزایش سرعت و همچنین مقاومت در برابر حملات جانبی کانال می‌باشد ، برنامه‌ها برای انجام رمزگذاری و رمزگشایی از استاندارد رمزگذاری پیشرفته (AES) استفاده میکنند . آن‌ها اغلب به عنوان دستورالعمل‌هایی برای اجرا در یک دور AES می‌باشند همراه با یک نسخه خاص برای آخرین دور اجرا که روش دور اخر کمی متفاوت است .

پردازنده های معماری x86[ویرایش]

AES-NI (یا دستورالعمل جدید استاندارد رمزگذاری پیشرفته Intel یا به صورت خلاصه AES-NI ) اولین پیاده‌سازی اساسی مجموعه بود. AES-NI یک فرمت معماری مجموعه دستورالعمل x86 برای ریزپردازنده های اینتل و AMD است که توسط اینتل در مارس 2008 پیشنهاد شده‌است. [۱]

دستورالعمل ها[ویرایش]

دستورالعمل شرح [۲]
AESENC یک مرحله از یک جریان رمزنگاری AES را انجام می‌دهد
AESENCLAST آخرین مرحله جریان رمزنگاری AES را انجام می‌دهد
AESDEC یک دور از جریان رمزگشایی AES را انجام می‌دهد
AESDECLAST آخرین مرحله جریان رمزگشایی AES را انجام می‌دهد
AESKEYGENASSIST کمک در تولید کلید هر دور AES
AESIMC کمک در ستون‌های مخلوط معکوس AES
PCLMULQDQ بدون رقم نقلی ضرب شدن ( CLMUL ) [۳]

اینتل[ویرایش]

پردازنده‌های اینتل زیر از دستورالعمل AES-NI پشتیبانی می‌کنند: [۴]

  • پردازنده مبتنی بر westmere به‌طور خاص :
  • پردازنده سری westmere-EP(xeon 56xx) با نام مستعار gulftown سری DP سرور
  • پردازنده‌های clarkdale(به استثنای core i3,pentium,celeron)
  • پردازنده arrandale (به جز celeron,pentium,core i3,core i5-4XXm)
  • پردازنده‌های sandy bridge:
  • مخصوص کامپیوترهای رومیزی: همه به جز پنتیوم، سلرون و core i3
  • موبایل : تمام پردازنده‌های core i7 و core i5. چندین فروشنده بزرگ پردازنده‌هایی با تنظیمات بایوس غیر فعال پخش کردند که با بروز رسانی فعال میشدند.
  • پردازنده‌های Ivy bridge.
  • تمام i5,i7,Xeon و تنها i3-2115c
  • پردازنه‌های Haswell(به جز i3-4000m,pentium , celeron)
  • پردازنده‌های broad well (همه به جز پنتیوم و سلرون)
  • پردازنده‌های silvermont/airmont(همه به جز bay trail-D و bay trail-M)
  • پردازنده‌های goldmont
  • پردازنده‌های skylake
  • پردازنده‌های kaby lake
  • پردازنده‌های coffee lake

AMD[ویرایش]

چند پردازنده AMD از دستورالعمل AES پشتیبانی می‌کند:

  • پردازنده‌های مبتنی بر Jaguar و جدیدتر
  • پردازنده‌های مبتنی بر Puma و جدیدتر
  • پردازنده "تجهیزات سنگین"
    • پردازنده‌های مبتنی بر بولدوزر [۵]
    • پردازنده‌های مبتنی بر Piledriver
    • پردازنده‌های مبتنی بر Steamroller
    • پردازنده‌های بر پایه بیل و جدیدتر
  • پردازنده‌های مبتنی بر ذن
  • پردازنده‌های مبتنی بر Zen +

شتاب دهنده سخت افزاری در سایر معماری ها[ویرایش]

پشتیبانی از AES با دستورالعمل‌های پردازنده غیر مجاز نیز در آخرین پردازنده‌های SPARC ( T3، T4، T5، M5 و به جلو) و در آخرین پردازنده های ARM در دسترس است. پردازنده SPARC T4 ،که در سال 2011 معرفی شده‌است، دارای دستورالعمل‌های سطح_کاربر می‌باشد در مراحل AES را پشتیبانی می‌کند. [۶] این دستورالعمل‌ها علاوه بر دستورهای رمزنگاری سطح بالاتر می‌باشد . معماری پردازنده ARMv8-A، که در سال 2011 معرفی شد، از جمله ARM Cortex-A53 و A57 (اما پردازنده‌های قبلی v7 مانند Cortex A5،   7،   8،   9،   11،   15 [نیازمند منبع] را شامل نمی‌شود) نیز دستورالعمل‌های سطح کاربر که مراحل AES را اجرا می‌کنند را دارند. [۷] در آگوست 2012، IBM اعلام کرد [۸] که معماری آینده Power7 + از AES پشتیبانی خواهد کرد . دستورها در این معماری با دستورهای AES-NI یکسان نیستند، اما قابلیت‌های مشابهی را در اختیار مصرف‌کننده میگذارند.

IBM Z9 یا هسته‌های اصلی پردازنده بعدی AES را به عنوان تک دستور العمل AES ECB / CBC AES ECB / CBC از طریق سخت افزار CryptoExpress IBM اجرا میکنند. [۹] اجرای این نسخه AES تک دستورالعمل، از اجرای Intel NI‌ها راحتتر می‌باشد، اما ممکن است برای اجرای الگوریتم‌های دیگر که بر اساس توابع مرحله ای AES می‌باشد گسترش نیابد (مانند تابع رمزگذاری گرداب (whirlpool)).

پشتیبانی از پردازنده های x86[ویرایش]

پردازنده‌های VIA x86، AMD Geode و Marvell Kirkwood (که در لینوکسARM، mv_cesa) از شتاب دهنده‌های درایوری به جای AES استفاده می‌کنند.(نگاه کنید به API Crypto (لینوکس).)

تراشه‌های زیر، در حالی که از سخت افزار شتاب دهنده‌های AES پشتیبانی می‌کنند، از دستورالعمل AES پشتیبانی نمی‌کنند:

  • پردازنده‌های AMD Geode LX [۱۰]
  • از طریق
    • VIA PadLock [۱۱] [۱۲]
      • پردازنده‌های VIA C3 Nehemiah C5P (Eden-N) [۱۳]
      • پردازنده‌های VIA C7 Esther C5J [۱۴]

ARM معماری[ویرایش]

اطلاعات برنامه‌نویسی در ARM Architecture Reference Manual ARMv8 برای مشخصات معماری ARMv8-A موجود است . [۱۵]

  • معماری ARMv8-A
    • فرمت‌های رمزنگاری ARM به‌طور اختیاری بر روی هسته‌های ARM Cortex-A30 / 50/70 پشتیبانی می‌شوند
  • شتاب دهنده‌های سخت افزاری رمزنگاری / موتورهای

معماری دیگر[ویرایش]

  • Atmel XMEGA [۲۱] (شتاب دهنده در تراشه با اجرای موازی، دستورالعمل نیست)
  • SPARC T3 و پردازنده‌های بعدی پشتیبانی سخت افزاری برای چند الگوریتم رمزنگاری، از جمله AES دارند.
  • Cavium Octeon MIPS [۲۲] تمامی پردازنده‌های مبتنی بر MIPS مبتنی بر Cavium Octeon دارای پشتیبانی سخت افزاری برای چند الگوریتم رمزنگاری هستند، از جمله AES با استفاده از دستورالعمل‌های خاص coprocessor 3.

کارایی[ویرایش]

پاتریک اشمیت و اکیم راس در تحلیل عملکرد AES-NI، نتایج قابل توجهی از تعداد زیادی از برنامه‌های کاربردی که در حال حاضر بهینه سازی شده‌اند تا از مزایای قابلیت AES-NI اینتل بهره مند شوند، بدست اورده‌اند. [۲۳] تجزیه و تحلیل عملکرد با استفاده از کتابخانه امنیت ++Crypto افزایش بهره را از حدود 28.0 سیکل در بایت به 3.5 سیکل در هر بایت با AES / GCM به نسبت پنتیوم 4 بدون شتاب دهنده نشان داد. [۲۴] [۲۵]     [ بهتر است   منبع   مورد نیاز است ]

پشتیبانی از نرم‌افزار[ویرایش]

بیشتر کامپایلرهای مدرن می‌توانند دستورالعمل AES را منتشر کنند.

نرم‌افزار امنیتی و رمزنگاری زیادی از مجموعه دستورالعمل AES پشتیبانی می‌کند . از جمله زیرساخت اصلی زیر:

همچنین نگاه کنید[ویرایش]

  • پسوند پیشرفته Vector (AVX)
  • دستور CLMUL مجموعه
  • مجموعه دستورالعمل FMA (FMA3، FMA4)
  • RdRand

منابع[ویرایش]

  1. "Intel Software Network". Intel. Archived from the original on 7 April 2008. Retrieved 2008-04-05.
  2. Shay Gueron (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. Retrieved 2012-09-20.
  3. "Carry-Less Multiplication". Intel.
  4. "Intel® Product Specification Advanced Search". Intel® ARK (Product Specs).
  5. "Following Instructions". AMD. November 22, 2010. Archived from the original on November 26, 2010. Retrieved 2011-01-04.
  6. Dan Anderson (2011). "SPARC T4 OpenSSL Engine". Oracle. Retrieved 2012-09-20.
  7. Richard Grisenthwaite (2011). "ARMv8-A Technology Preview" (PDF). ARM. Retrieved 2012-09-20.
  8. Timothy Prickett Morgan (2012). "All the sauce on Big Blue's hot chip: More on Power7+". The Register. Retrieved 2012-09-20.
  9. "IBM System z10 cryptography". IBM. Retrieved 2014-01-27.
  10. "AMD Geode™ LX Processor Family Technical Specifications". AMD.
  11. "VIA Padlock Security Engine". VIA. Retrieved 2011-11-14.
  12. ۱۲٫۰ ۱۲٫۱
  13. "VIA Eden-N Processors". VIA. Archived from the original on 2011-11-11. Retrieved 2011-11-14.
  14. "VIA C7 Processors". VIA. Retrieved 2011-11-14.
  15. "ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile" (PDF). ARM. December 2017.
  16. "Security System/Crypto Engine driver status". sunxi.montjoie.ovh.
  17. "Linux Cryptographic Acceleration on an i.MX6" (PDF). Linux Foundation. February 2017.
  18. "Cryptographic module in Snapdragon 805 is FIPS 140-2 certified". Qualcomm.
  19. "RK3128 - Rockchip Wiki". Rockchip wiki.
  20. "The Samsung Exynos 7420 Deep Dive - Inside A Modern 14nm SoC". AnandTech.
  21. "Using the XMEGA built-in AES accelerator" (PDF). Retrieved 2014-12-03.
  22. "Cavium Networks Launches Industry's Broadest Line of Single and Dual Core MIPS64®-based OCTEON™ Processors Targeting Intelligent Next Generation Networks". Retrieved 2016-09-17.
  23. P. Schmid and A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware. Retrieved 2010-08-10.
  24. T. Krovetz, W. Dai (2010). "How to get fast AES calls?". Crypto++ user group. Retrieved 2010-08-11.
  25. "Crypto++ 5.6.0 Pentium 4 Benchmarks". Crypto++ Website. 2009. Archived from the original on 19 September 2010. Retrieved 2010-08-10.
  26. "Intel Advanced Encryption Standard Instructions (AES-NI)". Intel. March 2, 2010. Archived from the original on 7 July 2010. Retrieved 2010-07-11.
  27. "AES-NI enhancements to NSS on Sandy Bridge systems". 2012-05-02. Retrieved 2012-11-25.
  28. "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Retrieved 2012-11-27.
  29. "FreeBSD 8.2 Release Notes". FreeBSD.org. 2011-02-24. Retrieved 2011-12-18.
  30. OpenSSL: CVS Web Interface[پیوند مرده]
  31. "www.flam.de :: Products". flam.de.

لینک های خارج[ویرایش]