Bharathiar University
Department of Computer Applications
N.Mohanasundaram
II - MCA
Primality Testing
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.
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.
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)
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
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) ⇐
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)
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)
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.
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
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.
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.
Demonstration for RSA:
 Pick 2 primes: p=7, q=17
n = p*q
n = 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 = 1mod96
5d = 96 * k +1, where k is some constant
5d = 96 * 4 + 1, assume k = 4
5d = 385
d = 77 ⇒ private key(d, n) ⇐
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>
Demonstration for Decryption
! Base on RSA and the result we got !
 Decryption . . .
M = C^d mod n
M = 66^77 mod 119
M = 1.27 * 10^140 mod 119
M = 19 <the original will now be recovered>
Reference:
 An Online Calculator by Ulf Wostner from CCSF
http://wiz.ccsf.edu/~uwostner/calculator/number_theory.p
hp
 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
Thank you

Primality

  • 1.
    Bharathiar University Department ofComputer Applications N.Mohanasundaram II - MCA
  • 2.
  • 3.
    Introduction  The primalitytest 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.
  • 4.
    Definitions  A Primenumber 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.
  • 5.
    Algorithms  A NaïveAlgorithm  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)
  • 6.
    Algorithms (Cont.)  Fermat’sTheorem  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
  • 7.
    Algorithms (Cont.)  Itseems 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) ⇐
  • 8.
    Algorithms (Cont.)  Rabin-Miller’sProbabilistic 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)
  • 9.
    Algorithm (Cont.)  Ifthe 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)
  • 10.
    RSA Algorithm  Thescheme 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.
  • 11.
    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
  • 12.
    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.
  • 13.
    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.
  • 14.
    Demonstration for RSA: Pick 2 primes: p=7, q=17 n = p*q n = 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 = 1mod96 5d = 96 * k +1, where k is some constant 5d = 96 * 4 + 1, assume k = 4 5d = 385 d = 77 ⇒ private key(d, n) ⇐
  • 15.
    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>
  • 16.
    Demonstration for Decryption !Base on RSA and the result we got !  Decryption . . . M = C^d mod n M = 66^77 mod 119 M = 1.27 * 10^140 mod 119 M = 19 <the original will now be recovered>
  • 17.
    Reference:  An OnlineCalculator by Ulf Wostner from CCSF http://wiz.ccsf.edu/~uwostner/calculator/number_theory.p hp  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
  • 18.