The Fundamental Theorem of Arithmetic

This post discusses and proves the fundamental theorem of arithmetic.

Finding the prime factors of a large integer is no easy feat. For example, the ninth Fermat number F_9=2^{2^9}+1 has 155 digits and has the following three prime factors:

    a=\text{2,424,833}

    b=\text{7,455,602,825,647,884,208,337,395,736,200,454,918,783,366,342,657}

    \displaystyle \begin{aligned} c=&\text{ 741,640,062,627,530,801,524,787,141,901,937,474,059,940,781,097,519} \\&\text{ 023,905,821,316,144,415,759,504,705,008,092,818,711,693,940,737}  \end{aligned}

These prime factors have 9 digits, 49 digits and 99 digits, respectively. They were published in 1993 after lengthy calculations involving approximately 700 workstations and a supercomputer using a number field sieve algorithm (see [1]). If the project were to be done today, it could certainly be done much faster and more efficiently with the current state of the art in supercomputing. However, the project will still be no trivial feat.

The following 617-digit integer is a product of two prime numbers and has yet to be factored by anyone (or any computer or any sets of computers). According RSA Laboratories, barring fundamental algorithmic or computing advances, the above number or other similarly sized number is expected to stay unfactored in the decades to come. For more background about this large number, see see RSA challenge number and RSA factoring challenge.

    25195908475657893494027183240048398571429282126204
    03202777713783604366202070759555626401852588078440
    69182906412495150821892985591491761845028084891200
    72844992687392807287776735971418347270261896375014
    97182469116507761337985909570009733045974880842840
    17974291006424586918171951187461215151726546322822
    16869987549182422433637259085141865462043576798423
    38718477444792073993423658482382428119816381501067
    48104516603773060562016196762561338441436038339044
    14952634432190114657544454178424020924616515723350
    77870774981712577246796292638635637328991215483143
    81678998850404453640235273819513786365643912120103
    97122822120720357

Though the implementation of prime factorization may be difficult or even impossible for large numbers, the fundamental theorem of arithmetic guarantees that any positive integer can be expressed uniquely as a product of prime numbers. The fundamental theorem of arithmetic is an essential theorem in number theory. In this post, we present of proof of this fundamental theorem.

___________________________________________________________________________________________________________________

The Fundamental Theorem of Arithmetic

The theorem has two parts – the existence and the uniqueness of the prime factorization. The existence part is relatively easy. We first prove the existence part. We use Euclid’s lemma to prove the uniqueness part.

Lemma 1

Any integer n>1 has a prime divisor.

Proof

Let n be an integer with n>1. If n is prime, then it has a prime divisor, namely n. So assume n is not prime. Then n=h \cdot k for some positive integers h and k smaller than n.

Now consider the set D of all positive integer divisors of n. The set D is nonempty since h and k belong to this set. The set D is also a finite set since an integer can only have finitely many integer divisors. Every finite set of real numbers has a smallest element. Let p be the least element of D.

The p must be a prime number. If not, p would have a positive divisor q that is smaller than p. Then q is also a positive divisor of n, contradicting that p is the least element of D. \blacksquare

Lemma 2

Any integer n>1 is a product of prime numbers.

Proof

We prove by induction. The lemma is certainly true for n=2. Suppose the lemma is true for all positive integers k where k<n.

If n is prime, then we are done. Assume n is not prime. Then n=h \cdot k for some positive integers h and k smaller than n. By induction hypothesis, both h and k are product of prime numbers. We can conclude that n is also a product of prime numbers. \blacksquare

Euclid’s Lemma

If p is a prime number and p \ \lvert (a \cdot b), then p \ \lvert \ a or p \ \lvert \ b.

Proof of Euclid’s Lemma is found in this post. As a corollary of Euclid’s Lemma, we have the following lemma.

Lemma 3

If p is a prime number and p \ \lvert (a_1 \cdot a_2 \cdots a_n), then p \ \lvert \ a_i for some i.

Proof

We prove by induction. The case for n=2 is the Euclid’s Lemma. Assume that the lemma is true for n where n \ge 2. Suppose that p \ \lvert (a_1 \cdot a_2 \cdots a_n \cdot a_{n+1}). By Euclid’s lemma, we have p \ \lvert (a_1 \cdot a_2 \cdots a_n) or p \ \lvert \ a_{n+1}. In the first case, the induction hypothesis tells us that p \ \lvert \ a_i for some i with 1 \le i \le n. In the second case p \ \lvert \ a_{n+1}. The two cases together tell us that p \ \lvert \ a_i for some i with 1 \le i \le n+1.

Since the validity of the lemma for n implies the validity of the lemma for n+1 and since the lemma is true for n=2, we now know that the lemma is true for all integers n>1. This establishes the lemma. \blacksquare

Fundamental Theorem of Arithmetic

Any interger n>1 can be expressed uniquely as a product of prime numbers.

Proof

Let n be an integer with n>1. The existence of the prime factors of n is established by Lemma 2. We now show there is only one prime factorization for n. We would like to point out that order of the prime factors is not important. For example, we consider 2 \times 2 \times 3 \times 11 and 11 \times 3 \times 2 \times 2 as the same factorization for the integer 132.

Suppose that n=p_1 \cdot p_2 \cdots p_h and n=q_1 \cdot q_2 \cdots q_k are prime factorizations of the integer n. We show that each p_i is identical to some q_j and each q_s is identical to some p_t. This implies that the prime numbers p_1,p_2,\cdots,p_h are simply a rearrangement of q_1,q_2,\cdots,q_k such that the only difference for the two factorizations is in the order of the factors.

Note that p_1 \cdot (p_2 \cdots p_h)=q_1 \cdot q_2 \cdots q_k. Thus p_1 divides q_1 \cdot q_2 \cdots q_k, or we write p_1 \ \lvert \ q_1 \cdot q_2 \cdots q_k. By Lemma 3, p_1 \ \lvert \ q_j for some j. Since they are prime, p_1=q_j. Then cancel out p_1 on both side of the equation, we have

    p_2 \cdot (p_3 \cdots p_h)=q_1 \cdot q_2 \cdots q_{j-1} \cdot q_{j+1} \cdots q_k

Note that p_2 divides the right-hand side of the above equation. By Lemma 3, p_2 \ \lvert \ q_w for some w. Continue in this same manner, we see that each p is identical to some q. Furthermore, h \le k. Otherwise, there would be some p_i left after we cancel out all the q_j, leading to the situation that the product of several prime numbers is equal to one.

By interchanging p with q, the same argument will also show that each q is identical to some p. Furthermore, k \le h. Thus we have h=k and that the two factorizations are really just rearrangement of each other. \blacksquare

Comment

From the fundamental theorem of arithmetic, it follows that any positive integer greater than one can be expressed uniquely in the following way:

    p_1^{e_1} \cdot p_2^{e_2} \cdot p_3^{e_3} \cdots p_m^{e_m}

where m is a positive integer and each e_i \ge 1. Such representation of an integer is called a prime-power decomposition. For example, 7056=2^4 \cdot 3^2 \cdot 7^2.

