MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division

Slides:



Advertisements
Similar presentations
1 Lect. 12: Number Theory. Contents Prime and Relative Prime Numbers Modular Arithmetic Fermat’s and Euler’s Theorem Extended Euclid’s Algorithm.
Advertisements

Primality Testing Patrick Lee 12 July 2003 (updated on 13 July 2003)
Sets, Combinatorics, Probability, and Number Theory Mathematical Structures for Computer Science Chapter 3 Copyright © 2006 W.H. Freeman & Co.MSCS Slides.
CSE 311 Foundations of Computing I Lecture 13 Number Theory Autumn 2012 CSE
Announcements: Homework 1 returned. Comments from Kevin? Homework 1 returned. Comments from Kevin? Matlab: tutorial available at
Lecture 3.2: Public Key Cryptography II CS 436/636/736 Spring 2012 Nitesh Saxena.
CSE 321 Discrete Structures Winter 2008 Lecture 10 Number Theory: Primality.
CSE 311 Foundations of Computing I Lecture 12 Primes, GCD, Modular Inverse Spring
1 Properties of Integers Objectives At the end of this unit, students should be able to: State the division algorithm Apply the division algorithm Find.
COMP 170 L2 Page 1 L05: Inverses and GCDs l Objective: n When does have an inverse? n How to compute the inverse? n Need: Greatest common dividers (GCDs)
Module :MA3036NI Cryptography and Number Theory Lecture Week 7
The Polynomial Time Algorithm for Testing Primality George T. Gilbert.
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers Miller-Rabin test.
Copyright © Zeph Grunschlag, Basic Number Theory Zeph Grunschlag.
CS 312: Algorithm Analysis Lecture #4: Primality Testing, GCD This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.Creative.
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.
Network and Computer Security (CS 475) Modular Arithmetic
MA/CSSE 473 Day 08 Extended Euclid's Algorithm Modular Division Fermat's little theorem.
Tuesday’s lecture: Today’s lecture: One-way permutations (OWPs)
Ch1 - Algorithms with numbers Basic arithmetic Basic arithmetic Addition Addition Multiplication Multiplication Division Division Modular arithmetic Modular.
Ref: Pfleeger96, Ch.31 Properties of Arithmetic Reference: Pfleeger, Charles P., Security in Computing, 2nd Edition, Prentice Hall, 1996.
Lecture 3.1: Public Key Cryptography I CS 436/636/736 Spring 2015 Nitesh Saxena.
CS 312: Algorithm Analysis Lecture #4: Primality Testing, GCD This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.Creative.
Chapter 1 Algorithms with Numbers. Bases and Logs How many digits does it take to represent the number N >= 0 in base 2? With k digits the largest number.
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 DivisionPrimes Modular Arithmetic.
Number Theory Lecture 1 Text book: Discrete Mathematics and its Applications, 7 th Edition.
MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division Fermat's little theorem intro.
MA/CSSE 473 Day 9 Primality Testing Encryption Intro.
A Prime Example CS Lecture 20 A positive integer p  2 is prime if the only positive integers that divide p are 1 and p itself. Positive integers.
Number Theory. Introduction to Number Theory Number theory is about integers and their properties. We will start with the basic principles of divisibility,
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers
B504/I538: Introduction to Cryptography
Mathematics of Cryptography
Chapter Applications of Number Theory Some Useful Results
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.
CS 2210:0001Discrete Structures Modular Arithmetic and Cryptography
Advanced Algorithms Analysis and Design
Handbook of Applied Cryptography - CH4, from 4.1~4.3
Introduction to Cryptography
Lecture 3.2: Public Key Cryptography II
Numerical Algorithms x x-1 Numerical Algorithms
Number-Theoretic Algorithms (UNIT-4)
CMSC Discrete Structures
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers
CSE 311 Foundations of Computing I
MATH301- DISCRETE MATHEMATICS Copyright © Nahid Sultana Dr. Nahid Sultana Chapter 4: Number Theory and Cryptography.
Number Theory and Modular Arithmetic
Applied Discrete Mathematics Week 4: Number Theory
Number Theory (Chapter 7)
Number Theory.
Prime and Relatively Prime Numbers
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
The Integers & Division
Lecture 3.1: Public Key Cryptography I
Copyright © Zeph Grunschlag,
Divisibility and Modular Arithmetic
Applied Discrete Mathematics Week 10: Introduction to Counting
Mathematical Background for Cryptography
Patrick Lee 12 July 2003 (updated on 13 July 2003)
Clements MAΘ October 30th, 2014
Cryptography Lecture 20.
Discrete Mathematics Chapter 4 Number Theory. Discrete Mathematics Chapter 4 Number Theory.
From the last time: gcd(a, b) can be characterized in two different ways: It is the least positive value of ax + by where x and y range over integers.
Sets, Combinatorics, Probability, and Number Theory
Presentation transcript:

