HOME

TheInfoList



OR:

In
computational number theory In mathematics and computer science, computational number theory, also known as algorithmic number theory, is the study of computational methods for investigating and solving problems in number theory and arithmetic geometry, including algorithm ...
, Cipolla's algorithm is a technique for solving a congruence of the form :x^2\equiv n \pmod, where x,n \in \mathbf_, so ''n'' is the square of ''x'', and where p is an
odd Odd means unpaired, occasional, strange or unusual, or a person who is viewed as eccentric. Odd may also refer to: Acronym * ODD (Text Encoding Initiative) ("One Document Does it all"), an abstracted literate-programming format for describing X ...
prime A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
. Here \mathbf_p denotes the finite
field Field may refer to: Expanses of open ground * Field (agriculture), an area of land used for agricultural purposes * Airfield, an aerodrome that lacks the infrastructure of an airport * Battlefield * Lawn, an area of mowed grass * Meadow, a grass ...
with p elements; \. The
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
is named after
Michele Cipolla Michele Cipolla (28 October 1880, Palermo – 7 September 1947, Palermo) was an Italians, Italian mathematician, mainly specializing in Number Theory, number theory. He was a professor of Algebraic Analysis at the University of Catania and, l ...
, an
Italian Italian(s) may refer to: * Anything of, from, or related to the people of Italy over the centuries ** Italians, an ethnic group or simply a citizen of the Italian Republic or Italian Kingdom ** Italian language, a Romance language *** Regional Ita ...
mathematician A mathematician is someone who uses an extensive knowledge of mathematics in their work, typically to solve mathematical problems. Mathematicians are concerned with numbers, data, quantity, structure, space, models, and change. History On ...
who discovered it in 1907. Apart from prime moduli, Cipolla's algorithm is also able to take square roots modulo prime powers. "History of the Theory of Numbers" Volume 1 by Leonard Eugene Dickson, p218
read online


Algorithm

