Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

16
Primality Testing By Ho, Ching Hei Cheung, Wai Kwok

Transcript of Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Page 1: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Primality Testing

ByHo, Ching Hei

Cheung, Wai Kwok

Page 2: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Introduction

The primality test provides the probability of whether or not a large number is prime.

Several theorems including Fermat’s theorem provide idea of primality test.

Cryptography schemes such as RSA algorithm heavily based on primality test.

Page 3: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Definitions

A Prime number is an integer that has no integer factors other than 1 and itself. On the other hand, it is called composite number.

A primality testing is a test to determine whether or not a given number is prime, as opposed to actually decomposing the number into its constituent prime factors (which is known as prime factorization) Use multiple points if necessary.

Page 4: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Algorithms

A Naïve Algorithm Pick any integer P that is greater than 2. Try to divide P by all odd integers starting from 3

to square root of P. If P is divisible by any one of these odd integers,

we can conclude that P is composite. The worst case is that we have to go through all

odd number testing cases up to square root of P. Time complexity is O(square root of N)

Page 5: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Algorithms (Cont.) Fermat’s Theorem

Given that P is an integer that we would like to test that it is either a PRIME or not.

And A is another integer that is greater than zero and less than P. From Fermat’s Theorem, if P is a PRIME, it will satisfy this two

equalities: A^(p-1) = 1(mod P) or A^(p-1)mod P = 1 A^P = A(mod P) or A^P mod P = A

For instances, if P = 341, will P be PRIME?

-> from previous equalities, we would be able to obtain that:

2^(341-1)mod 341 = 1, if A = 2

Page 6: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Algorithms (Cont.)

It seems that 341 is a prime number under Fermat’s Theorem. However, if A is now equal to 3:

3^(341-1)mod 341 = 56 !!!!!!!!! That means Fermat’s Theorem is not

true in this case! Time complexity is O(log n)

Page 7: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Algorithms (Cont.) Rabin-Miller’s Probabilistic Primality Algorithm

The Rabin-Miller’s Probabilistic Primality test was by Rabin, based on Miller’s idea. This algorithm provides a fast method of determining of primality of a number with a controllably small probability of error.

Given (b, n), where n is the number to be tested for primality, and b is randomly chosen in [1, n-1]. Let n-1 = (2^q)*m, where m is an odd integer. B^m = 1(mod n) i[0, q-1] such that b^(m2)^i = -1(mod n)

Page 8: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Algorithm (Cont.) If the testing number satisfies either cases, it

will be said as “inconclusive”. That means it could be a prime number.

From Fermat’s Theorem, it concludes 341 is a prime but it is 11 * 31!

Now try to use Rabin-Miller’s Algorithm. Let n be 341, b be 2. then assume: q = 2 and m = 85 (since, n -1 = 2^q*m) 2^85 mod 341 = 32 Since it is not equal to 1, 341 is composite! Time complexity is O(log N)

Page 9: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

RSA Algorithm

The scheme was developed by Rivest, Shamir, and Adleman.

The scheme was used to encrypt plaintext into blocks in order to prevent third party to gain access to private message.

Page 10: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

RSA in action:

1. Pick two large prime numbers namely p and q and compute their product and set it as n.

n = p*q

Page 11: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

RSA in action (cont.):

2. Set public key to send the message. public key (e, n)

such that: gcd((n), e) = 1; [1<e< (n)]

sender uses public key to encrypt the message before sending it to the

recipient.

Page 12: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

RSA in action (cont.):

3. Retrieve message using private key.

at the recipient’s side, private key(d, n), such that ed = 1mod (n), need to be obtained in order to get the original message through decryption.

Page 13: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Demonstration for RSA: Pick 2 primes: p=7, q=17

n = p*qn = 119

Compute: (n) = (119)

= (7*17) = (7) * (17) = 6 * 16 = 96

Find e such that gcd((n), e) = 1; [1<e< (n)]gcd(e, 96) = 1

e = 5 public key(e, n) Find d such that ed = 1mod (n)

5d = 1mod965d = 96 * k +1, where k is some constant5d = 96 * 4 + 1, assume k = 45d = 385d = 77 private key(d, n)

Page 14: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Demonstration for Encryption:! Base on RSA and the result we got ! Encryption . . . (message = 19)

C = M^e mod n = 19^5 mod 119 = 2476099 mod 119 = 66 <the original message will be encrypted with the value of 66>

Page 15: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Demonstration for Decryption

! Base on RSA and the result we got ! Decryption . . .

M = C^d mod nM = 66^77 mod 119M = 1.27 * 10^140 mod 119M = 19 <the original will now be recovered>

Page 16: Primality Testing By Ho, Ching Hei Cheung, Wai Kwok.

Reference:

An Online Calculator by Ulf Wostner from CCSF http://wiz.ccsf.edu/~uwostner/calculator/number_theory.php

Definition of Rabin-Miller’s Probabilistic Primality Testing http://www.ma.iup.edu/MAA/proceedings/vol1/higgins.pdf

Definition of Primality Testing http://mathworld.wolfram.com/AKSPrimalityTest.html

Primality Test for Applications

http://www-math.mit.edu/phase2/UJM/vol1/DORSEY-F.PDF