Presentation is loading. Please wait.

Presentation is loading. Please wait.

RSA and its Mathematics Behind July 2011. Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA.

Similar presentations


Presentation on theme: "RSA and its Mathematics Behind July 2011. Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA."— Presentation transcript:

1 RSA and its Mathematics Behind July 2011

2 Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA

3 Modular Arithmetic  A system of arithmetic for integers, where numbers wrap around after they reach a certain value—the modulus  Modular or "clock" arithmetic is arithmetic on a circle instead of a number line  In modulo N, we use only the twelve whole numbers from 0 through N-1 The 12-hour clock : modulo 12 If the time is 9:00 now, then 4 hours later it will be 1:00 9+4 =13 13 % 12= 1

4 Modular Clock Arithmetic  1:00 and and 13:00 hours are the same  1:00 and and 25:00 hours are the same  1  13 (mod 12) a  b (mod n) n is the modulus a is congruent to b modulo n a-b is an integer multiple of (divisible by) n a % n = b % n

5 Example  38  14 (mod 12)  38-14 = 24 ; multiple of 12  38  2 (mod 12)  38-2 = 36 ; multiple of 12  The same rule for negative number  -8  7 (mod 5)  2  -3 (mod 5)  -3  -8 (mod 5)

6 Congruence Class Example  Congruence Classes of the integers modulo 5 0 5 10 1 6 11 -- 2 7 12 3 8 13 -- 14 9 4 -- 1  6  11 (mod 5)

7 Replace of congruence item  Let 11 +16  3 (mod 12) and 16  4 (mod 12), therefore 11 +16  11 + 4  (mod 12)  Let 9835  7 (mod 12) and 1177  1 (mod 12), therefore 9835*1177  7 * 1  7 (mod 12)

8 Modular Arithmetic Notation Modulus operatorCongruence relation a = b mod n a  b (mod n) Inputs a number a and a base b, outputs a mod b as the remiander of a  b (value between 0 and b –1) Relates two numbers a, b to each other relative some base = means that integer a is the reminder of the division of integer b by integer n  indicates that the integers a and b fall into the same congruence class modulo n (same remainder when diving by b) 2 = 14 mod 3 14  2 (mod 3)

9 9 Exercise (I) A: Compute 1. 113 mod 24: 2. -29 mod 7

10 10 Exercise (II) Q: Which of the following are true? 1. 3  3 (mod 17) 2. 3  -3 (mod 17) 3. 172  177 (mod 5) 4. -13  13 (mod 26)

11 Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA

12 Greatest Common Divisor  Def: Let a,b be integers, not both zero. The greatest common divisor of a and b (or gcd(a,b) ) is the biggest number d which divides both a and b without a remainder  gcd (8,12) =4  Find gcd (54, 24)  54x1 = 27x2 = 18x3 = 9x6; {1, 2,3, 6, 9, 18, 27, 54}  24x1 = 12x2 = 8x3 = 4x6; {1, 2,3, 4, 6, 8, 12, 54}  Share number : {1, 2, 3, 6}  gcd (54, 24) = 6

13 Finding GCD  gcd(a,0) = a, and gcd(a,b) = gcd(b, a mod b) Find gcd(132, 28) : 1.r = 132 mod 28 = 20 => gcd(28, 20) 2.r = 28 mod 20 = 8 => gcd(20,8) 3.r = 20 mod 8 = 4 => gcd(8,4) 4.r = 8 mod 4 = 0 => gcd(4,0) gcd(132, 28) = 4 12345 a13228208 4 b2820840

14 GCD and Relatively Prime  Def: two integers a and b are said to be relatively prime (also called co-prime) if gcd(a,b) = 1  so no prime common divisors. Find gcd(28, 15) : 1.r = 28 mod 15 = 13 => gcd(15, 13) 2.r = 15 mod 13 = 2 => gcd(13, 2) 3.r = 13 mod 2 = 1 => gcd(2,1) 4.r = 2 mod 1 = 0 => gcd(1,0) gcd(28,15) = 1 15 and 28 are relative prime Since a prime number has no factors besides itself, clearly a prime number is relatively prime to every other number (except for multiples of itself)

15 15 Test Relative Prime Q: Find the following gcd’s: 1. gcd(77,11) 2. gcd(77,33) 3. gcd(36,24) 4. gcd(23,7)

16 Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA

