高级加密标准指令集现已经集成到许多处理器中。应用程序执行高级加密标准(AES)时,使用该指令集提高加密和解密的速度(以及对侧信道攻击的抵抗能力)。
x86架构
高级加密标准指令集(或称英特尔高级加密标准新指令,简称AES-NI)是一个x86指令集架构的扩展,用于Intel和AMD微处理器,由Intel在2008年3月提出。[1]该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。
Intel支持AES-NI的处理器[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 Skylake(和以後)處理器。
- AMD
- AMD Ryzen处理器。
- AMD Bulldozer处理器。[11]
- AMD Piledriver处理器。
- AMD Steamroller处理器。
- AMD Jaguar处理器。
- AMD Puma处理器。
其他架构中的硬件加速
在最新的SPARC处理器(T4、T5、M5及之后)和最新的ARM处理器中也有非特权的处理器指令提供AES支持。2011年推出的SPARC T4处理器有用户级指令实现AES轮回。[12]这些指令补充了更高级别的加密命令。2011年宣布的ARMv8-A处理器架构也有指令实现AES轮回,这包括ARM Cortex-A53和A57,但不包括以前的v7处理器(如Cortex A5、7、8、9、11、15)。[13]2012年8月,IBM宣布[14]即将到来的Power7+架构有望提供AES支持。这些架构中的命令不能直接与AES-NI命令兼容,但可实现类似的功能。
IBM z9或更晚的主机处理器支持AES作为单操作码(KM、KMC)AES ECB/CBC指令,使用IBM的CryptoExpress硬件。[15]这些单指令的AES版本比Intel NI更容易使用,但不能被扩展实现为基于AES轮回函数的其他算法,例如Whirlpool散列算法。
VIA x86 CPU、AMD Geode和Marvell Kirkwood(ARM,mv_cesa在Linux中)使用基于驱动程序的AES加速处理(另见Crypto API (Linux))。下列产品支持AES硬件加速,虽然不支持AES-NI指令集:
- Atmel xmega [22](并行执行的片上加速器,不是指令)
性能
在《AES-NI 性能分析》中,Patrick Schmid和Achim Roos 指出:“...少数已使用英特尔 AES-NI 进行优化的应用程序表现出了傲人成绩”。 [23] 一次使用Crypto++函式庫执行的性能分析显示,相比没有加速的Pentium 4, AES/GCM的吞吐量从大约每字节28.0周期显著提升至每字节3.5周期。 [24][25]
软件支持
大多数现代编译器能够利用AES指令。
许多安全和加密软件支持AES指令集,包括下列核心基础设施:
- Cryptography API: Next Generation (CNG)(Windows)[26]
- Linux的Crypto API
- Java 7 HotSpot
- Network Security Services(NSS)3.13及更高版本 [27](被Firefox和Google Chrome使用)
- Solaris Cryptographic Framework[28]从Solaris 10起。
- FreeBSD的OpenCrypto API(aesni(4) 驱动程序)[29]
- OpenSSL 1.0.1及以上[30]
- FLAM®/FLUC®(页面存档备份,存于互联网档案馆) 5.1.08(2015-08-24发布)及以上
- Bloombase Cryptographic Module [31]
参考
参考资料
外部链接
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.