___________________________________________________________________________________________________________________

Reference

  1. Lenstra, A. K., Lenstra, H. W., Manasse, M. S., Pollard, J. M. The Factorization of the Ninth Fermat Number, Mathematiics of Computation, Volume 61, Number 203, July 1993, Pages 319-349.

___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}

Advertisements

Euclid’s Lemma

This post presents a proof of a lemma that is called Euclid’s lemma, which is one of the fundamental properties of prime numbers. Euclid’s lemma is the statement that if a prime number divides a product of two integers, it must divide one of the factors.

This post is also part of the series of posts leading up to the fundamental theorem of arithmetic.

We first state all the tools that we need. The notation a \ \lvert \ b refers to the condition that a divides b. The notation \text{GCD}(a,b) refers to the greatest common divisor (GCD) of a and b.

___________________________________________________________________________________________________________________

Extended Euclidean Algorithm

Let a and b be integers. Let d be the greatest common divisor of a and b. Then there exist integers x and y such that ax+by=d.

The extended Euclidean algorithm is discussed in this post.

___________________________________________________________________________________________________________________

Lemma 1

If d \ \lvert \ a \cdot b and \text{GCD}(d,a)=1, then d \ \lvert \ b.

Proof of Lemma 1

Suppose that d \ \lvert \ a \cdot b and \text{GCD}(d,a)=1. According to the extended Euclidean algorithm, for some integers x and y, we have ax+dy=1. Multiplying both sides by b, we have:

    abx+dby=b

Since d divides each term in the left-hand side of this equation, d \ \lvert \ b. \blacksquare

___________________________________________________________________________________________________________________

Euclid’s Lemma

If p is a prime number and p \ \lvert (a \cdot b), then p \ \lvert \ a or p \ \lvert \ b.

Proof

If p \ \lvert \ a, then we are done. So assume p \not \lvert \ a, which implies that \text{GCD}(p,a)=1. If \text{GCD}(p,a)>1, \text{GCD}(p,a)=p, which implies that p \ \lvert \ a. Note that the only positive divisors of p are 1 and p. By Lemma 1, p \ \lvert \ b. \blacksquare

Comment

We would like to point out that the assumption that p is prime is essential in Euclid’s lemma. Note that 8 \ \lvert \ (4 \cdot 4) and 8 \not \lvert \ 4.

___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}

The Euclidean Algorithm

In this post, we discuss the Euclidean algorithm, which is an algorithm to find the greatest comment divisor of two integers. This post is also part of the series of posts leading up to the fundamental theorem of arithmetic.

___________________________________________________________________________________________________________________

Introduction

Computing the greatest common divisor of two integers is a topic that is taught in elementary school and is also an important tool that is of great interest in number theory. We begin with an example.

Let’s take a simple example of finding the greatest common divisor of 24 and 60. In a math class in elementary school, one motivation of finding the greatest common divisor of 24 and 60 is to reduce the fraction \displaystyle \frac{24}{60} to its lowest terms. The first step is to factor each of the numerator and denominator using their prime factors.

    \displaystyle \frac{24}{60}=\frac{2 \cdot 2 \cdot 2 \cdot 3}{2 \cdot 2 \cdot 3 \cdot 5}

Then cross out the prime factors common to the numerator and the denominator.

    \displaystyle \frac{24}{60}=\frac{\not 2 \cdot \not 2 \cdot 2 \cdot \not 3}{\not 2 \cdot \not 2 \cdot \not 3 \cdot 5}=\frac{2}{5}

The product of the prime factors that are crossed out is 2 \cdot 2 \cdot 3=12, which is the greatest common divisor of 24 and 60.

Thus the greatest common divisor of two integers a and b is the product of the prime factors shared by the two numbers. This approach of finding the greatest common divisor depends on performing prime factorization, which is a hard problem for larger numbers. This approach, though conceptually clear, is clearly not efficient.

We need an algorithm for finding the greatest common divisor that does not require prime factorization. First, we have another discussion on the greatest common divisor.

___________________________________________________________________________________________________________________

The Greatest Common Divisor

Let a and b be integers. We say that a divides b (denoted by a \ \lvert \ b) if there is an integer q such that b=q \cdot a. In other words, a \ \lvert \ b if a divides b without leaving a remainder. For examples, 3 \ \lvert \ 18 and 7 \ \lvert \ 91. When a does not divide b, we write a \not \lvert \ b.

The greatest common divisor (or GCD) of two integers a and b is denoted by \text{GCD}(a,b) and is the largest positive integer that divides both a and b. It is clear that \text{GCD}(a,b) is the positive integer d such that

  • d \lvert a and d \lvert b.
  • If c \lvert a and c \lvert b, then c \le d.

The greatest common integer \text{GCD}(a,b) is always uniquely defined. Each integer has only finitely many integer divisors. So there are only finitely many divisors common to both a and b (the integer 1 is one of them). Any finite set of real numbers has a unique largest element. Thus among all the common divisors of a and b, there is the largest one, which we denote by \text{GCD}(a,b). Consequently, \text{GCD}(a,b) \ge 1.

We can observe that the greatest common integer \text{GCD}(a,b) defined in this section is identical to the product of the prime factors shared by the two integers a and b.

To perform the Euclidean algorithm, we need the division algorithm and the following lemma.

Division Algorithm
Let a and b be positive integers. Then there exist unique integers q and r such that

    a = q \cdot b + r

where 0 \le r <b.

Lemma 1
Let a and b be positive integers. If a=q \cdot b+r, then \text{GCD}(a,b)=\text{GCD}(b,r).

For the discussion in this post, Lemma 1 is used in conjunction with the division algorithm. So we put Lemma 1 in words in the context of applying the division algorithm as follows.

    Lemma 1. When a is divided by b, the GCD of a and b is the same as the GCD of the b (the divisor) and the r (the remainder).

Proof of Lemma 1

Suppose that a=q \cdot b+r. Let h=\text{GCD}(a,b) and k=\text{GCD}(b,r).

We first show that h \le k. Since a=q \cdot b+r and since h \ \lvert \ a and h \ \lvert \ b, we have h \ \lvert \ r. Since h is a common divisor of b and r, h \le k.

Now we show k \le h. Since a=q \cdot b+r, it follows that k is a common divisor of a and b. Thus k \le h. \blacksquare

___________________________________________________________________________________________________________________

Example for the Euclidean Algorithm

Before defining the Euclidean algorithm, let’s look at an example. Find the greatest common divisor of 1638 and 357.

The Euclidean algorithm can be implemented using subtraction or division.

In the subtraction implementation, the Euclidean algorithm starts with a pair of positive integers and forms a new pair that consists of the smaller integer and the difference between the larger and smaller integers. The process repeats until the two integers are equal. That number then is the greatest common divisor of the original pair.

