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
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started