我的用例涉及使用AES和Java中的GCM加密大量的PB级别的大量敏感数据,我需要高吞吐量才能在合理的时间内完成该任务.
正如之前在此处所要求和回答的那样,AES/GCM仍然在最新的JDK 8中严重瘫痪(在我的硬件上大约为17MB/s).我很高兴知道JEP 246为GCM添加了重要的硬件加速,使其成为Java 9的路线图,但是在我写这篇文章之后,下一个主要Java版本的一般可用性已经推迟了一年多.
到目前为止,我发现最快的实现是Bouncy Castle Provider,没有硬件加速和170MB/s的吞吐量.我知道我的硬件运行本机库的基准支持加速的GnuTLS(GNUTLS-CLI --benchmark-密码)和OpenSSL的(OpenSSL的速度-evp AES-128-GCM),无论是在超频的2GB/s的用于AES/GCM.不幸的是,我找不到当前的Java包装器.我遇到的最接近的是基于OpenSSL构建的Apache JuiCE,但它在8年前被废弃了.
有没有人遇到过支持AES/GCM硬件加速的JCE Provider,我可以在短期内使用它,无论是商业还是开源?