MA/CSSE 473 Day 07 Extended Euclid's Algorithm Modular Division Fermat's little theorem intro

MA/CSSE 473 Day 07 Student Questions Extended Euclid Algorithm, the “calculate forward, substitute backward” approach Modular Division Fermat's Little Theorem Intro to primality testing. Pass around attendance sheet.

Recap: Euclid's Algorithm for gcd Another place to read about modular arithmetic, including exponentiation and inverse: Weiss Sections 7.4-7.4.4 Just put it up quickly as a reminder. Don't spend more than a few seconds on it

recap: gcd and linear combinations Lemma: If d divides both a and b, and d = ax + by for some integers x and y, then d = gcd(a,b) Proof – we did it last class session.

Forward-backward Example: gcd (33, 14) 33 = 2*14 + 5 14 = 2 * 5 + 4 5 = 1 * 4 + 1 4 = 4 * 1 + 0, so gcd(33, 14) = 1. Now work backwards 1 = 5 - 4. Substitute 4 = 14 - 2*5: 1 = 5 – (14 - 2*5) = 3*5 - 14. Substitute 5 = 33 - 2*14: 1 = 3(33 - 2*14) -14 = 3 * 33 – 7 * 14 Thus x = 3 and y = -7 Done! We want to find x and y such that 33x + 14y = 1 A good place to stop and check!

Extended Euclid Algorithm Proof that it works I decided that it is a bit advanced for students who just saw Modular Arithmetic for the first time two sessions ago. If you are interested, look up “extended Euclid proof” We’ll do a convincing example.

Calculate Modular Inverse (if it exists) Modular inverse: aa-1  1 (mod N). Exists? (mod 7) (mod 6) Unique? The extended Euclid's algorithm gives us integers x and y such that ax + Ny = 1 This implies ax  1 (mod N), so x is the inverse of a Example: Find 14-1 mod 33 We saw before that 3*33 - 7*14 = 1 -7  26 (mod 33) So 14-1 ≡ 26 (mod 33) Recall that running time for Euclid's algorithm is Ѳ(k3), where k is the number of bits of N. Check: 14*26 = 364 = 11*33 + 1. Suppose q and r are both inverses of m (mod N), both in range 1, …, N-1. . T qm ≡ rm (mod N). So (q-r)m ≡ 0 (mod N) Thus N divides (q-r)m. GCD(m,N) = 1 (or else m would not have an inverse), so N divides q-r. But q and r are < N. So q-r must be 0

Modular division We can only divide b by a (modulo N) if N and a are relatively prime In that case b/a = b∙a-1 What is the running time for modular division? Theta(n^3) again. We do Euclid, followed by multiplication. This was rushed, so needs to be revisited next time.