The following series of subtractions derives the GCD of 1638 and 357.

    \displaystyle (1) \ \ \ \ \ \ \ \  \begin{bmatrix} \text{ }&\text{ }&\text{Number 1}&\text{ }&\text{Number 2}  \\\text{ }&\text{ }&\text{ } \\ 1&\text{ }&1638&\text{ }&357  \\ 2&\text{ }&1281&\text{ }&357  \\ 3&\text{ }&924&\text{ }&357  \\ 4&\text{ }&567&\text{ }&357  \\ 5&\text{ }&210&\text{ }&357  \\ 6&\text{ }&210&\text{ }&147 \\ 7&\text{ }&63&\text{ }&147 \\ 8&\text{ }&63&\text{ }&84 \\ 9&\text{ }&63&\text{ }&21 \\ 10&\text{ }&42&\text{ }&21 \\ 11&\text{ }&21&\text{ }&21  \end{bmatrix}

In the above table, to go from one row to the next, the larger number is reduced by the smaller number. The process stops when the two numbers are equal. In this example, the greatest common divisor is 21.

Note that the above subtraction process can be speeded up by doing division instead. For example, in the above table, you can jump from row 1 to row 5 by applying the division algorithm. The following is the same example using the division implementation.

    \displaystyle (2) \ \ \ \ \ \ \ \  \begin{bmatrix} \text{ }&\text{ }&\text{Number 1}&\text{ }&\text{Number 2}  \\\text{ }&\text{ }&\text{ } \\ 1&\text{ }&1638&\text{ }&357  \\ 2&\text{ }&210&\text{ }&357  \\ 3&\text{ }&210&\text{ }&147  \\ 4&\text{ }&63&\text{ }&147  \\ 5&\text{ }&63&\text{ }&21  \\ 6&\text{ }&0&\text{ }&21   \end{bmatrix}

To go from row 1 to row 2, divide 1638 by 357 to obtain the remainder 210. To go from row 2 to row 3, divide the larger number 357 by 210 to obtain the remainder 147. Repeat the process until one of reaching the remainder of zero. Then the other number in the last row is the greatest common divisor. The following is the same algorithm with the divisions added.

    \displaystyle (3) \ \ \ \ \ \ \ \  \begin{bmatrix} \text{ }&\text{ }&\text{Number 1}&\text{ }&\text{Number 2}&\text{ }&\text{Division}  \\\text{ }&\text{ }&\text{ } \\ 1&\text{ }&1638&\text{ }&357&\text{ }&1638=4 \cdot 357+210  \\ 2&\text{ }&210&\text{ }&357&\text{ }&357=1 \cdot 210+147  \\ 3&\text{ }&210&\text{ }&147&\text{ }&210=1 \cdot 147+63  \\ 4&\text{ }&63&\text{ }&147&\text{ }&147=2 \cdot 63+21  \\ 5&\text{ }&63&\text{ }&21&\text{ }&63=3 \cdot 21+0  \\ 6&\text{ }&0&\text{ }&21   \end{bmatrix}

As shown in the example, the Euclidean algorithm only requires subtractions or divisions and no prime factorization. Note that Lemma 1 is used throughout the two tables. Let’s look at table (3). Because the GCD of two numbers is the same as the divisor and the remainder (Lemma 1), the GCD of any row is identical to the GCD of the row below.

___________________________________________________________________________________________________________________

The Euclidean Algorithm

In the remainder of the post, we only discuss the division implementation of the Euclidean algorithm. The following is the description of the Euclidean algorithm.

    Euclidean Algorithm

    Let a_0 and b_0 be positive integers. Assume b_0<a_0. Start with the pair (a_0,b_0) and forms a new pair that consists of the smaller number and the remainder derived from dividing the larger number by the smaller. The process stops when reaching a remainder of zero. Then the other number in the last pair is the GCD of a_0 and b_0.

    To describe using some notations, we have the following divisions.

      a_0=q_0 \cdot b_0+r_0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \le r_0<b_0

      b_0=q_1 \cdot r_0+r_1 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \le r_1<r_0

      r_0=q_0 \cdot r_1+r_2 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \le r_2<r_1

        \cdots \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \cdots

        \cdots \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \cdots

        \cdots \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \cdots

      r_k=q_k \cdot r_{k+1}+r_{k+2} \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 0 \le r_{k+2}<r_{k+1}

    The above series of divisions will stop at some k=j where the remainder r_{j+2}=0. We have r_j=q_j \cdot r_{j+1} where r_{j+1} is the GCD of the original pair (a_0,b_0).

Proof of Euclidean Algorithm
In the above notation, the sequence of non-negative numbers b_0>r_0>r_1>r_2>\cdots must stop at some point. Eventually r_{j+2}=0 for some j. We have r_j=q_j \cdot r_{j+1}+0. Then \text{GCD}(r_j,r_{j+1})=\text{GCD}(r_{j+1},0)=r_{j+1}.

Applying Lemma 1 repeatedly, we have:

    \displaystyle \begin{aligned} r_{j+1}&=\text{GCD}(r_{j+1},0) \\&=\text{GCD}(r_j,r_{j+1}) \\&\cdots \\&\cdots \\&\cdots \\&=\text{GCD}(r_1,r_{2}) \\&=\text{GCD}(r_0,r_{1}) \\&=\text{GCD}(b_0,r_{0}) \\&=\text{GCD}(a_0,b_{0}) \end{aligned}

Comment. Note that the statement of the Euclidean algorithm starts with a pair of positive integers (a_0,b_0). If either number is negative, we can take the absolute value of the numbers and the resulting GCD is the same as the original pair. This follows from the following fact.

    \text{GCD}(a,b)=\text{GCD}(-a,b)=\text{GCD}(a,-b)=\text{GCD}(-a,-b)

___________________________________________________________________________________________________________________

The Extended Euclidean Algorithm

Another good use of the Euclidean algorithm is to find integer solutions to the linear equation ax+by=d where d=\text{GCD}(a,b). This is called the extended Euclidean algorithm. We state it in the following lemma.

Lemma 2 (The Extended Euclidean Algorithm)
Let a and b be integers. Let d=\text{GCD}(a,b). Then there are integers x and y that satisfies the equation ax+by=d.

Proving Lemma 2 is a matter of working the Euclidean algorithm backward. We demonstrate the idea using our example of a=1638 and b=357. The following shows the divisions used in Table (3) above.

    1638=4 \cdot 357+210
    357=1 \cdot 210+147
    210=1 \cdot 147+63
    147=2 \cdot 63+21
    63=3 \cdot 21+0

We start off with the second to the last division and work backward.

    \displaystyle \begin{aligned} 21&=147-2 \cdot 63 \\&=147 - 2 \cdot (210-147) \\&=3 \cdot 147-2 \cdot 210 \\&=3 \cdot (357-210)-2 \cdot 210 \\&=3 \cdot 357 -5 \cdot 210 \\&=3 \cdot 357- 5 \cdot (1638- 4 \cdot 357) \\&=(-5) \cdot 1638+23 \cdot 357  \end{aligned}

The equation 1638x+357y=21 has solution x=-5 and y=23.

