Number-Theoretic Algorithms (UNIT-4)

Slides:



Advertisements
Similar presentations
1 Lect. 12: Number Theory. Contents Prime and Relative Prime Numbers Modular Arithmetic Fermat’s and Euler’s Theorem Extended Euclid’s Algorithm.
Advertisements

Primality Testing Patrick Lee 12 July 2003 (updated on 13 July 2003)
Number Theory Presented by Shrividya Shivkumar and George Frederick.
1 Chapter 7– Introduction to Number Theory Instructor: 孫宏民 Room: EECS 6402, Tel: , Fax :
Theory of Computation Transparency No. 1-1 Chapter 2 Introduction to Number Theory and Its applications Cheng-Chia Chen October 2002.
CSE 321 Discrete Structures Winter 2008 Lecture 8 Number Theory: Modular Arithmetic.
Great Theoretical Ideas in Computer Science.
Introduction to Modular Arithmetic and Public Key Cryptography.
Module :MA3036NI Cryptography and Number Theory Lecture Week 7
1 Cryptography and Network Security Third Edition by William Stallings Lecture slides by Lawrie Brown Chapter 4 – Finite Fields.
Information Security and Management 4. Finite Fields 8
Prelude to Public-Key Cryptography Rocky K. C. Chang, February
Introduction to Algorithms Second Edition by Cormen, Leiserson, Rivest & Stein Chapter 31.
Fall 2002CS 395: Computer Security1 Chapters 4 and 8: The Mathematics Required for Public Key Cryptography In case you’re beginning to worry that this.
CS/ECE Advanced Network Security Dr. Attila Altay Yavuz
Lecture 6.1: Misc. Topics: Number Theory CS 250, Discrete Structures, Fall 2011 Nitesh Saxena.
MA/CSSE 473 Day 08 Extended Euclid's Algorithm Modular Division Fermat's little theorem.
Modular Arithmetic and the RSA Cryptosystem Great Theoretical Ideas In Computer Science John LaffertyCS Fall 2005 Lecture 9Sept 27, 2005Carnegie.
Cryptography Lecture 14 Arpita Patra © Arpita Patra.
Great Theoretical Ideas in Computer Science.
Modular Arithmetic and the RSA Cryptosystem Great Theoretical Ideas In Computer Science Steven RudichCS Spring 2005 Lecture 8Feb 3, 2005Carnegie.
Number-Theoretic Algorithms
Mathematical Background : A quick approach to Group and Field Theory
Discrete Math II Howon Kim
Modular Arithmetic and the RSA Cryptosystem
Public Key Encryption Major topics The RSA scheme was devised in 1978
Introduction to Number Theory
B504/I538: Introduction to Cryptography
Mathematics of Cryptography
Chapter Applications of Number Theory Some Useful Results
MA/CSSE 473 Day 06 Euclid's Algorithm.
MA/CSSE 473 Day 06 Euclid's Algorithm.
CS 2210:0001Discrete Structures Modular Arithmetic and Cryptography
Advanced Algorithms Analysis and Design
Prelude to Public-Key Cryptography
Advanced Algorithms Analysis and Design
Integers and Division Section 3.4.
Numerical Algorithms x x-1 Numerical Algorithms
RSA Preliminaries.
Cryptography and Network Security
Introduction to Number Theory
MATH301- DISCRETE MATHEMATICS Copyright © Nahid Sultana Dr. Nahid Sultana Chapter 4: Number Theory and Cryptography.
Public Key Cryptosystems - RSA
Number Theory and Modular Arithmetic
Numerical Algorithms x x-1
Applied Discrete Mathematics Week 4: Number Theory
Number Theory (Chapter 7)
RSA Cryptosystem Bits PCs Memory MB ,000 4GB 1,020
Great Theoretical Ideas in Computer Science
Applied Symbolic Computation (CS 300) Modular Arithmetic
Number Theory and Euclidean Algorithm
Number Theory.
Prime and Relatively Prime Numbers
Cryptography and Network Security
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Analysis of the RSA Encryption Algorithm
Modular Arithmetic and the RSA Cryptosystem
Systems Architecture I
Classical Ciphers – 2 CSCI284 Spring 2004 GWU
Lecture 3.1: Public Key Cryptography I
Algorithmic Number Theory and Cryptography (CS 303) Modular Arithmetic
Copyright © Zeph Grunschlag,
Applied Discrete Mathematics Week 10: Introduction to Counting
Mathematical Background for Cryptography
Patrick Lee 12 July 2003 (updated on 13 July 2003)
Cryptology Design Fundamentals
Number Theory.
Mathematical Background : A quick approach to Group and Field Theory
Presentation transcript:

