MA/CSSE 473 Day 06 DivisionPrimes Modular Arithmetic.

Slides:



Advertisements
Similar presentations
Dynamic Programming Introduction Prof. Muhammad Saeed.
Advertisements

Cryptography and Network Security
A simple example finding the maximum of a set S of n numbers.
Complexity, Origami, etc. Big Oh Traditional Origami Fold and cut.
Section 4.1: Primes, Factorization, and the Euclidean Algorithm Practice HW (not to hand in) From Barr Text p. 160 # 6, 7, 8, 11, 12, 13.
Number Theory and Cryptography
CSE332: Data Abstractions Lecture 2: Math Review; Algorithm Analysis Tyler Robison Summer
Congruence class arithmetic. Definitions: a ≡ b mod m iff a mod m = b mod m. a  [b] iff a ≡ b mod m.
Mathematics of Cryptography Part I: Modular Arithmetic, Congruence,
CSE 321 Discrete Structures Winter 2008 Lecture 10 Number Theory: Primality.
Arithmetic.
BY MISS FARAH ADIBAH ADNAN IMK
Data Representation Number Systems.
Mathematics of Cryptography Part I: Modular Arithmetic, Congruence,
Integers Number Theory = Properties of Integers

CSCI 1900 Discrete Structures
Chapter 2 The Fundamentals: Algorithms, the Integers, and Matrices
Positional Number Systems
MA/CSSE 473 Day 05 Factors and Primes Recursive division algorithm.
Mathematics of Cryptography Part I: Modular Arithmetic
MA/CSSE 473 Day 03 Asymptotics A Closer Look at Arithmetic With another student, try to write a precise, formal definition of “t(n) is in O(g(n))”
Time Complexity Dr. Jicheng Fu Department of Computer Science University of Central Oklahoma.
MATH 224 – Discrete Mathematics
CS 312: Algorithm Analysis Lecture #3: Algorithms for Modular Arithmetic, Modular Exponentiation This work is licensed under a Creative Commons Attribution-Share.
MA/CSSE 473 Day 22 Binary Heaps Heapsort Answers to student questions Exam 2 Tuesday, Nov 4 in class.
Mathematics Review Exponents Logarithms Series Modular arithmetic Proofs.
Lecture 2 Computational Complexity
Chapter 1 Introduction. Goals Why the choice of algorithms is so critical when dealing with large inputs Basic mathematical background Review of Recursion.
MA/CSSE 473 Day 02 Some Numeric Algorithms and their Analysis.
Analysis of Algorithms
FFT1 The Fast Fourier Transform. FFT2 Outline and Reading Polynomial Multiplication Problem Primitive Roots of Unity (§10.4.1) The Discrete Fourier Transform.
CompSci 102 Discrete Math for Computer Science February 16, 2012 Prof. Rodger.
Basic Concepts in Number Theory Background for Random Number Generation 1.For any pair of integers n and m, m  0, there exists a unique pair of integers.
Searching. RHS – SOC 2 Searching A magic trick: –Let a person secretly choose a random number between 1 and 1000 –Announce that you can guess the number.
Fundamentals CSE 373 Data Structures Lecture 5. 12/26/03Fundamentals - Lecture 52 Mathematical Background Today, we will review: ›Logs and exponents ›Series.
MA/CSSE 473 Day 02 Some Numeric Algorithms and their Analysis.
MA/CSSE 473 Day 06 Euclid's Algorithm. MA/CSSE 473 Day 06 Student Questions Odd Pie Fight Euclid's algorithm (if there is time) extended Euclid's algorithm.
MA/CSSE 473 Day 08 Extended Euclid's Algorithm Modular Division Fermat's little theorem.
Module #9 – Number Theory 1/5/ Algorithms, The Integers and Matrices.
Implementation of Public Key Encryption Algorithms
MA/CSSE 473 Day 07 Euclid's Algorithm. MA/CSSE 473 Day 07 Student Questions Review topics not covered in class Euclid's algorithm (if there is time) extended.
Welcome to Math 6 Our subject for today is… Divisibility.
MA/CSSE 473 Day 10 Primality Testing. MA/CSSE 473 Day 10 In-class exam: Friday, Sept 28 –You may bring a two-sided 8.5x11 inch piece of paper containing.
MA/CSSE 473 Day 09 Modular Division Revisited Fermat's Little Theorem Primality Testing.
MA/CSSE 473 Day 06 Mathematical Induction Modular Arithmetic Do question 1 on today's quiz (work with another person)
1 Discrete Structures – CNS2300 Text Discrete Mathematics and Its Applications Kenneth H. Rosen (5 th Edition) Chapter 2 The Fundamentals: Algorithms,
MA/CSSE 473 Day 05 More induction Factors and Primes Recursive division algorithm.
Slide Copyright © 2009 Pearson Education, Inc. Slide Copyright © 2009 Pearson Education, Inc. Chapter 1 Number Theory and the Real Number System.
CSE 311 Foundations of Computing I Lecture 12 Modular Arithmetic and Applications Autumn 2012 CSE
CSE 311 Foundations of Computing I Lecture 11 Modular Exponentiation and Primes Autumn 2011 CSE 3111.
MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division Fermat's little theorem intro.
Discrete Mathematics Chapter 2 The Fundamentals : Algorithms, the Integers, and Matrices. 大葉大學 資訊工程系 黃鈴玲.
MA/CSSE 473 Day 05 Factors and Primes Recursive division algorithm.
MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division
Thinking Mathematically
MA/CSSE 473 Day 06 Euclid's Algorithm.
MA/CSSE 473 Day 05 Factors and Primes Recursive division algorithm.
MA/CSSE 473 Day 06 Euclid's Algorithm.
Congruence class arithmetic
MA/CSSE 473 Day 02 Some Numeric Algorithms and their Analysis
Introducing sequences
Randomized Algorithms
MATH301- DISCRETE MATHEMATICS Copyright © Nahid Sultana Dr. Nahid Sultana Chapter 4: Number Theory and Cryptography.
Number Theory (Chapter 7)
Lecture 20 Guest lecturer: Neal Gupta
Digital Logic & Design Lecture 02.
CSE 373 Data Structures Lecture 5
Cryptography Lecture 16.
Presentation transcript:

