pcdiy_dev
pcdiy_dev
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息
操作
页面
讨论
查看源代码
历史
查看“AES指令集”的源代码
←
AES指令集
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:editor
您可以查看和复制此页面的源代码。
'''高级加密标准指令集'''现已经集成到许多处理器中。应用程序执行高级加密标准('''A'''dvanced '''E'''ncryption '''S'''tandard)时,使用该指令集提高加密和解密的速度(以及对侧信道攻击的抵抗能力)。 == x86架构 == '''高级加密标准指令集'''(或称英特尔'''高级加密标准新指令''',简称'''AES-NI''')是一个x86指令集架构的扩展,用于Intel和AMD微处理器,由Intel在2008年3月提出。该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。 === 指令 === {| class="wikitable" !指令 !描述 |- |<code>AESENC</code> |执行一轮AES加密流 |- |<code>AESENCLAST</code> |执行最后一轮AES加密流 |- |<code>AESDEC</code> |执行一轮AES解密流 |- |<code>AESDECLAST</code> |执行最后一轮AES解密流 |- |<code>AESKEYGENASSIST</code> |协助生成AES轮回密钥 |- |<code>AESIMC</code> |协助AES逆列混合 |- |<code>PCLMULQDQ</code> |无进位乘法(CLMUL) |} === 英特尔 === 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处理器。 ** AMD Puma处理器。 == 其他架构中的硬件加速 == 在最新的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加速处理(另见Crypto API (Linux))。下列产品支持AES硬件加速,虽然不支持AES-NI指令集: * AMD Geode LX处理器。 * VIA ** VIA PadLock。 '''·''' *** 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指令集 = [https://www.qiuwenbaike.cn/wiki/AES%E6%8C%87%E4%BB%A4%E9%9B%86#top] '''高级加密标准指令集'''现已经集成到许多处理器中。应用程序执行高级加密标准(AES)时,使用该指令集提高加密和解密的速度(以及对侧信道攻击的抵抗能力)。 == 目录 == * 1 x86架构 ** 1.1 指令 ** 1.2 Intel ** 1.3 AMD * 2 其他架构中的硬件加速 ** 2.1 x86 CPU的支持 ** 2.2 ARM架构 ** 2.3 其他架构 * 3 性能 * 4 软件支持 * 5 参考 * 6 参考资料 * 7 外部链接 == x86架构 == '''高级加密标准指令集'''(或称英特尔'''高级加密标准新指令''',简称'''AES-NI''')是一个x86指令集架构的扩展,用于Intel和AMD微处理器,由Intel在2008年3月提出。该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。 === 指令 === {| class="wikitable" !指令 !描述 |- |<code>AESENC</code> |执行一轮AES加密流 |- |<code>AESENCLAST</code> |执行最后一轮AES加密流 |- |<code>AESDEC</code> |执行一轮AES解密流 |- |<code>AESDECLAST</code> |执行最后一轮AES解密流 |- |<code>AESKEYGENASSIST</code> |协助生成AES轮回密钥 |- |<code>AESIMC</code> |协助AES逆列混合 |- |<code>PCLMULQDQ</code> |无进位乘法(CLMUL) |} === 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处理器。 ** AMD Puma处理器。 == 其他架构中的硬件加速 == 在最新的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加速处理(另见Crypto API (Linux))。下列产品支持AES硬件加速,虽然不支持AES-NI指令集: * AMD Geode LX处理器。 * VIA ** VIA PadLock。 '''·''' *** 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) * Linux的Crypto API * Java 7 HotSpot * Network Security Services(NSS)3.13及更高版本 (被Firefox和Google Chrome使用) * Solaris Cryptographic Framework从Solaris 10起。 * FreeBSD的OpenCrypto API(aesni(4) 驱动程序) * OpenSSL 1.0.1及以上 * FLAM®/FLUC® 5.1.08(2015-08-24发布)及以上 转自<nowiki/>https://www.qiuwenbaike.cn/wiki/AES%E6%8C%87%E4%BB%A4%E9%9B%86<nowiki/>,未经作者授权。
返回至“
AES指令集
”。