17 Euler's Totient Function   ( N ) = the numbers between 1 and N - 1 which are relatively prime to N  Thus:   (4) = 2 (1 and 3 are relatively prime to 4)   (5) = 4 (1, 2, 3, and 4 are relatively prime to 5)   (6) = 2 (1 and 5 are relatively prime to 6)   (7) = 6 (1, 2, 3, 4, 5, and 6 are relatively prime to 7)   (8) = 4 (1, 3, 5, and 7 are relatively prime to 8)   (9) = 6 (1, 2, 4, 5, 7, and 8 are relatively prime to 9) Compute  (N) in C code: phi = 1; for (i = 2 ; i < N ; ++i) if (gcd(i, N) == 1) ++phi;

18 Euler's Totient Function, cont  Note that  ( N ) = N-1 when N is prime  Somewhat obvious fact that  ( N ) is also easy to calculate when N has exactly two different prime factors:  Example: Find  (15)  (p*q) = (p-1)*(q-1)

19 Euler’s Totient Theorem  One of the important keys to the RSA algorithm  If gcd(m, n) = 1 and m < n, then m  (n)  1 (mod n) m (p-1)(q-1) mod n = 1 38 40 mod 55 = 1 M=38 replace (p-1)(q-1) with (11-1)(5-1) n=55  Example: m  (n)  1 (mod n) m (p-1)(q-1) mod n = 1 where  (n) = (p1-1)*(q-1) relatively prime

20 More in Euler’s Theorem  Multiply both sides of equation by m m (p-1)(q-1) mod n = 1 m (p-1)(q-1) *m mod n = 1*m m (p-1)(q-1)+1 mod n = m m  (n) +1 mod n = m

21 The Road to crypto  If we can find two numbers, call them e and d, such that e*d = [(p-1)(q-1)]+1 n = p*q  Use e as the private key and d as the public key; Encrypts: c  m e (mod n) Decrypts: m  c d (mod n) c d = (m e (mod n)) d = m ed (mod n) = m (p-1)(q-1)+1 (mod n) = m  (n) +1 (mod n) = m m  (n) +1 mod n = m Recall Euler’s theorem

22 A trapdoor one-way function Message m Ciphertext c c = f(m) = m e mod n m = f -1 (c) = c d mod n Public key Private key (trapdoor information) n = p*q (p & q: primes) e*d = 1 mod (p-1)(q-1)

23 Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA

24 RSA  Public key cryptosystem  Proposed in 1977 by Ron L. Rivest, Adi Shamir and Leonard Adleman at MIT  Best known & widely used public- key scheme  Based on exponentiation in a finite (Galois) field over integers modulo a prime  Main patent expired in 2000 Shamir Rivest Adleman ShamirRivestAdleman

25 RSA Algorithm  Uses two keys : e and d for encryption and decryption  A message m is encrypted to the cipher text by c = m e mod n  The ciphertext is recover by m = c d mod n  Because of symmetric in modular arithmetic m = c d mod n = (m e ) d mod n = (m d ) e mod n  One can use one key to encrypt a message and another key to decrypt it

26 RSA Key Setup 1. Selecting two large primes at random : p, q  Typically 512 to 2048 bits 2. Computing their system modulus n=p*q  note ø(n)=(p-1)(q-1) 3. Selecting at random the encryption key e  where 1<e<ø(n), gcd(e,ø(n))=1  Meaning: there must be no numbers that divide neatly into e and into (p-1)(q-1), except for 1. 4. Solve following equation to find decryption key d  e*d=1 mod ø(n) and 0≤d≤n  In other words, d is the unique number less than n that when multiplied by e gives you 1 modulo ø(n) 5. Publish public encryption key: P U ={e,n} 6. Keep secret private decryption key: P R ={d,n}

27 Example: Key Generation Step by Step StepExample Selecting two large primes at random : p, q (use small numbers for demonstration) p = 7; q = 19 Computing their system modulus n=p.q ø(n) = (p-1)(q-1) n = 7*19 = 133 ø(n) = (7-1)*(19-1) = 6*18 = 108 Selecting at random the encryption key e and gcd(e, 108) = 1 e = 5 find decryption key d such that e*d = 1 mod ø(n) and 0≤d≤n d*5 mod 108 = 1; d = 65 Check : 65*5 = 325; 325 mod 108 = 1 Public encryption key: P U ={e,n} P U = {5,133} Secret private decryption key: P R = {d,n}P R = {65,133} Encryption and Decryption for m = 6c = m e mod n = 6 5 % 133 = 62 m = c d mod n = 62 65 % 133 = 6

28 Key Generation : Find n and ø(n) 1) Generate two large prime numbers, p and q Lets have: p = 7 and q = 19 2) Find n = p*q n =7*19 = 133 3) Find ø(n) = (p-1)(q-1) ø(n) = (7-1)(19-1)= 6 * 18 = 108

