]> Cypherpunks repositories - gostls13.git/commit
crypto/aes: make the GHASH part of AES-GCM faster
authorVlad Krasnov <vlad@cloudflare.com>
Fri, 18 Aug 2017 19:49:59 +0000 (12:49 -0700)
committerAdam Langley <agl@golang.org>
Fri, 18 Aug 2017 21:40:57 +0000 (21:40 +0000)
commitb2174a16c0012c71a6c6baeb5f7e76868dc411a2
tree315404ed3725b87d04b63de9dc5c9dfcaa03f9ae
parent57584a0ee1761b6204bbd8b48e1129c0217caedc
crypto/aes: make the GHASH part of AES-GCM faster

By processing 8 blocks in parallel GHASH achieves higher throughput on amd64

Results on Skylake i7:

benchmark                   old ns/op     new ns/op     delta
BenchmarkAESGCMSeal1K-8     316           314           -0.63%
BenchmarkAESGCMOpen1K-8     282           281           -0.35%
BenchmarkAESGCMSign8K-8     5611          1099          -80.41%
BenchmarkAESGCMSeal8K-8     1869          1922          +2.84%
BenchmarkAESGCMOpen8K-8     1718          1724          +0.35%

benchmark                   old MB/s     new MB/s     speedup
BenchmarkAESGCMSeal1K-8     3237.10      3260.94      1.01x
BenchmarkAESGCMOpen1K-8     3629.74      3638.10      1.00x
BenchmarkAESGCMSign8K-8     1459.82      7452.99      5.11x
BenchmarkAESGCMSeal8K-8     4382.45      4260.93      0.97x
BenchmarkAESGCMOpen8K-8     4766.41      4750.54      1.00x

Change-Id: I479f2a791a968caa1c516115b0b6b96a791a20d2
Reviewed-on: https://go-review.googlesource.com/57150
Reviewed-by: Adam Langley <agl@golang.org>
src/crypto/aes/gcm_amd64.s
src/crypto/cipher/benchmark_test.go