Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6MIT OpenCourseWarehttp://ocw.mit.edu 6.033 Computer System Engineering Spring 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.6.033 Lecture 22 Nickolai ZeldovichRC4 Initialization S[0..255] = permutation of 0..255 (based on key) i = 0 j = 0 i j S[0] S[1] S[2] ... S[255]RC4 Initialization Generate pseudo-random byte S[0..255] = i = (i + 1) mod 256 permutation of 0..255 j = (j + s[i]) mod 256 (based on key) swap S[i] S[j] ↔ i = 0 x = (S[i] + S[j]) mod 256 j = 0 return S[x] i j S[0] S[1] S[2] ... S[255]RSA Initialization p = random large prime q = random large prime N = p * q NRSA Initialization p = random large prime q = random large prime N = p * q e = random, does not divide (p–1)*(q–1) Compute d, such that d*e==1 mod (p-1)*(q-1) Ne dRSA Initialization Encrypt(m, N, e) → c: p = random large prime q = random large prime c = m e mod N N = p * q e = random, does not divide (p–1)*(q–1) Compute d, such that d*e==1 mod (p-1)*(q-1) Decrypt(c, N, d) m = c d mod N → m: Ne d K1
View Full Document