Tonelli–Shanks algorithm
Tonelli–Shanks algorithm
Main page

Tonelli–Shanks algorithm

logo
Community Hub0 subscribers
What are your thoughts?
Be the first to start a discussion here.
Be the first to start a discussion here.
Tonelli–Shanks algorithm

The Tonelli–Shanks algorithm (referred to by Shanks as the RESSOL algorithm) is used in modular arithmetic to solve for r in a congruence of the form r2n (mod p), where p is a prime: that is, to find a square root of n modulo p.

Tonelli–Shanks cannot be used for composite moduli: finding square roots modulo composite numbers is a computational problem equivalent to integer factorization.

An equivalent, but slightly more redundant version of this algorithm was developed by Alberto Tonelli in 1891. The version discussed here was developed independently by Daniel Shanks in 1973, who explained:

My tardiness in learning of these historical references was because I had lent Volume 1 of Dickson's History to a friend and it was never returned.

According to Dickson, Tonelli's algorithm can take square roots of x modulo prime powers pλ apart from primes.

Given a non-zero and a prime (which will always be odd), Euler's criterion tells us that has a square root (i.e., is a quadratic residue) if and only if:

In contrast, if a number has no square root (is a non-residue), Euler's criterion tells us that:

It is not hard to find such , because half of the integers between 1 and have this property. So we assume that we have access to such a non-residue.

See all
User Avatar
No comments yet.