Number-Theoretic Algorithms (UNIT-4) 1 1. Elementary Number-theoretic Notions : a) Divisibility and Divisors : The notation d | a (d divides a) means : a = kd for some integer k. Here, ‘a’ is multiple of ‘d’. Here, if d 0, then d is ‘divisor’ of a. The ‘trivial divisors’ of a are : 1, a The nontrivial divisors of a are called factors of a Ex-1 : Find the divisors and trivial divisors of 24. The trivial divisors of 24 : 1 24 The divisors of 24 : The factors of 24 : 1,2,3,4,6,8,12, and 24 2,3,4,6,8,12 2 b) Prime and Composite Numbers : An integer a > 1, whose only divisors are trivial divisors ‘1’ and ‘a’ is a ‘Prime Number’. An integer a > 1, which is not a prime number, is called ‘Composite Number’. Ex-2 : Find all the first 5 prime numbers. 2,3,5,7,11 39 is a composite no. since it divides by 3. 1 is called unit & is neither prime nor composite. Similarly 0 and all –ve nos. are neither prime nor composite. 3 TH-4.1 : Division Theorem “ For any integer ‘a’ and any positive integer ‘n’, there exists unique integers ‘q’ and ‘r’ such that 0 ≤ r < n and a = qn + r”. The value q = a/n is the quotient of the division. The value r = a mod n is the remainder of the division. Here n | a ( n divides a), if and only if a mod n = 0. Ex-3 : Find the quotient and remainder of 12 and 67. The quotient The remainder : : 5 7 4 c) Common Divisors & Greatest CD : If ‘d’ is a divisor of ‘a’ and ‘d’ is also divisor of ‘b’ then ‘d’ is a common divisor of ‘a’ and ‘b’. Note : a) ‘1’ is a common divisor of any two integers. b) If a | b and b | a a= b then Important Property : If d | a and d | b then d | (a + b) & d | (a – b) If d | a and d | b then d | (ax + by) Ex-4: Find all the common divisors of 24 and 30. 1 2 3 6 5 Greatest Common Divisor : The GCD of two integers a and b , not both Zero, is the largest of the common divisors of a and b. GCD(24, 30) = 6 Note : GCD(a,0) = |a| Relatively Prime Integers : Two integers ‘a’ and ‘b’ are relatively prime if their only common divisor is 1. i.e., gcd(a,b) = 1 The relatively primes are -do- : (8,15) : (10,21) 6 TH-4.2 : If a and b are any two integers, then gcd(a,b) is the smallest positive element s of the set s = (ax + by). Ex-5: Let a =6 & b = 21, Find the values of x , y. TH-4.3 : For any integers a, b and p, if both gcd(a,p) = 1 and gcd(b,p) = 1, then gcd(ab,p) = 1. TH-4.4 : For all primes p and all integers a and b, if p | ab then p | a or p | b or both. Unique Factorization : There is exactly one way to write any composite integer ‘a’ as a product of the form a = p1^ e1. p2^ e2. p3^ e3…… pr^ er where all pi are prime, p1<p2<..<pr and ei are +ve integers. 7 d) Common Divisors & Greatest CD : Let there are two positive integers ‘a’ and ‘b’ a = p1^ e1. p2^ e2. p3^ e3…… pr^ er b = p1^ f1. p2^ f2. p3^ f3…… pr^ fr Here, gcd(a,b) = p1 ^ min(e1 , f1 ). p2 ^ min(e2 , f2 ). ……. pr ^ min(er , fr ). Ex-6 : Let a = 90 b = 150 Find the value of gcd(a,b) using above rule. Here, a = 2 x 32 x 5 b = 2 x 3 x 52 gcd(a,b) = 2 x 3 x 5 8 TH-4.5 : GCD recursion theorem : For any non-negative integer ‘a’ and any positive integer ‘b’, we have gcd (a,b) = gcd (b, a mod b) Proof : case-1 : Let d = gcd (a,b) d|a & d|b Here, a mod b = a – q b where q = a / b Since, a mod b is a linear combination of ‘a’ and ‘b’, we can say that d | (a mod b). So, d | b and d | (a mod b) d | gcd (b, a mod b) gcd (a,b) | gcd (b, a mod b) ….(1) 9 Case-2 : Since, Let d = gcd (b, a mod b). d | b & d | (a mod b) a = q b + (a mod b) where q = a / b we have that a is a linear combination of ‘b’ and ‘a mod b’ d|a Hence, we can say that d | a & d|b d | gcd(a,b) gcd(b,a mod b) | gcd(a,b) ……(2) From (1) and (2) we can say that gcd (a,b) = gcd (b, a mod b) // 10 2 a)Euclid’s Algorithm : Let a and b are non-negative integers. EUCLID (a,b) 1 If (b = = 0) 2 return a 3 else return EUCLID(b, a mod b) Ex-7 : Find the value of gcd(30,21) using Euclid algorithm. EUCLID(30,21) = EUCLID (21,9) = EUCLID (9,3) = EUCLID (3,0) = 3. This computation calls EUCLID recursively three times. 11 2 b) Extended Euclid’s Algorithm : In this algorithm we find additional information like the values of ‘x’ and ‘y’, where d = gcd (a,b) = ax + by EXTENDED-EUCLID(a,b) 1 2 If b = = 0 return (a,1,0) 3 4 5 else (d’, x’, y’) = EXTENDED-EUCLID(b, a mod b) (d,x,y) = (d’, y’, x’ - a / b y’) return (d, x, y) 12 In the above algorithm, d = ax + b y d’ = bx’ + (a mod b) y’ because d = d’, we have ax + by = bx’ + (a mod b) y’ = bx’ + (a – b a / b ) y’ = a y’ + b (x’ - a / b y’) So, x = y’ & y = (x’ - a / b y’) Ex-8 : Find the value of gcd(99,78) and corresponding x, y values using EE algorithm. 13 Step-1 : a = 99 b =78 a / b = 1 d = gcd(99,78) = 3 Here, a = 99 78 21 15 6 And = = = = = 1. 78 + 21 3. 21 + 15 1. 15 + 6 2.6 + 3 2. 3 + 0 3 = 15 - 2 . 6 = 15 – 2 (21 – 1. 15) = 3.15 - 2.21 = 3(78 – 3.21) – 2.21 = 3. 78 – 11. 21 = 3. 78 – 11(99 – 1.78) = 3.78 - 11.99 + 11.78 = -11.99 + 14.78 3 = gcd(99,78) = -11.99 + 14. 78 …(1) 14 Step-2 : Here, And a = 78 b = 21 a / b = 3 d = gcd(78,21) = 3 a = 78 21 15 6 3 = 15 - 2 . 6 = 15 – 2 (21 – 1. 15) = 3.15 - 2.21 = 3(78 – 3.21) – 2.21 = 3. 78 – 11. 21 So, x = 3 = 3. 21 + 15 = 1. 15 + 6 = 2.6 + 3 = 2. 3 + 0 y = -11 3 = gcd(78,21) = 3.78 - 11. 21 …(2) 15 Step-3 : a = 21 b = 15 a / b = 1 d = gcd(21,15) = 3 Here, a = 21 = 1. 15 + 6 15 = 2.6 + 3 6 = 2. 3 + 0 And 3 = 15 - 2 . 6 = 15 – 2 (21 – 1. 15) = 3.15 - 2.21 So, x = -2 y=3 3 = gcd(21,15) = -2.21 + 3. 15 …(3) 16 Step-4 : a = 15 b=6 a / b = 2 d = gcd(15,6) = 3 Here, a = 15 = 2.6 + 3 6 = 2. 3 + 0 And 3 = 15 - 2 . 6 So, x=1 y = -2 3 = gcd(15,6) = 1.15 - 2. 6 …(4) 17 Step-5 : a=6 b=3 a / b = 2 d = gcd(6,3) = 3 Here, a = 6 = 2. 3 + 0 And 3 = 0.6 + 1.3 So, x=0 y=1 3 = gcd(6,3) = 0.6 + 1. 3 Step-6 : a=3 a / b = - …(5) b=0 d = gcd(3,0) = 3 Here, a = 3 = 1. 3 + 0.0 And 3 = 1.3 + 0.0 So, x = 1 y=0 3 = gcd(3,0) = 1.3 + 0. 0 …(6) 18 So, the final output of EE algorithm is as follows : a b a / b d x y 99 78 1 3 -11 14 78 21 3 3 3 -11 21 15 1 3 -2 3 15 6 2 3 1 -2 6 3 2 3 0 1 3 0 -- 3 1 0 19 3. Modular Arithmetic : a) Group : A group (S,) is a set S together with binary operation defined on S for which the following properties hold : i) Closure : For all a, b S, a b S. ii) Identity : There exists an element e S, called the identity of the group, ae = ea= a for all a S. iii) Associativity : For all a, b, c S, we have (a b) c = a (b c) iv) Inverse : For each a S, there exists a unique element b S, called the inverse of ‘a’, such that (a b) = (b a) = e 20 Abelian Group : A group (S,) is said to be ‘Abelian Group’, if it satisfies the commutative property. (a b) = (b a) Finite Group : A group (S,) is said to be ‘Finite Group’, if it satisfies the property. |S| < Sub-Group : If (S,) is a group, and S’ S and (S’,) is also a group, then (S’,) is a sub group of (S’,) Galois Field : The set of integers (0,1,2,…,p-1), where p is a prime, is called GF(p). 21 Multiplicative Inverse : The factor b-1 is the ‘multiplicative inverse’ of b in GF(p). b b-1 mod p = 1 Ex-9 : Find the multiplicative inverses of the following, where p = 7. 1 2 3 4 5 6 Answer : 1 4 5 2 3 6 Ex-10 : Find the multiplicative inverses of the 1 2 3 4 5 6 7 8 9 10 (p = 11) Answer : 1 6 4 3 9 2 8 7 5 10 22 Ex-11 : Let the moduli be p1 = 3, p2 = 5, p3 = 7 Let us consider the integers : 10, 15 Here, 10 = (10 mod 3, 10 mod 5, 10 mod 7) = (1, 0, 3) Here, 15 = (15 mod 3, 15 mod 5, 15 mod 7) = (0, 0, 1) Modular Addition : 10 + 15 = (25 mod 3, 25 mod 5, 25 mod 7) = (1, 0, 4) & (1+0 mod 3, 0+0 mod 5, 3+1 mod 7) = (1, 0, 4) Modular Subtraction : 15 – 10 = (5 mod 3, 5 mod 5, 5 mod 7) = (2, 0, 5) & (0 – 1 mod 3, 0 – 0 mod 5, 1 – 3 mod 7) = (2, 0, 5) 23 Modular Multiplication : 10 * 15 = (150 mod 3, 150 mod 5, 150 mod 7) = (0, 0, 3) & (1*0 mod 3, 0*0 mod 5, 3*1 mod 7) = (0, 0, 3) Prime Divisors : The divisors, which are prime numbers are called ‘Prime Divisors. Euler’s Phi Function : For a given integer ‘n’, the following function is called ‘EPF’. (n) = n. (1 – 1/p) Ex-12 : Find the value of EPF where n = 45. (45) = 45 (1-1/3) (1-1/5) = 24 24 Basis for Chinese Remainder Theorem : Ex-13 : Find the lowest integer x such that it leaves remainders 2, 3 and 2 when divided by 3, 5 and 7. The Answer : 23 4. Chinese Remainder Theorem : TH : Let n = n1. n2. n3…nk, where n are pairwise relatively prime. Find the value of ‘a’, where a ai mod ni for i = 1,2,3,…,k i.e., a (a1. a2. a3…ak) Here ai = a mod ni 25 Proof : Let us define mi = n / ni for i = 1,2,3,…,k m = n1. n2.…ni-1 ni+1.…nk i.e, Now let ci = mi(mi -1 mod ni ) for i = 1,2,…,k Here mi, ni are relatively prime. Finally, the value of ‘a’ is : a (a1 c1 + a2 c2 + a3 c3 + … + ak ck) (mod n ) Ex-14 : Find the value of ‘a’ for the following equations using Chinese Remainder Theorem : a 2 (mod 5) a 3 (mod 13) 26 Here n = 65 a1 = 2 a2 = 3 Because 13 -1 2 (mod 5) and 5 8 (mod 3) We have c1 = 13 ( 2 mod 5) = 26 c2 = 5 ( 8 mod 13) = 40 a n1 = 5 n2 = 13 2. 26 + 3.40 (mod 65) 52 + 120 (mod 65) m2 = 5 m1 = 13 42 Ex-15 : Find the value of ‘x’ using CRT, x 4 (mod 5) x 5 (mod 11) The answer is : 49 27 5. Powers of an Element : Consider the sequence of powers of ‘a’, modulo n where a ∊ Zn*. For example, i 0 3i mod 7 1 1 3 2 2 3 6 4 4 5 5 6 1 7 3 8 2 9 6 i 1 2 2 4 3 1 4 2 5 4 6 1 7 2 8 4 9 1 0 2i mod 7 1 = {1, 2, 4} in Z7* < 3 > = {1, 3, 2, 6, 4, 5} in Z7* Now, < 2 > Here, ord7 (2) = 3 & ord7 (3) = 6 28 6 (a) Euler’s Theorem : For any integer n > 1 a ^ (n) 1 (mod n) for all a ∊ Zn* 6 (b) Fermat’s Theorem : If p is a prime, then ap - 1 1 (mod p) Note that if p is a prime, then a ^ (p) = p - 1 Ex-16 : Prove the Euler theorem for the following. Let n = 7 (n) = 6 & a = {1, 2, 4} 29 7. RSA Cryptosystem : In RSA Cryptosystem, the public and private keys are generated as follows : a) Select at random two large prime numbers p and q such that p ≠ q. b) Compute n = pq c) Select a small odd integer ‘e’ that is relatively prime to p-1 and q-1. (public exponent) d) Compute the integer ‘d’ (private exponent) from e, p and q such that de ≡ 1 mod L, where L = LCM [ (p-1), (q-1) ] 30 e) Publish P = (e,n) Secret S = (d,n) RSA Public Key RSA Secret Key Here, e = ENCRYPT(m) = me mod n d = DECRYPT(c) = cd mod n Ex-17 : Apply RSA algorithm for the following. p=5 q = 11 e=3 Here n = pq = 55 (n) = 40 and d : ed ≡ 1 mod L L = 20 So, d = 7 31 Let A = Message(m) B = m2 mod n C = m3 mod n (encrypted message) D = c2 mod n E = c3 mod n F = c6 mod n G = c7 mod n (decrypted message) A B C D E H G 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 4 8 9 17 14 2 3 9 27 14 48 49 3 4 16 9 26 14 31 4 32 A B C D E H G 5 25 15 5 20 15 5 6 36 51 16 46 26 6 7 49 13 4 52 9 7 8 9 17 14 18 49 8 9 26 14 31 49 36 9 Here, the first column is message sent. the third column is cipher text the last column is decrypted message. 33 8. Primality Testing : a) Carmichael number A Carmichael number is a composite positive integer which satisfies the following formula. bn-1 ≡ 1 ( mod n) for all integers ‘b’ which are relatively prime to ‘n’. Def : A positive composite integer ‘n’ is a CN, iff ‘n’ is square-free and for all prime divisors p of n, it is true that (p – 1) | (n – 1). The first Carmichael Number is : 561 34 The Procedure MILLER-RABIN is a probabilistic search for a proof that n is composite. In the following procedure, ‘s’ is the number of times the value of ‘a’ is to be chosen at random. b) MILLER-RABIN (n,s) for j = 1 to s a = RANDOM(1, n-1) if WITNESS (a,n) return COMPOSITE return PRIME 35 c) WITNESS(a,n) 1. Let t and u be such that t ≥ 1. u is odd, and n-1 = 2t u 2. x0 = MODULAR-EXPONENTIATION(a,u,n) 3. for i = 1 to t 4. xi = x2i-1 mod n 5. if ( xi = = 1) and ( xi-1 ≠ 1) and ( xi-1 ≠ n-1) 6. return TRUE 7. if xt ≠ 1 8. return TRUE 9. return FALSE 36 d) MODULAR-EXPONENTIATION (a, b, n) 1. c = 0 2. d = 1 3. Let (bk , bk-1 , …..,b1 , b0 ) 4. for i = k downto 0 5. c = 2c 6. d = (d.d) mod n 7. if bi = = 1 8. c=c+1 9. d = (d.a) mod n 10. return d 37 Ex-18 : Let ‘n’ be a carmichael number. So, here n = 561 n – 1 = 560 If n – 1 is written in the form of n-1 = 2t u, then t=4 and u = 35 Let the value of ‘a’ is chosen from the algorithm as : 7 From the WITNESS algorithm, find the value of x0. Here, call the MODULAR_EXPONENTIATION(a,u,n) where a = 7 & u = 35 & n = 561 38 i bi init -- 5 1 4 0 3 0 2 0 1 1 0 1 c 0 1 2 4 8 17 35 d 1 7 49 157 526 160 241 Here, d = ac mod n (c = b = u) From above, the value of ‘d’ returned is : 241 Here, x0 ≡ a35 ≡ 241 (mod 561). Note : Further we can have a70 ≡ 298 (mod n) a140 ≡ 166 (mod n) a280 ≡ 67 (mod n) a560 ≡ 1 (mod n) 39 So, the sequence is : (241, 298, 166, 67, 1) Thus, WITNESS discovers 1 in the last squaring step, since a560 ≡ 1 (mod n) Therefore, a = 7 is the witness to the compositeness of ‘n’. WITNESS(7,N) returns TRUE. MILLER-RABIN Note : returns COMPOSITE 561 = 3 . 11 . 17 40 9. Integer Factorization : This is the process of integer factorization into a product of primes. Pollard’s rho heuristic : This heuristic here helps in finding the product of primes for the given integer. POLLARD-RHO(n) 1. 2. 3. 4. i=1 x1 = RANDOM(0, n-1) y = x1 k=2 41 5. While TRUE 6. i = i+1 7. 8. xi = (x2i-1 - 1 ) mod n d = gcd(y – xi , n) 9. 10. if ( d 1) and (d n) print d 11. 12. 13. if ( i = = k) y = xi k = 2k Note : The above algorithm generates a set of factors which are primes for the given integer. 42 Ex-19 : Pollard’s Rho Heuristic Let n = 1387 So, Initialization : i=1 x1 = 2 WHILE : i= 2 y=2 k=2 STEP-1 : xi = (x2i-1 - 1 ) mod n x2 = 3 d = gcd(y – xi , n) d=1 if [ (d 1) and ( d n) ] FALSE if ( i = =k) TRUE y=3 k=4 43 STEP-2 : i= 3 xi = (x2i-1 - 1 ) mod n x3 = 8 d = gcd(y – xi , n) d=1 if [ (d 1) and ( d n) ] if ( i = =k) STEP-3 : FALSE FALSE i= 4 xi = (x2i-1 - 1 ) mod n x4 = 63 d = gcd(y – xi , n) d=1 if [ (d 1) and ( d n) ] if ( i = =k) TRUE FALSE y = 63 k=8 44 STEP-4 : i= 5 xi = (x2i-1 - 1 ) mod n x5 = 1194 d = gcd(y – xi , n) d=1 if [ (d 1) and ( d n) ] if ( i = = k) STEP-5 : FALSE FALSE i= 6 xi = (x2i-1 - 1 ) mod n x6 = 1186 d = gcd(y – xi , n) d=1 if [ (d 1) and ( d n) ] if ( i = = k) FALSE FALSE 45 STEP-6 : i= 7 xi = (x2i-1 - 1 ) mod n x7 = 177 d = gcd(y – xi , n) d = 19 if [ (d 1) and ( d n) ] Print d = 19 if ( i = = k) TRUE FALSE If the process is continued like this, we get another factor : 73 The relation among the Xi values are shown in the next slide : 46 310 996 396 814 84 x7 177 x6 1186 x5 1194 x4 63 x3 339 529 595 1053 8 x2 x1 120 3 2 47