As an application to the extended Euclidean algorithm, we have the following corollary.

Corollary 3
Let a and b be integers. Let h=\text{GCD}(a,b). Then if k is a common divisor of a and b, then k is a divisor of h.

Proof of Corollary
According to Lemma 2, there are integers x and y such that ax+by=h. Note that k divides each term on the left-hand side of this equation. So k divides h as well. \blacksquare
___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}

The Division Algorithm

The division algorithm is the conceptual underpinning of many concepts in number theory (congruence arithmetic is one example). In this post, we present a proof of the division algorithm and connect it to one important property of congruence.

This post is also part of the series of posts leading up to the fundamental theorem of arithmetic.

___________________________________________________________________________________________________________________

The Division Algorithm

The following is the statement of the division algorithm.

    Let a and b be positive integers. Then there exist unique integers q and r such that

      a = q \cdot b + r

    where 0 \le r <b.

Let A be the set A=\left\{a-jb: j=0,1,2,3,\cdots \right\}. Let A_+ be the following subset of A.

    A_+=\left\{x \in A: x \ge 0 \right\}

The set A_+ is a set of non-negative integers. Hence it must have a least element, say r. Then we have r=a-qb for some positive integer q. Furthermore, we have 0 \le r<b. If r>b, r would not be the least element of A_+ since we can subtract b into r to obtain a-(q+1)b, which is less than r and is an element of A_+.

We now have found integers q and r such that a = q \cdot b + r. It remains to show that the integers q and r are unique. Suppose there are also integers q_0 and r_0 such that

    a=q \cdot b + r=q_0 \cdot b + r_0

After subtracting, (q-q_0) \cdot b + (r-r_0)=0. Since b divides both 0 and (q-q_0) \cdot b, b must divides r-r_0. This means that r-r_0=0, since both r and r_0 are non-negative integers that are less than b. Thus r=r_0 and in turns q-q_0. \blacksquare

Conceptually the division algorithm tells us that there is a unique remainder r upon division of a by b. In terms of actual computation, it does not tell us how to find the remainder or the quotient. However it is the conceptual underpinning of many concepts and ideas in number theory.


___________________________________________________________________________________________________________________

Congruence

We now use the division algorithm to prove one important property of congruence. The symbol a \equiv b \ (\text{mod} \ m) means that m divides a-b (in words, we say a is congruent to b modulo m). For a basic discussion of congruence arithmetic, see “A basic discussion of congruences”. We prove the following property of congruence.

    For every integer a, a \equiv r \ (\text{mod} \ m) for a unique integer r with 0 \le r<m.

In other words, any integer is congruence modulo m to one and only one element r in the set \left\{0,1,2,\cdots,m-1 \right\}. The integer r is called the least residue of a modulo m.

The above property about least residue follows from the division algorithm. Let a be any integer. If a=0, clearly a \equiv 0 \ (\text{mod} \ m). We can assume that a \ne 0.

Now consider the case that a>0. By the division algorithm, there are integers q and r such that a=q \cdot m+r where 0 \le r <m. Thus a \equiv r \ (\text{mod} \ m).

Consider the case that a<0. By the division algorithm, there are integers q and r such that -a=q \cdot m+r where 0 \le r <m. Immediately we have a=(-q) \cdot m+(-r). Thus a \equiv -r \ (\text{mod} \ m). Note that -r \equiv m-r \ (\text{mod} \ m). Thus a \equiv m-r \ (\text{mod} \ m)/

One concluding remark is that any least residue that is found in the above argument is unique. This is because no two distinct elements of the set \left\{0,1,2,\cdots,m-1 \right\} can be congruent to each other. \blacksquare

___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}

A basic discussion of congruences

When performing the division 45 \div 7, the remainder is 3. What is the remainder in the division 9664^{79081} \div 55049? What is the remainder in the division of (2^{57885161} - 1) by 524287? If you have special software, you can determine quickly that the remainder for the first question is the number 1020. Note that the number 2^{57885161} - 1 in the second question is the current largest known prime number at the writing of this post. The special software you use might have to struggle a little to come up with the answer of 255. Without special software, you can use congruence arithmetic to perform the above calculations.

Congruence notation was invented by the great mathematician Carl Friedrich Gauss (1777 – 1855). It is hard to overstate the importance of the role of congruence in number theory. The notion not only eases calculation but also makes statements of theorems much easier to state and simplifies the proofs of theorems. This post is a basic discussion of congruence.

For more information about congruence or modular arithmetic, see the number theory introductory text [1] or the Wikepedia entry on modular arithmetic.

___________________________________________________________________________________________________________________

Basic Discussion

Given integers a, b and m with m>0, the statement that a is congruent to b modulo m means that the difference a-b is divisible by m. In symbol, we write a \equiv b \ (\text{mod} \ m). The number m is the modulus of the congruence. We also use the notation m \lvert a-b to refers to the statement that a-b is divisible by m. We repeat the definition below.

    a \equiv b \ (\text{mod} \ m) \ \ \ \Longleftrightarrow \ \ \  m \lvert a-b \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)

The following two properties of congruence that can be easily verified from definition (1).

    a \equiv b \ (\text{mod} \ m) \ \ \ \Longleftrightarrow \ \ \ a=b+k \cdot m \text{ for some integer } k \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2a)

    b+k \cdot m \equiv b \ (\text{mod} \ m) \text{ for all integers } k \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2b)

Another meaning of congruence modulo m comes from the division algorithm. For example, the division 45 \div 7 gives the remainder 3, i.e., 45=6 \cdot 7 +3. So for the division a \div m where both a and m are both positive, we have a=q \cdot m+r for some integer r with 0 \le r <m (call the remainder) and some integer q. From this we can conclude that every integer a is congruent modulo m to exactly one integer from the set \left\{0,1,2,\cdots,m-1 \right\}. The integer r is called the least residue of a modulo m. We summarize as follows: for every integer a,

    a \equiv r \ (\text{mod} \ m) \text{ for a unique integer } r \text{ with } 0 \le r < m \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (3)

For a proof of property (3), see this post. Another characteristic of congruence modulo m is the following property.

    a \equiv b \ (\text{mod} \ m) \Longleftrightarrow \text{ each of } a \text{ and } b \text{ leaves the same remainder }

              \text{ when divided by } m \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ (4)

All the above conditions point to the cyclical nature of congruence, which can be visualized in a diagram. The figure is below describes congruence modulo 12.

You can start at any point in the above diagram. Every time you add or subtract the modulus m=12, you go around the circle and come back to the same point you start from (conditions 2 and 4). Two integers are related congruence modulo 12 if they can be reduced by the division algorithm to the same time in the clock (condition 3).

___________________________________________________________________________________________________________________

Some Properties for Congruence

Congruence arithmetic is similar to conventional arithmetic. However, there are important differences. For example, comparing congruence with the equality sign = will help us see some of the differences. To set up the comparison, the following are some operations on real numbers we would like to focus on:

