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-ится с байтом открытого текста.