]> Git Repo - secp256k1.git/commit - src/bench_internal.c
Effective affine addition in EC multiplication
authorPeter Dettman <[email protected]>
Tue, 4 Nov 2014 12:16:55 +0000 (19:16 +0700)
committerPieter Wuille <[email protected]>
Thu, 30 Apr 2015 16:23:21 +0000 (09:23 -0700)
commit4f9791abbae702147768c7e570dc2c5662c1125f
treee85f3cb56f5f6eafc6cc5298a6afe14e4b9ac7ec
parent22f60a62801a8a49ecd049e7a563f69a41affd8d
Effective affine addition in EC multiplication

* Make secp256k1_gej_add_var and secp256k1_gej_double return the
  Z ratio to go from a.z to r.z.
* Use these Z ratios to speed up batch point conversion to affine
  coordinates, and to speed up batch conversion of points to a
  common Z coordinate.
* Add a point addition function that takes a point with a known
  Z inverse.
* Due to secp256k1's endomorphism, all additions in the EC
  multiplication code can work on affine coordinate (with an
  implicit common Z coordinate), correcting the Z coordinate of
  the result afterwards.

Refactoring by Pieter Wuille:
* Move more global-z logic into the group code.
* Separate code for computing the odd multiples from the code to bring it
  to either storage or globalz format.
* Rename functions.
* Make all addition operations return Z ratios, and test them.
* Make the zr table format compatible with future batch chaining
  (the first entry in zr becomes the ratio between the input and the
  first output).

Original idea and code by Peter Dettman.
src/bench_internal.c
src/ecmult_gen_impl.h
src/ecmult_impl.h
src/group.h
src/group_impl.h
src/tests.c
This page took 0.023608 seconds and 4 git commands to generate.