AES指令集

高级加密标准指令集现已经集成到许多处理器中。应用程序执行高级加密标准（AES）时，使用该指令集提高加密和解密的速度（以及对侧信道攻击的抵抗能力）。

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

 指令 
 指令 描述 AESENC执行一轮AES加密流 AESENCLAST 执行最后一轮AES加密流 AESDEC 执行一轮AES解密流 AESDECLAST执行最后一轮AES解密流 AESKEYGENASSIST协助生成AES轮回密钥 AESIMC协助AES逆列混合 PCLMULQDQ 无进位乘法（）

 Intel 
Intel支持AES-NI的处理器：
 Intel Westmere架构处理器，具体如下：
 Intel Westmere-EP (Xeon 56XX)（也称Gulftown至强5600系列DP服务器型号）处理器。
 Intel Clarkdale处理器（酷睿i3、奔腾和赛扬除外）。
 Intel Arrandale处理器（赛扬、奔腾、酷睿i3、酷睿i5-4XXM除外）。
 Intel Sandy Bridge处理器。
 桌面：全部，奔腾、赛扬、酷睿i3除外
 移动：酷睿i7和酷睿i5全部。一些供应商发售的BIOS配置已禁用该扩展，需要更新BIOS才能启用它。
 Intel Ivy Bridge处理器
 仅所有i5、i7、至强和i3-2115C。
 Intel Haswell处理器。（i3-4000M、奔腾和赛扬除外）
 Intel Skylake（和以後）處理器。

 AMD 
 AMD
AMD Ryzen处理器。
 AMD Bulldozer处理器。
 AMD Piledriver处理器。
 AMD Steamroller处理器。
 AMD Jaguar处理器。
 处理器。

 其他架构中的硬件加速 
在最新的SPARC处理器（T4、T5、M5及之后）和最新的ARM处理器中也有非特权的处理器指令提供AES支持。2011年推出的SPARC T4处理器有用户级指令实现AES轮回。这些指令补充了更高级别的加密命令。2011年宣布的ARMv8-A处理器架构也有指令实现AES轮回，这包括ARM Cortex-A53和A57，但不包括以前的v7处理器（如Cortex A5、7、8、9、11、15）。2012年8月，IBM宣布即将到来的Power7+架构有望提供AES支持。这些架构中的命令不能直接与AES-NI命令兼容，但可实现类似的功能。

IBM z9或更晚的主机处理器支持AES作为单操作码（KM、KMC）AES ECB/CBC指令，使用IBM的CryptoExpress硬件。这些单指令的AES版本比Intel NI更容易使用，但不能被扩展实现为基于AES轮回函数的其他算法，例如Whirlpool散列算法。

 x86 CPU的支持 
VIA x86 CPU、AMD Geode和Marvell Kirkwood（ARM，mv_cesa在Linux中）使用基于驱动程序的AES加速处理（另见）。下列产品支持AES硬件加速，虽然不支持AES-NI指令集：
 AMD Geode LX处理器。
 VIA
 VIA PadLock。 · Cryptographic Hardware Accelerators  on OpenWRT.org
 VIA C3 Nehemiah C5P (Eden-N)处理器。
 VIA C7 Esther C5J处理器。

 ARM架构 
 Allwinner
 使用“安全系统”的A10和A20。
 Broadcom
 使用“安全处理器”的BCM5801/BCM5805/BCM5820。
 高通
 Snapdragon 805（和以後）。
 三星電子
 Exynos 3系列（和以後）。

 其他架构 
 Atmel xmega （并行执行的片上加速器，不是指令）

 性能 
在《AES-NI 性能分析》中，Patrick Schmid和Achim Roos 指出：“...少数已使用英特尔 AES-NI 进行优化的应用程序表现出了傲人成绩”。

一次使用Crypto++函式庫执行的性能分析显示，相比没有加速的Pentium 4, AES/GCM的吞吐量从大约每字节28.0周期显著提升至每字节3.5周期。

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

许多安全和加密软件支持AES指令集，包括下列核心基础设施：
 Cryptography API: Next Generation (CNG)（Windows）

 Java 7 HotSpot
 Network Security Services（NSS）3.13及更高版本 （被Firefox和Google Chrome使用）
 从Solaris 10起。
 FreeBSD的OpenCrypto API（aesni(4) 驱动程序）
 OpenSSL 1.0.1及以上
 FLAM®/FLUC® 5.1.08（2015-08-24发布）及以上
 Bloombase Cryptographic Module 

 参考 
 高级矢量扩展（AVX）

 FMA指令集（FMA3、FMA4）
 RdRand

 参考资料 

 外部链接 
 Intel®高级加密标准指令（AES-NI）
 AES指令集白皮书 (4.4 Mbyte, pdf) // Intel

Category:X86架構
Category:X86指令
Category:高级加密标准
Category:AMD技术