
AES指令集
高級加密標準指令集(或稱英特爾高級加密標準新指令,簡稱AES-NI)是一個x86指令集架構的擴展,用於Intel和AMD微處理器,由Intel在2008年3月提出。[1]該指令集的目的是改進應用程序使用高級加密標準(AES)執行加密和解密的速度。
目錄
新指令[編輯]
指令 | 描述[2] |
---|---|
AESENC
|
執行一輪AES加密流 |
AESENCLAST
|
執行最後一輪AES加密流 |
AESDEC
|
執行一輪AES解密流 |
AESDECLAST
|
執行最後一輪AES解密流 |
AESKEYGENASSIST
|
協助生成AES輪迴密鑰 |
AESIMC
|
協助AES逆列混合 |
PCLMULQDQ
|
無進位乘法(CLMUL)[3] |
Intel和AMD x86架構[編輯]
- Intel[4]
- Intel Westmere架構處理器,具體如下:
- Intel Westmere-EP (Xeon 56xx)(也稱Gulftown至強5600系列DP服務器型號)處理器。
- Intel Clarkdale處理器(酷睿i3、奔騰和賽揚除外)。
- Intel Arrandale處理器(賽揚、奔騰、酷睿i3、酷睿i5-4XXM除外)。
- Intel Sandy Bridge處理器。
- Intel Ivy Bridge處理器
- 僅所有i5、i7、至強和i3-2115C[9]。
- Intel Haswell處理器。(i3-4000m[10]、奔騰和賽揚除外)
- Intel在其網站上有一個列表,寫明了支持AES-NI的處理器[11]
- Skylake以後微架構的大部分Intel Core、Pentium、Celeron。
- Intel Westmere架構處理器,具體如下:
- AMD
- AMD Ryzen架構處理器。
- AMD Bulldozer架構處理器。[12]
- AMD Piledriver架構處理器。
- AMD Steamroller架構處理器。
- AMD Jaguar架構處理器。
- AMD Puma架構處理器。
其他架構中的硬件加速[編輯]
在最新的SPARC處理器(T4、T5、M5及之後)和最新的ARM處理器中也有非特權的處理器指令提供AES支持。2011年推出的SPARC T4處理器有用戶級指令實現AES輪迴。[13]這些指令補充了更高級別的加密命令。2011年宣布的ARMv8-A處理器架構也有用戶級指令實現AES輪迴,這包括ARM Cortex-A53和A57,但不包括以前的v7處理器(如Cortex A5、7、8、9、11、15)。[14]2012年8月,IBM宣布[15]即將到來的Power7+架構有望提供AES支持。這些架構中的命令不能直接與AES-NI命令兼容,但可實現類似的功能。
IBM z9或更晚的主機處理器支持AES作為單操作碼(KM、KMC)AES ECB/CBC指令,使用IBM的CryptoExpress硬件。[16]這些單指令的AES版本比Intel NI更容易使用,但不能被擴展實現為基於AES輪迴函數的其他算法,例如Whirlpool散列算法。
x86 CPU的支持[編輯]
VIA x86 CPU、AMD Geode和Marvell Kirkwood(ARM,mv_cesa在Linux中)使用基於驅動程序的AES加速處理(另見Crypto API (Linux))。下列產品支持AES硬件加速,雖然不支持AES-NI指令集:
ARM架構[編輯]
其他架構[編輯]
- Atmel xmega [23](並行執行的片上加速器,不是指令)
性能[編輯]
在《AES-NI 性能分析》中,Patrick Schmid和Achim Roos 指出:「...少數已使用英特爾 AES-NI 進行優化的應用程序表現出了傲人成績」。 [24] 一次使用Crypto++函式庫執行的性能分析顯示,相比沒有加速的Pentium 4, AES/GCM的吞吐量從大約每字節28.0周期顯著提升至每字節3.5周期。 [25][26]
軟件支持[編輯]
大多數現代編譯器能夠利用AES指令。
許多安全和加密軟件支持AES指令集,包括下列核心基礎設施:
- Cryptography API: Next Generation (CNG)(需要Windows)[27]
- Linux的Crypto API
- Java 7 HotSpot
- Network Security Services(NSS)3.13及更高版本 [28](被Firefox和Google Chrome使用)
- Solaris Cryptographic Framework[29]從Solaris 10起。
- FreeBSD的OpenCrypto API(aesni(4) 驅動程序)[30]
- OpenSSL 1.0.1及以上[31]
- FLAM®/FLUC® 5.1.08(2015-08-24發布)及以上
參考[編輯]
參考資料[編輯]
- ^ Intel Software Network. Intel. [2008-04-05]. (原始內容存檔於2008年4月7日).
- ^ Shay Gueron. Intel Advanced Encryption Standard (AES) Instruction Set White Paper. Intel. 2010 [2012-09-20].
- ^ Carry-Less Multiplication. Intel.
- ^ ARK: Advanced Search
- ^ AnandTech - The Sandy Bridge Review: Intel Core i7-2600K, i5-2500K and Core i3-2100 Tested
- ^ Compare Intel® Products
- ^ AES-NI support in TrueCrypt (Sandy Bridge problem)
- ^ Some products can support AES New Instructions with a Processor Configuration update, in particular, i7-2630QM/i7-2635QM, i7-2670QM/i7-2675QM, i5-2430M/i5-2435M, i5-2410M/i5-2415M. Please contact OEM for the BIOS that includes the latest Processor configuration update..
- ^ [1]
- ^ http://ark.intel.com/products/75104/Intel-Core-i3-4000M-Processor-3M-Cache-2_40-GHz
- ^ Intel® Product Specification Advanced Search
- ^ Following Instructions. AMD. November 22, 2010 [2011-01-04]. (原始內容存檔於2010年11月26日).
- ^ Dan Anderson. SPARC T4 OpenSSL Engine. Oracle. 2011 [2012-09-20].
- ^ Richard Grisenthwaite. ARMv8-A Technology Preview (PDF). ARM. 2011 [2012-09-20].
- ^ Timothy Prickett Morgan. All the sauce on Big Blue's hot chip: More on Power7+. The Register. 2012 [2012-09-20].
- ^ IBM System z10 cryptography. IBM. [2014-01-27].
- ^ AMD Geode™ LX Processor Family Technical Specifications. AMD.
- ^ VIA Padlock Security Engine. VIA. [2011-11-14].
- ^ 19.0 19.1 Cryptographic Hardware Accelerators on OpenWRT.org
- ^ VIA Eden-N Processors. VIA. [2011-11-14]. (原始內容存檔於2011-11-11).
- ^ VIA C7 Processors. VIA. [2011-11-14].
- ^ Security System driver status
- ^ Using the XMEGA built-in AES accelerator (PDF). [2014-12-03].
- ^ P. Schmid and A. Roos. AES-NI Performance Analyzed. Tom's Hardware. 2010 [2010-08-10].
- ^ T. Krovetz, W. Dai. How to get fast AES calls?. Crypto++ user group. 2010 [2010-08-11].
- ^ Crypto++ 5.6.0 Pentium 4 Benchmarks. Crypto++ Website. 2009 [2010-08-10]. (原始內容存檔於19 September 2010).
- ^ Intel Advanced Encryption Standard Instructions (AES-NI). Intel. March 2, 2010 [2010-07-11]. (原始內容存檔於7 July 2010).
- ^ AES-NI enhancements to NSS on Sandy Bridge systems. 2012-05-02 [2012-11-25].
- ^ System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview). Oracle. September 2010 [2012-11-27].
- ^ FreeBSD 8.2 Release Notes. FreeBSD.org. 2011-02-24 [2011-12-18].
- ^ OpenSSL: CVS Web Interface Archive.is的存檔,存檔日期2012-07-07
外部連結[編輯]
- Intel®高級加密標準指令(AES-NI)
- AES指令集白皮書 (4.4 Mbyte, pdf) // Intel
|