Fast computation of Bézout polynomials

(Alex Ozdemir)

Let be a field (in practice, a finite field of prime order). Let be distinct elements of . Let Then (since the roots are distinct) and its derivative have no common factor, so there exist polynomials and such that .

Is there an algorithm to compute the coefficients of and , from , using at most field operations?

Motivation

Say that a verifier has values in a large prime field , and that a prover wants to convince that the ’s are all distinct. But, can only do sampling, addition, multiplication, and equality testing in (and each of these operations has unit cost). can assert disequalities to establish distinctness, but this is very expensive. Another option is for and to both define a polynomial , and then for to convince that and (its derivative) share no roots. can do this by sending polynomials and (in coefficient form) to . wants to check that (as polynomials), which it can do (with high probability) by sampling a random in and checking . can test this with only operations!

But now, has to compute the coefficients for and . Is it possible for to do this in time? This would be nice, because in many zkSNARKs, already takes time, for other reasons.

The best known approaches either interpolate or use the fast extended euclidean algorithm, both of which take time.

This problem (and related ones) are important in memory-checking for zkSNARKs 1. For the related problems, see 1. One related problem that is not in 1 is negated lookup arguments, where P argues that some values are all not in a set .