In some field, suppose we have p2 = q2. Now p2 − q2 = 0 and thus (p+q)(p−q) = 0 and since we have a field there are no zero divisors and thus we have (p+q) = 0 or (p−q) = 0 or equivalently p = q or p = −q. p and −p are distinct iff p ≠ 0 and the field characteristic is not 2.

When the characteristic of a finite field is not 2, the squares take on exactly half of the non zero values.

If F is a finite field, not of characteristic 2 then 2 #{x2| x∊F∧x≠0} = #F


For characteristic 2 we have p2 = q2 → p=q and thus in finite fields, all values must have exactly one square root. It appears that in fields GF(2n) each value has exactly one square root!
(define f (let ((fft (fileVal "finiteField")) (dol ((fileVal "Do") 'DoL)))
  (lambda (q) (let ((GFp (fft 2))(2q (expt 2 q)))
  (let ((p->i (GFp 'p->i)) (i->p (GFp 'i->p))
    (* (((GFp 'fops) ((GFp 'gsip) q)) 'f*)))
  (dol 2q (lambda (i) (let ((p (i->p i))) (p->i (* p p))))))))))
(f 4) => (0 1 4 5 3 2 7 6 12 13 8 9 15 14 11 10)