PRIMES is in P Manindra Agrawal NUS Singapore / IIT Kanpur.

Slides:



Advertisements
Similar presentations
Randomness and Computation: Some Prime Examples Great Theoretical Ideas In Computer Science (Steven Rudich) John LaffertyCS Fall 2005 Lecture 22Nov.
Advertisements

WS Algorithmentheorie 03 – Randomized Algorithms (Primality Testing) Prof. Dr. Th. Ottmann.
Chapter 8 – Introduction to Number Theory. Prime Numbers prime numbers only have divisors of 1 and self –they cannot be written as a product of other.
1 Deciding Primality is in P M. Agrawal, N. Kayal, N. Saxena Presentation by Adi Akavia.
Computability and Complexity
Having Proofs for Incorrectness
Agrawal-Kayal-Saxena Presented by: Xiaosi Zhou
Primality Testing Patrick Lee 12 July 2003 (updated on 13 July 2003)
Lecture 8: Primality Testing and Factoring Piotr Faliszewski
Introduction to Modern Cryptography Lecture 6 1. Testing Primitive elements in Z p 2. Primality Testing. 3. Integer Multiplication & Factoring as a One.
COM 5336 Cryptography Lecture 7a Primality Testing
Notation Intro. Number Theory Online Cryptography Course Dan Boneh
Basic properties of the integers
Great Theoretical Ideas in Computer Science.
1 Fingerprint 2 Verifying set equality Verifying set equality v String Matching – Rabin-Karp Algorithm.
The RSA Cryptosystem and Factoring Integers (II) Rong-Jaye Chen.
Elementary Number Theory and Methods of Proof. Basic Definitions An integer n is an even number if there exists an integer k such that n = 2k. An integer.
Deciding Primality is in P M. Agrawal, N. Kayal, N. Saxena Slides by Adi Akavia.
מבוא מורחב - שיעור 6 1 Lecture 6 High order procedures Primality testing The RSA cryptosystem.
Complexity1 Pratt’s Theorem Proved. Complexity2 Introduction So far, we’ve reduced proving PRIMES  NP to proving a number theory claim. This is our next.
K. -C. Yang and J. -L. Lin National Tsing Hua University
Introduction Polynomials
Theory I Algorithm Design and Analysis (9 – Randomized algorithms) Prof. Dr. Th. Ottmann.
Dan Boneh Intro. Number Theory Modular e’th roots Online Cryptography Course Dan Boneh.
Manindra Agrawal NUS / IITK
CSE 321 Discrete Structures Winter 2008 Lecture 10 Number Theory: Primality.
Polynomial Factorization Olga Sergeeva Ferien-Akademie 2004, September 19 – October 1.
Integers Number Theory = Properties of Integers

Cryptography Lecture 6 Stefan Dziembowski
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)
Information Security and Management 4. Finite Fields 8
The Polynomial Time Algorithm for Testing Primality George T. Gilbert.
By: Hector L Contreras SSGT / USMC
Mathematics Review Exponents Logarithms Series Modular arithmetic Proofs.
RSA Parameter Generation Bob needs to: - find 2 large primes p,q - find e s.t. gcd(e, Á (pq))=1 Good news: - primes are fairly common: there are about.
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers Miller-Rabin test.
The Complexity of Primality Testing. What is Primality Testing? Testing whether an integer is prime or not. – An integer p is prime if the only integers.
Cryptography Lecture 7: RSA Primality Testing Piotr Faliszewski.
Introduction to Algorithms Second Edition by Cormen, Leiserson, Rivest & Stein Chapter 31.
The Integers. The Division Algorithms A high-school question: Compute 58/17. We can write 58 as 58 = 3 (17) + 7 This forms illustrates the answer: “3.
Primes in P Deterministic polynomial-time algorithm of Agrawal, Kayal and Saxena Presented by Vladimir Braverman.
Great Theoretical Ideas In Computer Science Anupam GuptaCS Fall 2006 Lecture 17Oct 24, 2006Carnegie Mellon University Randomness and Computation:
Information and Coding Theory Cyclic codes Juris Viksna, 2015.
מבוא מורחב - שיעור 6 1 Lecture 6 High order procedures Primality testing The RSA cryptosystem.
9/22/15UB Fall 2015 CSE565: S. Upadhyaya Lec 7.1 CSE565: Computer Security Lecture 7 Number Theory Concepts Shambhu Upadhyaya Computer Science & Eng. University.
Primes in P Manindra Agrawal Neeraj Kayal Nitin Saxena CS300: Technical Paper review by Arpan Agrawal.
Great Theoretical Ideas in Computer Science.
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.
Chapter 4 With Question/Answer Animations 1. Chapter Summary Divisibility and Modular Arithmetic - Sec 4.1 – Lecture 16 Integer Representations and Algorithms.
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 9 Primality Testing Encryption Intro.
PRIMES is in P Manindra Agrawal Neeraj Kayal Nitin Saxena Dept of CSE, IIT Kanpur.
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.
High order procedures Primality testing The RSA cryptosystem
CSE565: Computer Security Lecture 7 Number Theory Concepts
Probabilistic Algorithms
Handbook of Applied Cryptography - CH4, from 4.1~4.3
Randomness and Computation: Some Prime Examples
Textbook: Introduction to Cryptography 2nd ed. By J.A. Buchmann
MA/CSSE 473 Day 08 Randomized Primality Testing Carmichael Numbers
Number Theory (Chapter 7)
Great Theoretical Ideas in Computer Science
Deciding Primality is in P
Mathematical Background for Cryptography
Cryptography Lecture 20.
Cryptography Lecture 16.
Randomness and Computation: Some Prime Examples
Presentation transcript:

