-
Notifications
You must be signed in to change notification settings - Fork 316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Turbocharge by using Jacobi representation, 2-ary NAF and precomputation #127
Commits on Dec 2, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 0e876d4 - Browse repository at this point
Copy the full SHA 0e876d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for a93e33d - Browse repository at this point
Copy the full SHA a93e33dView commit details -
prepare Point for Jacobi implementation
make operations work correctly with PointJacobi in future since scaling Jacobi implementation to affine representation is expensive it's less computationally intensive to perform those operations using jacobi representation
Configuration menu - View commit details
-
Copy full SHA for 0133840 - Browse repository at this point
Copy the full SHA 0133840View commit details -
add implementation of EC using Jacobi representation
since Jacobi representation doesn't require calculation of modulo inverse for every addition or doubling, operations on it are much faster than with affine coordinates
Configuration menu - View commit details
-
Copy full SHA for b70d735 - Browse repository at this point
Copy the full SHA b70d735View commit details -
Configuration menu - View commit details
-
Copy full SHA for d1ded44 - Browse repository at this point
Copy the full SHA d1ded44View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5e1afee - Browse repository at this point
Copy the full SHA 5e1afeeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cb3b1c - Browse repository at this point
Copy the full SHA 0cb3b1cView commit details -
Configuration menu - View commit details
-
Copy full SHA for a8317c6 - Browse repository at this point
Copy the full SHA a8317c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5d210e3 - Browse repository at this point
Copy the full SHA 5d210e3View commit details -
implement equality without inverse_mod
since inverse_mod is very computationally expensive (around 100 multiplications) it's cheaper to just bring the fractions to the same denominator
Configuration menu - View commit details
-
Copy full SHA for dae2f33 - Browse repository at this point
Copy the full SHA dae2f33View commit details -
Configuration menu - View commit details
-
Copy full SHA for 08e3576 - Browse repository at this point
Copy the full SHA 08e3576View commit details -
verify in one place, skip for self-created points
when loading public keys, perform the point verification just once when loading private keys, do not verify the derived public point
Configuration menu - View commit details
-
Copy full SHA for 6c7099d - Browse repository at this point
Copy the full SHA 6c7099dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 191898c - Browse repository at this point
Copy the full SHA 191898cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 304c522 - Browse repository at this point
Copy the full SHA 304c522View commit details -
Configuration menu - View commit details
-
Copy full SHA for 90b3564 - Browse repository at this point
Copy the full SHA 90b3564View commit details -
Configuration menu - View commit details
-
Copy full SHA for d60ec5e - Browse repository at this point
Copy the full SHA d60ec5eView commit details -
Configuration menu - View commit details
-
Copy full SHA for a96af14 - Browse repository at this point
Copy the full SHA a96af14View commit details -
make all test cases execute in less than 0.3s on i7 4790K
Configuration menu - View commit details
-
Copy full SHA for 19962f1 - Browse repository at this point
Copy the full SHA 19962f1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 48040d7 - Browse repository at this point
Copy the full SHA 48040d7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 58eef88 - Browse repository at this point
Copy the full SHA 58eef88View commit details -
move numeric code out of __add__
don't treat the universal code for point addition specially
Configuration menu - View commit details
-
Copy full SHA for ab07a0c - Browse repository at this point
Copy the full SHA ab07a0cView commit details -
Configuration menu - View commit details
-
Copy full SHA for d4c2387 - Browse repository at this point
Copy the full SHA d4c2387View commit details -
Configuration menu - View commit details
-
Copy full SHA for b0084d9 - Browse repository at this point
Copy the full SHA b0084d9View commit details -
use tuples for calculation of multiplication
since this avoids creating new PointJacobi after every addition it makes the signing about 20% faster
Configuration menu - View commit details
-
Copy full SHA for 272349f - Browse repository at this point
Copy the full SHA 272349fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6469c2e - Browse repository at this point
Copy the full SHA 6469c2eView commit details -
looks like few merges/rebases didn't go exactly as planned and ended up duplicating test code, remove it
Configuration menu - View commit details
-
Copy full SHA for 7d9c556 - Browse repository at this point
Copy the full SHA 7d9c556View commit details -
coverage: exclude environment branches in test cases
since some branching in hypothesis strategies and in handling different python, hypothesis, openssl and unittest versions is necessary, ignore them for branch coverage remove benchmarking code and dead code from test_pyecdsa.py (we have speed.py now) and exclude a disabled test case from coverage
Configuration menu - View commit details
-
Copy full SHA for 53d87a4 - Browse repository at this point
Copy the full SHA 53d87a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8aac4a4 - Browse repository at this point
Copy the full SHA 8aac4a4View commit details -
Public_key: fix check for x and y size
the x and y needs to be on curve, so they need to be smaller than the curve's prime, not the base point order See Section 3.2.2.1 of SEC 1 v2
Configuration menu - View commit details
-
Copy full SHA for b8fdfbe - Browse repository at this point
Copy the full SHA b8fdfbeView commit details -
use curve cofactor for point verification
since multiplying a point by the order is farily expensive, skipping it (when safe to do so) greatly increases performance does not increase the speed.py numbers as point verification happens outside the signing and verifying operations
Configuration menu - View commit details
-
Copy full SHA for 8ab416b - Browse repository at this point
Copy the full SHA 8ab416bView commit details -
Configuration menu - View commit details
-
Copy full SHA for f7910cf - Browse repository at this point
Copy the full SHA f7910cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4403ec3 - Browse repository at this point
Copy the full SHA 4403ec3View commit details -
since on older distros like CentOS 6 there is python-gmpy but not python-gmpy2, support gmpy too
Configuration menu - View commit details
-
Copy full SHA for b1568d4 - Browse repository at this point
Copy the full SHA b1568d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for a67da69 - Browse repository at this point
Copy the full SHA a67da69View commit details