W kryptografii RC4 (znany również jako ARC4 lub ARCFOUR oznaczający rzekomy RC4, patrz poniżej) jest jednym z najbardziej popularnych programowych szyfrów strumieniowych. Jest on używany w popularnych protokołach, takich jak Secure Sockets Layer (SSL) (do ochrony ruchu internetowego) i WEP (do zabezpieczania sieci bezprzewodowych).
RC4 jest znany z tego, że jest prosty i szybki, ale ataki mogą się zdarzyć, gdy początek strumienia kluczy wyjściowych nie zostanie usunięty lub jeden strumień kluczy zostanie użyty dwukrotnie; niektóre sposoby użycia RC4 mogą przekształcić się w bardzo niepewne kryptosystemy, takie jak WEP.
RC4 został stworzony przez Rona Rivesta z RSA Security w 1987 roku. Podczas gdy jego oficjalna nazwa to "Rivest Cipher 4", skrót RC jest również znany jako "Kodeks Rona" (patrz również RC2, RC5 i RC6).
RC4 został najpierw utworzony jako tajemnica handlowa, ale we wrześniu 1994 r. jego opis został umieszczony na liście mailingowej Cypherpunks. Wkrótce został on umieszczony na grupie dyskusyjnej sci.crypt, a stamtąd na wielu stronach internetowych. Kod został potwierdzony jako autentyczny (a nie podrobiony), ponieważ jego wynik odpowiadał rezultatom oprogramowania własnościowego wykorzystującego licencjonowany RC4. Ponieważ algorytm ten jest znany, nie jest już tajemnicą handlową. Nazwa "RC4" jest jednak znakiem towarowym. RC4 jest często określany jako "ARCFOUR" lub "ARC4" (co oznacza rzekomy RC4, ponieważ RSA nigdy oficjalnie nie opublikowała algorytmu), aby uniknąć ewentualnych problemów ze znakiem towarowym. Stał się on częścią niektórych powszechnie stosowanych protokołów i standardów szyfrowania, w tym WEP i WPA dla kart bezprzewodowych i TLS.
Dwa główne powody, które przyczyniły się do jego wykorzystania w tak szerokim zakresie zastosowań, to szybkość i prostota. Zastosowanie RC4 zarówno w oprogramowaniu jak i w sprzęcie jest niezwykle łatwe do opracowania.
Algorytm szyfrowania RC4 jest uruchamiany z inną długością klucza, zwykle od 40 do 256 bitów, przy użyciu algorytmu KSA (key-scheduling algorithm). Po zakończeniu tego procesu, strumień zaszyfrowanych bitów jest tworzony za pomocą pseudolosowego algorytmu generowania (PRGA).
RC4 pod wieloma względami nie spełnia standardów ustalonych przez kryptografów dla bezpiecznego szyfru i nie jest zalecany do stosowania w nowych aplikacjach, ponieważ istnieje wiele metod atakowania RC4. Upuszczenie pierwszego kilobajta danych ze strumienia kluczy może nieco poprawić bezpieczeństwo.