Operations on real numbers:

    a=b \ \ \Longrightarrow \ \ b=a \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{R1}

    a=b \text{ and } b=c \ \ \Longrightarrow \ \ a=c \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{R2}

    a=b \text{ and } c=d \ \ \Longrightarrow \ \ a+c=b+d \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{R3}

    a=b \text{ and } c=d \ \ \Longrightarrow \ \ a \cdot c=b \cdot d \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{R4}

    ac=bc \text{ and } c \ne 0 \ \ \Longrightarrow \ \ a=b \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{R5}

All the above arithmetic operations on real numbers have analog in congruence except for R5. The following are the equivalence in congruence operations.

    a \equiv b \ (\text{mod} \ m) \ \ \Longrightarrow \ \ b \equiv a \ (\text{mod} \ m) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{C1}

    a \equiv b \ (\text{mod} \ m) \text{ and } b \equiv c \ (\text{mod} \ m) \ \ \Longrightarrow \ \ a \equiv c \ (\text{mod} \ m) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{C2}

    a \equiv b \ (\text{mod} \ m) \text{ and } c \equiv d \ (\text{mod} \ m) \ \ \Longrightarrow \ \ a+c \equiv b+d \ (\text{mod} \ m) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{C3}

    a \equiv b \ (\text{mod} \ m) \text{ and } c \equiv d \ (\text{mod} \ m) \ \ \Longrightarrow \ \ a \cdot c \equiv b \cdot d \ (\text{mod} \ m) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{C4}

    a \cdot c \equiv b \cdot c \ (\text{mod} \ m) \text{ and } c \not \equiv 0 \ (\text{mod} \ m) \ \ \Longrightarrow \ \ a \equiv b \ (\text{mod} \ m) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \text{C5}

      C5 has the additional requirement that c and the modulus m are coprime.

The properties C3 and C4 indicate that congruences may be validly added, subtracted and multiplied.

Note that the direct analog of R5 is not true in general. For example, 20 \equiv 2 \ (\text{mod} \ 6). However, 10 \not \equiv 1 (\text{mod} \ 6). In this case we cannot cancel out the common factor of 2 on both sides of the congruence. When the additional requirement that the common factor c and the modulus m are coprime (i.e. the greatest common divisor is 1), we can cancel out the common factor (as indicated by C5).

The derivation of the properties C1 through C4 is straightforward. The proof of C5 relies on Euclid’s lemma.

___________________________________________________________________________________________________________________

Some Examples

The properties in the above section are not meant to be memorized. The best approach is to work examples.

One typical congruence calculation is to find the least residue of a number a modulo m. The number a could be a sum or a product. Or it could be some number raised to an exponent. For the case of sum or product, we can start by reducing the components in the sum or product. For the case of an exponential, we can sometimes break it up into product of smaller numbers or use a “divide and conquer” approach. Let’s look at some examples.

To find 55 \cdot 67 congruence modulo 7, we do not need to first multiply. We can start by reducing each of the factors as follows:

    55 \cdot 67 \equiv 6 \cdot 4 \equiv 24 \equiv 3 \ (\text{mod} \ 7)

In the above calculation we use property C4. We have 55 \equiv 6 \ (\text{mod} \ 7) and 67 \equiv 4 \ (\text{mod} \ 7). Thus 55 \cdot 67 \equiv 6 \cdot 4 \ (\text{mod} \ 7). We really do not need to be too conscious of which property to use. Just work enough examples and the process will flow quite naturally.

To find 1567 \equiv (\text{mod} \ 13), we can start by breaking up the number 1567. The following is one example of how to do so.

    \displaystyle \begin{aligned} 1567&=30 \cdot 50 + 67 \\&=31 \cdot 50 + 17 \\&\equiv 5 \cdot 11+4=59 \ (\text{mod} \ 13)\\&=50+9 \\&\equiv 11+9 \ (\text{mod} \ 13)=20 \\&\equiv 7 \ (\text{mod} \ 13) \end{aligned}

In the above calculation, we break up 1567 into multiple of 50 with 17 added. Then starting reducing each of the numbers. Then multiply and sum to get 59. We then break it up into 50 and 9, which is reduced into 11 and 9. Finally 20 is reduced into 7 modulo 13. The properties used are C3 and C4. Once again, this type of calculation will flow naturally after working a few examples.

To find 55^{23} \equiv (\text{mod} \ 7), we can start by reducing the base 55.

    \displaystyle \begin{aligned} 55^{23}&\equiv 6^{23} \ (\text{mod} \ 7) \\&=(6^2)^{11} \cdot 6 \\&\equiv (1)^{11} \cdot 6 \ (\text{mod} \ 7) \\&\equiv 6 \ (\text{mod} \ 7)  \end{aligned}

It follows from property C4 that if a \equiv b \ (\text{mod} \ m), then a^n \equiv b^n \ (\text{mod} \ m). Based on this idea, we can reduce base 55 to the smaller base of 6. We then reduce the exponent 23 to the exponent of 11. Such a process is a “divide and conquer” process that repeatedly reduces the exponent by half down to a manageable size.

Another example. Find the 2^{100} \equiv (\text{mod} \ 101). Note that 2^7=128 and 128 \equiv 27 \ (\text{mod} \ 101).

    \displaystyle \begin{aligned} 2^{100}&= (2^{7})^{14} \cdot 2^2  \\&\equiv (27)^{14} \cdot 4 \ (\text{mod} \ 101) \\&= (27^2)^{7} \cdot 4 \\&\equiv 22^7 \cdot 4 \ (\text{mod} \ 101) \\&=(22^2)^3 \cdot 22 \cdot 4 \\&\equiv 80^3 \cdot 88 \ (\text{mod} \ 101) \\&=80^2 \cdot 80 \cdot 88 \\&\equiv 37 \cdot 80 \cdot 88 \ (\text{mod} \ 101) \\&=2960 \cdot 88 \\&\equiv 31 \cdot 88 \ (\text{mod} \ 101) \\&\equiv 1 \ (\text{mod} \ 101) \end{aligned}

The key to a reduction of power in a congruence calculation is to find the right starting point. In the above example, exponent is reduced from 100 to 14, Then subsequently, keep reducing the exponent by half in each step until reaching a size that is manageable or easy to do.

It also follows from Fermat’s little theorem that 2^{100} \equiv 1 \ (\text{mod} \ 101).

___________________________________________________________________________________________________________________

More Examples

It is well known, even to some elementary school children, that an integer is divisible by nine if the sum of the digits is divisible by nine. The proof of this fact is very easy if done using congruence. The idea for the proof will be clear from the following example.

The number 55953 is divisible by nine since 55953 = 9 \cdot 6217. Also note that the sum of its digits is 27. We can also look at the congruence angle. First, 10 \equiv 1 \ (\text{mod} \ 9), 10^2 \equiv 1 \ (\text{mod} \ 9) and 10^3 \equiv 1 \ (\text{mod} \ 9) and so on. Furthermore, we have:

    55953=5 \cdot 10^5+5 \cdot 10^3+9 \cdot 10^2+5 \cdot 10+3

