Number Theory Algorithms and Cryptography Algorithms Analysis of Algorithms Prepared by John Reif, Ph.D. Number Theory Algorithms a) b) c) d) e) GCD Multiplicative Inverse Fermat & Euler’s Theorems Public Key Cryptographic Systems Primality Testing Number Theory Algorithms (cont’d) • Main Reading Selections: • CLR, Chapter 33 Euclid’s Algorithm • Greatest Common Divisor GCD(u, v) largest a s.t. a is a divisor of both u,v • Euclid’s Algorithm procedure begin if else return GCD(u,v) v0 then return(u) (GCD(v,u mod v)) Euclid’s Algorithm (cont’d) • Inductive proof of correctness: if a is a divisor of u,v a is a divisor of u - ( u/v ) v = u mod v Euclid’s Algorithm (cont’d) • Time Analysis of Euclid’s Algorithm for n bit numbers u,v T(n) T(n-1) + M (n) = O(n M(n)) = O(n 2log n log log n) (where M(n) = time to mult two n bit integers) Euclid’s Algorithm (cont’d) • Fibonacci worst case: u = Fk , v = Fk+1 where F0 = 0, F1 = 1, Fk+2 = Fk+1 + Fk, k 0 k Fk = 5 , = 1 (1 5) 2 Euclid's Algorithm takes log ( 5 N) = O(n) stages when N = max(u,v). Here n = number of bits of N. Euclid’s Algorithm (cont’d) • Improved Algorithm T(n) T n ( 2 ) + O(M(n)) = O(M(n) log n) Extended GCD Algorithm procedure ExGCD(u, v) where u = (u1, u2, u3) , v = (v1, v2, v3) begin if v3 = 0 then return(u) else return ExGCD(v, u - (v ë u 3 / v 3û)) Extended GCD Algorithm (cont’d) • Theorem ExGCD((1,0,x),(0,1,y)) = (x', y', GCD(x,y)) where x x' + y y' = GCD(x,y) • Proof inductively can verify on each call xu1 + yu 2 = u 3 xv1 + yv 2 = v3 Extended GCD Algorithm (cont’d) • Corollary If gcd(x,y) = 1 then x' is the modular inverse of x modulo y • Proof we must show x x' = 1 mod y but by previous Theorem, 1 = x x' + y y' = x x' mod y so 1 = x x' mod y Modular Laws • Gives Algorithm for Modular Inverse ! • Modular Laws for n 1 let x y if x y mod n Modular Laws (cont’d) Law A if a b and x y then ax by Law B if a b and ax by and gcd(a, n) 1 then x y Modular Laws (cont’d) let {a1 ,..., a k } {b1 ,..., bk } if a i b ji for i 1,..., k and {j1 ,..., jk } {1,..., k} Fermat’s Little Theorem • If n prime then an = a mod n • Proof by Euler if a 0 then a n 0 a else suppose gcd(a,n) 1 Then x ay for y a x and any x -1 so {a,2a,..., (n-1)a} {1,2,..., n-1} Fermat’s Little Theorem (cont’d) So by Law A, (a) (2a) (n-1)a 1 2 (n-1) So a n-1 (n-1)! (n-1)! So by Law B a n-1 1 mod n Euler’s Theorem • Φ(n) = number of integers in {1,…, n-1} relatively prime to n • Euler’s Theorem If gcd(a,n) 1 then a ( n ) = 1 mod n • Proof let b1 ,...,b(n) be the integers n relatively prime to n Euler’s Theorem (cont’d) • Lemma {b1 ,...,b(n) } {ab1 , ab 2 ,..., ab (n) } • Proof If abi ab j then by Law B, bi b j Since 1 gcd(b i ,n) gcd(a,n) then gcd(abi ,n) 1 so for {j1 ,...,j(n) } {1,..., (n)} ab i b ji Euler’s Theorem (cont’d) • By Law A and Lemma (ab1 )(ab 2 ) (ab(n) ) b1b 2 b(n) so a (n) b1 b (n) b1 b (n) • By Law B a (n) 1 mod n Taking Powers mod n by “Repeated Squaring” • Problem: Compute ae mod b e e k e k-1 e1 e0 binary representation [1] X 1 [2] for i k, k-1,..., 0 begin do X X 2 mod b if ei 1 then X Xa mod b end k output a i=0 ei 2i =a ei 2i =a e mod b Taking Powers mod n by “Repeated Squaring” (cont’d) • Time Cost O(k) mults and additions mod b k = # bits of e Rivest, Sharmir, Adelman (RSA) Encryption Algorithm • M = integer message e = “encryption integer” for user A • Cryptogram C E(M) M e mod n Rivest, Sharmir, Adelman (RSA) Encryption Algorithm (cont’d) • Method (1) Choose large random primes p,q let n p q (2) Choose large random integer d relatively prime to (n) (p) (q) (p-1) (q-1) (3) Let e be the multiplicative inverse of d modulo (n) e d 1 mod (n) (require e log n, else try another d) Rivest, Sharmir, Adelman (RSA) Encryption Algorithm (cont’d) • Theorem If M is relatively prime to n, and D(x) = x d (mod n) then D(E(M)) E(D(M)) M Rivest, Sharmir, Adelman (RSA) Encryption Algorithm (cont’d) • Proof D(E(M)) E(D(M)) Med mod n There must k 0 s.t. 1 gcd(d,(n)) -k(n) de So, Med M k (n)1 mod n Since (p-1) divides (n) M k (n)1 M mod p Rivest, Sharmir, Adelman (RSA) Encryption Algorithm (cont’d) • By Euler’s Theorem By Symmetry, M k (n)+1 M (mod q) Hence M ed M k (n)+1 M mod n So M ed M mod n Security of RSA Cryptosystem • Theorem If can compute d in polynomial time, then can factor n in polynomial time • Proof e· d-1 is a multiple of φ(n) But Miller has shown can factor n from any multiple of φ(n) Security of RSA Cryptosystem (cont’d) If can find d' s.t. d' M =M d mod n d' differs from d by lcm(p-1, q-1) so can factor n. (lcm is the "least common multiple) Rabin’s Public Key Crypto System • Use private large primes p, q public key n=q p message M cryptogram M2 mod n • Theorem If cryptosystem can be broken, then can factor key n Rabin’s Public Key Crypto System (cont’d) • Proof M 2 mod n has solutions M , , n- , n- where { , n- } But then 2 - 2 ( - )( ) 0 mod n So either (1) p | ( - ) and q | ( ) or either (2) q | ( - ) and p | ( ) • In either case, two independent solutions for M give factorization of n, i.e., a factor of n is gcd (n, γ -β). Rabin’s Public Key Crypto System (cont’d) • Rabin’s Algorithm for factoring n, given a way to break his cryptosystem. Choose random , 1 n s.t. gcd( , n)=1 let 2 mod n find M s.t. M 2 = mod n by assumed way to break cryptosystem with probability 12 , M { , n- } so factors of n are found else repeat with another Note: Expected number of rounds is 2 Quadratic Residues a is quadratic residue of n if x a mod n has solution Euler: If n is odd, prime and gcd(a,n)=1, then 2 a is quadratic residue of n iff a (n-1)/2 1 mod n Jacobi Function 1 if gcd(a,n) 1 and a is quadratic residue of n J(a,n) -1 if gcd(a,n) 1 and a is not quadratic residue of n 0 if gcd(a,n) 1 Jacobi Function (cont’d) • Gauss’s Quadratic Reciprocity Law if p,q are odd primes, J(p,q) J(q,p) (-1)(p-1) (q-1)/4 • Rivest Algorithm 1 if a=1 (n 2 -1)/8 J(a,n) J(a/2, n) (-1) if a even (a-1) (n-1) 2 2 J(n mod a, a) (-1) else Jacobi Function (cont’d) • Theorem (Fermat) n 2 is prime iff x , 1 x n (1) x n-1 1 mod n (2) x i 1 mod n for all i {1, 2,..., n-2} Theorem: Primes are in NP • Proof input n n 2 output "prime" n 1 or (n even and n 2) output "composite" else guess x to verify Fermat's Theorem Check (1) x n-1 1 mod n To verify (2) guess prime factorization of n-1=n1 n 2 n k (a) recursively verify each n i prime (b) verify x (n-1)/ni 1 mod n Theorem & Primes NP (cont’d) • Note if x (n-1) =1 mod n the least y s.t. x y =1 mod n must divide n-1. So x ya =1 mod n let a= (n-1) yn i so 1 x ya =x (n-1)/ni mod n Primality Testing • Testing wish to test if n is prime technique Wn (a) "a witness that n is composite" Wn (a) true n composite Wn (a) false don't know • Goal of Randomized Primality Testing for random a {1,..., n-1} n composite Prob (Wn (a) true) > 12 So 1 2 of all a {1,..., n-1} are "witness to compositeness of n" Primality Testing (cont’d) • Solovey & Strassen Primality Test quadratic reciprocal law Wn (a) (gcd(a,n) 1) or J(a, n) a (n-1)/2 mod n test if Gauss's Quadratic Reciprocal Law is violated Definitions Z set of all nonnegative numbers n * n which are relatively prime to n. generator g of Z*n such that for all x Z*n there is i such that g i x mod n Theorem of Solovey & Strassen • Theorem If n is composite, then | G | n -1 2 where G = {a | Wn (a mod n) false} • Proof Case G Z * n G is subgroup of Z * n * n |Z | n-1 |G| 2 2 Theorem of Solovey & Strassen (cont’d) Case G Zn Use Proof by Contradiction (n-1)/2 so a =J(a,n) mod n for all a relatively prime to n Let n have prime factorization n=P11 P2 2 P33 , 1 2 ... k * m1 Let g be a generator of Z 1 where m1 =P Theorem of Solovey & Strassen (cont’d) • Then by Chinese Remainder Theorem, unique a s.t. a g mod m1 a 1 mod ( mn1 ) • Since a is relatively prime to n, aZ * n a n-1 so 1 mod n n-1 and g =1 mod n Theorem of Solovey & Strassen (cont’d) Case 1 2. Then order of g in Z*n 1 -1 is p1 (p1 -1) by known formula, a contradiction since the order divides n-1. Theorem of Solovey & Strassen (cont’d) Case 1 2 ... k 1 Since n p1 p k J(a,n) k J(a,pi ) i 1 k J(g,p1 ) J(a, pi ) i2 g mod pi i 1 Since a 1 mod pi i 1 So J(a,n) -1 mod n since J(1,pi ) 1 and J(g,p1 ) -1 Theorem of Solovey & Strassen (cont’d) We have shown J(a,n) -1 mod n -1 mod n ( mn1 ) But by assumption a 1 mod ( mn1 ) so a (n-1)/2 =1 mod ( mn1 ) Hence a (n-1)/2 J(a,n) mod ( mn1 ) a contradiction with Gauss ' s Law! Miller • Miller’s Primality Test Wn (a) (gcd(a,n) 1) or (a n-1 1 mod n) or gcd (a mod n-1, n) 1 for i {1,..., k} (n-1)/2i where k max {i| 2i divides n-1} Miller (cont’d) • Theorem (Miller) Assuming the extended RH, if n is composite, then Wn(a) holds for some a ∈ {1,2,…, c log 2 n} • Miller’s Test assumes extended RH (not proved) Miller – Rabin Randomized Primality Test choose a random a {1,..., n-1} test Wn (a) • Theorem if n is composite then Prob (Wn (a) holds) 1 2 gives another randomized, polytime algorithm for primality! Number Theory Algorithms and Cryptography Algorithms Analysis of Algorithms Prepared by John Reif, Ph.D.