مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته
مجموعه دستورالعمل استاندارد رمزگذاری پیشرفته در حال حاضر با پردازندههای بسیاری اجماع شدهاست. هدف از این مجموعه دستورالعمل، افزایش سرعت و همچنین مقاومت در برابر حملات جانبی کانال میباشد ، برنامهها برای انجام رمزگذاری و رمزگشایی از استاندارد رمزگذاری پیشرفته (AES) استفاده میکنند . آنها اغلب به عنوان دستورالعملهایی برای اجرا در یک دور AES میباشند همراه با یک نسخه خاص برای آخرین دور اجرا که روش دور اخر کمی متفاوت است .
پردازنده های معماری x86
AES-NI (یا دستورالعمل جدید استاندارد رمزگذاری پیشرفته Intel یا به صورت خلاصه AES-NI ) اولین پیادهسازی اساسی مجموعه بود. AES-NI یک فرمت معماری مجموعه دستورالعمل x86 برای ریزپردازنده های اینتل و AMD است که توسط اینتل در مارس 2008 پیشنهاد شدهاست. [1]
دستورالعمل ها
دستورالعمل | شرح [2] |
---|---|
AESENC |
یک مرحله از یک جریان رمزنگاری AES را انجام میدهد |
AESENCLAST |
آخرین مرحله جریان رمزنگاری AES را انجام میدهد |
AESDEC |
یک دور از جریان رمزگشایی AES را انجام میدهد |
AESDECLAST |
آخرین مرحله جریان رمزگشایی AES را انجام میدهد |
AESKEYGENASSIST |
کمک در تولید کلید هر دور AES |
AESIMC |
کمک در ستونهای مخلوط معکوس AES |
PCLMULQDQ |
بدون رقم نقلی ضرب شدن ( CLMUL ) [3] |
اینتل
پردازندههای اینتل زیر از دستورالعمل AES-NI پشتیبانی میکنند: [4]
- پردازنده مبتنی بر 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 و جدیدتر
- پردازنده "تجهیزات سنگین"
- پردازندههای مبتنی بر بولدوزر [5]
- پردازندههای مبتنی بر Piledriver
- پردازندههای مبتنی بر Steamroller
- پردازندههای بر پایه بیل و جدیدتر
- پردازندههای مبتنی بر ذن
- پردازندههای مبتنی بر Zen +
شتاب دهنده سخت افزاری در سایر معماری ها
پشتیبانی از AES با دستورالعملهای پردازنده غیر مجاز نیز در آخرین پردازندههای SPARC ( T3، T4، T5، M5 و به جلو) و در آخرین پردازنده های ARM در دسترس است. پردازنده SPARC T4 ،که در سال 2011 معرفی شدهاست، دارای دستورالعملهای سطح_کاربر میباشد در مراحل AES را پشتیبانی میکند. [6] این دستورالعملها علاوه بر دستورهای رمزنگاری سطح بالاتر میباشد . معماری پردازنده ARMv8-A، که در سال 2011 معرفی شد، از جمله ARM Cortex-A53 و A57 (اما پردازندههای قبلی v7 مانند Cortex A5، 7، 8، 9، 11، 15 را شامل نمیشود) نیز دستورالعملهای سطح کاربر که مراحل AES را اجرا میکنند را دارند. [7] در آگوست 2012، IBM اعلام کرد [8] که معماری آینده Power7 + از AES پشتیبانی خواهد کرد . دستورها در این معماری با دستورهای AES-NI یکسان نیستند، اما قابلیتهای مشابهی را در اختیار مصرفکننده میگذارند.
IBM Z9 یا هستههای اصلی پردازنده بعدی AES را به عنوان تک دستور العمل AES ECB / CBC AES ECB / CBC از طریق سخت افزار CryptoExpress IBM اجرا میکنند. [9] اجرای این نسخه AES تک دستورالعمل، از اجرای Intel NIها راحتتر میباشد، اما ممکن است برای اجرای الگوریتمهای دیگر که بر اساس توابع مرحله ای AES میباشد گسترش نیابد (مانند تابع رمزگذاری گرداب (whirlpool)).
پشتیبانی از پردازنده های x86
پردازندههای VIA x86، AMD Geode و Marvell Kirkwood (که در لینوکسARM، mv_cesa) از شتاب دهندههای درایوری به جای AES استفاده میکنند.(نگاه کنید به API Crypto (لینوکس).)
تراشههای زیر، در حالی که از سخت افزار شتاب دهندههای AES پشتیبانی میکنند، از دستورالعمل AES پشتیبانی نمیکنند:
ARM معماری
اطلاعات برنامهنویسی در ARM Architecture Reference Manual ARMv8 برای مشخصات معماری ARMv8-A موجود است . [15]
- معماری ARMv8-A
- فرمتهای رمزنگاری ARM بهطور اختیاری بر روی هستههای ARM Cortex-A30 / 50/70 پشتیبانی میشوند
- شتاب دهندههای سخت افزاری رمزنگاری / موتورهای
معماری دیگر
- Atmel XMEGA [21] (شتاب دهنده در تراشه با اجرای موازی، دستورالعمل نیست)
- SPARC T3 و پردازندههای بعدی پشتیبانی سخت افزاری برای چند الگوریتم رمزنگاری، از جمله AES دارند.
- Cavium Octeon MIPS [22] تمامی پردازندههای مبتنی بر MIPS مبتنی بر Cavium Octeon دارای پشتیبانی سخت افزاری برای چند الگوریتم رمزنگاری هستند، از جمله AES با استفاده از دستورالعملهای خاص coprocessor 3.
کارایی
پاتریک اشمیت و اکیم راس در تحلیل عملکرد AES-NI، نتایج قابل توجهی از تعداد زیادی از برنامههای کاربردی که در حال حاضر بهینه سازی شدهاند تا از مزایای قابلیت AES-NI اینتل بهره مند شوند، بدست اوردهاند. [23] تجزیه و تحلیل عملکرد با استفاده از کتابخانه امنیت ++Crypto افزایش بهره را از حدود 28.0 سیکل در بایت به 3.5 سیکل در هر بایت با AES / GCM به نسبت پنتیوم 4 بدون شتاب دهنده نشان داد. [24] [25]
پشتیبانی از نرمافزار
بیشتر کامپایلرهای مدرن میتوانند دستورالعمل AES را منتشر کنند.
نرمافزار امنیتی و رمزنگاری زیادی از مجموعه دستورالعمل AES پشتیبانی میکند . از جمله زیرساخت اصلی زیر:
- رمزنگاری API: نسل بعدی (CNG) (نیاز به ویندوز) [26]
- API Crypto لینوکس
- جاوا 7 HotSpot
- خدمات امنیت شبکه (NSS) نسخه 3.13 و بالاتر [27] (استفاده شده توسط فایرفاکس و گوگل کروم )
- Solaris Cryptographic Framework [28] در Solaris 10 به بعد
- در FreeBSD را (OpenCrypto API (aesni (4) driver [29]
- OpenSSL 1.0.1 و بالاتر [30]
- FLAM / FLUC 5.1.08 (منتشر شد 2015-08-24) و بالاتر [31]
همچنین نگاه کنید
- پسوند پیشرفته Vector (AVX)
- دستور CLMUL مجموعه
- مجموعه دستورالعمل FMA (FMA3، FMA4)
- RdRand
منابع
- "Intel Software Network". Intel. Archived from the original on 7 April 2008. Retrieved 2008-04-05.
- Shay Gueron (2010). "Intel Advanced Encryption Standard (AES) Instruction Set White Paper" (PDF). Intel. Retrieved 2012-09-20.
- "Carry-Less Multiplication". Intel.
- "Intel® Product Specification Advanced Search". Intel® ARK (Product Specs).
- "Following Instructions". AMD. November 22, 2010. Archived from the original on November 26, 2010. Retrieved 2011-01-04.
- Dan Anderson (2011). "SPARC T4 OpenSSL Engine". Oracle. Retrieved 2012-09-20.
- Richard Grisenthwaite (2011). "ARMv8-A Technology Preview" (PDF). ARM. Archived from the original (PDF) on 10 June 2018. Retrieved 2012-09-20.
- Timothy Prickett Morgan (2012). "All the sauce on Big Blue's hot chip: More on Power7+". The Register. Retrieved 2012-09-20.
- "IBM System z10 cryptography". IBM. Retrieved 2014-01-27.
- "AMD Geode™ LX Processor Family Technical Specifications". AMD.
- "VIA Padlock Security Engine". VIA. Archived from the original on 15 May 2011. Retrieved 2011-11-14.
- شتاب دهنده سخت افزار رمزنگاری در OpenWRT.org
- "VIA Eden-N Processors". VIA. Archived from the original on 2011-11-11. Retrieved 2011-11-14.
- "VIA C7 Processors". VIA. Retrieved 2011-11-14.
- "ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile" (PDF). ARM. December 2017. Archived from the original (PDF) on 17 اكتبر 2019. Retrieved 3 فوریه 2019. Check date values in:
|archive-date=
(help) - "Security System/Crypto Engine driver status". sunxi.montjoie.ovh.
- "Linux Cryptographic Acceleration on an i.MX6" (PDF). Linux Foundation. February 2017. Archived from the original (PDF) on 26 August 2019. Retrieved 3 February 2019.
- "Cryptographic module in Snapdragon 805 is FIPS 140-2 certified". Qualcomm.
- "RK3128 - Rockchip Wiki". Rockchip wiki. Archived from the original on 28 January 2019. Retrieved 3 February 2019.
- "The Samsung Exynos 7420 Deep Dive - Inside A Modern 14nm SoC". AnandTech.
- "Using the XMEGA built-in AES accelerator" (PDF). Retrieved 2014-12-03.
- "Cavium Networks Launches Industry's Broadest Line of Single and Dual Core MIPS64®-based OCTEON™ Processors Targeting Intelligent Next Generation Networks". Archived from the original on 7 December 2017. Retrieved 2016-09-17.
- P. Schmid and A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware. Retrieved 2010-08-10.
- T. Krovetz, W. Dai (2010). "How to get fast AES calls?". Crypto++ user group. Retrieved 2010-08-11.
- "Crypto++ 5.6.0 Pentium 4 Benchmarks". Crypto++ Website. 2009. Archived from the original on 19 September 2010. Retrieved 2010-08-10.
- "Intel Advanced Encryption Standard Instructions (AES-NI)". Intel. March 2, 2010. Archived from the original on 7 July 2010. Retrieved 2010-07-11.
- "AES-NI enhancements to NSS on Sandy Bridge systems". 2012-05-02. Retrieved 2012-11-25.
- "System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview)". Oracle. September 2010. Retrieved 2012-11-27.
- "FreeBSD 8.2 Release Notes". FreeBSD.org. 2011-02-24. Archived from the original on 12 April 2011. Retrieved 2011-12-18.
- «OpenSSL: CVS Web Interface». بایگانیشده از اصلی در ۷ ژوئیه ۲۰۱۲. دریافتشده در ۲۵ سپتامبر ۲۰۱۹.
- "www.flam.de :: Products". flam.de.