PRIMES is in P Manindra Agrawal NUS Singapore / IIT Kanpur

The Problem Given number n, test if it is prime efficiently. Efficiently = in time a polynomial in number of digits = (log n) c for some constant c

The Trial Division Method Try dividing by all numbers up to n 1/2. –takes exponential time:  (n 1/2 ). –Also produces a factor of n when it is composite.

A Possible Approach Find a characterization of prime numbers that is efficiently verifiable Many characterizations of primes have been obtained over centuries. But none were provably efficient until recently.

Wilson’s Characterization (18 th century) n is prime iff (n-1)! = -1 (mod n) Requires O(n) operations

Fermat’s Little Theorem (17 th century) n is prime implies for any a: a n = a (mod n). It is easy to check: Compute a 2, square it to a 4, square it to a 8, … Needs only O(log n) multiplications.

An Efficient but Wrong Characterization n is prime iff for 0 < a < 4 log 2 n: a n = a (mod n) –Requires only O(log 3 n) multiplications and divisions. –Fails on Carmichael numbers, e.g., 561 = 3 * 11 * 17.

Lucas’ Characterization (1891) n is prime iff for every prime divisor q of n-1: there is an 1 < a < n such that a n-1 = 1 (mod n) and gcd(a (n-1)/q – 1, n) = 1 –Based on FLT –It is inefficient: requires factorization of n-1

An NP  coNP Algorithm A trivial algorithm shows that the set is in coNP: given a factor of n it is easy to verify that n is composite. [Pratt, 1974] Lucas’ characterization yields an NP algorithm: guess a prime factorization of n-1; recursively verify its correctness; and guess an a with required properties.

Miller’s (unproven) Characterization (1975) n = t * s is odd prime iff for 0 < a < 4 log 2 n: either a s = 1 (mod n) or a 2 k *s = -1 (mod n) for some 0 ≤ k < t

Yields an Efficient Algorithm Based on FLT Yields an efficient algorithm: O(log 4 n) steps It is correct assuming Generalized Riemann Hypothesis

coRP Algorithms [1974] Solovay-Strassen gave the first unconditional but randomized polynomial time algorithm. –This algorithm might give a wrong answer with a small probability when n is composite. [1975] Rabin modified Miller’s characterization to obtain another algorithm with similar properties.

An Almost Efficient Characterization [1983] Adleman, Pomerance, and Rumely gave a (rather complicated) characterization that yields a deterministic algorithm running in time (log n) c log log log n.

An Efficient Chracterization [2002] A., Kayal, Saxena gave the first deterministically verifiable efficient characterization.

Proof: If n is prime then all coefficients are divisible by n. If n is composite then at least one is not. Starting Point: A Polynomial based Characterization n is prime iff (X + 1) n = X n + 1 (mod n)