Primality Testing The numbers 7, 17, 19, 71, and 79 are primes, but what about 717197179 (a typical social security number)? There are some tricks that might help. For example: If n is even and not equal to 2, it's not prime n is divisible by 3 iff the sum of its decimal digits is divisible by 3, n is divisible by 5 iff it ends in 5 or 0 n is divisible by 7 iff n/10 - 2*n%10 is divisible by 7 n is divisible by 11 iff (sum of n's odd digits) – (sum of n's even digits) is divisible by 11. when checking for factors of n, we only need to consider prime integers as candidates When checking for prime factors, we only need to examine integers up to sqrt(n)

Primality testing Factoring is harder than primality testing. Is there a way to tell whether a number is prime without actually factoring the number? Like a few other things that we have done so far ion this course, this discussion follows Dasgupta, et. al., Algortihms (McGraw-Hill 2008)

Fermat's Little Theorem (1640 AD) Formulation 1: If p is prime, then for every integer a with 1 ≤ a <p , ap-1  1 (mod p) Formulation 2: If p is prime, then for every integer a with 1 ≤ a <p, ap  a (mod p) These are clearly equivalent. How do we get from each to the other? We will examine a combinatorial proof of the first formulation. Why is it called "little theorem" Because of his "last theorem", written in 1637, margin of book. Not proven until 1995.

Fermat's Little Theorem: Proof (part 1) Formulation 1: If p is prime, then for every number a with 1 ≤ a < p, ap-1  1 (mod p) Let S = {1, 2, …, p-1} Lemma For any nonzero integer a, multiplying all of the numbers in S by a (mod p) permutes S I.e. {a ∙ n (mod p) : nS} = S Example: p=7, a=3. Proof of the lemma Suppose that a∙i  a∙j (mod p). Since p is prime and a  0, a has an inverse. Multiplying both sides by a-1 yields i  j (mod p). Thus, multiplying the elements of S by a (mod p) takes each element to a different element of S. Thus (by the pigeonhole principle), every number 1..p-1 is a∙i (mod p) for some i in S. i 1 2 3 4 5 6 3i

Fermat's Little Theorem: Proof (part 2) Formulation 1: If p is prime, then for every number a with 1 ≤ a <p, ap-1  1 (mod p) Let S = {1, 2, …, p-1} Recap of the Lemma: Multiplying all of the numbers in S by a (mod p) permutes S Therefore: {1, 2, …, p-1} = {a∙1 (mod p), a∙2 (mod p), … a∙(p-1) (mod p)} Take the product of all of the elements on each side . (p-1)!  ap-1(p-1)! (mod p) Since p is prime, (p-1)! is relatively prime to p, so we can divide both sides by it to get the desired result: ap-1  1 (mod p)

Recap: Fermat's Little Theorem Formulation 1: If p is prime, then for every number a with 1 ≤ a <p, ap-1  1 (mod p) Formulation 2: If p is prime, then for every number a with 1 ≤ a <p, ap  a (mod p) Memorize this one. Know how to prove it. Why is it called "little theorem" Because of his "last theorem", written in 1637, margin of book. Not proven until 1995.

"composite" means "not prime" Easy Primality Test? Is N prime? Pick some a with 1 < a < N Is aN-1  1 (mod N)? If so, N is prime; if not, N is composite Nice try, but… Fermat's Little Theorem is not an "if and only if" condition. It doesn't say what happens when N is not prime. N may not be prime, but we might just happen to pick an a for which aN-1 1 (mod N) Example: 341 is not prime (it is 11∙31), but 2340  1 (mod 341) Definition: We say that a number a passes the Fermat test if aN-1  1 (mod N). If a passes the Fermat test but N is composite, then a is called a Fermat liar, and N is a Fermat pseudoprime. We can hope that if N is composite, then many values of a will fail the Fermat test It turns out that this hope is well-founded If any integer that is relatively prime to N fails the test, then at least half of the numbers a such that 1 ≤ a < N also fail it. "composite" means "not prime" Start with: “Pay very close attention to the material on this slide. If you get it now, you will avoid one of the major points of confusion that students in the course have had in the past.

How many “Fermat liars"? If N is composite, suppose we randomly pick an a such that 1 ≤ a < N. If gcd(a, N) = 1, how likely is it that aN-1 is  1 (mod n)? If aN-1  1 (mod N) for any a that is relatively prime to N, then this must also be true for at least half of the choices of such a < N. Let b be some number (if any exist) that passes the Fermat test, i.e. bN-1  1 (mod N). Then the number a∙b fails the test: (ab)N-1  aN-1bN-1  aN-1, which is not congruent to 1 mod N. Diagram on whiteboard. For a fixed a, f: bab is a one-to-one function on the set of b's that pass the Fermat test, so there are at least as many numbers that fail the Fermat test as pass it. Continued next session … The diagram is from Dasgupta, page 26. Next-to-last bullet: if ab = ac, we can just divide by a, since gcd(a, N) = 1