Java的AES加速

Java的AES加速,第1张

Java的AES加速

当执行恰好是AES加密的代码时,JVM本身不会利用CPU的特殊功能:将某些代码识别为AES的实现超出了JIT编译器的能力。要使用特殊的硬件(例如,VIA处理器上的“挂锁”或较新的Intel处理器上的AES-
NI
指令),您有时必须使用“本机代码”。

JCE提供者可能会为您做到这一点。我不知道有任何现成的JCE提供程序,其中包括针对AES的优化本机代码(有一个名为Apache
JuiCE
的项目,但它似乎已经停滞了,我不知道它的状态)。但是可以想象,SunJCE会在将来的版本中做到这一点(但是,由于Oracle购买了Sun,并且OpenJDK
7的功能过于强大,因此尚不清楚何时发布下一个Java版本)。或者,硬着头皮自己使用本机代码。通过JNI调用本机代码,对于本机AES代码,一种流行的实现是Brian
Gladman的实现。。当您使用AES-
NI指令获得更大,更新的处理器时,请使用一些了解这些指令的代码来替换该本机代码,如Intel所述。

通过使用AES-128而不是AES-256,您应该获得+
40%的速度提升。目前,突破AES-128超出了人类的技术范围,并且在接下来的几十年中仍将如此。您是否真的需要256位AES密钥?



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5426807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存