本页使用了标题或全文手工转换

AES指令集

维基百科,自由的百科全书
跳转至: 导航搜索

高级加密标准指令集(或称英特尔高级加密标准新指令,简称AES-NI)是一个x86指令集架构的扩展,用于IntelAMD微处理器,由Intel在2008年3月提出。[1]该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。

新指令[编辑]

指令 描述[2]
AESENC 执行一轮AES加密流
AESENCLAST 执行最后一轮AES加密流
AESDEC 执行一轮AES解密流
AESDECLAST 执行最后一轮AES解密流
AESKEYGENASSIST 协助生成AES轮回密钥
AESIMC 协助AES逆列混合
PCLMULQDQ 无进位乘法(CLMUL英语CLMUL_instruction_set[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处理器。
      • 桌面:全部,奔腾、赛扬、酷睿i3除外[5][6]
      • 移动:酷睿i7和酷睿i5全部。一些供应商发售的BIOS配置已禁用该扩展[7],需要更新BIOS才能启用它。[8]
    • Intel Ivy Bridge处理器
      • 仅所有i5、i7、至强和i3-2115C[9]
    • Intel Haswell处理器。(i3-4000m[10]、奔腾和赛扬除外)
    • Intel在其网站上有一个列表,写明了支持AES-NI的处理器[11]
  • AMD

其他架构中的硬件加速[编辑]

在最新的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 CPUAMD Geode和Marvell Kirkwood(ARM,mv_cesa在Linux中)使用基于驱动程序的AES加速处理(另见Crypto API (Linux)英语Crypto API (Linux))。下列产品支持AES硬件加速,虽然不支持AES-NI指令集:

ARM架构[编辑]

  • Allwinner
    • 使用“安全系统”的A10和A20。[22]
  • Broadcom
    • 使用“安全处理器”的BCM5801/BCM5805/BCM5820。[19]

其他架构[编辑]

性能[编辑]

在《AES-NI 性能分析》中,Patrick Schmid和Achim Roos 指出:“...少数已使用英特尔 AES-NI 进行优化的应用程序表现出了傲人成绩”。 [24] 一次使用Crypto++英语Crypto++函式庫执行的性能分析显示,相比没有加速的Pentium 4, AES/GCM的吞吐量从大约每字节28.0周期显著提升至每字节3.5周期。 [25][26]

软件支持[编辑]

大多数现代编译器能够利用AES指令。

许多安全和加密软件支持AES指令集,包括下列核心基础设施:

参考[编辑]

参考资料[编辑]

  1. ^ Intel Software Network. Intel. [2008-04-05]. (原始内容存档于7 April 2008). 
  2. ^ Shay Gueron. Intel Advanced Encryption Standard (AES) Instruction Set White Paper. Intel. 2010 [2012-09-20]. 
  3. ^ Carry-Less Multiplication. Intel. 
  4. ^ ARK: Advanced Search
  5. ^ AnandTech - The Sandy Bridge Review: Intel Core i7-2600K, i5-2500K and Core i3-2100 Tested
  6. ^ Compare Intel® Products
  7. ^ AES-NI support in TrueCrypt (Sandy Bridge problem)
  8. ^ 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.. 
  9. ^ [1]
  10. ^ http://ark.intel.com/products/75104/Intel-Core-i3-4000M-Processor-3M-Cache-2_40-GHz
  11. ^ ARK: Advanced Search
  12. ^ Following Instructions. AMD. November 22, 2010 [2011-01-04]. (原始内容存档于November 26, 2010). 
  13. ^ Dan Anderson. SPARC T4 OpenSSL Engine. Oracle. 2011 [2012-09-20]. 
  14. ^ Richard Grisenthwaite. ARMv8-A Technology Preview (PDF). ARM. 2011 [2012-09-20]. 
  15. ^ Timothy Prickett Morgan. All the sauce on Big Blue's hot chip: More on Power7+. The Register. 2012 [2012-09-20]. 
  16. ^ IBM System z10 cryptography. IBM. [2014-01-27]. 
  17. ^ AMD Geode™ LX Processor Family Technical Specifications. AMD. 
  18. ^ VIA Padlock Security Engine. VIA. [2011-11-14]. 
  19. ^ 19.0 19.1 Cryptographic Hardware Accelerators on OpenWRT.org
  20. ^ VIA Eden-N Processors. VIA. [2011-11-14]. 
  21. ^ VIA C7 Processors. VIA. [2011-11-14]. 
  22. ^ Security System driver status
  23. ^ Using the XMEGA built-in AES accelerator (PDF). [2014-12-03]. 
  24. ^ P. Schmid and A. Roos. AES-NI Performance Analyzed. Tom's Hardware. 2010 [2010-08-10]. 
  25. ^ T. Krovetz, W. Dai. How to get fast AES calls?. Crypto++ user group. 2010 [2010-08-11]. 
  26. ^ Crypto++ 5.6.0 Pentium 4 Benchmarks. Crypto++ Website. 2009 [2010-08-10]. (原始内容存档于19 September 2010). 
  27. ^ Intel Advanced Encryption Standard Instructions (AES-NI). Intel. March 2, 2010 [2010-07-11]. (原始内容存档于7 July 2010). 
  28. ^ AES-NI enhancements to NSS on Sandy Bridge systems. 2012-05-02 [2012-11-25]. 
  29. ^ System Administration Guide: Security Services, Chapter 13 Solaris Cryptographic Framework (Overview). Oracle. September 2010 [2012-11-27]. 
  30. ^ FreeBSD 8.2 Release Notes. FreeBSD.org. 2011-02-24 [2011-12-18]. 
  31. ^ OpenSSL: CVS Web Interface

外部链接[编辑]