Stream Generation
Once the S vector is initialized, the input key is no longer
used. Stream generation involves cycling through all the elements of S[i], and,
for each S[i], swapping S[i] with another byte in S according to a scheme
dictated by the current configuration of S. After S[255] is reached, the process
continues, starting over again at S[0]:
/* Stream Generation */ i, j = 0; while (true) i = (i + 1) mod 256; j = (j + S[i]) mod 256; Swap (S[i], S[j]); t = (S[i] + S[j]) mod 256; k = S[t];
To encrypt, XOR the value k with
the next byte of plaintext. To decrypt, XOR the value k with the next byte of ciphertext.
Strength of RC4
A number of papers have been published
analyzing methods of attacking RC4 [e.g., [KNUD98], [MIST98], [FLUH00], [MANT01]). None of these approaches is
practical against RC4 with a reasonable key length, such as 128 bits. A more
serious problem is reported in [FLUH01]. The authors demonstrate that
the WEP protocol, intended to provide confidentiality on 802.11 wireless LAN
networks, is vulnerable to a particular attack approach. In essence, the problem
is not with RC4 itself but the way in which keys are generated for use as input
to RC4. This particular problem does not appear to be
relevant to other applications using RC4 and can be remedied in WEP by changing
the way in which keys are generated. This problem points out the difficulty in
designing a secure system that involves both cryptographic functions and
protocols that make use of them.
No comments:
Post a Comment