Trust-Machines / p256k1

Wrappers around secp256k1 to expose the underlying math, specifically unwrapped points and scalars with multiexponentiation
Apache License 2.0
12 stars 6 forks source link

Implement multimult #10

Closed xoloki closed 1 year ago

xoloki commented 1 year ago

This PR implements EC scalar/point multi multiplication using the well known Pippenger's algorithm [1]. This provides a significant speedup relative to sequential ecmult (roughly 3X faster depending on input size).

There is also a new unit test for multimult, and a criterion benchmark comparing multimult with a sequential ecmult.

[1] https://jbootle.github.io/Misc/pippenger.pdf