ECDSA secp256k1

Overview

Elliptic Curve Digital Signature Algorithm (ECDSA) is a variant of the Digital Signature Algorithm (DSA) which is based on elliptic curve cryptography(ECC). The elliptic curve secp256k1 we used to sign and verify signature is specified with a set of parameters defined in Standards for Efficient Cryptography 2 (SEC 2) 2.4.1.

Implementation on FPGA

Signing (point multiplication kG)

  • Use a precompute table of multiples of curve base point G.
  • Use NAF notation for k.
  • Optimized modular multiplicaion based on prime p .
  • Point addition/doubling calculated in Jacobian coordinate.
  • Time used to generate signature is around 0.2ms.

Verification (point multiplication aG+bP)

  • Use a precompute table of multiples of curve base point G.
  • Use NAF notation for a.
  • Optimized modular multiplicaion based on prime p.
  • Point addition/doubling calculated in Jacobian coordinate.
  • Time used to verify signature is around 0.9ms.