• Vlad Krasnov's avatar
    crypto/elliptic,crypto/ecdsa: P256 amd64 assembly · 7bacfc64
    Vlad Krasnov authored
    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.
    
    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
    
    Updated the submission for faster verify/ecdh, fixed some asm syntax
    and API problems and added benchmarks.
    
    Change-Id: I86a33636747d5c92f15e0c8344caa2e7e07e0028
    Reviewed-on: https://go-review.googlesource.com/8968
    Run-TryBot: Adam Langley <agl@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarAdam Langley <agl@golang.org>
    7bacfc64
ecdsa.go 6.84 KB