We can now reduce the digital representation of 55953 using congruence.

    \displaystyle \begin{aligned} 55953&=5 \cdot 10^5+5 \cdot 10^3+9 \cdot 10^2+5 \cdot 10+3 \\&\equiv 5 \cdot 1+5 \cdot 1+9 \cdot 1+5 \cdot 1+3 \\&=27 \\&\equiv 0 \ (\text{mod} \ 9)  \end{aligned}

The above derivation shows that any positive integer is congruent modulo 9 to the sum of its digits. Thus a positive integer is divisible by 9 if and only if the sum of its digits is divisible by 9.

The same property is also true for divisibility by three. Using congruence, it can be shown that any positive integer is divisible by 3 if and only if the sum of its digits is divisible by 3.

Congruence modulo 11 is an interesting case. Note that 10 \equiv -1 \ (\text{mod} \ 11), 10^2 \equiv 1 \ (\text{mod} \ 11), and 10^3 \equiv -1 \ (\text{mod} \ 11) and so on. Thus 10^n \equiv k \ (\text{mod} \ 11) where k=1 or k=-1 depending on whether the power is even or odd. So in reducing the digital representation of a number, we need to add alternating plus and minus signs.

    \displaystyle \begin{aligned} 85647&=8 \cdot 10^4+5 \cdot 10^3+6 \cdot 10^2+4 \cdot 10+7 \\&\equiv 8 \cdot 1+5 \cdot (-1)+6 \cdot 1+4 \cdot (-1)+7 \\&=12 \\&\equiv 1 \ (\text{mod} \ 11)  \end{aligned}

Thus 85647 is not divisible by 11.

___________________________________________________________________________________________________________________

Exercises

Work the two congruence calculation mentioned at the beginning of the post. Show the following.

    9664^{79081} \equiv 1020 \ (\text{mod} \ 55049)

    2^{57885161}-1 \equiv 255 \ (\text{mod} \ 524287)

___________________________________________________________________________________________________________________

Reference

  1. Dudley U., Elementary Number Theory, 2nd ed., Dover Publications, Inc, New York, 2008

___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}

An observation about Mersenne primes

This post concerns an observation about Mersenne primes. The observation will be made after presenting an example.

Mersenne numbers are integers of the form M_n=2^n-1 where n is a positive integer. If M_n is a prime number, then M_n is said to be a Mersenne primes. Not all Mersenne numbers are prime. Are there infinitely many Mersenne primes? No one has yet been able to resolve this question. As of the writing of this post, there are only 48 known Mersenne primes, the largest of which is M_p where p=57885161, discovered in January 25, 2013. The current largest known Mersenne prime is also the current largest known prime number.

___________________________________________________________________________________________________________________

Example

In this example, p=57885161. Since M_p is prime, it is obviously not divisible by any other prime numbers. In particular, M_p is not divisible by any smaller Mersenne primes. We demonstrate this using congruence modulo arithmetic.

We wish to point out that we are not trying to establish the primality of M_p (doing that would take a great amount of super computing resources). This is merely a simple example of working with Mersenne primes and an exercise in doing congruence modulo calculation.

First, show that M_p=2^p-1 is not divisible by the Mersenne prime 2^{19}-1=524287.

If M_p=2^p-1 is divisible by 2^{19}-1, M_p \equiv 0 \ (\text{mod} \ 2^{19}-1). So we need to show 2^p-1 \not \equiv 0 \ (\text{mod} \ 2^{19}-1) or 2^p \not \equiv 1 \ (\text{mod} \ 2^{19}-1).

Note that 2^{19} \equiv 1 \ (\text{mod} \ 2^{19}-1). So it is a matter of subtracting the largest multiple of 19 out of the exponent p=57885161. We have p=57885161=3046587 \cdot 19+8. We have the following congruence calculation.

    2^{57885161}=(2^{19})^{3046587} \cdot 2^8 \equiv (1)^{3046587} \cdot 2^8=2^8=256 \ (\text{mod} \ 2^{19}-1)

Since 2^p \equiv 256 \ (\text{mod} \ 2^{19}-1) and 256 \ne 1, M_p=2^p-1 is not divisible by 2^{19}-1=524287.

The number 2^{3217}-1 is also a Mersenne prime. To show that M_p=2^p-1 is not divisible by 2^{3217}-1, we only need to show 2^p \not \equiv 1 \ (\text{mod} \ 2^{3217}-1).

Note that 2^{3217} \equiv 1 \ (\text{mod} \ 2^{3217}-1). We have p=57885161=17993 \cdot 3217 + 1680. After subtracting multiple of 3217, we have the remainder 1680. Thus 2^{57885161} congruence modulo 2^{3217}-1 is reduced to 2^{1680} congruence modulo 2^{3217}-1.

    2^{57885161} \equiv 2^{1680} \ (\text{mod} \ 2^{3217}-1)

Since 2^{1680}>1, 2^p \not \equiv 1 \ (\text{mod} \ 2^{3217}-1). Thus M_p=2^p-1 is not divisible by 2^{3217}-1.

___________________________________________________________________________________________________________________

An Observation

The above examples lead to the following observation.

    If a and b are prime numbers such that a<b, then 2^a-1 is not a divisor of 2^b-1.

As in the examples, we need to show 2^b \not \equiv 1 \ (\text{mod} \ 2^a-1). Note that 2^a \equiv 1 \ (\text{mod} \ 2^a-1). According to the division algorithm, we have b=r + a \cdot k where k is some integer and r is the remainder with 0 \le r <a. The remainder r cannot be zero. If it is, a would divide b. But this cannot be since both of them are prime numbers. Since r \ne 0, 2^r>1. We have the following congruence calculation.

    2^b = (2^a)^{k} \cdot 2^r \equiv 2^r \ (\text{mod} \ 2^a-1)

Since 2^r>1, 2^b \not \equiv 1 \ (\text{mod} \ 2^a-1). Thus 2^b-1 is not divisible by 2^a-1.

The above derivation is definitely a much cleaner demonstration than the derivations shown in the above examples.

Another way to state the above statement is that no Mersenne number can be divisible by any smaller Mersenne number.

Note that in the above statement, 2^a-1 and 2^b-1 do not need to be primes. Only the exponents a and b need to be primes. There are many Mersenne numbers that are not prime numbers. The smallest is 2^{11}-1=28*89. Other smaller non-prime Mersenne numbers are 2^{23}-1 and 2^{29}-1.

So the above statement says that even when a Mersenne number is composite, it cannot have factors of the form 2^a-1. It can certainly not have factors in the form of a Mersenne prime. In testing whether 2^b-1 is a prime, it can be safe to skip any smaller number of the form 2^a-1. This fact could be useful in testing the primality of a Mersenne number (at least marginally useful).

___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}

How to toss a coin

In this post, we demonstrate how to simulate a random coin toss using a cryptographic algorithm that was proposed by Rivest, Shamir and Adlemen in 1982 (the creators of the RSA algorithm). Tossing a coin using a cryptographic algorithm is an example of a game of mental poker.

