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.