Monday, 8 August 2016

number theory - Distinguishing between the square roots of a quadratic residue



For a prime p, given g, x=g2r(modp), and y such that y2x(modp), is it possible to determine if ygr(modp) without calculating the discrete logarithm? Comparing numbers by size doesn't seem to help.



For example, with p=107, g=2, and x=29233(mod107), the square roots are 56 and 51modp. Is there a way to determine that 56246 just from the values of p,g,x without computing/knowing r?



EDIT: Could this be possible if r is restricted to some range? like 0r<p2 or p2r<p? Thanks!


Answer




No. Suppose that you can find "true" (with respect to g) square root in T(p) time (denote "true" square root of x as fg(x)). Then you can find discrete logarithm (for simplicity, let it take values 1,2,,p1 instead of usual choice 0,1,,p2) of any non-zero remainder modulo p in O(T(p)poly(logp)) time:



loggx={1 if x=g 2loggfg(x) if x is a quadratic residue2loggfg(gx)1 if x is a quadratic non-residue and is not equal to g.



Notice that loggfg(x)=loggx2 and loggfg(gx)=loggx+12, so computation of loggx using this recursive formula halts in O(logp) iterations. Also, making each recursive call takes
O(poly(logp)) time.



(Checking whether number is quadratic residue or not can be easily done in O(poly(logp)) time, for example one may calculate x(p1)/2modp and check whether it is 1 or 1).


No comments:

Post a Comment

real analysis - How to find limhrightarrow0fracsin(ha)h

How to find lim without lhopital rule? I know when I use lhopital I easy get $$ \lim_{h\rightarrow 0}...