The term mental poker refers to the game of poker played over long distance that has a mechanism for ensuring a fair game without the need for a trusted third party. Mental poker can also refer to other cryptographic games played over long distance without the need for a trusted third party (e.g. tossing a coin over long distance).

___________________________________________________________________________________________________________________

Setting the Algorithm

A full discussion of the algorithm used here can be found in the previous post Fermat’s Little Theorem and Mental Poker.

Andy and Becky are in different locations and they would like to simulate a random coin toss. First they need to agree on two positive integers that are to represent head and tail, say m_h for head and m_t for tail. These two numbers should be less than the prime number p discussed in the next paragraph.

They now need to encrypt the numbers before tossing the coin. Both players agree on a large prime number p. If the goal of preventing or minimizing cheating is important, the players should choose a prime number that is as large as feasible computationally speaking.

With the prime number p decided, each of the players chooses an encryption-decryption key, which is a pair of positive integers x_0 and x_1 such that

    x_0 \cdot x_1 \equiv 1 \ (\text{mod} \ p-1),

meaning that x_0 \cdot x_1=1+(p-1) \cdot k for some integer k.

Each of the players chooses such a pair of numbers. In terms of notation, Andy chooses a_0 and a_1. Becky chooses b_0 and b_1. Each player chooses the number pair independently and keeps it secret from the other player.

The number with the 0-subscript is the encryption key and the number with the 1-subscript is the decryption key. The following are the encryption functions, expressed in congruence modulo p, for Andy and Becky, respectively.

    f_a(m) \equiv m^{a_0} \ (\text{mod} \ p) \ \ \ \ \ \ \ \text{Andy}

    f_b(m) \equiv m^{b_0} \ (\text{mod} \ p) \ \ \ \ \ \ \ \text{Becky}

For example, if Andy wants to encrypt the number m, he raises m to the power of a_0 and looks for the remainder upon division by p. The remainder will be denoted by f_a(m). The function f_b(m) works similarly for Becky.

The following are the decryption functions, expressed in congruence modulo p, for Andy and Becky, respectively.

    g_a(c) \equiv c^{a_1} \ (\text{mod} \ p) \ \ \ \ \ \ \ \text{Andy}

    g_b(c) \equiv c^{b_1} \ (\text{mod} \ p) \ \ \ \ \ \ \ \text{Becky}

For example, if Andy wants to decrypt the number c=f_a(m), he raises c to the power of a_1 and looks for the remainder upon division by p. The remainder will be denoted by g_a(m), which will be the original number m. The proof of this fact is based on the Fermat’s Little Theorem (see the previous post Fermat’s Little Theorem and Mental Poker).

The function g_b(m) works similarly for Becky.

___________________________________________________________________________________________________________________

A Numerical Example

For illustration, we use a small prime number. We use p=7919. We emphasize that this is just for illustration. In an application where the chance for cheating is to be minimized, a large prime number should be used.

Andy and Becky use the following assignment for Head and Tail.

    \displaystyle \begin{bmatrix} \text{ }&\text{ }&\text{Head}&\text{ }&\text{Tail}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Original}&\text{ }&\text{2,500}&\text{ }&\text{5,000}    \end{bmatrix}

For this illustration, Andy chooses a_0=\text{47} and a_1=\text{52,899} by letting k=\text{314} in the equation below. Becky chooses b_0=\text{71} and b_1=\text{26,319} by letting k=\text{236} in the following equation.

    x_0 \cdot x_1=1+7918 \cdot k

Andy and Becky choose these keys independently and they keep them secret without letting the other person know. Andy encrypts both the head and tail numbers as follows:

    2500^{47} \equiv 7518=f_a(2500) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1)

    5000^{47} \equiv 698=f_a(5000) \ (\text{mod} \ 7919)  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2)

The encrypted numbers and the original numbers are displayed in the following table.

    \displaystyle \begin{bmatrix} \text{ }&\text{ }&\text{Head}&\text{ }&\text{Tail}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Original}&\text{ }&\text{2,500}&\text{ }&\text{5,000} \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Encrypted by Andy}&\text{ }&\text{7,518}&\text{ }&\text{698}   \end{bmatrix}

Of course, the above table is kept secret from Becky. However, the encrypted numbers (just the encrypted numbers) are sent to Becky for random selection.

Becky selects one of the encrypted numbers for herself (perhaps thru a coin toss). Then the other encrypted number is the choice for Andy. Suppose Becky selects 7518. Becky then encrypted the number 7518 using her key.

    7518^{71} \equiv 1341=f_b(7518) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (3)

Becky passes the encrypted number 1341 (her selection) and 698 (Andy’s selection) back to Andy. The following table lists out the numbers received by Andy.

    \displaystyle \begin{bmatrix} \text{ }&\text{ }&\text{Andy}&\text{ }&\text{Becky}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Becky's selection}&\text{ }&\text{698}&\text{ }&\text{7,518} \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Encrypted by Becky}&\text{ }&\text{ }&\text{ }&\text{1,341}   \end{bmatrix}

Andy decrypts his number 698 and gets back 2500, which is tail. He also decrypts 1341 and obtains 223, which he passes back to Becky.

    698^{52899} \equiv 5000=g_a(698) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (4)

    1341^{52899} \equiv 223=g_a(1341) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (5)

The following summarizes the results up to this point.

    \displaystyle \begin{bmatrix} \text{ }&\text{ }&\text{Andy}&\text{ }&\text{Becky}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Becky's selection}&\text{ }&\text{698}&\text{ }&\text{7,518} \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Encrypted by Becky}&\text{ }&\text{ }&\text{ }&\text{1,341}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Decrypted by Andy}&\text{ }&\text{5,000}&\text{ }&\text{223} \end{bmatrix}

Once Becky gets the decrypted number 223 from Andy, she decrypts it using her own key to obtain 2500, which is a head.

    223^{26319} \equiv 2500=g_b(223) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (6)

The following table summarizes the results of the coin toss.

    \displaystyle \begin{bmatrix} \text{ }&\text{ }&\text{Andy}&\text{ }&\text{Becky}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Becky's selection}&\text{ }&\text{698}&\text{ }&\text{7,518} \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Encrypted by Becky}&\text{ }&\text{ }&\text{ }&\text{1,341}  \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Decrypted by Andy}&\text{ }&\text{5,000}&\text{ }&\text{223} \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Decrypted by Becky}&\text{ }&\text{ }&\text{ }&\text{2,500} \\ \text{ }&\text{ }&\text{ }&\text{ }&\text{ } \\ \text{Results of Coin Toss}&\text{ }&\text{5,000}&\text{ }&\text{2,500} \end{bmatrix}

___________________________________________________________________________________________________________________

Numerical Calculation

We now show some of the calculations involved in the above encryption and decryption. We show three calculations.

    5000^{47} \equiv 698=f_a(5000) \ (\text{mod} \ 7919)  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (2)

    698^{52899} \equiv 5000=g_a(698) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (4)

    223^{26319} \equiv 2500=g_b(223) \ (\text{mod} \ 7919) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (6)

