 The basis of the FMS attack lies in the use of weak initialization vectors (IVs) used with RC4.RC4 encrypts one byte at a time with a keystream output from "prga()"; RC4 uses the key to initialize a state machine via "ksa()", and then continuously modifies the state and generates a new byte of the keystream from the new state.Theoretically, the key stream functions as a random one-time pad, as a pseudo-random number generator controls the output at each step.