Vlad Krasnov uploaded a change:
https://go-review.googlesource.com/8968
elliptic: assembly implementation of P256 for amd64
This is based on the implementation used in OpenSSL, from a
submission by Shay Gueron and myself. Besides using assembly,
this implementation employs several optimizations described in:
S.Gueron and V.Krasnov, "Fast prime field elliptic-curve
cryptography with 256-bit primes"
In addition a new and improved modular inverse modulo N is
implemented here. Also included performance tweaks by Andy
Polyakov from the OpenSSL team.
The performance measured on a Haswell based Macbook Pro shows 21X
speedup for the sign and 9X for the verify operations.
The operation BaseMult is 30X faster (and the Diffie-Hellman/ECDSA
key generation that use it are sped up as well).
The adaptation to Go with the help of Filippo Valsorda
Change-Id: I86a33636747d5c92f15e0c8344caa2e7e07e0028
---
M src/crypto/ecdsa/ecdsa.go
M src/crypto/ecdsa/ecdsa_test.go
M src/crypto/elliptic/elliptic.go
M src/crypto/elliptic/p256.go
A src/crypto/elliptic/p256_amd64.go
A src/crypto/elliptic/p256_math_amd64.s
6 files changed, 5,195 insertions(+), 2 deletions(-)
--
https://go-review.googlesource.com/8968