Primality Testing - Data Structures - Lecture Slides, Slides of Data Structures and Algorithms

Some concept of Data Structures are Abstract, Balance Factor, Complete Binary Tree, Dynamically, Storage, Implementation, Sequential Search, Advanced Data Structures, Graph Coloring Two, Insertion Sort. Main points of this lecture are: Primality Testing, Introduction, Probability, Large Number, Fermat’S Theorem, Idea of Primality Test, Schemes, Cryptography, Definitions, Composite

Typology: Slides

2012/2013

Uploaded on 04/30/2013

patel
patel 🇮🇳

3.8

(15)

80 documents

1 / 15

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Primality Testing
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download Primality Testing - Data Structures - Lecture Slides and more Slides Data Structures and Algorithms in PDF only on Docsity!

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.

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.)

  • 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 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.):

  1. 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.

Demonstration for RSA:

  • Pick 2 primes: p=7, q= 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 = 1mod 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>