RC4 - это потоковый шифр с переменным размером ключа: длина ключа может составлять от 40 до 256 бит.
На каждом такте бит открытого текста суммируется с битом на выходе генератора гаммы.
Алгоритм работает в режиме OFB: поток ключей не зависит от открытого текста.
for( i=0; i<256; i++ ) S[i] = i ; j = 0; for( i=0; i<256; i++ ) { j = (j + S[i] + Key[i]) mod 256 ; поменять местами S[i] и S[j]; } i = j = 0; //инициализация счетчиков
i = (i + 1) mod 256 ; j = (j + S[i]) mod 256 ; поменять местами S[i] и S[j] ; t = (S[i] + S[j]) mod 256 ; K = S[t] ; //сгенерирован псевдослучайный байт K
Полученный на каждом цикле псевдослучайный байт XOR-ится с байтом открытого текста.