RFR: 8267125: AES Galois CounterMode (GCM) interleaved implementation using AVX512 + VAES instructions [v7]
Valerie Peng
valeriep at openjdk.java.net
Fri Aug 6 19:47:38 UTC 2021
On Wed, 4 Aug 2021 02:24:05 GMT, Smita Kamath <svkamath at openjdk.org> wrote:
>> I would like to submit AES-GCM optimization for x86_64 architectures supporting AVX3+VAES (Evex encoded AES). This optimization interleaves AES and GHASH operations.
>> Performance gain of ~1.5x - 2x for message sizes 8k and above.
>
> Smita Kamath has updated the pull request incrementally with five additional commits since the last revision:
>
> - Merge branch 'aes-gcm' of github.com:smita-kamath/jdk into aes-gcm
> - Updates, comment and variable cleanup
> - merge rest
> - merge
> - fixes and code comments
src/java.base/share/classes/com/sun/crypto/provider/GaloisCounterMode.java line 87:
> 85: private static final int MAX_BUF_SIZE = Integer.MAX_VALUE;
> 86: // data size when buffer is divided up to aid in intrinsics
> 87: private static final int TRIGGERLEN = 65536; // 64k
With this interleaved impl, is this TRIGGERLEN still needed? The implGCMCrypt(byte[] in, int inOfs, int inLen,
byte[] ct, int ctOfs, byte[] out, int outOfs, GCTR gctr, GHASH ghash) method is intrinsified, would there be a difference in increasing the number of gctr/ghash calls inside an already intrinsified method?
-------------
PR: https://git.openjdk.java.net/jdk/pull/4019
More information about the security-dev
mailing list