AES-NI 指令是否同时加速 AES-128 和 AES-256?

信息安全 虚拟专用网 AES 表现
2021-08-29 13:22:53

我有一个硬件加速的 AES 处理器。考虑到这一点,我的第一个问题是:

AES-NI指令是否加速AES -128AES -256 加密/解密?

其次,如果这些 CPU 确实加速了两种长度,为什么一些VPN提供商会推荐使用AES -128来提高速度

2个回答

是的,AES-NI 加速了 AES-128 和 AES-256,是的,硬件加速的 AES-128 和 AES-256 之间存在性能差异,根据https://software.intel.com/en-us/文章/intel-aes-ni-performance-enhancements-hytrust-datacontrol-case-study#_Toc397546813

在 Ivy Bridge 上,这里是 Cyber​​-Block-Chaining (CBC) 和基于 XEX 的带有 128 位和 256 位密钥的密文窃取 (XTS) 模式的调整码本模式的原始数字。

请注意,对于 XTS 模式,只使用了一半的密钥,因此 XTS-512 本质上使用的是 256 位密钥。

# Tests are approximate using memory only (no storage IO).
#  Algorithm | Key |  Encryption |  Decryption     
     aes-cbc   128b   581.3 MiB/s  1961.8 MiB/s     
     aes-cbc   256b   431.4 MiB/s  1503.1 MiB/s     
     aes-xts   256b  1665.6 MiB/s  1642.3 MiB/s     
     aes-xts   512b  1318.3 MiB/s  1282.1 MiB/s

对于哈斯韦尔:

# Tests are approximate using memory only (no storage IO).
#  Algorithm | Key |  Encryption |  Decryption     
     aes-cbc   128b   663.8 MiB/s  2486.8 MiB/s     
     aes-cbc   256b   493.9 MiB/s  2043.6 MiB/s     
     aes-xts   256b  2265.2 MiB/s  2261.1 MiB/s     
     aes-xts   512b  1778.0 MiB/s  1778.7 MiB/s

我们做了以下观察:

  • 对于 CBC 加密,我们看到 128 位密钥比 256 位密钥提高了 40%。
  • 对于 XTS 加密,我们看到 256 位密钥比 512 位密钥提高了 30%。
  • 对于 CBC 解密,我们看到 128 位密钥比 256 位密钥提高了 20%。
  • 对于 XTS 解密,我们看到 256 位 XTS 密钥比 512 位密钥提高了 30%。

请注意,这是 AES-NI 指令的原始性能。在现实世界中,数据加密/解密时会发生磁盘 I/O 或网络 I/O,这会影响现实世界的性能。

另外,我相信上述数字是针对单核性能的,在使用多核的实现中,即使 AES-256 也可以轻松地使 SSD 和大多数网络的整个 I/O 带宽饱和。

正如这里所指出的,确保为您的目的使用正确的链接模式实际上对吞吐量的影响比密钥大小要大得多。

是的,如果您的设备具有 AES-NI,它会加速并提高应用程序使用您所知道的 AES 加密执行加密和解密的速度。您已经拥有链接上的密钥。

VPN 提供商不知道您是否有 AES-NI。他们停留在没有它的标准情况下。他们推荐更灵活的 AES-128。无论如何,如果你有 AES-NI,AES-128 比 AES-256 快。我认为我们正在谈论一些几乎难以察觉的事情。