Mamy Ratsimbazafy b1ef2682d6
Modular exponentiation (arbitrary output) and EIP-198 (#242)
* implement arbitrary precision modular exponentiation (prerequisite EIP-198)

* [modexp] implement exponentiation modulo 2ᵏ

* add inversion (mod 2ᵏ)

* [modexp] High-level wrapper for powmod with odd modulus

* [modexp] faster exponentiation (mod 2ᵏ) for even case and Euler's totient function odd case

* [modexp] implement general fast modular exponentiation

* Fix modular reduction with 64-bit modulus + fuzz powmod vs GMP

* add benchmark

* add EIP-198 support

* fixups following self review

* fix test paths
2023-06-01 23:38:41 +02:00
..
2023-02-24 09:47:36 +01:00
2023-02-24 09:47:36 +01:00
2023-02-24 09:47:36 +01:00
2022-02-27 01:49:08 +01:00
2022-02-27 01:49:08 +01:00

Common configuration

  • Low-level logical and physical word definitions
  • Elliptic curve declarations
  • Cipher suites

Algorithms

Modular inverses mod 2ⁿ

We use "Dumas iterations" to precompute Montgomery magic number -1/n[0] (mod 2^Wordbitwidth)

Explanation p11 "Dumas iterations" based on Newton-Raphson: