RC4 (Cifrul Rivest 4) este un cifru de flux proiectat de Ron Rivest în 1987. Acesta criptează datele prin generarea unui flux pseudoaleator de biți (numit flux de chei) care este combinat cu datele textului simplu, de obicei folosind o operație XOR, pentru a produce text cifrat.
Criptare: Fiecare octet de text simplu este combinat cu un octet corespunzător din fluxul de chei pentru a genera textul cifrat.
Decriptare: Același flux de chei este utilizat pentru a efectua operația XOR asupra textului cifrat și a recupera textul simplu original.
Viteză: RC4 este cunoscut pentru viteza și eficiența sa, în special în medii cu resurse limitate.
Simplitate: Este simplu de implementat și necesită resurse minime, ceea ce îl face potrivit pentru medii cu putere de procesare limitată.
Utilizare istorică: RC4 a fost utilizat pe scară largă în protocoale precum SSL/TLS pentru comunicare securizată și WEP pentru securitatea rețelelor wireless.
Generare de chei: O cheie secretă (de obicei între 40 și 2048 de biți) este utilizată pentru a inițializa RC4 stare.
Generarea fluxului de chei: Algoritmul RC4 generează un flux de chei pseudoaleator bazat pe cheie.
Criptare: Fiecare octet de text simplu este supus unei operațiuni XOR cu octetul fluxului de chei, rezultând un text cifrat.
Decriptare: Același flux de chei este utilizat pentru a utiliza XOR textul cifrat și a recupera textul original.
Biblioteci/Instrumente: RC4 este acceptat în diverse biblioteci, deși este adesea depreciat din motive de securitate:
Python: bibliotecă pycryptodome.
Java: pachet javax.crypto (deși utilizarea sa este descurajat în favoarea unor algoritmi mai puternici).
C#: Spațiul de nume System.Security.Cryptography.
Sisteme vechi: Când lucrați cu sisteme mai vechi care încă utilizează criptarea RC4 (de exemplu, implementări SSL/TLS vechi).
Aplicații non-critice: Dacă lucrați la proiecte în care viteza este mai importantă decât securitatea, deși acest lucru este în general descurajat în favoarea unor cifruri mai puternice.
Scopuri educaționale: RC4 este adesea folosit pentru predarea despre cifruri simetrice și cifruri de flux datorită simplitatea sa.