MA/CSSE 473 Day 06 DivisionPrimes Modular Arithmetic

MA/CSSE 473 Day 06 Announcements Note from HW3 –Reminder: I will sometimes assign hard problems –Be sure to look at the problems early so you can start thinking about the non-obvious ones. –Like #2 on this assignment HW 4 due Tuesday Trominoes implementation problem due Friday, Sept 17 –You can do this one with a partner –If you want help finding a partner, see the assignment document. HW 5 due Tuesday, Sept 21. Assignment available soon In-class Exam Tuesday, October 5. –Schedule will soon be updated to reflect this Student Questions? There was no class Day 05 due to instructor absence.

Asymptotic Analysis Example Find a simple big-Theta expression (as a function of n) for the following sum –when 0 < c < 1 –when c = 1 –when c > 1 f(n) = 1 + c + c 2 + c 3 + … + c n Q 1

Recap: Arithmetic Run-times For operations on two n-bit numbers: Addition: Ѳ(n) Multiplication: –Standard algorithm: Ѳ(n 2 ) –"Gauss-enhanced": Ѳ(n 1.59 ), but with a lot of overhead. Division (see a later slide): Ѳ(n 2 )

Recap: Fibonacci Numbers Straightforward recursive algorithm: –Correctness is obvious –T(N) ≥ F(N), which is exponential (≈2 0.69N ) Algorithm with storage to avoid recomputing: –Again, correctness is obvious –And the run-time is linear until we dig deeper later

A Creative O(log N) Algorithm? Let X be the matrix Then also How many additions and multiplications of numbers are necessary to multiply two 2x2 matrices? If n = 2 k, how many matrix multiplications does it take to compute X n ? –O(log n), it seems. But there is a catch!

Disclaimer (added after class) The spirit of the next slide is good, but the details may be suspect. I think I managed to fuse the one n(the number whose Fibonacci we are calculating) with the other n (number of bits in the largest number we deal with). I hope to examine this more closely some day. It's funny how we often don't catch flaws in our logic until we go to explain them to someone else.

