Here's my issue and someone can help me understand it so I can program it correctly.
I have a point(X,Y) on an Elliptical Curve E(a,b) where a=-3 and B is a large number that is in hexidecimal from -51BD. To compress this point oficially in a program, we know that every X on the curve has two Y's, one even and one odd. Therefore, we only need to store whether the corresponding Y point we are storing is even or odd. So to store the point (X,Y) now, we shift X ridding of it's most significant bit and add 1 if the Y point is odd. Therefore, one can think of the compressed point being 2*X+B(B is the bit we added if it was odd or even) since the multiplication by 2 is implied because of the shift. I understand this completely, it's recovering the original point that has me confused.
Since a point on the curve is given by the equation y^2=x^3+ax+b, we can find square roots officially in GF(p). The following is from my spec which confuses me
If p is prime and congruent to 3 mod 4, one of it's square roots is z^((p+1)/4) mod p and the other is p-z^((p+1)/4) mod p. How would I solve this?What is z?
For example, I know how to extract the x point so let's say I simplify the right side of the equation to be 7 and p is 11. Would I be trying to solve for the square root that's equal to 7 mod 11?
I tried to be very detailed to express my difficulty. Thanks for any help