I am studying the RC4 stream cipher, particularly when it used to be applied in the TLS/SSL protocol.

Is it safe to say the KSA acts like an extractor taking in the shared secret key, k (between 128bits and 256bits) and then blows it up to a scrambled 256 byte array?

Then this is essentially used as a "seed" for the PRGA that comes next?

If the above is correct, then what is the difference then between an extractor and a key-scheduling algorithm?

NOTE: I have zero intention of using RC4 in any TLS application, this is purely for my own education.

  • $\begingroup$ What do the acronyms LISA and PRGA mean? $\endgroup$
    – SEJPM
    Dec 17, 2016 at 18:16
  • $\begingroup$ PRGA stands for the Pseudo Random Generator Algorithm. I don't know what you mean by LISA though. $\endgroup$
    – guy
    Dec 17, 2016 at 19:51
  • $\begingroup$ Damn auto-correct. I meant KSA. $\endgroup$
    – SEJPM
    Dec 17, 2016 at 20:41
  • $\begingroup$ Oh, Key-Scheduling Algorithm (KSA). Here is quick overview of how they work in the context of RC4. $\endgroup$
    – guy
    Dec 17, 2016 at 21:05

1 Answer 1


It would not work as a randomness extractor as there is a detectable correlation between the key, the internal state, and the output.

http://saluc.engr.uconn.edu/refs/stream_cipher/fluhrer01weaknessRC4.pdf https://eprint.iacr.org/2011/448.pdf

It does expand the key by concatenating it until it fills a 256-byte array and it is used to mix the internal state. So it acts like it, but it is not one, and should not be used as one.

  • $\begingroup$ I guess a follow-up would be, why not use an extractor then? $\endgroup$
    – guy
    Dec 17, 2016 at 20:20
  • $\begingroup$ @tbone that's usually how RC4 is used. Even in WPA, the master secret is weakly hashed. $\endgroup$ Dec 25, 2016 at 6:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.