AES指令集

✍ dations ◷ 2025-06-10 02:55:46 #X86架构,X86指令,高级加密标准,AMD技术

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

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

Intel支持AES-NI的处理器:

在最新的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散列算法。

VIA x86 CPU、AMD Geode和Marvell Kirkwood(ARM,mv_cesa在Linux中)使用基于驱动程序的AES加速处理(另见Crypto API (Linux)(英语:Crypto API (Linux)))。下列产品支持AES硬件加速,虽然不支持AES-NI指令集:

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

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

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

相关

  • 兰班诺兰班诺(英语:Lambanóg)是由椰子或水椰汁制成的传统菲律宾棕榈蒸馏酒。它来自已陈酿至少48小时的Tubâ(英语:Tubâ)。兰班诺起源于菲律宾北部的吕宋岛。由于其清澈的乳白色和较高
  • 科塞尔阿尔布雷希特·科塞尔(Ludwig Karl Martin Leonhard Albrecht Kossel,1853年9月16日-1927年7月5日),生于罗斯托克,德国医生。科塞尔的工作范畴是生理化学,特别是组织和细胞的化学。
  • 巴黎和约1763年的巴黎和约是七年战争的交战双方于1763年2月10日在法国巴黎签订的和约,标志着七年战争的结束。条约规定,法国将整个法属加拿大(圣皮埃尔和密克隆群岛除外)、法属路易斯安
  • 气体离心机气体离心法是一种制造浓缩铀的机械式方法,用以从天然铀中将铀-238分离出铀-235。离心机是依靠离心力原理运作,可以加速分子以上大小的物质。当圆筒状物体开始旋转,六氟化铀气体
  • 南青冈科参见正文南青冈科也叫南山毛榉科,只有一属—南青冈属,包括约35种,都是生长在南半球的乔木,分布在智利、阿根廷、澳大利亚、新西兰、新几内亚和新喀里多尼亚等地。亦曾分布于南极
  • 甲酚红甲酚红(英文全称:-Cresolsulfonephthalein)是一种三芳基甲烷染料,通常用来监测水族箱的酸醶值。甲酚红可以在多种分子化学反应中用来代替水,例如:PCR或限制酶切割。甲酚红亦可以在
  • 内蒙古第一机械集团内蒙古第一机械集团有限公司,是原国营617厂、内蒙古第一机械制造厂,又称中国兵器内蒙古第一机械,简称内蒙古第一机械、一机集团、一机,位于包头市,隶属于中国兵器工业集团公司,是
  • 贾斯汀·哈博贾斯汀·哈博(马耳他语:Justin Haber;1981年6月9日-)是一位马耳他足球运动员。在场上的位置是守门员。他现在效力于马耳他足球超级联赛球队比尔基卡拉足球俱乐部。他也代表马耳他
  • 前奏曲Op.28, No. 24 (萧邦)前奏曲Op. 28, No. 24为萧邦24首前奏曲中的乐曲,为D小调,充满热情的快板(Allegro appassionato),6/8拍。起初左手以重复五个响亮的音作引子,并以固定低音形式一直持续到接近结尾
  • 单向链表单向链表(又名单链表、线性链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过从头部开始,依序往下读取。一个单向链表的节点被分成两个部分。第一个部分保存