Question: RC4 Key-schedule algorithm (input: key) --------------------------------------------------- for i from 0 to 255 do S[i] := i end for j := 0 for i from 0
RC4 Key-schedule algorithm (input: key) --------------------------------------------------- for i from 0 to 255 do S[i] := i end for j := 0 for i from 0 to 255 do j := (j + S[i] + key[i % key.length]) % 256 swap values of S[i] and S[j] end for --------------------------------------------------- RC4 Key-stream generator (input: S[0],...,S[255]) --------------------------------------------------- i := 0 j := 0 while NeedMoreBytes do i := (i + 1) % 256 j := (j + S[i]) % 256 swap values of S[i] and S[j] K := S[(S[i] + S[j]) % 256] output K end while
a) Compute the second key-stream byte of the output when the input to the key-stream gener- ator satisfies (S[1] != 2) and (S[2] == 0). Show your work. b) Estimate the probability that the second key-stream byte of RC4 is 0. State any assumptions that you make. (Your probability determination should be taken over all possible secret keys.) What does your result show? [Hint: In part (a), the second byte should be 0.] c) Suppose a single 5-byte message m is encrypted with many different RC4 secret keys and you are given all of the ciphertexts. How can you use your result of part b) in this situation? What can you likely learn about the plaintext?
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