Reconsider our Fibonacci algorithms Refine T(n) calculations, (the time for computing the n th Fibonacci number) for each of our three algorithms –Recursive (fib1) We originally had T(n)  Ѳ(F(n)) ≈ Ѳ( n ) We assumed that addition was constant time. Since each addition is Ѳ(n), the whole thing is Ѳ(n∙F(n)) –Array (fib2) We originally had T(n)  Ѳ(n), because of n additions. Since each addition is Ѳ(n), the whole thing is Ѳ(n 2 ) –Matrix multiplication approach (fib3) We saw that Ѳ(log n) 2x2 matrix multiplications give us F n. Let M(k) be the time required to multiply two k-bit numbers. M(k)  Ѳ(k a ) for some a with 1 ≤ a ≤ 2. It's easy to see that T(n)  O(M(n) log n) Can we show that T(n)  O(M(n)) ? –Do it for a = 2 and a = log 2 (3) –If the multiplication of numbers is better than O(n 2 ), so is finding the n th Fibonacci number.

FACTORING and PRIMALITY Two important problems –FACTORING: Given a number N, express it as a product of its prime factors –PRIMALITY: Given a number N, determine whether it is prime Where we will go with this eventually –Factoring is hard The best algorithms known so far require time that is exponential in the number of bits of N –Primality testing is comparitively easy –A strange disparity for these closely-related problems –Exploited by cryptographic algorithms More on these problems later –First, more math and computational background… Q2

Algorithm for Integer Division Let's work through divide(19, 4). Analysis? Q3

Modular arithmetic definitions x modulo N is the remainder when x is divided by N. I.e., –If x = qN + r, where 0 ≤ r < N ( q and r are unique! ), –then x modulo N is equal to r. x and y are congruent modulo N, which is written as x  y (mod N), if and only if N divides (x-y). –i.e., there is an integer k such that x-y = kN. –In a context like this, a divides b means "divides with no remainder", i.e. "a is a factor of b." Example: 253  13 (mod 60)

Modular arithmetic properties Substitution rule – If x  x' (mod N) and y  y' (mod N), then x + y  x' + y' (mod N), and xy  x'y' (mod N) Associativity – x + (y + z)  (x + y) + z (mod N) Commutativity – xy  yx (mod N) Distributivity – x(y+z)  xy +yz (mod N)

Modular Addition and Multiplication To add two integers x and y modulo N (where k =  log N  (the number of bits in N), begin with regular addition. –x and y are in the range_____, so x + y is in range _______ –If the sum is greater than N-1, subtract N. –Run time is Ѳ ( ) To multiply x and y modulo N, begin with regular multiplication, which is quadratic in k. –The result is in range ______ and has at most ____ bits. –Compute the remainder when dividing by N, quadratic time. So entire operation is Ѳ( )

Modular Addition and Multiplication To add two integers x and y modulo N (where k =  log N , begin with regular addition. –x and y are in the range 0 to N-1, so x + y is in range 0 to 2N-1 –If the sum is greater than N-1, subtract N. –Run time is Ѳ (k ) To multiply x and y, begin with regular multiplication, which is quadratic in n. –The result is in range 0 to (N-1) 2 and has at most 2k bits. –Then compute the remainder when dividing by N, quadratic time in n. So entire operation is Ѳ(k 2 )

Modular Exponentiation In some cryptosystems, we need to compute x y modulo N, where all three numbers are several hundred bits long. Can it be done quickly? Can we simply take x y and then figure out the remainder modulo N? Suppose x and y are only 20 bits long. –x y is at least (2 19 ) (2 19 ), which is about 10 million bits long. –Imagine how big it will be if y is a 500-bit number! To save space, we could repeatedly multiply by x, taking the remainder modulo N each time. If y is 500 bits, then there would be bit multiplications. This algorithm is exponential in the length of y. Ouch!

Modular Exponentiation Algorithm Let n be the maximum number of bits in x, y, or N The algorithm requires at most ___ recursive calls Each call is Ѳ( ) So the overall algorithm is Ѳ( ) Q4-6

Modular Exponentiation Algorithm Let n be the maximum number of bits in x, y, or N The algorithm requires at most n recursive calls Each call is Ѳ(n 2 ) So the overall algorithm is Ѳ(n 3 )