مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته در حال حاضر با پردازندههای بسیاری اجماع شدهاست. هدف از این مجموعه دستورالعمل، افزایش سرعت و همچنین مقاومت در برابر حملات جانبی کانال میباشد، برنامهها برای انجام رمزگذاری و رمزگشایی از استاندارد رمزگذاری پیشرفته (AES) استفاده میکنند. آنها اغلب به عنوان دستورالعملهایی برای اجرا در یک دور AES میباشند همراه با یک نسخه خاص برای آخرین دور اجرا که روش دور آخر کمی متفاوت است .[۱][۲]
AES-NI (یا دستورالعمل جدید استاندارد رمزگذاری پیشرفته Intel یا به صورت خلاصه AES-NI) اولین پیادهسازی اساسی مجموعه بود. AES-NI یک فرمت معماری مجموعه دستورالعمل x86 برای ریزپردازندههای اینتل و ایامدی است که توسط اینتل در مارس ۲۰۰۸ پیشنهاد شدهاست.[۳]
دستورالعمل | شرح [۴] |
---|---|
AESENC
|
یک مرحله از یک جریان رمزنگاری AES را انجام میدهد |
AESENCLAST
|
آخرین مرحله جریان رمزنگاری AES را انجام میدهد |
AESDEC
|
یک دور از جریان رمزگشایی AES را انجام میدهد |
AESDECLAST
|
آخرین مرحله جریان رمزگشایی AES را انجام میدهد |
AESKEYGENASSIST
|
کمک در تولید کلید هر دور AES |
AESIMC
|
کمک در ستونهای مخلوط معکوس AES |
PCLMULQDQ
|
بدون رقم نقلی ضرب شدن ( CLMUL ) [۵] |
پردازندههای اینتل زیر از دستورالعمل AES-NI پشتیبانی میکنند: [۶]
چند پردازنده AMD از دستورالعمل AES پشتیبانی میکند:
پشتیبانی از 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)).
پردازندههای VIA x86، AMD Geode و Marvell Kirkwood (که در لینوکسARM, mv_cesa) از شتابدهندههای درایوری به جای AES استفاده میکنند. (نگاه کنید به API Crypto (لینوکس).)
تراشههای زیر، در حالی که از سختافزار شتابدهندههای AES پشتیبانی میکنند، از دستورالعمل AES پشتیبانی نمیکنند:
اطلاعات برنامهنویسی در ARM Architecture Reference Manual ARMv8 برای مشخصات معماری ARMv8-A موجود است.[۱۸]
پاتریک اشمیت و اکیم راس در تحلیل عملکرد AES-NI، نتایج قابل توجهی از تعداد زیادی از برنامههای کاربردی که در حال حاضر بهینه سازی شدهاند تا از مزایای قابلیت AES-NI اینتل بهره مند شوند، بدست اوردهاند. [۲۶] تجزیه و تحلیل عملکرد با استفاده از کتابخانه امنیت ++Crypto افزایش بهره را از حدود 28.0 سیکل در بایت به 3.5 سیکل در هر بایت با AES / GCM به نسبت پنتیوم 4 بدون شتاب دهنده نشان داد. [۲۷] [۲۸]
بیشتر کامپایلرهای مدرن میتوانند دستورالعمل AES را منتشر کنند.
نرمافزار امنیتی و رمزنگاری زیادی از مجموعه دستورالعمل AES پشتیبانی میکند . از جمله زیرساخت اصلی زیر: