In §2.8, we initiated an investigation of quadratic residues. This chapter continues this investigation. Recall that an integer a is called a quadratic residue modulo a positive integer n if gcd(a, n) = 1 and a ≡ b2 (mod n) for some integer b.
First, we derive the famous law of quadratic reciprocity. This law, while historically important for reasons of pure mathematical interest, also has important computational applications, including a fast algorithm for testing if an integer is a quadratic residue modulo a prime.
Second, we investigate the problem of computing modular square roots: given a quadratic residue a modulo n, compute an integer b such that a ≡ b2 (mod n). As we will see, there are efficient probabilistic algorithms for this problem when n is prime, and more generally, when the factorization of n into primes is known.
The Legendre symbol
For an odd prime p and an integer a with gcd(a, p) = 1, the Legendre symbol (a | p) is defined to be 1 if a is a quadratic residue modulo p, and −1 otherwise. For completeness, one defines (a | p) = 0 if p | a. The following theorem summarizes the essential properties of the Legendre symbol.