跳到主要内容

JEP 164:利用 CPU 指令进行 AES 加密

QWen Max 中英对照

概述​

通过在可用时使用 x86 AES 指令,并避免不必要的 AES 密钥重新扩展,提升开箱即用的 AES 加密性能。

动机​

AES 加密在应用程序中很常见,此类应用程序期望良好的性能。对于硬件支持 AES 指令的处理器,我们应该使其开箱即用就能轻松获得良好的性能。

描述​

此项更改的意图是改进使用 AES 加密的应用程序的开箱即用性能。hotspot 编译器更改 (7184394) 和安全库更改 (7185471) 实际上是完全独立的,除了它们都与 AES 性能有关这一事实之外。

如果 x86 处理器支持此类指令,则热点编译器 AES 指令生成会自动进行(如果需要,可以使用一个标志来关闭此功能)。这些指令可以在 64 位或 32 位 x86 系统上生成。其他 CPU 类型不受影响。

库更改有助于使用相同密钥但重新初始化 Cipher 对象的应用程序,使其在加密和解密之间进行切换。避免重新扩展密钥(7185471)仅更改 com.sun.crypto.provider.AESCrypt 类中的私有变量,不会影响其他类。

测试​

可以通过标准基准测试和应用服务器测试套件来测试此更改,无论是在支持 x86 AES 指令的系统上,还是在不支持 x86 AES 指令的系统上,以确保没有意外的副作用。

影响​

  • 安全性:没有影响,这些更改仅提升了性能
  • 性能/可扩展性:需要验证新实现的性能表现