constantine/constantine/config
Mamy Ratsimbazafy c312210878
Rework towering (#148)
* naive removal of out-of-place mul by non residue

* Use {.inline.} in a consistent manner across the codebase

* Handle aliasing for quadratic multiplication

* reorg optimization

* Handle aliasing for quadratic squaring

* handle aliasing in mul_sparse_complex_by_0y

* Rework multiplication by nonresidue, assume tower and twist use same non-residue

* continue rework

* continue on non-residues

* Remove "NonResidue *" calls

* handle aliasing in Chung-Hasan SQR2

* Handla aliasing in Chung-Hasan SQR3

* Use one less temporary in Chung Hasan sqr2

* handle aliasing in cubic extensions

* merge extension tower in the same file to reduce duplicate proc and allow better inlining

* handle aliasing in cubic inversion

* drop out-of-place proc from BigInt and finite fields as well

* less copies in line_projective

* remove a copy in fp12 by lines
2021-02-06 16:28:38 +01:00
..
README.md Decimal conversion (#139) 2021-01-29 20:42:36 +01:00
common.nim FpDbl revisited (#144) - 7% perf improvement everywhere, up to 30% in double-width primitives 2021-02-01 03:52:27 +01:00
curves.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
curves_declaration.nim Rework towering (#148) 2021-02-06 16:28:38 +01:00
curves_derived.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
curves_parser.nim Rework towering (#148) 2021-02-06 16:28:38 +01:00
curves_prop_core.nim Rework towering (#148) 2021-02-06 16:28:38 +01:00
curves_prop_derived.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00
precompute.nim Decimal conversion (#139) 2021-01-29 20:42:36 +01:00
type_bigint.nim Double-width tower extension part 1 (#72) 2020-08-20 10:21:39 +02:00
type_ff.nim Fr: Finite Field parametrized by the curve order (#115) 2021-01-22 00:09:52 +01:00

README.md

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: