primality tests based on fermat's little theorem · 2007-06-20 · a simple algorithm based on...

106
Primality Tests Based on Fermat’s Little Theorem Manindra Agrawal IIT Kanpur ICDCN, IIT Guwahati Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 1 / 39

Upload: others

Post on 18-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Primality Tests Based on Fermat’s Little

Theorem

Manindra Agrawal

IIT Kanpur

ICDCN, IIT Guwahati

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 1 / 39

Page 2: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Overview

1 Fermat’s Little Theorem

2 Primality Testing

3 Solovay-Strassen Algorithm

4 Miller-Rabin Algorithm

5 AKS Algorithm

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 2 / 39

Page 3: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Outline

1 Fermat’s Little Theorem

2 Primality Testing

3 Solovay-Strassen Algorithm

4 Miller-Rabin Algorithm

5 AKS Algorithm

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 3 / 39

Page 4: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Fermat’s Little Theorem

Pierre de Fermat (1601-1665)

Theorem

If n is prime then for every a, 1 ≤ a < n, an−1 = 1 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 4 / 39

Page 5: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

Consider the sequence of numbers a ∗ 1 (mod n), a ∗ 2 (mod n), . . .,a ∗ (n − 1) (mod n) for any 1 ≤ a < n.

None of these are zero, and no pair is equal:I Follows from the primality of n.

Therefore,n−1∏i=1

a ∗ i =n−1∏i=1

i (mod n).

Canceling∏n−1

i=1 i from both sides we get

an−1 = 1 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 5 / 39

Page 6: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

Consider the sequence of numbers a ∗ 1 (mod n), a ∗ 2 (mod n), . . .,a ∗ (n − 1) (mod n) for any 1 ≤ a < n.

None of these are zero, and no pair is equal:I Follows from the primality of n.

Therefore,n−1∏i=1

a ∗ i =n−1∏i=1

i (mod n).

Canceling∏n−1

i=1 i from both sides we get

an−1 = 1 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 5 / 39

Page 7: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

Consider the sequence of numbers a ∗ 1 (mod n), a ∗ 2 (mod n), . . .,a ∗ (n − 1) (mod n) for any 1 ≤ a < n.

None of these are zero, and no pair is equal:I Follows from the primality of n.

Therefore,n−1∏i=1

a ∗ i =n−1∏i=1

i (mod n).

Canceling∏n−1

i=1 i from both sides we get

an−1 = 1 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 5 / 39

Page 8: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

Consider the sequence of numbers a ∗ 1 (mod n), a ∗ 2 (mod n), . . .,a ∗ (n − 1) (mod n) for any 1 ≤ a < n.

None of these are zero, and no pair is equal:I Follows from the primality of n.

Therefore,n−1∏i=1

a ∗ i =n−1∏i=1

i (mod n).

Canceling∏n−1

i=1 i from both sides we get

an−1 = 1 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 5 / 39

Page 9: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Consequences

Fermat’s Little Theorem identifies a crucial property of primenumbers.

Instrumental in design of some of the most important primalitytesting algorithms.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 6 / 39

Page 10: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Consequences

Fermat’s Little Theorem identifies a crucial property of primenumbers.

Instrumental in design of some of the most important primalitytesting algorithms.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 6 / 39

Page 11: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Outline

1 Fermat’s Little Theorem

2 Primality Testing

3 Solovay-Strassen Algorithm

4 Miller-Rabin Algorithm

5 AKS Algorithm

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 7 / 39

Page 12: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

The Problem

Given a number n, decide if it is prime efficiently.

By efficiently, one means an algorithm taking logO(1) n steps.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 8 / 39

Page 13: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

The Problem

Given a number n, decide if it is prime efficiently.

By efficiently, one means an algorithm taking logO(1) n steps.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 8 / 39

Page 14: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

School Method

Try dividing by all numbers < n or better, ≤√

n.

