Applied Symbolic Computation (CS 300) Modular Arithmetic

Download Presentation

Applied Symbolic Computation (CS 300) Modular Arithmetic

Loading in 2 Seconds...

- 137 Views
- Uploaded on
- Presentation posted in: General

Applied Symbolic Computation (CS 300) Modular Arithmetic

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Applied Symbolic Computation (CS 300) Modular Arithmetic

Jeremy R. Johnson

- Objective: To become familiar with modular arithmetic and some key algorithmic constructions that are important for computer algebra algorithms.
- Modular Arithmetic
- Modular inverses and the extended Euclidean algorithm
- Fermat’s theorem
- Euler’s Identity
- Chinese Remainder Theorem
References: Rivest, Shamir, Adelman.

Definition: a b (mod n) n | (b - a)

Alternatively, a = qn + b

Properties (equivalence relation)

- a a (mod n) [Reflexive]
- a b (mod n) b a (mod n) [Symmetric]
- a b (mod n) and b c (mod n) a c (mod n) [Transitive]
Definition: An equivalence class mod n

[a] = { x: x a (mod n)} = { a + qn | q Z}

It is possible to perform arithmetic with equivalence classes mod n.

- [a] + [b] = [a+b]
- [a] * [b] = [a*b]
In order for this to make sense, you must get the same answer (equivalence) class independent of the choice of a and b. In other words, if you replace a and b by numbers equivalent to a or b mod n you end of with the sum/product being in the same equivalence class.

a1 a2 (mod n) and b1 b2 (mod n) a1+ b1 a2 + b2 (mod n)

a1* b1 a2 * b2 (mod n)

(a + q1n) + (b + q2n) = a + b + (q1 + q2)n

(a + q1n) * (b + q2n) = a * b + (b*q1 + a*q2 + q1* q2)n

The equivalence classes [a] mod n, are typically represented by the representatives a.

- Positive Representation: Choose the smallest positive integer in the class [a] then the representation is {0,1,…,n-1}.
- Symmetric Representation: Choose the integer with the smallest absolute value in the class [a]. The representation is {-(n-1)/2 ,…, n/2 }. When n is even, choose the positive representative with absolute value n/2.
- E.G. Z6 = {-2,-1,0,1,2,3}, Z5 = {-2,-1,0,1,2}

Definition: x is the inverse of a mod n, if ax 1 (mod n)

The equation ax 1 (mod n) has a solution iff gcd(a,n) = 1.

By the Extended Euclidean Algorithm, there exist x and y such that ax + ny = gcd(a,n). When gcd(a,n) = 1, we get ax + ny = 1. Taking this equation mod n, we see that ax 1 (mod n)

By taking the equation mod n, we mean applying the mod n homomorphism: m Z Zm, which maps the integer a to the equivalence class [a]. This mapping preserves sums and products.

I.E.

m(a+b) = m(a) + m(b), m(a*b) = m(a) * m(b)

Theorem: If a 0 Zp, then ap-1 1 (mod p). More generally, if

a Zp, then ap a (mod p).

Proof: Assume that a 0 Zp. Then

a * 2a * … (p-1)a = (p-1)! * ap-1

Also, since a*i a*j (mod p) i j (mod p), the numbers a, 2a, …, (p-1)a are distinct elements of Zp. Therefore they are equal to 1,2,…,(p-1) and their product is equal to

(p-1)! mod p. This implies that

(p-1)! * ap-1 (p-1)! (mod p) ap-1 1 (mod p).

- Definition: phi(n) = #{a: 0 < a < n and gcd(a,n) = 1}
- Properties:
- (p) = p-1, for prime p.
- (p^e) = (p-1)*p^(e-1)
- (m*n) = (m)* (n) for gcd(m,n) = 1.
- (p*q) = (p-1)*(q-1)

- Examples:
- (15) = (3)* (5) = 2*4 = 8. = #{1,2,4,7,8,11,13,14}
- (9) = (3-1)*3^(2-1) = 2*3 = 6 = #{1,2,4,5,7,8}

- The number of elements in Zn that have multiplicative inverses is equal to phi(n).
- Theorem: Let (Zn)* be the elements of Zn with inverses (called units). If a (Zn)*, then a(n) 1 (mod n).
Proof. The same proof presented for Fermat’s theorem can be used to prove this theorem.

Theorem: If gcd(m,n) = 1, then given a and b there exist an integer solution to the system:

x a (mod m) and x = b (mod n).

Proof:

Consider the map x (x mod m, x mod n).

This map is a 1-1 map from Zmnto Zm Zn, since if x and y map to the same pair, then x y (mod m) and x y (mod n). Since gcd(m,n) = 1, this implies that x y (mod mn).

Since there are mn elements in both Zmnand Zm Zn, the map is also onto. This means that for every pair (a,b) we can find the desired x.

- Let Zm Zn denote the set of pairs (a,b) where a Zm and b Zn. We can perform arithmetic on Zm Zn by performing componentwise modular arithmetic.
- (a,b) + (c,d) = (a+b,c+d)
- (a,b)*(c,d) = (a*c,b*d)

- Theorem: Zmn Zm Zn. I.E. There is a 1-1 mapping from Zmn onto Zm Zn that preserves arithmetic.
- (a*c mod m, b*d mod n) = (a mod m, b mod n)*(c mod m, d mod n)
- (a+c mod m, b+d mod n) = (a mod m, b mod n)+(c mod m, d mod n)
- The CRT implies that the map is onto. I.E. for every pair (a,b) there is an integer x such that (x mod m, x mod n) = (a,b).

Theorem: If gcd(m,n) = 1, then there exist em and en (orthogonal idempotents)

- em 1 (mod m)
- em 0 (mod n)
- en 0 (mod m)
- en 1 (mod n)
It follows that a*em + b* en a (mod m) and b (mod n).

Proof.

Since gcd(m,n) = 1, by the Extended Euclidean Algorithm, there exist x and y with m*x + n*y = 1. Set em = n*y and en = m*x