Even with the small prime number p=7919, the calculation is not done directly. For example, unless special software is used, f_a(5000) is not found by calculating 5000^{47} and then finding the remainder upon division by 7919. The following demonstrates a “divide and conquer” approach for the calculation for (2) where in each step the exponent is reduced by half.

    \displaystyle \begin{aligned} 5000^{47}&\equiv (5000^2)^{23} \cdot 5000 \ (\text{mod} \ 7919) \\&\text{ } \\&=7636^{23} \cdot 5000 \equiv (7636^2)^{11} \cdot 7636 \cdot 5000 \\&\text{ } \\&\equiv 899^{11} \cdot 7636 \cdot 5000 \\&\text{ } \\&\equiv 899^{11} \cdot 2501 \equiv (899^2)^5 \cdot 899 \cdot 2501 \\&\text{ } \\&\equiv 463^5 \cdot 899 \cdot 2501 \\&\text{ } \\&\equiv 463^5 \cdot 7322 \equiv (463^2)^2 \cdot 463 \cdot 7322 \\&\text{ } \\&\equiv 556^2 \cdot 463 \cdot 7322 \\&\text{ } \\&\equiv 556^2 \cdot 754 \\&\text{ } \\&\equiv 295 \cdot 754  \\&\text{ } \\&\equiv 698 \ (\text{mod} \ 7919) \end{aligned}

In each step in the above calculation, we use the division algorithm to obtain the remainder. For example, to go from the first line to the second line, divide 5000^2 by 7919 to obtain the remainder of 7636. The number 698 in the last step is the remainder when 295 \cdot 754 is divided by 7919. These calculations are tedious if done by hand and should be done by computer.

The calculation for (4) is that 698^{52899} \equiv 5000 \ (\text{mod} \ 7919). In other word, decrypting the encrypted number of 698 recovers the original number of 5000. This calculation can be shortened by using Fermat’s Little Theorem, which implies that 698^{7919-1} \equiv 1 \ (\text{mod} \ 7919). Thus we have:

    698^{47508} \equiv 698^{6 \cdot 7918} \equiv 1 \ (\text{mod} \ 7919)

So we can reduce 47508 from the exponent 52899, leaving the exponent 5391. We have:

    698^{52899} \equiv 698^{47508} \cdot 698^{5391} \equiv 1 \cdot 698^{5391} \ (\text{mod} \ 7919)

The following uses the “divide and conquer” approach to compute 698^{5391} modulo 7919.

    \displaystyle \begin{aligned} 698^{5391}&\equiv (698^2)^{2695} \cdot 698 \ (\text{mod} \ 7919) \\&\text{ } \\&=4145^{2695} \cdot 698 \equiv (4145^2)^{1347} \cdot 4145 \cdot 698 \\&\text{ } \\&\equiv 4714^{1347} \cdot 4145 \cdot 698 \\&\text{ } \\&\equiv 4714^{1347} \cdot 2775 \equiv (4714^2)^{673} \cdot 4714 \cdot 2775 \\&\text{ } \\&\equiv 1082^{673} \cdot 4714 \cdot 2775 \\&\text{ } \\&\equiv 1082^{673} \cdot 7081 \equiv (1082^2)^{336} \cdot 1082 \cdot 7081 \\&\text{ } \\&\equiv 6631^{336} \cdot 1082 \cdot 7081 \\&\text{ } \\&\equiv 6631^{336} \cdot 3969 \equiv (6631^2)^{168} \cdot 3969 \\&\text{ } \\&\equiv 3873^{168} \cdot 3969 \equiv (3873^2)^{84} \cdot 3969 \\&\text{ } \\&\equiv 1543^{84} \cdot 3969 \equiv (1543^2)^{42} \cdot 3969 \\&\text{ } \\&\equiv 5149^{42} \cdot 3969 \equiv (5149^2)^{21} \cdot 3969\\&\text{ } \\&\equiv 7308^{21} \cdot 3969 \equiv (7308^2)^{10} \cdot 7308 \cdot 3969 \\&\text{ } \\&\equiv 1128^{10} \cdot 7308 \cdot 3969 \\&\text{ } \\&\equiv 1128^{10} \cdot 6074 \equiv (1128^2)^{5} \cdot 6074\\&\text{ } \\&\equiv 5344^5 \cdot 6074 \equiv (5344^2)^2 \cdot 5344 \cdot 6074 \\&\text{ } \\&\equiv 2422^2 \cdot 5344 \cdot 6074 \\&\text{ } \\&\equiv2422^2 \cdot 7394 \\&\text{ } \\&\equiv 6024 \cdot 7394    \\&\text{ } \\&\equiv 5000 \ (\text{mod} \ 7919) \end{aligned}

The calculation for (6) is 223^{26319} \equiv 2500 \ (\text{mod} \ 7919). We can also get an assist from the Fermat’s Little Theorem. In this particular case, 223^{7918} \equiv 1 \ (\text{mod} \ 7919). With 26319=3 \cdot 7918+2565, we only need to calculate 223^{2565} \ (\text{mod} \ 7919), which is done below.

    \displaystyle \begin{aligned} 223^{2565}&\equiv (223^2)^{1282} \cdot 223 \ (\text{mod} \ 7919) \\&\text{ } \\&=2215^{1282} \cdot 223 \equiv (2215^2)^{641} \cdot 223 \\&\text{ } \\&\equiv 4364^{641} \cdot 223 \equiv (4364^2)^{320} \cdot 4364 \cdot 223 \\&\text{ } \\&\equiv 7220^{320} \cdot 4364 \cdot 223 \\&\text{ } \\&\equiv 7220^{320} \cdot 7054 \equiv (7220^2)^{160} \cdot 7054 \\&\text{ } \\&\equiv 5542^{160} \cdot 7054 \equiv (5442^2)^{80} \cdot 7054 \\&\text{ } \\&\equiv 3882^{80} \cdot 7054 \equiv (3882^2)^{40} \cdot 7054 \\&\text{ } \\&\equiv 67^{40} \cdot 7054 \equiv (67^2)^{20} \cdot 7054 \\&\text{ } \\&\equiv 4489^{20} \cdot 7054 \equiv (4489^2)^{10} \cdot 7054\\&\text{ } \\&\equiv 5185^{10} \cdot 7054 \equiv (5185^2)^{5} \cdot 7054  \\&\text{ } \\&\equiv 7139^{5} \cdot 7054 \equiv (7139^2)^{2} \cdot 7139 \cdot 7054 \\&\text{ } \\&\equiv 6556^2 \cdot 7139 \cdot 7054 \\&\text{ } \\&\equiv 6556^2 \cdot 1585  \\&\text{ } \\&\equiv 4723 \cdot 1585    \\&\text{ } \\&\equiv 2500 \ (\text{mod} \ 7919) \end{aligned}

___________________________________________________________________________________________________________________

\copyright \ 2013 \text{ by Dan Ma}