Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
6.3 Primality Testing (1) Prime numbers 1. How to generate large prime numbers? (1) Generate as candidate a random odd number n of appropriate size. (2) Test n for primality. (3) If n is composite, return to the first step. p2. 2. Distribution of prime numbers (1) prime number theorem Let Π(x) denote the number of prime numbers ≦x. Π(x) ~ x/ln(x) when n∞. (2)Dirichlet theorem If gcd(a, n)=1, then there are infinitely many primes congruent to a mod n. p3. (3) Let Π(x, n, a) denote the number of primes in the interval [2, x] which are congruent to a modulo n, where gcd(a, n)=1 . Then Π(x, n, a) ~ x ( n) ln x The prime numbers are roughly uniformly distributed among the φ(n) congruence classes in Zn* (4) Approximation for the nth prime number pn n ln n pn n( ln n ln ln n) for n 6 p4. (2) Solovay-Strassen primality test 1. Trial method for testing n is prime or composite a [2, n ], if a does not divide n n is prime 2. Definition :Euler witness Let n be an odd composite integer and (1) If gcd(a, n) 1 or a ( n 1) / 2 1 a. n a (mod n) n then a is an Euler witness (to compositeness) for n. p5. (2) Otherwise, if gcd( a, n) 1 and a ( n 1) / 2 a (mod n) n then n is said to be an Euler pseudoprime to the base a. The integer a is called an Euler liar (to primality) for n. p6. 3. Example (Euler pseudoprime) Consider n = 91 (= 7x13) 9 Since 945 =1 mod 91, and 1 91 so 91 is an Euler pseudoprime to the base 9. 4. Fact At most Φ(n)/2 of all the numbers a, are Euler liars for n. p7. 5. Algorithm :Solovay-Strassen(n, t) INPUT: n is odd, n ≧3, t ≧1 OUTPUT: “prime” or “composite” 1. for i = 1 to t do : 1.1 choose a random integer a, 2 ≦ a≦n-2 if gcd(a,n) ≠1 then return ( “composite” ) 1.2 compute r=a(n-1)/2 mod n (use square-andmultiply) if r ≠ 1 and r ≠ n-1 then return ( “composite” ) a n 1.3 compute Jacobi symbol s= if r ≠ s then return ( “composite” ) 2. return ( “prime” ) p8. 6. Solovay-Strassen error-probability bound For any odd composite integer n, the probability that Solovay-Strassen (n, t) declares n to be “prime” is less than (1/2)t p9. (3) Miller-Rabin primality test 1. Fact p : odd prime p-1 = 2sr, where r is odd For a in Zp* then ar = 1 (mod p) j or a2 r = -1 (mod p) for some j, 0≦ j≦s-1 Why ? (1) Fermat’s little theorem, ap-1 = 1 mod p (2) 1, -1 are the only two square roots of 1 in Zp* p10. 2. Definition n : odd composite integer n-1 = 2sr, where r is odd 1≦a ≦n-1 a is a strong witness to compositeness for n if ar ≠ 1 (mod n), and j a2 r ≠ -1 (mod n) for all j, 0≦ j≦s-1 n is a strong pseudoprime to the base a if ar = 1 (mod n) j or a2 r = -1 (mod n) for some j, 0≦ j≦s-1 (a is called a strong liar to primality for n) p11. 3. Algorithm: Miller-Rabin (n, t) INPUT: n is odd, n ≧3, t ≧1 OUTPUT: “prime” or “composite” 1. write n-1 = 2sr such that r is odd. 2. for i = 1 to t do : 2.1 choose a random integer a, 2 ≦ a≦n-2 2.2 compute y=ar mod n (use square-and-multiply) 2.3 if y ≠ 1 and y ≠ n-1 do : j1 while j ≦ s-1 and y ≠n-1 do : y y2 mod n if y = 1 then return ( “composite” ) j j+1 if y ≠ n-1 then return ( “composite” ) 3. return ( “prime” ) p12. 4. Example (strong pseudoprime) Consider n = 91 (= 7x13) 91-1 = 2*45, s=1, r=45 r 45 =1 mod 91, 91 is a strong Since 9 = 9 pseudoprime to the base 9. The set of all strong liars for 91 is {1, 9, 10, 12, 16, 17, 22, 29, 38, 53, 62, 69, 74, 75, 79, 81, 82, 90} The number of strong liars of for 91 is 18 = Φ(91)/4 p13. 5. Fact If n is an odd composite integer, then at most ¼ of all the numbers a, 1 ≦a ≦n-1 are strong liars for n. In fact if n=!9, then number of strong liars for n is at most Φ(n)/4. p14. 6. Miller-Rabin error-probability bound For any odd composite integer n, the probability that Miller-Rabin (n, t) declares n to be “prime” is less than (1/4)t 7. Remark For most composite integers n, the number of strong liars for n is actually much smaller than the upper bound of Φ(n)/4. Miller-Rabin error-probability bound is much smaller than (1/4)t . p15.