Inputs: * p, an odd prime, * n \in \mathbf_p, which is a square. Outputs: * x \in \mathbf_p, satisfying x^2= n . Step 1 is to find an a \in \mathbf_p such that a^2 - n is not a square. There is no known deterministic algorithm for finding such an a, but the following
trial and error Trial and error is a fundamental method of problem-solving characterized by repeated, varied attempts which are continued until success, or until the practicer stops trying. According to W.H. Thorpe, the term was devised by C. Lloyd Morgan (1 ...
method can be used. Simply pick an a and by computing the
Legendre symbol In number theory, the Legendre symbol is a multiplicative function with values 1, −1, 0 that is a quadratic character modulo an odd prime number ''p'': its value at a (nonzero) quadratic residue mod ''p'' is 1 and at a non-quadratic residu ...
(a^2-n, p) one can see whether a satisfies the condition. The chance that a random a will satisfy is (p-1)/2p. With p large enough this is about 1/2. Therefore, the expected number of trials before finding a suitable a is about 2. Step 2 is to compute ''x'' by computing x=\left( a + \sqrt \right)^ within the
field extension In mathematics, particularly in algebra, a field extension is a pair of fields E\subseteq F, such that the operations of ''E'' are those of ''F'' restricted to ''E''. In this case, ''F'' is an extension field of ''E'' and ''E'' is a subfield of ...
\mathbf_ = \mathbf_p(\sqrt). This ''x'' will be the one satisfying x^2 =n . If x^2 = n, then (-x)^2 = n also holds. And since ''p'' is odd, x \neq -x . So whenever a solution ''x'' is found, there's always a second solution, ''-x''.


Example

(Note: All elements before step two are considered as an element of \mathbf_ and all elements in step two are considered as elements of \mathbf_.) Find all ''x'' such that x^2 = 10. Before applying the algorithm, it must be checked that 10 is indeed a square in \mathbf_. Therefore, the Legendre symbol (10 , 13) has to be equal to 1. This can be computed using
Euler's criterion In number theory, Euler's criterion is a formula for determining whether an integer is a quadratic residue modulo a prime. Precisely, Let ''p'' be an odd prime and ''a'' be an integer coprime to ''p''. Then : a^ \equiv \begin \;\;\,1\pmod& \text ...
: (10 , 13) \equiv 10^6 \equiv 1 \pmod. This confirms 10 being a square and hence the algorithm can be applied. * Step 1: Find an ''a'' such that a^2 - n is not a square. As stated, this has to be done by trial and error. Choose a=2. Then a^2 - n becomes 7. The Legendre symbol (7 , 13) has to be −1. Again this can be computed using Euler's criterion: 7^6 = 343^2 \equiv 5^2 \equiv 25 \equiv -1 \pmod. So a=2 is a suitable choice for ''a''. * Step 2: Compute x = \left( a + \sqrt \right)^ = \left( 2 + \sqrt\right)^7 in \mathbf_(\sqrt): :\left(2+\sqrt\right)^2 = 4 + 4\sqrt - 6 = -2 + 4 \sqrt :\left(2+\sqrt\right)^4 = \left(-2+4\sqrt\right)^2 = -1-3\sqrt :\left(2+\sqrt\right)^6 = \left(-2 + 4\sqrt\right)\left(-1-3\sqrt\right) = 9+2\sqrt :\left(2+\sqrt\right)^7 = \left(9+2\sqrt\right)\left(2+ \sqrt\right) = 6 So x = 6 is a solution, as well as x = -6. Indeed, 6^2 \equiv 10 \pmod.


Proof

The first part of the proof is to verify that \mathbf_ = \mathbf_p(\sqrt) = \ is indeed a field. For the sake of notation simplicity, \omega is defined as \sqrt. Of course, a^2-n is a quadratic non-residue, so there is no
square root In mathematics, a square root of a number is a number such that ; in other words, a number whose ''square'' (the result of multiplying the number by itself, or  ⋅ ) is . For example, 4 and −4 are square roots of 16, because . E ...
in \mathbf_p. This \omega can roughly be seen as analogous to the complex number i. The field arithmetic is quite obvious.
Addition Addition (usually signified by the Plus and minus signs#Plus sign, plus symbol ) is one of the four basic Operation (mathematics), operations of arithmetic, the other three being subtraction, multiplication and Division (mathematics), division. ...
is defined as :\left(x_1 + y_1 \omega \right) + \left(x_2 + y_2 \omega \right) = \left(x_1 + x_2 \right) + \left(y_1 + y_2\right) \omega.
Multiplication Multiplication (often denoted by the cross symbol , by the mid-line dot operator , by juxtaposition, or, on computers, by an asterisk ) is one of the four elementary mathematical operations of arithmetic, with the other ones being additi ...
is also defined as usual. With keeping in mind that \omega^2 = a^2-n, it becomes :\left(x_1 + y_1 \omega \right)\left(x_2 + y_2 \omega \right) = x_1 x_2 + x_1 y_2 \omega + y_1 x_2 \omega + y_1 y_2 \omega^2 = \left( x_1 x_2 + y_1 y_2 \left(a^2-n\right)\right) + \left(x_1 y_2 + y_1 x_2 \right) \omega. Now the field properties have to be checked. The properties of closure under addition and multiplication,
associativity In mathematics, the associative property is a property of some binary operations, which means that rearranging the parentheses in an expression will not change the result. In propositional logic, associativity is a valid rule of replacement f ...
,
commutativity In mathematics, a binary operation is commutative if changing the order of the operands does not change the result. It is a fundamental property of many binary operations, and many mathematical proofs depend on it. Most familiar as the name of ...
and
distributivity In mathematics, the distributive property of binary operations generalizes the distributive law, which asserts that the equality x \cdot (y + z) = x \cdot y + x \cdot z is always true in elementary algebra. For example, in elementary arithmetic, ...
are easily seen. This is because in this case the field \mathbf_ is somewhat resembles the field of
complex number In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted , called the imaginary unit and satisfying the equation i^= -1; every complex number can be expressed in the form ...
s (with \omega being the analogon of ''i'').
The additive
identity Identity may refer to: * Identity document * Identity (philosophy) * Identity (social science) * Identity (mathematics) Arts and entertainment Film and television * ''Identity'' (1987 film), an Iranian film * ''Identity'' (2003 film), ...
is 0, or more formally 0 + 0\omega: Let \alpha \in \mathbf_, then :\alpha + 0 = (x+y\omega) + (0 + 0\omega) = (x + 0) + (y + 0)\omega = x+y\omega = \alpha. The multiplicative identity is 1, or more formally 1 + 0\omega: :\alpha \cdot 1 = (x+y\omega)(1 + 0\omega) = \left(x\cdot 1 + 0 \cdot y \left(a^2-n\right)\right) + (x\cdot 0 + 1 \cdot y)\omega = x+y\omega = \alpha. The only thing left for \mathbf_ being a field is the existence of additive and multiplicative inverses. It is easily seen that the additive inverse of x+y\omega is -x-y\omega, which is an element of \mathbf_, because -x,-y \in \mathbf_p. In fact, those are the additive inverse elements of ''x'' and ''y''. For showing that every non-zero element \alpha has a multiplicative inverse, write down \alpha = x_1 + y_1 \omega and \alpha^ = x_2 + y_2 \omega. In other words, :(x_1 + y_1 \omega)(x_2 + y_2 \omega) = \left( x_1 x_2 + y_1 y_2 \left(a^2-n\right)\right) + \left(x_1 y_2 + y_1 x_2 \right) \omega = 1. So the two equalities x_1x_2 + y_1y_2(a^2-n) = 1 and x_1y_2 + y_1x_2 = 0 must hold. Working out the details gives expressions for x_2 and y_2, namely :x_2 = -y_1^x_1\left(y_1\left(a^2-n\right)-x_1^2y_1^\right)^, :y_2 = \left( y_1 \left(a^2-n\right) - x_1^2y_1^\right)^. The inverse elements which are shown in the expressions of x_2 and y_2 do exist, because these are all elements of \mathbf_p. This completes the first part of the proof, showing that \mathbf_ is a field. The second and middle part of the proof is showing that for every element x+y\omega \in \mathbf_ : (x+y\omega)^p = x - y\omega. By definition, \omega^2=a^2-n is not a square in \mathbf_p. Euler's criterion then says that :\omega^ = \left(\omega^2\right)^ = -1. Thus \omega^p = -\omega. This, together with
Fermat's little theorem Fermat's little theorem states that if ''p'' is a prime number, then for any integer ''a'', the number a^p - a is an integer multiple of ''p''. In the notation of modular arithmetic, this is expressed as : a^p \equiv a \pmod p. For example, if = ...
(which says that x^p = x for all x \in \mathbf_) and the knowledge that in fields of characteristic ''p'' the equation \left(a+b\right)^p = a^p + b^p holds, a relationship sometimes called the
Freshman's dream The freshman's dream is a name sometimes given to the erroneous equation (x+y)^n=x^n+y^n, where n is a real number (usually a positive integer greater than 1) and x,y are nonzero real numbers. Beginning students commonly make this error in computi ...
, shows the desired result :(x+y\omega)^p = x^p + y^p \omega^p = x - y\omega. The third and last part of the proof is to show that if x_0=\left(a+\omega \right)^ \in \mathbf_, then x_0^2=n \in \mathbf_p.
Compute :x_0^2 = \left(a+\omega \right)^ = (a+\omega)(a+\omega)^=(a+\omega)(a-\omega)=a^2 - \omega^2 = a^2 - \left(a^2 - n \right) = n. Note that this computation took place in \mathbf_, so this x_0 \in \mathbf_. But with Lagrange's theorem, stating that a non-zero
polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exa ...
of degree ''n'' has at most ''n'' roots in any field ''K'', and the knowledge that x^2-n has 2 roots in \mathbf_p, these roots must be all of the roots in \mathbf_. It was just shown that x_0 and -x_0 are roots of x^2-n in \mathbf_, so it must be that x_0, -x_0 \in \mathbf_p.


Speed

After finding a suitable ''a'', the number of operations required for the algorithm is 4m + 2k - 4 multiplications, 4m-2 sums, where ''m'' is the number of digits in the
binary representation A binary number is a number expressed in the base-2 numeral system or binary numeral system, a method of mathematical expression which uses only two symbols: typically "0" (zero) and "1" (one). The base-2 numeral system is a positional notation ...
of ''p'' and ''k'' is the number of ones in this representation. To find ''a'' by trial and error, the expected number of computations of the Legendre symbol is 2. But one can be lucky with the first try and one may need more than 2 tries. In the field \mathbf_, the following two equalities hold :(x+y\omega)^2 = \left(x^2 + y^2 \omega^2 \right) + \left(\left(x+y\right)^2-x^2-y^2\right)\omega, where \omega^2 = a^2-n is known in advance. This computation needs 4 multiplications and 4 sums. :\left(x+y\omega\right)^2\left(a + \omega \right) = \left( ad^2 - b\left(x+d\right)\right) + \left(d^2 - by\right)\omega, where d=(x+ya) and b=ny. This operation needs 6 multiplications and 4 sums. Assuming that p \equiv 1 \pmod 4, (in the case p \equiv 3 \pmod 4, the direct computation x \equiv \pm n^ is much faster) the binary expression of (p+1)/2 has m-1 digits, of which ''k'' are ones. So for computing a (p+1)/2 power of \left(a + \omega \right), the first formula has to be used n-k-1 times and the second k-1 times. For this, Cipolla's algorithm is better than the
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 ''r''2 ≡ ''n'' (mod ''p''), where ''p'' is a prime: that is, to find a square root of ''n'' ...
if and only if S(S-1) > 8m+20, with 2^ being the maximum power of 2 which divides p-1.


Prime power moduli

According to Dickson's "History Of Numbers", the following formula of Cipolla will find square roots modulo powers of prime: "History of the Theory of Numbers" Volume 1 by Leonard Eugene Dickson, p218, Chelsea Publishing 1952