RC4 – Szyfr Strumieniowy
RC4, znany również jako ARC4 lub ARCFOUR, to symetryczny szyfr strumieniowy, który był wykorzystywany w protokołach takich jak SSL i WEP. Jego bezpieczeństwo zostało zakwestionowane, ponieważ nie jest odporny na kryptoanalizę liniową i różnicową. Obecnie nie jest zalecany do użycia w nowych systemach.
Historia
RC4 został stworzony przez Rona Rivesta z RSA Security w 1987 roku. Początkowo był tajemnicą handlową, jednak w 1994 roku jego implementacja została opublikowana na liście mailowej Cypherpunks. W lutym 2015 roku w
Opis Szyfru
RC4 generuje pseudolosowy strumień bitów, który jest używany do szyfrowania i odszyfrowania danych za pomocą operacji XOR. Proces ten opiera się na tajnym stanie początkowym, który składa się z:
- Prowizorycznej permutacji 256-elementowej (oznaczanej jako S).
- Dwóch 8-bitowych wskaźników (i i j).
Strumień bitów jest generowany przy użyciu klucza o długości od 40 do 256 bitów.
Procedura Inicjalizacji Klucza
Procedura ta tworzy początkową permutację w tablicy „S” i typowo wykorzystuje klucz o długości od 5 do 16 bajtów. Inicjalizacja odbywa się w 256 iteracjach, gdzie permutacja jest mieszana z bajtami klucza.
Algorytm Pseudolosowej Generacji
Algorytm modyfikuje stan tablicy „S” i generuje bajty strumienia szyfrującego na podstawie długości tekstu oryginalnego. Każda wartość S jest zamieniana co najmniej raz na każde 256 iteracji.
Bezpieczeństwo RC4
RC4 wykazuje pewne niedoskonałości, takie jak częstsze występowanie niektórych sekwencji bajtów w strumieniu szyfrującym. W 2000 roku odkryto, że można z tego skorzystać w ataku, który wyodrębnia strumień szyfrujący z dużych ilości danych wyjściowych.
Atak Fluhrera, Mantina i Shamira
W 2001 roku odkryto, że rozkład statystyczny pierwszych bajtów strumienia szyfrującego jest nielosowy. Analizując wiele wiadomości szyfrowanych tym samym kluczem, można uzyskać ten klucz, co przyspieszyło rozwój standardu szyfrowania WPA jako następcy WEP. Aby zabezpieczyć się przed tym atakiem, zaleca się odrzucenie początkowych danych (min. 1024 bajtów).
Kryptosystemy Oparte na RC4
- WEP
- WPA
- CipherSaber
- Protokół BitTorrent
- Microsoft Point-to-Point Encryption
- SSL (opcjonalnie)
- SSH (opcjonalnie)
RC4 jest jednym z wielu szyfrów, które mogą być stosowane w systemach oznaczonych jako „opcjonalne”.