RC4 (szyfr Rivesta 4) to szyfr strumieniowy zaprojektowany przez Rona Rivesta w 1987 roku. Szyfruje dane, generując pseudolosowy strumień bitów (nazywany strumieniem klucza), który jest łączony z danymi jawnego tekstu, zwykle przy użyciu operacji XOR, w celu wygenerowania tekstu zaszyfrowanego.
Szyfrowanie: Każdy bajt jawnego tekstu jest łączony z odpowiadającym mu bajtem ze strumienia klucza w celu wygenerowania tekstu zaszyfrowanego.
Deszyfrowanie: Ten sam strumień klucza jest używany do XOR tekstu zaszyfrowanego i odzyskania oryginalnego tekstu jawnego.
Prędkość: RC4 jest znany ze swojej szybkości i wydajności, szczególnie w środowiskach o ograniczonych zasobach.
Prostota: Jest prosty w implementacji i wymaga minimalnych zasobów, dzięki czemu nadaje się do środowisk o ograniczonej mocy przetwarzania.
Historyczne zastosowanie: RC4 był szeroko stosowany w protokołach takich jak SSL/TLS do bezpiecznej komunikacji i WEP do bezpieczeństwa sieci bezprzewodowych.
Generowanie klucza: Tajny klucz (zwykle od 40 do 2048 bits) służy do inicjalizacji stanu RC4.
Generowanie strumienia klucza: Algorytm RC4 generuje pseudoprzypadkowy strumień klucza na podstawie klucza.
Szyfrowanie: Każdy bajt tekstu jawnego jest łączony za pomocą operacji XOR z bajtem strumienia klucza, co skutkuje powstaniem tekstu zaszyfrowanego.
Odszyfrowanie: Ten sam strumień klucza jest używany do łączenia zaszyfrowanego tekstu za pomocą operacji XOR i odzyskiwania oryginalnego tekstu jawnego.
Biblioteki/Narzędzia: RC4 jest obsługiwany w różnych bibliotekach, chociaż często jest przestarzały ze względów bezpieczeństwa:
Python: biblioteka pycryptodome.
Java: pakiet javax.crypto (choć jego używanie jest niezalecane na rzecz silniejszych algorytmów).
C#: przestrzeń nazw System.Security.Cryptography.
Systemy starsze: podczas pracy ze starszymi systemami, które nadal używają szyfrowania RC4 (np. stare implementacje SSL/TLS).
Aplikacje niekrytyczne: jeśli pracujesz nad projektami, w których szybkość jest ważniejsza niż bezpieczeństwo, choć jest to zazwyczaj niezalecane na rzecz silniejszych szyfrów.
Cele edukacyjne: RC4 jest często używany do nauczania szyfrów symetrycznych i szyfrów strumieniowych ze względu na swoją prostotę.