29 Key Generation : Generate Private Key 4) Choose a small number, e coprime to 108 Using Euclid's algorithm to find gcd(e,108) e = 2 => gcd(e, 108) = 2 ✗ e = 3 => gcd(e, 108) = 3 ✗ e = 4 => gcd(e, 108) = 4 ✗ e = 5 => gcd(e, 108) = 1 ✓

30 Key Generation : Generate Public Key 5) Find d, such that e*d = 1 mod ø(n) and 0≤d≤n ; e=5; ø(n)=108 Using extended Euclid algorithm; e*d = 1 mod ø(n) => e*d = 1+k*ø(n) ; d, k are interger = (1+k*ø(n))/e d = (1+k*108)/5 Try through values of k until an integer solution for d is found: k = 0 => d = 1 / 5 = 0.2 ✗ k = 1 => d = (1+1*108)/ 5 =109/5 = 21.8 ✗ k = 2 => d = (1+2*108)/5 = 217/5 = 43.4 ✗ k = 3 => d = (1+3*108)/5 = 325/5 = 65 ✓

31 Example : Encryption  P U = {e,n} = {5,133}  Lets use the message m=16 c = m e mod n = 16 5 mod 133 = 1048576 mod 133 = 4

32 Example: Decryption  P R ={d,n}={65,133}  From the encryption c=4 m = c d mod n = 4 65 mod 133 = 1.361129467683755x10 39 mod 133 = 16

33 Encode the ASCII String 01010011011001010110001101110010011001010111010000100001 831019911410111633 Secret! 01010011 0110010101100011 0111001001100101 0111010000000000 00100001 21349254582597233 Message input string Message input ASCII Message input binary Message input 16 bit binary Message input 16 bit decimal for “Secret!” padding

34 Sample 16 bits key n = 1602475129 e = 64037 d = 1004908973 m =104 c = (104 64037 ) mod 1602475129 = 1187226754 m = (1187226754 1004908973 ) mod 3910095493 = 104 Directly computation of exponential needs too much memory and very slow

35 How to deal with 1024 bits?  n=93518075472517812751194715143409086574889727146298665297205834171 6028661922905915993804021855830241749312943318773824184453712016205 8121648079083318028014599104077070592823126414272024960940574924494 3892408117844772524625134689327476917023068462758680788043986062882 531909490562722483341876279065122161924203  e=47609  d=11964515064443823593596316031391223220980346742172807039116148962 1549089033006783051907418704947846047912477425584476949894086409937 3984308816603929721452354151974603791286138851972972428882514356100 5547814973195750655549449328508806029373024427172453884284448045662 068755190227462789262813325769121319683889 we could still end up with a number with so many digits (before taking the remainder on dividing by p) that we wouldn't have enough memory to store it

36 Using Modular Exponential  Using modular reduction to enhance computation f mod i = j and f = g * h then (( g mod i ) * (h mod i)) mod i = j

37 37 Modular Exponential : 23 20 mod 29 exp(23 exp-1 mod 29)*23((23 exp-1 mod 29) *23) mod 29 223*23= 529529 mod 29 =7 37*23=161161 mod 29=16 416*23=368368 mod 29=20 520*23=460460 mod 29=25 625*23=575575 mod 29=24 724*23=552552 mod 29=1 81*23=2323 mod 29=23 923*23=529529 mod 29=7 107*23=161161 mod 29=16 ::: 1623*23=529529 mod 29=7 ::: 1920*23=460460 mod 29=25 2025*23=575575 mod 29=24 23 2 mod 29 = 7 23 4 =23 2 *23 2 mod 29 = 7*7 mod 29 =49 mod 29 = 20 23 8 =23 4 *23 4 mod 29 = 20*20 mod 29 =400 mod 29 =23 23 16 =23 8 *23 8 mod 29 = 23*23 mod 29 =529 mod 29 =7 23 20 =23 16 *23 4 mod 29 = 7*20 mod 29 =140 mod 29 =24

38 38 Modular Exponential : 23 391 mod 55 exp23 exp/2 *23 exp/2 (23 exp-1 ) * (23 exp/2 ) mod 55 1[exception] 23 1 =2323 mod 55 = 23 223*23= 529529 mod 55 = 34 434*34=11561156 mod 55 = 1 81*1=11 mod 55 = 1 161*1=11 mod 55 = 1 321*1=11 mod 55 = 1 641*1=11 mod 55 = 1 1281*1=11 mod 55 = 1 2561*1=11 mod 55 = 1 5121*1=11 mod 55 = 1 23 391 = 23 256 *23 128 *23 4 *23 2 *23 1 = 1*1*1*34*23 = 722 722 mod 55 = 12

