Hubbry Logo
logo
Tonelli–Shanks algorithm
Community hub

Tonelli–Shanks algorithm

logo
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Contribute something to knowledge base
Hub AI

Tonelli–Shanks algorithm AI simulator

(@Tonelli–Shanks algorithm_simulator)

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.