Takes time Ω(√

n) = Ω(212

log n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 9 / 39

Page 15: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

School Method

Try dividing by all numbers < n or better, ≤√

n.

Takes time Ω(√

n) = Ω(212

log n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 9 / 39

Page 16: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

A Simple Algorithm Based on FLT

For m different a’s, test if an−1 = 1 (mod n).

Takes O(m log n) arithmetic operations.

However, it goes wrong on some numbers, for example, Carmichaelnumbers.

I These are composite numbers with the property that for every a < n,an = a (mod n).

I There exist infinitely many Carmichael numbers with 561 = 3 ∗ 11 ∗ 17the smallest one.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 10 / 39

Page 17: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

A Simple Algorithm Based on FLT

For m different a’s, test if an−1 = 1 (mod n).

Takes O(m log n) arithmetic operations.

However, it goes wrong on some numbers, for example, Carmichaelnumbers.

I These are composite numbers with the property that for every a < n,an = a (mod n).

I There exist infinitely many Carmichael numbers with 561 = 3 ∗ 11 ∗ 17the smallest one.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 10 / 39

Page 18: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

A Simple Algorithm Based on FLT

For m different a’s, test if an−1 = 1 (mod n).

Takes O(m log n) arithmetic operations.

However, it goes wrong on some numbers, for example, Carmichaelnumbers.

I These are composite numbers with the property that for every a < n,an = a (mod n).

I There exist infinitely many Carmichael numbers with 561 = 3 ∗ 11 ∗ 17the smallest one.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 10 / 39

Page 19: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Outline

1 Fermat’s Little Theorem

2 Primality Testing

3 Solovay-Strassen Algorithm

4 Miller-Rabin Algorithm

5 AKS Algorithm

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 11 / 39

Page 20: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Fermat’s Little Theorem and Quadratic

Residues

Theorem (A Restatement of FLT)

If n is odd prime then for every a, 1 ≤ a < n, an−1

2 = ±1 (mod n).

Fact

When n is prime, an−1

2 = 1 (mod n) iff a is a quadratic residue in Zn.

Therefore, if n is prime then(a

n

)= a

n−12 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 12 / 39

Page 21: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Fermat’s Little Theorem and Quadratic

Residues

Theorem (A Restatement of FLT)

If n is odd prime then for every a, 1 ≤ a < n, an−1

2 = ±1 (mod n).

Fact

When n is prime, an−1

2 = 1 (mod n) iff a is a quadratic residue in Zn.

Therefore, if n is prime then(a

n

)= a

n−12 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 12 / 39

Page 22: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Fermat’s Little Theorem and Quadratic

Residues

Theorem (A Restatement of FLT)

If n is odd prime then for every a, 1 ≤ a < n, an−1

2 = ±1 (mod n).

Fact

When n is prime, an−1

2 = 1 (mod n) iff a is a quadratic residue in Zn.

Therefore, if n is prime then(a

n

)= a

n−12 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 12 / 39

Page 23: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Legendre-Jacobi Symbol

For prime n ≥ 3,(

an

)= 1 if a is a quadratic residue modulo n, −1 if a

is a non-residue.

If n =∏k

i=1 peii with pi ’s distinct odd primes then(a

n

)=

k∏i=1

(a

pi

)ei

It satisfies the quadratic reciprocity law:(a

n

)·(n

a

)= (−1)

(a−1)(n−1)4

for n ≥ 3. (a + n

n

)=

(a

n

)Using last two properties,

(an

)can be computed for odd n in O(log n)

arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 13 / 39

Page 24: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Legendre-Jacobi Symbol

For prime n ≥ 3,(

an

)= 1 if a is a quadratic residue modulo n, −1 if a

is a non-residue.

If n =∏k

i=1 peii with pi ’s distinct odd primes then(a

n

)=

k∏i=1

(a

pi

)ei

It satisfies the quadratic reciprocity law:(a

n

)·(n

a

)= (−1)

(a−1)(n−1)4

for n ≥ 3. (a + n

n

)=

(a

n

)Using last two properties,

(an

)can be computed for odd n in O(log n)

arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 13 / 39

Page 25: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Legendre-Jacobi Symbol

For prime n ≥ 3,(

an

)= 1 if a is a quadratic residue modulo n, −1 if a

is a non-residue.

If n =∏k

i=1 peii with pi ’s distinct odd primes then(a

n

)=

k∏i=1

(a

pi

)ei

It satisfies the quadratic reciprocity law:(a

n

)·(n

a

)= (−1)

(a−1)(n−1)4

for n ≥ 3. (a + n

n

)=

(a

n

)Using last two properties,

(an

)can be computed for odd n in O(log n)

arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 13 / 39

Page 26: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Legendre-Jacobi Symbol

For prime n ≥ 3,(

an

)= 1 if a is a quadratic residue modulo n, −1 if a

is a non-residue.

If n =∏k

i=1 peii with pi ’s distinct odd primes then(a

n

)=

k∏i=1

(a

pi

)ei

It satisfies the quadratic reciprocity law:(a

n

)·(n

a

)= (−1)

(a−1)(n−1)4

for n ≥ 3. (a + n

n

)=

(a

n

)Using last two properties,

(an

)can be computed for odd n in O(log n)

arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 13 / 39

Page 27: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Legendre-Jacobi Symbol

For prime n ≥ 3,(

an

)= 1 if a is a quadratic residue modulo n, −1 if a

is a non-residue.

If n =∏k

i=1 peii with pi ’s distinct odd primes then(a

n

)=

k∏i=1

(a

pi

)ei

It satisfies the quadratic reciprocity law:(a

n

)·(n

a

)= (−1)

(a−1)(n−1)4

for n ≥ 3. (a + n

n

)=

(a

n

)Using last two properties,

(an

)can be computed for odd n in O(log n)

arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 13 / 39

Page 28: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

Proposed by Solovay and Strassen (1973).

A randomized algorithm based on the equation(

an

)= a

n−12 (mod n).

Never incorrectly classifies primes and correctly classifies compositeswith probability at least 1

2 .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 14 / 39

Page 29: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

Proposed by Solovay and Strassen (1973).

A randomized algorithm based on the equation(

an

)= a

n−12 (mod n).

Never incorrectly classifies primes and correctly classifies compositeswith probability at least 1

2 .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 14 / 39

Page 30: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

Proposed by Solovay and Strassen (1973).

A randomized algorithm based on the equation(

an

)= a

n−12 (mod n).

Never incorrectly classifies primes and correctly classifies compositeswith probability at least 1

2 .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 14 / 39

Page 31: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

1 If n = mk for some k > 1 or an even number > 2, it is composite.

2 For a random a in Zn, test if(a

n

)= a

n−12 (mod n).

3 If yes, classify n as prime, otherwise as composite.

The time complexity is O(log n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 15 / 39

Page 32: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

1 If n = mk for some k > 1 or an even number > 2, it is composite.

2 For a random a in Zn, test if(a

n

)= a

n−12 (mod n).

3 If yes, classify n as prime, otherwise as composite.

The time complexity is O(log n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 15 / 39

Page 33: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

1 If n = mk for some k > 1 or an even number > 2, it is composite.

2 For a random a in Zn, test if(a

n

)= a

n−12 (mod n).

3 If yes, classify n as prime, otherwise as composite.

The time complexity is O(log n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 15 / 39

Page 34: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Solovay-Strassen Algorithm

1 If n = mk for some k > 1 or an even number > 2, it is composite.

2 For a random a in Zn, test if(a

n

)= a

n−12 (mod n).

3 If yes, classify n as prime, otherwise as composite.

The time complexity is O(log n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 15 / 39

Page 35: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

If n is prime, it is always classified as prime.

Consider the case when n is an odd composite and a product of atleast two primes.

Let n = pk ·m where p is prime, k > 0 is odd, and (p,m) = 1.

Facts1 Every number a < n can be uniquely decomposed as a = 〈α, c〉 where

α = a (mod pk) and c = a (mod m).

2 There are exactly 12(p − 1) numbers between 0 and p that are

quadratic residues modulo p.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 16 / 39

Page 36: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

If n is prime, it is always classified as prime.

Consider the case when n is an odd composite and a product of atleast two primes.

Let n = pk ·m where p is prime, k > 0 is odd, and (p,m) = 1.

Facts1 Every number a < n can be uniquely decomposed as a = 〈α, c〉 where

α = a (mod pk) and c = a (mod m).

2 There are exactly 12(p − 1) numbers between 0 and p that are

quadratic residues modulo p.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 16 / 39

Page 37: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

If n is prime, it is always classified as prime.

Consider the case when n is an odd composite and a product of atleast two primes.

Let n = pk ·m where p is prime, k > 0 is odd, and (p,m) = 1.

Facts1 Every number a < n can be uniquely decomposed as a = 〈α, c〉 where

α = a (mod pk) and c = a (mod m).

2 There are exactly 12(p − 1) numbers between 0 and p that are

quadratic residues modulo p.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 16 / 39

Page 38: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

Let 0 < α, β < p, 0 < c < m with α a quadratic residue modulo pand β a non-residue.

Clearly,

〈α, c〉n−1

2 = 〈β, c〉n−1

2 = cn−1

2 (mod m)

And(〈α, c〉

n

)=

p

)k

·( c

m

)= −

p

)k

·( c

m

)= −

(〈β, c〉

n

).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 17 / 39

Page 39: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

Let 0 < α, β < p, 0 < c < m with α a quadratic residue modulo pand β a non-residue.

Clearly,

〈α, c〉n−1

2 = 〈β, c〉n−1

2 = cn−1

2 (mod m)

And(〈α, c〉

n

)=

p

)k

·( c

m

)= −

p

)k

·( c

m

)= −

(〈β, c〉

n

).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 17 / 39

Page 40: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

Let 0 < α, β < p, 0 < c < m with α a quadratic residue modulo pand β a non-residue.

Clearly,

〈α, c〉n−1

2 = 〈β, c〉n−1

2 = cn−1

2 (mod m)

And(〈α, c〉

n

)=

p

)k

·( c

m

)= −

p

)k