A generalization of FLT to polynomials. Simple and elegant. Inefficient: although requires only O(log n) polynomial multiplications, intermediate polynomials are of large degree.

A Way to Reduce Space Test the equation modulo X r - 1 for a small r. Or, more generally, test if (X + a) n = X n + a (mod n, X r - 1) For a few a’s and a few small r’s.

It Almost Works n is prime iff for any r such that O r (n) > 4 log 2 n: n has no divisor smaller than min(n,r) and for every a, 1 ≤ a ≤ 2 √r log n: (X + a) n = X n + a (mod n, X r – 1) O r (n) = smallest k with n k = 1 (mod r).

The Algorithm Input n. 1.Find the smallest number r such that O r (n) > 4 (log n) 2. 2.If any number < r divides n, output PRIME/COMPOSITE appropriately. 3.For every a  2  r log n: –If (X+a) n  X n + a (mod n, X r – 1) then output COMPOSITE. 4.Output PRIME.

Correctness: Non-trivial Part Assume: r is given such that O r (n) > 4(log n) 2. Smallest prime dividing n is at least min(n,r). (X+a) n = X n + a (mod n, X r -1) for 0 < a  2  r log n.

Fix a prime p dividing n with p  r and O r (p) > 1. Clearly, (X+a) n = X n + a (mod p, X r -1) too for 0 < a  2  r log n. And of course, (X+a) p = X p + a (mod p, X r -1) (according to previous prime characterization)

Introspective Numbers We call any number m such that g(X) m = g(X m ) (mod p, X r -1) an introspective number for g(X). So, p and n are introspective numbers for X+a for 0 < a  2  r log n.

Introspective Numbers Are Closed Under * Lemma: If s and t are introspective for g(X), so is s * t. Proof: g(X) st = g(X s ) t (mod p, X r – 1), and g (X s ) t = g (X st ) (mod p, X sr – 1) = g(X st ) (mod p, X r – 1).

So There Are Lots of Them Let I = { n i * p j | i, j  0}. Every m in I is introspective for X+a for 0 < a  2  r log n.

Introspective Numbers Are Also For Products Lemma: If m is introspective for both g(X) and h(X), then it is also for g(X) * h(X). Proof: (g(X) * h(X)) m = g(X) m * h(X) m = g(X m ) * h(X m ) (mod p, X r -1)

So Introspective Numbers Are For Lots of Polynomials Let Q = {  a=1, 2  r logn (X + a) e a | e a  0}. Every m in I is introspective for every g(X) in Q.

Finite Fields Facts Let h(X) be an irreducible divisor of r th cyclotomic polynomial C r (X) in the ring F p [X]: –C r (X) divides X r -1. –Polynomials modulo p and h(X) form a field, say F. –X i  X j in F for 0  i  j < r.

Moving to Field F Since h(X) divides X r -1, equations for introspective numbers continue to hold in F. We now argue over F.

Two Sets in Field F Let G = { X m | m  I }. –Every element of G is an rth root of unity. –t = |G|  O r (n) > 4 log 2 n. Let H = { g(X) (mod p, h(X)) | g(X)  Q }. –H is a multiplicative group in F.

H is large … Let Q t be set of all polynomials in Q of degree < t. Lemma: There are > n 2  t distinct polynomials in Q t : –Consider all products of X+a’s of degee < t. –There are > > n 2  t of these (since r > t and  t > 2 log n).

… because Q t injects into F Let f(X), g(X) in Q t with f(X)  g(X). Suppose f(X) = g(X) in F. Then: For every X m in G, f(X m ) = f(X) m = g(X) m = g(X m ) in F. So polynomial P(z) = f(z) – g(z) has |G| = t roots in F. Contradiction, since P(z)  0 and degree of P(z) is < t.

… implies that I has few small numbers Let m 1, m 2, …, m k be numbers in I  n 2  t. Suppose k > t. Then, there exist m i and m j, m i > m j, such that X m i = X m j (in F) I: set of introspective numbers F = F p [X]/(h(X)), h(X) | X r -1 Q: set of introspective polynomialsG = X I H = Q (mod h(X))

Let g(X) be any element of H. Then: g(X) m i = g(X m i ) = g(X m j ) = g(X) m j (in F) Therefore, g(X) is a root of the polynomial P(z) = z m i – z m j in the field F. I: set of introspective numbers F = F p [X]/(h(X)), h(X) | X r -1 Q: set of introspective polynomialsG = X I H = Q (mod h(X))

