Slide 1Slide 2Slide 3Slide 4Slide 5Slide 66.033 Lecture 22Nickolai ZeldovichSpring 2009RC4InitializationS[0..255] = permutation of 0..255 (based on key)i = 0j = 0i j S[0] S[1] S[2] ... S[255]RC4InitializationS[0..255] = permutation of 0..255 (based on key)i = 0j = 0Generate pseudo-random bytei = (i + 1) mod 256j = (j + s[i]) mod 256swap S[i] S[j]↔x = (S[i] + S[j]) mod 256return S[x]i j S[0] S[1] S[2] ... S[255]RSANInitializationp = random large primeq = random large primeN = p * qRSANe dInitializationp = random large primeq = random large primeN = p * qe = random, does not divide (p–1)*(q–1)Compute d, such that d*e==1 mod (p-1)*(q-1)RSANe dInitializationp = random large primeq = random large primeN = p * qe = random, does not divide (p–1)*(q–1)Compute d, such that d*e==1 mod (p-1)*(q-1)Encrypt(m, N, e) c:→c = me mod NDecrypt(c, N, d) m:→m = cd mod NK1
View Full Document