W celu odszyfrowania analogicznie wykonywana jest operacja XOR na tekście zaszyfrowanym i strumieniu szyfrującym.
W celu wygenerowania strumienia szyfrującego wykorzystuje się tajny stan początkowy, składający się z dwóch części: Permutacji 256-elementowej wszystkich możliwych stanów (oznaczanej później S). Dwóch 8-bitowych wskaźników (oznaczanych „i” i „j”). Permutacja jest zainicjalizowana za pomocą klucza o długości zazwyczaj pomiędzy 40 i 256 bitów (procedura inicjowania klucza). Następnie tworzony jest strumień bitów wyjściowych za pomocą algorytmu pseudolosowej generacji.
Procedura inicjalizacji klucza Procedura inicjalizacji klucza jest używana w celu stworzenia początkowej permutacji liczb w 256-elementowej tablicy „S”. Długość klucza jest wyznaczona poprzez liczbę bajtów w kluczu. Typowo wynosi pomiędzy 5 a 16 bajtów (pomiędzy 40 a 128 bitów).
Początkowo w tablicy „S” tworzona jest permutacja identycznościowa. Następnie „S” jest przetwarzane w 256 iteracjach (podobnie jak w algorytmie pseudolosowej generacji) i mieszane jednocześnie z bajtami klucza.
for i from 0 to 255 S[i] := i j := 0 for i from 0 to 255 j := (j + S[i] + klucz[i mod długość_klucza]) mod 256 zamień(S[i],S[j])