39 39 Modular Exponential : 31 397 mod 55 exp31 exp/2 *31 exp/2 (31 exp-1 ) * (31 exp/2 ) mod 55 1[exception] 31 1 =3131 mod 55 = 33 231*31= 961961 mod 55 = 26 426*26=676676 mod 55 = 16 816*16=256256 mod 55 = 36 1636*36=12961296 mod 55 = 31 3231*31=961961 mod 55 = 26 6426*26=676676 mod 55 = 16 12816*16=256256 mod 55 = 36 25636*36=12961296 mod 55 = 31 51231*31=961961 mod 55 = 26 31 397 % 55 = (31 256 *31 128 *31 8 *31 4 *31 1 ) % 55 = (31*36*36*16*33) = ((1116 % 55)*36*16*33 ) % 55 = (16*36*16*33 ) % 55 = ((576 mod 55) *16 *33) % 55 = (26*16*33) % 55 = ((416 % 55) *33 ) % 55 = (31*3 ) % 55 = 961 % 55 = 26 31 397 mod 55 = 1.1765014105569728144308343503655x10 59 mod 55 = 26

40 Modular Exponential for RSA  The running time of RSA encryption, decryption is simple

41 Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA

42 Analyzing RSA  RSA depends on being able to find large primes quickly, whereas anyone given the product of two large primes “cannot” factor the number in a reasonable time.  If any one of p, q, m, d is known, then the other values can be calculated. So secrecy is important  1024 bits is considered in risk  To protect the encryption, the minimum number of bits in n should be 2048  RSA is slow in pratice  RSA is primary used to encrypt the session key used for secret key encryption (message integrity) or the message's hash value (digital signature)

43 RSA-Numbers  RSA numbers are a set of large semiprimes (numbers with exactly two prime factors) that are part of the RSA Factoring Challenge  Officially ended in 2007 but people can still attempt to find the factorizations http://en.wikipedia.org/wiki/RSA_numbers#RSA-768

44 RSA-768  RSA-768 has 768 bits (232 decimal digits), and was factored on December 12, 2009 RSA-768 = 12301866845301177551304949583849627207728535695953347921973224521517264005 07263657518745202199786469389956474942774063845925192557326303453731548268 50791702612214291346167042921431160222124047927473779408066535141959745985 6902143413 RSA-768 = 33478071698956898786044169848212690817704794983713768568912431388982883793 878002287614711652531743087737814467999489 ×36746043666799590428244633799627952632279158164343087642676032283815739666 511279233373417143396810270092798736308917

45 RSA-1024 and RSA-2048  RSA-1024 has 1,024 bits (309 decimal digits), and has not been factored so far RSA-1024 =13506641086599522334960321627880596993888147560566702752448514385152651060 48595338339402871505719094417982072821644715513736804197039641917430464965 89274256239341020864383202110372958725762358509643110564073501508187510676 59462920556368552947521350085287941637732853390610975054433499981115005697 7236890927563  RSA-2048 has 2,048 bits (617 decimal digits)  may not be factorizable for many years to come, unless considerable advances are made in integer factorization RSA-2048 = 25195908475657893494027183240048398571429282126204032027777137836043662020 70759555626401852588078440691829064124951508218929855914917618450280848912 00728449926873928072877767359714183472702618963750149718246911650776133798 59095700097330459748808428401797429100642458691817195118746121515172654632 28221686998754918242243363725908514186546204357679842338718477444792073993 42365848238242811981638150106748104516603773060562016196762561338441436038 33904414952634432190114657544454178424020924616515723350778707749817125772 46796292638635637328991215483143816789988504044536402352738195137863656439 1212010397122822120720357

46 RSA security summary One-way functionDescription Encryption function The encryption function is a trapdoor one-way function, whose trapdoor is the private key. The difficulty of reversing this function without the trapdoor knowledge is believed (but not known) to be as difficult as factoring. Multiplication of two primes The difficulty of determining an RSA private key from an RSA public key is known to be equivalent to factoring n. An attacker thus cannot use knowledge of an RSA public key to determine an RSA private key unless they can factor n. Because multiplication of two primes is believed to be a one-way function, determining an RSA private key from an RSA public key is believed to be very difficult. There are two one-way functions involved in the security of RSA.

47 Q&A


Download ppt "RSA and its Mathematics Behind July 2011. Topics  Modular Arithmetic  Greatest Common Divisor  Euler’s Identity  RSA algorithm  Security in RSA."

Similar presentations


Ads by Google