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

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

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

دستورالعمل ها

اینتل 
پردازنده‌های اینتل زیر از دستورالعمل 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، که در سال ۲۰۱۱ معرفی شده‌است، دارای دستورالعمل‌های سطح_کاربر می‌باشد در مراحل AES را پشتیبانی می‌کند. این دستورالعمل‌ها علاوه بر دستورهای رمزنگاری سطح بالاتر می‌باشد. معماری پردازنده ARMv8-A، که در سال ۲۰۱۱ معرفی شد، از جمله ARM Cortex-A53 و A57 (اما پردازنده‌های قبلی v7 مانند Cortex A5، ۷، ۸، ۹، ۱۱، ۱۵  را شامل نمی‌شود) نیز دستورالعمل‌های سطح کاربر که مراحل AES را اجرا می‌کنند را دارند. در آگوست ۲۰۱۲، 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 پشتیبانی می‌شوند
 شتاب‌دهنده‌های سخت‌افزاری رمزنگاری / موتورهای
 allwinner
 A10، A20، A30، A31، A80، A83T, H3 و A64 با استفاده از سیستم امنیتی
 Broadcom
 BCM5801 / BCM5805 / BCM5820 با استفاده از پردازشگر امنیتی
 NXP نیمه هادی‌ها
 i.MX6 به بعد
 کوالکام
 Snapdragon 805 به زودی
 Rockchip
 سری RK30xx به بعد
 سامسونگ
 سری Exynos 3 به بعد

معماری دیگر 
 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 پشتیبانی می‌کند . از جمله زیرساخت اصلی زیر: 
 رمزنگاری API: نسل بعدی (CNG) (نیاز به ویندوز)  
 API Crypto لینوکس 
 جاوا 7 HotSpot 
 خدمات امنیت شبکه (NSS) نسخه 3.13 و بالاتر  (استفاده شده توسط فایرفاکس و گوگل کروم ) 
 Solaris Cryptographic Framework  در Solaris 10 به بعد 
 در FreeBSD را (OpenCrypto API (aesni (4) driver  
 OpenSSL 1.0.1 و بالاتر  
 FLAM / FLUC 5.1.08 (منتشر شد 2015-08-24) و بالاتر

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

منابع

لینک های خارج 
 استاندارد رمزنگاری پیشرفته
دستورالعمل‌های اکس۸۶
صفحات با ترجمه بازبینی‌نشده
فناوری‌های دستگاه‌های میکرو پیشرفته
معماری اکس۸۶