·( c

m

)= −

(〈β, c〉

n

).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 17 / 39

Page 41: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

If 〈α, c〉n−1

2 6= 〈β, c〉n−1

2 (mod n) then one of them is not in 1,−1and so compositeness of n is proven.

Otherwise, either (〈α, c〉

n

)6= 〈α, c〉

n−12 (mod n),

or (〈β, c〉

n

)6= 〈β, c〉

n−12 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 18 / 39

Page 42: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

If 〈α, c〉n−1

2 6= 〈β, c〉n−1

2 (mod n) then one of them is not in 1,−1and so compositeness of n is proven.

Otherwise, either (〈α, c〉

n

)6= 〈α, c〉

n−12 (mod n),

or (〈β, c〉

n

)6= 〈β, c〉

n−12 (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 18 / 39

Page 43: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

So it cannot be that both a quadratic residue and a non-residuemodulo p satisfy the equation(a

n

)= a

n−12 (mod n).

Therefore, with probability at least 12 , when n is composite, the

algorithm will be correct.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 19 / 39

Page 44: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis

So it cannot be that both a quadratic residue and a non-residuemodulo p satisfy the equation(a

n

)= a

n−12 (mod n).

Therefore, with probability at least 12 , when n is composite, the

algorithm will be correct.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 19 / 39

Page 45: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Outline

1 Fermat’s Little Theorem

2 Primality Testing

3 Solovay-Strassen Algorithm

4 Miller-Rabin Algorithm

5 AKS Algorithm

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 20 / 39

Page 46: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Fermat’s Little Theorem and More Quadratic

Residues

Theorem (Another Restatement of FLT)

If n is odd prime and n = 1 + 2s · t, t odd, then for every a, 1 ≤ a < n, the

sequence an−1

2 = a2s−1·t (mod n), a2s−2·t (mod n), . . ., at (mod n) haseither all 1’s or a −1 somewhere.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 21 / 39

Page 47: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

This theorem is the basis for Miller’s algorithm (1973).

It is a deterministic polynomial time test.

It is correct under Extended Riemann Hypothesis.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 22 / 39

Page 48: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

This theorem is the basis for Miller’s algorithm (1973).

It is a deterministic polynomial time test.

It is correct under Extended Riemann Hypothesis.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 22 / 39

Page 49: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

This theorem is the basis for Miller’s algorithm (1973).

It is a deterministic polynomial time test.

It is correct under Extended Riemann Hypothesis.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 22 / 39

Page 50: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

1 If n = mk for some k > 1 or is even number > 2, it is composite.

2 For each a, 1 < a ≤ 4 log2 n, check if the sequence a2s−1·t (mod n),a2s−2·t (mod n), . . ., at (mod n) has either all 1’s or a −1 somewhere.

3 If yes, classify n as prime, otherwise as composite.

The time complexity of the test is O(log3 n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 23 / 39

Page 51: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

1 If n = mk for some k > 1 or is even number > 2, it is composite.

2 For each a, 1 < a ≤ 4 log2 n, check if the sequence a2s−1·t (mod n),a2s−2·t (mod n), . . ., at (mod n) has either all 1’s or a −1 somewhere.

3 If yes, classify n as prime, otherwise as composite.

The time complexity of the test is O(log3 n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 23 / 39

Page 52: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

1 If n = mk for some k > 1 or is even number > 2, it is composite.

2 For each a, 1 < a ≤ 4 log2 n, check if the sequence a2s−1·t (mod n),a2s−2·t (mod n), . . ., at (mod n) has either all 1’s or a −1 somewhere.

3 If yes, classify n as prime, otherwise as composite.

The time complexity of the test is O(log3 n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 23 / 39

Page 53: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Miller’s Algorithm

1 If n = mk for some k > 1 or is even number > 2, it is composite.

2 For each a, 1 < a ≤ 4 log2 n, check if the sequence a2s−1·t (mod n),a2s−2·t (mod n), . . ., at (mod n) has either all 1’s or a −1 somewhere.

3 If yes, classify n as prime, otherwise as composite.

The time complexity of the test is O(log3 n) arithmetic operations.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 23 / 39

Page 54: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Rabin’s Modification

A modification of Miller’s algorithm proposed soon after (1974).

Selects a randomly instead of trying all a in the range [2, 4 log2 n].

Randomized algorithm that never classfies primes incorrectly andcorrectly classifies composites with probabilty at least 3

4 .

Time complexity is O(log n) arithmetic operations.

The most popular primality testing algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 24 / 39

Page 55: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Rabin’s Modification

A modification of Miller’s algorithm proposed soon after (1974).

Selects a randomly instead of trying all a in the range [2, 4 log2 n].

Randomized algorithm that never classfies primes incorrectly andcorrectly classifies composites with probabilty at least 3

4 .

Time complexity is O(log n) arithmetic operations.

The most popular primality testing algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 24 / 39

Page 56: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Rabin’s Modification

A modification of Miller’s algorithm proposed soon after (1974).

Selects a randomly instead of trying all a in the range [2, 4 log2 n].

Randomized algorithm that never classfies primes incorrectly andcorrectly classifies composites with probabilty at least 3

4 .

Time complexity is O(log n) arithmetic operations.

The most popular primality testing algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 24 / 39

Page 57: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Rabin’s Modification

A modification of Miller’s algorithm proposed soon after (1974).

Selects a randomly instead of trying all a in the range [2, 4 log2 n].

Randomized algorithm that never classfies primes incorrectly andcorrectly classifies composites with probabilty at least 3

4 .

Time complexity is O(log n) arithmetic operations.

The most popular primality testing algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 24 / 39

Page 58: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Outline

1 Fermat’s Little Theorem

2 Primality Testing

3 Solovay-Strassen Algorithm

4 Miller-Rabin Algorithm

5 AKS Algorithm

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 25 / 39

Page 59: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Fermat’s Little Theorem for Polynomials

Theorem (A Third Generalization of FLT)

If n is prime then for every a, 1 ≤ a < n,(x + a)n = xn + a (mod n, x r − 1).

P(x) (mod n, x r − 1) is the residue polynomial obtained by reducing itscoefficients modulo n and powers of x modulo r .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 26 / 39

Page 60: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

We have

(x + a)n =n∑

i=0

(n

i

)x i · an−i .

Since n is prime, each of(n

i

)is divisible by n for 1 ≤ i < n.

Also, an = a (mod n).

Therefore,(x + a)n = xn + a (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 27 / 39

Page 61: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

We have

(x + a)n =n∑

i=0

(n

i

)x i · an−i .

Since n is prime, each of(n

i

)is divisible by n for 1 ≤ i < n.

Also, an = a (mod n).

Therefore,(x + a)n = xn + a (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 27 / 39

Page 62: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Proof

We have

(x + a)n =n∑

i=0

(n

i

)x i · an−i .

Since n is prime, each of(n

i

)is divisible by n for 1 ≤ i < n.

Also, an = a (mod n).

Therefore,(x + a)n = xn + a (mod n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 27 / 39

Page 63: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

A test proposed in 2002 based on the above generalization.

The time complexity is O(log192 n) arithmetic operations.

The only known deterministic, unconditionally correct, polynomialtime algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 28 / 39

Page 64: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

A test proposed in 2002 based on the above generalization.

The time complexity is O(log192 n) arithmetic operations.

The only known deterministic, unconditionally correct, polynomialtime algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 28 / 39

Page 65: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

A test proposed in 2002 based on the above generalization.

The time complexity is O(log192 n) arithmetic operations.

The only known deterministic, unconditionally correct, polynomialtime algorithm.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 28 / 39

Page 66: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

1 If n = mk for k > 1, or is even or has a small divisor, it is composite.

2 Find the smallest number r such that Or (n) > 4 log2 n.

3 For each a, 1 ≤ a ≤ 2√

r log n, check if(x + a)n = xn + a (mod n, x r − 1).

4 If yes, n is prime, otherwise composite.

Or (n) is the smallest number k for which nk = 1 (mod r).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 29 / 39

Page 67: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

1 If n = mk for k > 1, or is even or has a small divisor, it is composite.

2 Find the smallest number r such that Or (n) > 4 log2 n.

3 For each a, 1 ≤ a ≤ 2√

r log n, check if(x + a)n = xn + a (mod n, x r − 1).

4 If yes, n is prime, otherwise composite.

Or (n) is the smallest number k for which nk = 1 (mod r).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 29 / 39

Page 68: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

1 If n = mk for k > 1, or is even or has a small divisor, it is composite.

2 Find the smallest number r such that Or (n) > 4 log2 n.

3 For each a, 1 ≤ a ≤ 2√

r log n, check if(x + a)n = xn + a (mod n, x r − 1).

4 If yes, n is prime, otherwise composite.

Or (n) is the smallest number k for which nk = 1 (mod r).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 29 / 39

Page 69: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

AKS Algorithm

1 If n = mk for k > 1, or is even or has a small divisor, it is composite.

2 Find the smallest number r such that Or (n) > 4 log2 n.

3 For each a, 1 ≤ a ≤ 2√

r log n, check if(x + a)n = xn + a (mod n, x r − 1).

4 If yes, n is prime, otherwise composite.

Or (n) is the smallest number k for which nk = 1 (mod r).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 29 / 39

Page 70: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two Sets

Suppose n has a prime factor p.

Fix r such that Or (n) > 4 log2 n.

Suppose that for each 1 ≤ a ≤ 2√

r log n,

(x + a)n = xn + a (mod n, x r − 1).

Define two sets A and B as follows:

A = m | (x + a)m = xm + a (mod p, x r − 1)

for every a, 1 ≤ a ≤ 2√

r log nB = g(x) | g(x)m = g(xm) (mod p, x r − 1) for every m ∈ A

We have n, p ∈ A and x + a ∈ B for 1 ≤ a ≤ 2√

r log n.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 30 / 39

Page 71: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two Sets

Suppose n has a prime factor p.

Fix r such that Or (n) > 4 log2 n.

Suppose that for each 1 ≤ a ≤ 2√

r log n,

(x + a)n = xn + a (mod n, x r − 1).

Define two sets A and B as follows:

A = m | (x + a)m = xm + a (mod p, x r − 1)

for every a, 1 ≤ a ≤ 2√

r log nB = g(x) | g(x)m = g(xm) (mod p, x r − 1) for every m ∈ A

We have n, p ∈ A and x + a ∈ B for 1 ≤ a ≤ 2√

r log n.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 30 / 39

Page 72: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two Sets

Suppose n has a prime factor p.

Fix r such that Or (n) > 4 log2 n.

Suppose that for each 1 ≤ a ≤ 2√

r log n,

(x + a)n = xn + a (mod n, x r − 1).

Define two sets A and B as follows:

A = m | (x + a)m = xm + a (mod p, x r − 1)

for every a, 1 ≤ a ≤ 2√

r log nB = g(x) | g(x)m = g(xm) (mod p, x r − 1) for every m ∈ A

We have n, p ∈ A and x + a ∈ B for 1 ≤ a ≤ 2√

r log n.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 30 / 39

Page 73: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two Sets

Suppose n has a prime factor p.

Fix r such that Or (n) > 4 log2 n.

Suppose that for each 1 ≤ a ≤ 2√

r log n,

(x + a)n = xn + a (mod n, x r − 1).

Define two sets A and B as follows:

A = m | (x + a)m = xm + a (mod p, x r − 1)

for every a, 1 ≤ a ≤ 2√

r log nB = g(x) | g(x)m = g(xm) (mod p, x r − 1) for every m ∈ A

We have n, p ∈ A and x + a ∈ B for 1 ≤ a ≤ 2√

r log n.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 30 / 39

Page 74: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two More Sets

Observation

Both A and B are closed under multiplication.

Now define two more sets:

A0 = m (mod r) | m ∈ AB0 = g(x) (mod p, h(x)) | g(x) ∈ B

Here h(x) is an irreducible factor of x r − 1 modulo p containing aprimitive rth root of unity.

Let F = Fp[x ]/(h(x)), the field of polynomials modulo p and h(x).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 31 / 39

Page 75: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two More Sets

Observation

Both A and B are closed under multiplication.

Now define two more sets:

A0 = m (mod r) | m ∈ AB0 = g(x) (mod p, h(x)) | g(x) ∈ B

Here h(x) is an irreducible factor of x r − 1 modulo p containing aprimitive rth root of unity.

Let F = Fp[x ]/(h(x)), the field of polynomials modulo p and h(x).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 31 / 39

Page 76: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Two More Sets

Observation

Both A and B are closed under multiplication.

Now define two more sets:

A0 = m (mod r) | m ∈ AB0 = g(x) (mod p, h(x)) | g(x) ∈ B

Here h(x) is an irreducible factor of x r − 1 modulo p containing aprimitive rth root of unity.

Let F = Fp[x ]/(h(x)), the field of polynomials modulo p and h(x).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 31 / 39

Page 77: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of A0

Recall

A0 = m (mod r) | m ∈ A

Let t = |A0|.Since elements of A0 are non-zero numbers modulo r , t < r .

Since all powers of n belong to A and Or (n) > 4 log2 n, t > 4 log2 n.

Hence,4 log2 n < t < r .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 32 / 39

Page 78: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of A0

Recall

A0 = m (mod r) | m ∈ A

Let t = |A0|.Since elements of A0 are non-zero numbers modulo r , t < r .

Since all powers of n belong to A and Or (n) > 4 log2 n, t > 4 log2 n.

Hence,4 log2 n < t < r .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 32 / 39

Page 79: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of A0

Recall

A0 = m (mod r) | m ∈ A

Let t = |A0|.Since elements of A0 are non-zero numbers modulo r , t < r .

Since all powers of n belong to A and Or (n) > 4 log2 n, t > 4 log2 n.

Hence,4 log2 n < t < r .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 32 / 39

Page 80: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of A0

Recall

A0 = m (mod r) | m ∈ A

Let t = |A0|.Since elements of A0 are non-zero numbers modulo r , t < r .

Since all powers of n belong to A and Or (n) > 4 log2 n, t > 4 log2 n.

Hence,4 log2 n < t < r .

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 32 / 39

Page 81: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of B0

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Let T = |B0|.Since elements of B0 are polynomials modulo p and h(x) and degreeof h is < r , T ≤ pr−1.

The lower bound on T is trickier.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 33 / 39

Page 82: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of B0

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Let T = |B0|.Since elements of B0 are polynomials modulo p and h(x) and degreeof h is < r , T ≤ pr−1.

The lower bound on T is trickier.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 33 / 39

Page 83: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of B0

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Let T = |B0|.Since elements of B0 are polynomials modulo p and h(x) and degreeof h is < r , T ≤ pr−1.

The lower bound on T is trickier.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 33 / 39

Page 84: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Consider f (x), g(x) ∈ B, f 6= g and both of degree < t.

Suppose f (x) = g(x) in B0, i.e., f (x) = g(x) (mod p, h(x)).

Since f , g ∈ B, f (x)m = f (xm) (mod p, x r − 1) andg(x)m = g(xm) (mod p, x r − 1) for every m ∈ A.

Therefore, f (xm) = g(xm) (mod p, h(x)) for every m ∈ A0.

Since x is a primitive rth root of unity in F , we get |A0| = t distinctroots of the polynomial f (y)− g(y) in F .

Not possible since degree of f (y)− g(y) is < t and F is a field.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 34 / 39

Page 85: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Consider f (x), g(x) ∈ B, f 6= g and both of degree < t.

Suppose f (x) = g(x) in B0, i.e., f (x) = g(x) (mod p, h(x)).

Since f , g ∈ B, f (x)m = f (xm) (mod p, x r − 1) andg(x)m = g(xm) (mod p, x r − 1) for every m ∈ A.

Therefore, f (xm) = g(xm) (mod p, h(x)) for every m ∈ A0.

Since x is a primitive rth root of unity in F , we get |A0| = t distinctroots of the polynomial f (y)− g(y) in F .

Not possible since degree of f (y)− g(y) is < t and F is a field.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 34 / 39

Page 86: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Consider f (x), g(x) ∈ B, f 6= g and both of degree < t.

Suppose f (x) = g(x) in B0, i.e., f (x) = g(x) (mod p, h(x)).

Since f , g ∈ B, f (x)m = f (xm) (mod p, x r − 1) andg(x)m = g(xm) (mod p, x r − 1) for every m ∈ A.

Therefore, f (xm) = g(xm) (mod p, h(x)) for every m ∈ A0.

Since x is a primitive rth root of unity in F , we get |A0| = t distinctroots of the polynomial f (y)− g(y) in F .

Not possible since degree of f (y)− g(y) is < t and F is a field.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 34 / 39

Page 87: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Consider f (x), g(x) ∈ B, f 6= g and both of degree < t.

Suppose f (x) = g(x) in B0, i.e., f (x) = g(x) (mod p, h(x)).

Since f , g ∈ B, f (x)m = f (xm) (mod p, x r − 1) andg(x)m = g(xm) (mod p, x r − 1) for every m ∈ A.

Therefore, f (xm) = g(xm) (mod p, h(x)) for every m ∈ A0.

Since x is a primitive rth root of unity in F , we get |A0| = t distinctroots of the polynomial f (y)− g(y) in F .

Not possible since degree of f (y)− g(y) is < t and F is a field.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 34 / 39

Page 88: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Consider f (x), g(x) ∈ B, f 6= g and both of degree < t.

Suppose f (x) = g(x) in B0, i.e., f (x) = g(x) (mod p, h(x)).

Since f , g ∈ B, f (x)m = f (xm) (mod p, x r − 1) andg(x)m = g(xm) (mod p, x r − 1) for every m ∈ A.

Therefore, f (xm) = g(xm) (mod p, h(x)) for every m ∈ A0.

Since x is a primitive rth root of unity in F , we get |A0| = t distinctroots of the polynomial f (y)− g(y) in F .

Not possible since degree of f (y)− g(y) is < t and F is a field.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 34 / 39

Page 89: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

Consider f (x), g(x) ∈ B, f 6= g and both of degree < t.

Suppose f (x) = g(x) in B0, i.e., f (x) = g(x) (mod p, h(x)).

Since f , g ∈ B, f (x)m = f (xm) (mod p, x r − 1) andg(x)m = g(xm) (mod p, x r − 1) for every m ∈ A.

Therefore, f (xm) = g(xm) (mod p, h(x)) for every m ∈ A0.

Since x is a primitive rth root of unity in F , we get |A0| = t distinctroots of the polynomial f (y)− g(y) in F .

Not possible since degree of f (y)− g(y) is < t and F is a field.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 34 / 39

Page 90: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

We have that every distinct polynomial of degree < t in B is adistinct element in B0.

B has at least 2√

r log n polynomials of degree 1 and is closed undermultiplication.

The number of distinct polynomials of degree < t in B is more thann2√

t .

Therefore,n2√

t < T ≤ pr−1.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 35 / 39

Page 91: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

We have that every distinct polynomial of degree < t in B is adistinct element in B0.

B has at least 2√

r log n polynomials of degree 1 and is closed undermultiplication.

The number of distinct polynomials of degree < t in B is more thann2√

t .

Therefore,n2√

t < T ≤ pr−1.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 35 / 39

Page 92: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

We have that every distinct polynomial of degree < t in B is adistinct element in B0.

B has at least 2√

r log n polynomials of degree 1 and is closed undermultiplication.

The number of distinct polynomials of degree < t in B is more thann2√

t .

Therefore,n2√

t < T ≤ pr−1.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 35 / 39

Page 93: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Lower Bound on T

Recall

B0 = g(x) (mod p, h(x)) | g(x) ∈ B

We have that every distinct polynomial of degree < t in B is adistinct element in B0.

B has at least 2√

r log n polynomials of degree 1 and is closed undermultiplication.

The number of distinct polynomials of degree < t in B is more thann2√

t .

Therefore,n2√

t < T ≤ pr−1.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 35 / 39

Page 94: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

Since |A0| = t, there exist two pairs (i , j) 6= (k, `), i , j , k, ` ≤√

t suchthat

ni · pj = nk · p` (mod r).

Let g(x) ∈ B0.

We have:

g(x)ni ·pj

= g(xni ·pj) = g(xnk ·p`

) = g(x)nk ·p`

(mod p, h(x)).

Therefore, every g(x) ∈ B0 is a root of the polynomial yni ·pj − ynk ·p`.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 36 / 39

Page 95: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

Since |A0| = t, there exist two pairs (i , j) 6= (k, `), i , j , k, ` ≤√

t suchthat

ni · pj = nk · p` (mod r).

Let g(x) ∈ B0.

We have:

g(x)ni ·pj

= g(xni ·pj) = g(xnk ·p`

) = g(x)nk ·p`

(mod p, h(x)).

Therefore, every g(x) ∈ B0 is a root of the polynomial yni ·pj − ynk ·p`.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 36 / 39

Page 96: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

Since |A0| = t, there exist two pairs (i , j) 6= (k, `), i , j , k, ` ≤√

t suchthat

ni · pj = nk · p` (mod r).

Let g(x) ∈ B0.

We have:

g(x)ni ·pj

= g(xni ·pj) = g(xnk ·p`

) = g(x)nk ·p`

(mod p, h(x)).

Therefore, every g(x) ∈ B0 is a root of the polynomial yni ·pj − ynk ·p`.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 36 / 39

Page 97: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

By the choice, ni · pj , nk · p` ≤ n2√

t .

Since T > n2√

t , the polynomial yni ·pj − ynk ·p`must be zero.

This implies, ni · pj = nk · p`.

Since p is a prime, p divides n, and (i , j) 6= (k, `), we get

n = pc

for some c > 0.

Therefore, n must be prime.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 37 / 39

Page 98: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

By the choice, ni · pj , nk · p` ≤ n2√

t .

Since T > n2√

t , the polynomial yni ·pj − ynk ·p`must be zero.

This implies, ni · pj = nk · p`.

Since p is a prime, p divides n, and (i , j) 6= (k, `), we get

n = pc

for some c > 0.

Therefore, n must be prime.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 37 / 39

Page 99: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

By the choice, ni · pj , nk · p` ≤ n2√

t .

Since T > n2√

t , the polynomial yni ·pj − ynk ·p`must be zero.

This implies, ni · pj = nk · p`.

Since p is a prime, p divides n, and (i , j) 6= (k, `), we get

n = pc

for some c > 0.

Therefore, n must be prime.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 37 / 39

Page 100: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

By the choice, ni · pj , nk · p` ≤ n2√

t .

Since T > n2√

t , the polynomial yni ·pj − ynk ·p`must be zero.

This implies, ni · pj = nk · p`.

Since p is a prime, p divides n, and (i , j) 6= (k, `), we get

n = pc

for some c > 0.

Therefore, n must be prime.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 37 / 39

Page 101: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Relation Between n and p

By the choice, ni · pj , nk · p` ≤ n2√

t .

Since T > n2√

t , the polynomial yni ·pj − ynk ·p`must be zero.

This implies, ni · pj = nk · p`.

Since p is a prime, p divides n, and (i , j) 6= (k, `), we get

n = pc

for some c > 0.

Therefore, n must be prime.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 37 / 39

Page 102: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of r

Number r is such that Or (n) > 4 log2 n.

It can be any prime not dividing the product

4 log2 n∏i=1

(ni − 1) < n16 log4 n.

It follows that r = O(log5 n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 38 / 39

Page 103: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of r

Number r is such that Or (n) > 4 log2 n.

It can be any prime not dividing the product

4 log2 n∏i=1

(ni − 1) < n16 log4 n.

It follows that r = O(log5 n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 38 / 39

Page 104: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Analysis: Estimating Size of r

Number r is such that Or (n) > 4 log2 n.

It can be any prime not dividing the product

4 log2 n∏i=1

(ni − 1) < n16 log4 n.

It follows that r = O(log5 n).

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 38 / 39

Page 105: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Time Complexity Improvements

Lenstra and Pomerance (2003) further reduce the size of r toO(log2 n) resulting in the time complexity of O(log5 n) arithmeticoperations.

Bernstein (2003) reduced the time complexity to O(log3 n) arithmeticoperations at the cost of making it randomized.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 39 / 39

Page 106: Primality Tests Based on Fermat's Little Theorem · 2007-06-20 · A Simple Algorithm Based on FLT For m different a’s, test if an−1 = 1 (mod n). Takes O(mlogn) arithmetic operations

Time Complexity Improvements

Lenstra and Pomerance (2003) further reduce the size of r toO(log2 n) resulting in the time complexity of O(log5 n) arithmeticoperations.

Bernstein (2003) reduced the time complexity to O(log3 n) arithmeticoperations at the cost of making it randomized.

Manindra Agrawal (IIT Kanpur) FLT Based Tests ICDCN, IIT Guwahati 39 / 39