Open Pratyush opened 3 years ago
cc @kobigurk
One question before implementing this is how should we be handling precomputation results for Square root algorithms. Different square root algorithms will need different precomputations
Does this new algorithm need precomputation? For the time being we can keep it simple, because the existing square-root algorithm doesn't require precomputation
The table methods with better efficiency do. The minimal-precomputation one in that paper precomputes log(n) powers of g
, which is fine to just compute on the fly as a first impl
@daira has a really helpful sage prototype for this square root algorithm (with the table optimizations) for the pasta curves!
This will probably be a very helpful reference when going to implement it here
The table-based variant does need precomputation, yes.
The current square root implementation (https://github.com/arkworks-rs/algebra/blob/master/ff/src/fields/arithmetic.rs#L225-L280) could be improved in two ways that are orthogonal to the improvements in the new algorithm:
See https://eprint.iacr.org/2020/1407