1
0
mirror of https://github.com/golang/go synced 2024-11-08 04:46:11 -07:00
go/src/crypto
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 crypto/aes: make the GHASH part of AES-GCM faster 2017-08-18 21:40:57 +00:00
cipher crypto/aes: make the GHASH part of AES-GCM faster 2017-08-18 21:40:57 +00:00
des crypto: revise wording about cryptographically broken algorithms 2017-05-04 12:31:18 +00:00
dsa all: gofmt 2017-06-21 03:14:30 +00:00
ecdsa crypto/ecdsa: correct code comment. 2016-10-02 19:38:37 +00:00
elliptic crypto/elliptic: fix carry bug in x86-64 P-256 implementation. 2017-04-19 18:07:31 +00:00
hmac
internal/cipherhw crypto/{cipher,tls,internal/cryptohw}: prioritise AES-GCM when hardware support is present. 2016-11-07 20:01:18 +00:00
md5 crypto: revise wording about cryptographically broken algorithms 2017-05-04 12:31:18 +00:00
rand crypto/rand: batch large calls to linux getrandom 2017-08-09 19:29:14 +00:00
rc4 crypto/{aes,cipher,rc4}: fix out of bounds write in stream ciphers 2017-08-09 04:17:51 +00:00
rsa crypto/rsa: drop uneeded parameter in modInverse 2017-08-09 19:28:40 +00:00
sha1 internal/cpu: new package to detect cpu features 2017-05-10 17:02:21 +00:00
sha256 internal/cpu: new package to detect cpu features 2017-05-10 17:02:21 +00:00
sha512 internal/cpu: new package to detect cpu features 2017-05-10 17:02:21 +00:00
subtle
tls crypto/tls: disallow handshake messages fragmented across CCS 2017-08-15 18:45:06 +00:00
x509 crypto/x509: add PublicKeyAlgorithm.String() 2017-08-15 18:44:54 +00:00
crypto.go crypto: add BLAKE2b and BLAKE2s hash constants 2017-03-01 19:26:16 +00:00
issue21104_test.go crypto/{aes,cipher,rc4}: fix out of bounds write in stream ciphers 2017-08-09 04:17:51 +00:00