我的用例涉及在 Java 中使用 AES 和 GCM 对 PB 级的大量敏感数据进行加密,我需要高吞吐量才能在合理的时间内完成该任务。
正如之前在这里询问和回答的那样,AES/GCM 在最新的 JDK 8 中仍然严重受损(在我的硬件上约为17MB/s )。我很高兴知道JEP 246为 GCM 添加了重要的硬件加速使其成为 Java 9 的路线图,但是在我撰写本文时,下一个主要 Java 版本的通用可用性已经推迟了一年多。
到目前为止,我发现最快的实现是 Bouncy Castle Provider,没有硬件加速和170MB/s 的吞吐量。我知道我的硬件通过运行原生库GnuTLS ( gnutls-cli --benchmark-ciphers ) 和OpenSSL ( openssl speed -evp aes-128-gcm ) 的基准来支持加速,对于 AES/两者的时钟速度都超过2GB/s GCM。不幸的是,我找不到围绕其中任何一个的当前 Java 包装器。我遇到的最接近的是Apache JuiCE,它建立在 OpenSSL 之上,但它在 8 年前就被废弃了。
有没有人遇到过支持 AES/GCM 硬件加速的 JCE 提供程序,我可以在短期内使用它,无论是商业的还是开源的?