Since H has more than n 2  t elements in F, P(Y) has more than n 2  t roots in F. Contradiction, since P(z)  0 and degree of P(z) = m i  n 2  t. I: set of introspective numbers F = F p [X]/(h(X)), h(X) | X r -1 Q: set of introspective polynomialsG = X I H = Q (mod h(X))

t = O r (n,p)F = F p [X]/(h(X)), h(X) | X r -1 I: set of introspective numbersQ low : polynomials of deg < t … so n must be a prime power! Consider numbers n a * p b with 0  a, b   t. Each such number is  n 2  t (“small”). So there are  t (“few”) such numbers. This gives a, b, c, d with (a,b)  (c,d) and n a * p b = n c * p d Therefore, n = p e for some e > 0. I: set of introspective numbers F = F p [X]/(h(X)), h(X) | X r -1 Q: set of introspective polynomialsG = X I H = Q (mod h(X))

This forces n to be prime Lemma [Hendrik Lenstra Jr.,1983]: If a n = a (mod n) for 1 ≤ a ≤ 4 log 2 n then n is square- free. Since (X+a) n = X n + a (mod n, X r -1) for 0 < a  2  r log n, we have a n = a (mod n) for 0 < a  4 log 2 n, (as r > 4 log 2 n). So n must be square-free.

The Choice of r We need r such that O r (n) > 4 (log n) 2. Any r such that O r (n)  4 (log n) 2 must divide  k=1, 4 log 2 n (n k -1) < n 16 log 4 n = 2 16 log 5 n. By Chebyshev’s prime density estimates the lcm of first m numbers is at least 2 m (for m > 7). Therefore, there must exist an r that we desire  16 (log n)

Time Complexity Step 3 dominates running time. –It needs to verify O(  r log n) equations. –Each equation needs O ~ (r log 2 n) time to verify. So time complexity is O ~ (r 1.5 log 3 n) = O ~ (log 10.5 n).

Using a result of Fouvry, one can show that r = O(log 3 n) is enough. The result shows that primes r such that r-1 has a large prime divisor have high density. This brings time complexity down to O ~ (log 7.5 n).

A Cleaner Characterization The characterization is a bit messy. Three different conditions need to hold: –r needs to be such that O r (n) > 4 (log n) 2 –No prime divisor of n is smaller than min(n,r) –For every a, 1 ≤ a ≤ √r log n: (X + a) n = X n + a (mod n, X r – 1) Can these be combined into a single equation?

Yes! Use the equation (X + 1) n = X n + 1 (mod n, Q(X)) for appropriate small dgree Q(X).

Eliminating Condition on r Try for all r ≤ 16 log 5 n!

Eliminating Small Divisors Lemma: If (X + 1) n = X n + 1 (mod n, X r ) then n has no divisor less then min(n,r). Proof: If prime p < min(n,r) divides n, then (X + 1) n = 1 + n/p X p + … (mod n, X r )  1 (mod n, X r ).

Eliminating Multiple Equations Lemma: (X + 1) n = X n + 1 (mod n, Q(X-a)) for 0 < a ≤ B iff (X + a) n = X n + a (mod n, Q(X)) for 1 < a ≤ B+1. Proof: Assume for B-1. Then: (X + 1) n = X n + 1 (mod n, Q(X-B)) iff (X+B+1) n = (X+B) n + 1 (mod n, Q(X)) iff (X+B+1) n = X n + B + 1 (mod n, Q(X))

Putting These Together … n is prime iff (X + 1) n = X n + 1 (mod n, Q(X)) where Degree of Q(X) is O(log 27/2 n).

Further work [Lenstra-Pomerance,2003]: r = O(log 2 n) is enough with a different polynomial of degree r than X r -1. –This improves time complexity to O ~ (log 6 n). [Berrizbeitia-Bernstein,2003]: Randomized primality proving algorithm with time complexity O ~ (log 4 n).

Further Improvement? Conjecture: n is prime iff n is not a prime power, n  1 (mod r) for some prime r > log n, and (X-1) n = X n –1 (mod n, X r – 1) Yields a O ~ (log 3 n) time algorithm.