1
0
mirror of https://github.com/golang/go synced 2024-11-08 06:46:16 -07:00
go/src/crypto/aes
Vlad Krasnov b2174a16c0 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>
2017-08-18 21:40:57 +00:00
..
aes_gcm.go
aes_test.go
asm_amd64.s
asm_ppc64le.s crypto/aes: fix wrong instruction on ppc64le implementation 2017-04-11 20:10:08 +00:00
asm_s390x.s
block.go
cbc_s390x.go
cipher_amd64.go
cipher_generic.go
cipher_ppc64le.go crypto/aes: minor ppc64 assembly naming improvements 2017-02-21 18:42:27 +00:00
cipher_s390x.go
cipher.go
const.go
ctr_s390x.go crypto/{aes,cipher,rc4}: fix out of bounds write in stream ciphers 2017-08-09 04:17:51 +00:00
gcm_amd64.s crypto/aes: make the GHASH part of AES-GCM faster 2017-08-18 21:40:57 +00:00
gcm_s390x.go
modes_test.go
modes.go