Lecture 6: Modular Arithmetic and Fast Powering
This lecture introces the concept of modular arithmetic and presents a fast
algorithm to compute the power of a number modulo another number. Constructive
algorithms, based on the extended Euclidean algorithm, to compute modular
inverses and solve the Chinese Remainder problem is presented. Finally,
a modular algorithm for integer multiplication is discussed.
Background Material
- Equivalence relations.
- Division with quotient and remainder.
- Euclidean algorithm (and extended version)
Reading
Also study Maple's Power, mod, mods, and chrem functions.
Topics
- Equivalence relations
- Equivalence modulo n
- Equivalence classes modulo n
- Modular arithmetic (Z_n)
- definition of + and *
- proof that it is well defined
- modular inverses
- Examples
- Condition for inverses to exist
- Computing with the extended Euclidean algorithm
- Computing with Fermat's theorem
- The finite field Z_p
- Fast algorithm for powering
- repeated multiplication
- binary powering
- Analysis of binary powering
- Chinese Remainder Theorem (CRT)
- Existence proof
- Constructive proof using the Extended Euclidean algorithm
- Modular algorithm for integer multiplication
- Reduce inputs mod sufficiently many primes (wordsize)
- Multiply mod the primes
- Recover integer product using the CRT
Maple worksheets and programs and other resources
- mod.mws - Maple worksheet on modular arithmetic,
fast powering, the CRT, and modular algorithms
- mod.ppt (< ahref="mod.pdf">mod.pdf)- slides on modular arithmetic
Assignments
Created: Oct. 20, 2005 by jjohnson@cs.drexel.edu