Number-Theoretic Algorithms (UNIT-4) ADVANCED ALGORITHMS Number-Theoretic Algorithms (UNIT-4)

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 : 1,2,3,4,6,8,12, and 24 The factors of 24 : 2,3,4,6,8,12

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.

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 : 5 The remainder : 7

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 then a =  b 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

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 : (8,15) -do- : (10,21)

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.

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

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)

Case-2 : Let d = gcd (b, a mod b).  d | b & d | (a mod b) Since, 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) //

2 a)Euclid’s Algorithm : Let a and b are non-negative integers. EUCLID (a,b) 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.

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 If b = = 0 return (a,1,0) else (d’, x’, y’) = EXTENDED-EUCLID(b, a mod b) (d,x,y) = (d’, y’, x’ -  a / b  y’) return (d, x, y)

In the above algorithm, d = a x + 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 corres- ponding x, y values using EE algorithm.

Step-1 : a = 99 b =78 a / b = 1 d = gcd(99,78) = 3 Here, a = 99 = 1. 78 + 21 78 = 3. 21 + 15 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 = 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)

Step-2 : a = 78 b = 21 a / b = 3 d = gcd(78,21) = 3 21 = 1. 15 + 6 Here, a = 78 = 3. 21 + 15 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 = 3(78 – 3.21) – 2.21 = 3. 78 – 11. 21 So, x = 3 y = -11  3 = gcd(78,21) = 3.78 - 11. 21 …(2)

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)

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)

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 …(5) Step-6 : a = 3 b = 0 a / b = - 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)

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

a) Group : A group (S,) is a set S together with 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,  a  e = e  a = 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

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

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

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)

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

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

Proof : Let us define mi = n / ni for i = 1,2,3,…,k i.e, m = n1. n2.…ni-1 ni+1.…nk 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)

Here a1 = 2 n1 = 5 m2 = 5 n = 65 a2 = 3 n2 = 13 m1 = 13 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  2. 26 + 3.40 (mod 65)  52 + 120 (mod 65)  42 Ex-15 : Find the value of ‘x’ using CRT, x  4 (mod 5) x  5 (mod 11) The answer is : 49

5. Powers of an Element : Consider the sequence of powers of ‘a’, modulo n where a ∊ Zn*. For example, i 0 1 2 3 4 5 6 7 8 9 3i mod 7 1 3 2 6 4 5 1 3 2 6 2i mod 7 1 2 4 1 2 4 1 2 4 1 Now, < 2 > = {1, 2, 4} in Z7* < 3 > = {1, 3, 2, 6, 4, 5} in Z7* Here, ord7 (2) = 3 & ord7 (3) = 6

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}

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

e) Publish P = (e,n) RSA Public Key Secret S = (d,n) 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

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

Here, the first column is message sent. 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.

for all integers ‘b’ which are relatively prime to ‘n’. 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

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

1. Let t and u be such that t ≥ 1. u is odd, and n-1 = 2t u 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

d) MODULAR-EXPONENTIATION (a, b, n) 1. c = 0 d = 1 3. Let (bk , bk-1 , …..,b1 , b0 ) for i = k downto 0 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

Ex-18 : Let ‘n’ be a carmichael number. n = 561 So, here 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

From above, the value of ‘d’ returned is : 241 i init 5 4 3 2 1 0 bi -- 1 0 0 0 1 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)

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 compo- siteness of ‘n’. WITNESS(7,N) returns TRUE. MILLER-RABIN returns COMPOSITE Note : 561 = 3 . 11 . 17

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. i = 1 x1 = RANDOM(0, n-1) y = x1 k = 2

5. While TRUE i = i + 1 xi = (x2i-1 - 1 ) mod n d = gcd(y – xi , n) if ( d  1) and (d  n) print d 11. if ( i = = k) 12. y = xi 13. k = 2k Note : The above algorithm generates a set of factors which are primes for the given integer.

Ex-19 : Pollard’s Rho Heuristic Let n = 1387 So, Initialization : i = 1 x1 = 2 y = 2 k = 2 WHILE : STEP-1 : i= 2 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

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) ] FALSE if ( i = =k) FALSE STEP-3 : i= 4 xi = (x2i-1 - 1 ) mod n  x4 = 63 d = gcd(y – xi , n)  d = 1 if [ (d  1) and ( d  n) ] FALSE if ( i = =k) TRUE y = 63 k = 8

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) ] FALSE if ( i = = k) FALSE STEP-5 : i = 6 xi = (x2i-1 - 1 ) mod n  x6 = 1186 d = gcd(y – xi , n)  d = 1 if [ (d  1) and ( d  n) ] FALSE if ( i = = k) FALSE

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) ] TRUE  Print d = 19 if ( i = = k) 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 :

310 996 396 814 84 x7 177 x6 1186 120 x5 1194 339 529 x4 63 595 1053 x3 8 x2 3 x1 2